Il modo in cui i modelli linguistici elaborano e segmentano il testo sta cambiando dal tradizionale approccio statico a un processo migliore e più reattivo. A differenza del tradizionale chunking a dimensione fissa, che suddivide documenti di grandi dimensioni in punti fissi, l'agentic chunking utilizza tecniche basate sull'AI per analizzare i contenuti in un processo dinamico e per determinare il modo migliore per segmentare il testo.
L'agentic chunking utilizza metodi di suddivisione del testo basati sull'AI, suddivisione in blocchi ricorsiva e metodi di sovrapposizione dei blocchi, che funzionano contemporaneamente per perfezionare la capacità di suddivisione in blocchi, preservando i collegamenti tra idee importanti e ottimizzando le finestre contestuali in tempo reale. Con l'agentic chunking, ogni chunk è arricchito con metadati per migliorare la precisione del recupero e l'efficienza complessiva del modello. Ciò è particolarmente importante nelle applicazioni RAG, dove la segmentazione dei dati può impattare direttamente sulla qualità del recupero e sulla coerenza della risposta. Il contesto significativo viene preservato in tutte le parti più piccole, il che rende questo approccio incredibilmente importante per i chatbot, le basi di conoscenza e i casi d'uso dell'AI generativa (gen AI). Framework come Langchain o LlamaIndex migliorano ulteriormente l'efficienza del recupero, rendendo questo metodo altamente efficace.
1. Strategia di suddivisione adattiva: scegliere dinamicamente il metodo di suddivisione in blocchi migliore in base al tipo di contenuto, all'intento alla base della query e alle esigenze di recupero per garantire una segmentazione efficace.
2. Dimensionamento dinamico dei blocchi: modifica delle dimensioni dei blocchi in tempo reale considerando la struttura semantica e il contesto, invece di attenersi a limiti fissi di token.
3. Sovrapposizione che preserva il contesto: valutare in modo intelligente la sovrapposizione tra i blocchi per mantenere intatta la coerenza ed evitare la perdita di informazioni essenziali, migliorando così l'efficienza di recupero.
Newsletter di settore
Ricevi insight selezionati sulle notizie più importanti e interessanti sull'AI. Iscriviti alla nostra newsletter settimanale Think. Leggi l'Informativa sulla privacy IBM.
L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.
L'agentic chunking offre vantaggi rispetto al chunking tradizionale:
a. Mantiene il contesto: conserva le informazioni essenziali senza interruzioni inutili.
b. Dimensionamento intelligente: regola i confini dei blocchi in base al significato e all'importanza.
c. Ottimizzato per le query: perfeziona continuamente i blocchi in modo che corrispondano a domande specifiche.
d. Recupero efficiente: migliora i sistemi di ricerca e RAG riducendo al minimo la frammentazione non necessaria.
In questo tutorial, sperimenterai una strategia di agentic chunking utilizzando il modello IBM Granite-3.0-8B-Instruct ora disponibile su watsonx.ai. L'obiettivo generale è quello di eseguire un chunking efficiente per implementare efficacemente la RAG.
È necessario un account IBM Cloud per creare un progetto watsonx.ai.
Sebbene sia possibile scegliere tra diversi strumenti, questo tutorial illustra come configurare un account IBM per l'utilizzo di un Jupyter Notebook.
Accedi a watsonx.ai utilizzando il tuo account IBM Cloud.
Crea un progetto watsonx.ai.
Puoi ottenere l'ID del tuo progetto dall'interno del tuo progetto. Clicca sulla scheda Gestisci. Quindi, copia l'ID del progetto dalla sezione Dettagli della pagina Generali. Per questo tutorial ti serve questo ID.
Crea un Jupyter Notebook.
Questo passaggio apre un ambiente notebook in cui potrai incollare il codice da questo tutorial. In alternativa, puoi scaricare questo notebook sul tuo sistema locale e caricarlo nel tuo progetto watsonx.ai come asset. Per visualizzare altri tutorial su Granite, visita l'IBM Granite Community. Questo Jupyter Notebook insieme ai set di dati utilizzati sono disponibili su GitHub.
Crea un'istanza di servizio watsonx.ai Runtime (seleziona l'area geografica appropriata e scegli il piano Lite, che è un'istanza gratuita).
Genera una chiave API.
Associa l'istanza del servizio watsonx.ai Runtime al progetto che hai creato in watsonx.ai.
Per questo tutorial avrai bisogno di alcune librerie e moduli. Assicurarsi di importare i seguenti elementi e, se non sono installati, una rapida installazione tramite pip risolverà il problema.
Nota, questo tutorial è stato creato utilizzando Python 3.12.7
Per impostare le nostre credenziali, abbiamo bisogno del "WATSONX_APIKEY" e del "WATSONX_PROJECT_ID". Imposteremo anche l'URL che funge da endpoint dell'API.
Per questo tutorial, consigliamo di utilizzare il modello IBM Granite-3.0-8B-Instruct come LLM per ottenere risultati simili. Puoi utilizzare liberamente il modello AI che preferisci. I modelli di base disponibili tramite watsonx sono disponibili qui.
Questa funzione estrae il contenuto testuale dalla pagina dell'articolo esplicativo di IBM sul machine learning. Questa funzione rimuove gli elementi HTML indesiderati (script, stili) e restituisce un testo pulito e leggibile.
Invece di utilizzare un metodo di chunking a lunghezza fissa, abbiamo utilizzato un LLM per dividere il testo in base al significato. Questa funzione utilizza un LLM per suddividere in modo intelligente il testo in blocchi semanticamente significativi in base agli argomenti.
Stampiamo i blocchi per comprendere meglio la loro struttura di output.
Ottimo! I blocchi sono stati creati correttamente dagli agenti nell'output.
Ora che abbiamo sperimentato l'agentic chunking del testo, passiamo alla nostra implementazione RAG.
Per questo tutorial, scegliamo i blocchi prodotti dagli agenti e li convertiamo in embedding. Un database vettoriale open source che possiamo utilizzare è Chroma DB. Possiamo accedere facilmente alle funzionalità Chroma attraverso il pacchetto langchain_chroma. Inizializziamo il nostro database vettoriale Chroma, forniamogli il nostro embedding e aggiungiamo i nostri documenti prodotti tramite agentic chunking.
Crea un database vettoriale Chroma
Converti ogni blocco di testo in un oggetto documento
Aggiungi i documenti al database vettoriale.
Ora possiamo creare un modello di prompt per il nostro LLM. Questo modello ci consente di porre più domande mantenendo una struttura di prompt coerente. Inoltre, possiamo integrare il nostro archivio vettoriale come retriever, finalizzando il framework RAG.
Utilizzando questi blocchi agentici nel workflow RAG, iniziamo una query utente. Innanzitutto, possiamo promptare strategicamente il modello senza alcun contesto aggiuntivo dal database vettoriale che abbiamo creato per verificare se il modello utilizza le sue conoscenze integrate o se utilizza realmente il contesto RAG. Utilizzando l'articolo esplicativo del machine learning di IBM, poniamo ora la domanda.
Chiaramente, il modello non è stato addestrato sulle informazioni sul processo di ottimizzazione del modello e, senza strumenti o informazioni esterni, non può fornirci le informazioni corrette. La modello genera allucinazioni. Ora, proviamo a fornire la stessa query alla catena RAG con i blocchi agentici che abbiamo creato.
Ottimo! Il modello Granite ha utilizzato correttamente i blocchi RAG agentici come contesto per fornirci informazioni corrette sul processo di ottimizzazione del modello preservando la coerenza semantica.
In questo tutorial, abbiamo generato informazioni pertinenti più piccole utilizzando gli agenti AI nel processo di suddivisione in blocchi e costruito una pipeline di retrieval-augmented generation (RAG).
Questo metodo migliora il recupero delle informazioni e l'ottimizzazione della finestra di contesto utilizzando l'intelligenza artificiale e l'elaborazione del linguaggio naturale (PNL). Semplifica i blocchi di dati per migliorare l'efficienza di recupero sfruttando modelli linguistici di grandi dimensioni (LLM) come i modelli GPT di OpenAI per risultati migliori.
Consenti agli sviluppatori di creare, distribuire e monitorare agenti AI con lo studio IBM watsonx.ai.
Migliora la produttività con uno dei set di funzionalità più completi del settore che aiuta le aziende a creare, personalizzare e gestire agenti e assistenti AI.
Ottieni un risparmio sui costi di oltre il 90% con i modelli più piccoli e aperti di Granite, progettati per l'efficienza degli sviluppatori. Questi modelli pensati per le imprese offrono prestazioni eccellenti rispetto ai benchmark di sicurezza e in un'ampia gamma di attività aziendali, dalla cybersecurity alla RAG.