Modello di generazione potenziata dal recupero (RAG)
È possibile creare un modello di generazione potenziata dal recupero (RAG) per generare risultati basati su fatti che attingono alle informazioni contenute in una base di conoscenza.
Un modello RAG elabora i contenuti provenienti da una base di conoscenza trasformandoli in un formato vettoriale facilmente ricercabile. Quando un utente pone una domanda, il modello RAG recupera una serie di passaggi pertinenti e li fornisce al modello di linguaggio di grandi dimensioni (LLM). Il modello di linguaggio generativo (LLM) fornisce una risposta basata sui fatti alla domanda dell'utente.
Funzionalità e risorse del modello RAG
È possibile creare un modello RAG con le seguenti funzionalità e risorse:
- Rappresentazioni vettoriali
- Creare rappresentazioni vettoriali per codificare il significato di una frase o di un brano sotto forma di rappresentazione numerica. I vettori rappresentano un metodo efficiente per individuare nella tua base di conoscenza i passaggi di testo più simili alla domanda posta dall'utente. I vettori vengono memorizzati in database vettoriali e recuperati tramite un indice vettoriale.
- Vedi Creazione di un indice vettoriale.
- Classificazione ed estrazione di testi
- Converti il contenuto di un PDF o di un'immagine in testo per la vettorializzazione.
- Vedi la sezione "Informazioni sui documenti".
- Riorganizzazione dei risultati recuperati
- Ordina nuovamente i primi risultati ottenuti in base alla rilevanza anziché alla somiglianza.
- Vedi "Riorganizzazione dei passaggi del documento".
- Archivi vettoriali
- Scegli tra l'archivio vettoriale Chroma in memoria, che viene configurato automaticamente, oppure altri archivi vettoriali a cui crei delle connessioni.
- Vedi Tipi di memorie vettoriali.
- Modelli di encoder per l'incorporamento e il riclassamento
- Scegli tra i modelli di encoder di IBM e di terze parti per la creazione di embedding e il re-ranking dei passaggi.
- Vedi i modelli di base degli encoder supportati.
- Modelli di base per l'inferenza
- Scegli tra una vasta gamma di modelli di base, seleziona un modello "deploy-on-demand" oppure importa e distribuisci un modello personalizzato.
- Scopri i modelli di base adatti al tuo caso d'uso.
- Esempi da adattare
- Inizia con un modello RAG di esempio e adattalo alle tue esigenze.
- Vedi esempi di modelli RAG.
È possibile creare un modello RAG a partire dai contenuti della knowledge base in diverse lingue naturali. La tabella seguente fornisce informazioni dettagliate sulle lingue supportate dai diversi modelli di base utilizzati per creare un modello RAG:
| Tipo di modello di base | Lingue supportate |
|---|---|
| Modelli di integrazione | A seconda del modello, la disponibilità varia da solo l'inglese a diverse lingue, fino a oltre 100 lingue. Per ulteriori informazioni, consultare la sezione "Dettagli sul modello di incorporamento ". |
| Modelli di riclassificazione | Inglese. Per ulteriori informazioni, consultare la sezione "Dettagli del modello Reranker". |
| Modelli di classificazione ed estrazione di testo | Oltre 100 lingue. Per ulteriori dettagli, consultare la sezione "Lingue supportate dalle API di elaborazione del testo". |
Modalità di lavoro
È possibile scrivere il codice per il proprio modello RAG utilizzando i seguenti metodi:
È possibile lavorare in un ambiente no-code o low-code utilizzando gli strumenti disponibili nell'interfaccia utente:
- Prompt Lab : È possibile interagire con un documento caricato o con un indice vettoriale.
- AutoAI Per RAG : è possibile automatizzare la ricerca di un modello RAG ottimizzato e di qualità produttiva.
- Indice vettoriale : è possibile creare un indice vettoriale basato su uno o più documenti.
L'architettura del modello di generazione potenziata dal recupero
È possibile estendere l'uso della tecnica che consiste nell'inserire il contesto nei propri prompt attingendo alle informazioni contenute in una base di conoscenza.
Questo video fornisce un metodo visivo per apprendere i concetti e le attività in questa documentazione.
Capitoli del video
[ 0:08 ] Descrizione
dello scenario [ 0:27 ] Panoramica del modello
[ 1:03 ] Base
di conoscenza [ 1:22 ] Componente
di ricerca [ 1:41 ] Prompt arricchito dal contesto
[ 2:13 ] Generazione dell'output
[ 2:31 ] Soluzione
completa [ 2:55 ] Considerazioni sulla ricerca
[ 3:58 ] Considerazioni sul testo
del prompt [ 5:01 ] Considerazioni sulla spiegabilità
Il diagramma seguente illustra il modello di generazione potenziata dal recupero in fase di esecuzione. Anche se il diagramma mostra un esempio di risposta alle domande, lo stesso flusso di lavoro supporta altri casi di utilizzo.
Il modello di generazione aumentata dal recupero prevede le seguenti fasi:
- La tua knowledge base viene pre-elaborata per convertire il contenuto in testo semplice e vettorializzarlo. La pre-elaborazione può comprendere l'estrazione del testo, al fine di convertire le informazioni contenute in tabelle e immagini in testo interpretabile dal modello di linguaggio di grandi dimensioni (LLM).
- Un utente pone una domanda.
- La domanda viene convertita in un embedding testuale.
- Si effettua una ricerca nel database vettoriale, che contiene i contenuti vettorializzati della base di conoscenza, alla ricerca di contenuti simili alla domanda dell'utente.
- I risultati di ricerca più pertinenti vengono aggiunti al prompt in formato testo, insieme a un'istruzione del tipo: «Rispondi alla seguente domanda utilizzando esclusivamente le informazioni contenute nei brani seguenti»
- Il testo del prompt combinato (istruzioni + risultati della ricerca + domanda) viene inviato al modello di base.
- Il modello di base utilizza informazioni contestuali dal prompt per creare una risposta fattuale.
Knowledge base
La tua base di conoscenza può essere costituita da qualsiasi raccolta di elementi contenenti informazioni, quali:
- Informazioni sul processo nelle pagine wiki aziendali interne
- File in GitHub
- Messaggi in uno strumento di collaborazione
- Argomenti nella documentazione del prodotto, che possono includere blocchi di testo lunghi
- Passaggi di testo in un database che supporta query SQL (structured query language), come Db2
- Un archivio documenti con una raccolta di file, come i contratti legali memorizzati come file PDF
- Ticket di assistenza clienti in un sistema di gestione dei contenuti
I tipi di file supportati dipendono dal metodo scelto per l'implementazione della soluzione:
- Negozi Vector. Per ulteriori dettagli, consultare la sezione "Aggiunta di documenti vettorializzati".
- AutoAI. Per ulteriori dettagli, consultare la sezione "Automazione di un modello RAG".
È possibile ottimizzare la propria soluzione RAG adattando i contenuti della propria knowledge base in modo da renderli più accessibili all'intelligenza artificiale. Vedi "Ottimizzazione della knowledge base per la generazione potenziata dal recupero ".
Pre-elaborazione dei contenuti
Quando si configura il modello RAG, si esegue la pre-elaborazione dei documenti presenti nella base di conoscenza. La fase di pre-elaborazione converte innanzitutto il contenuto in testo semplice. È possibile configurare l'estrazione del testo per convertire le informazioni contenute nelle tabelle e nelle immagini in testo interpretabile dal modello di linguaggio di grandi dimensioni (LLM). Successivamente, il modello di embedding vettorializza il testo, lo memorizza nel database vettoriale e crea un indice vettoriale per il recupero dei contenuti.
Quando un utente pone una domanda, il testo viene vettorializzato dal modello di embedding.
Ricerca e classificazione dei contenuti
Il motore di ricerca individua, all'interno del database vettoriale, il contenuto più simile alla rappresentazione vettoriale del testo della query. I brani individuati vengono ordinati in base alla loro somiglianza con la domanda. È possibile aggiungere un modello di riclassificazione al proprio modello RAG per valutare la pertinenza dei passaggi recuperati in cima alla lista rispetto alla risposta alla domanda.
Generazione delle risposte
Il brano estratto, la domanda dell'utente e le istruzioni vengono inviati al modello di base tramite un prompt. Il modello di base genera una risposta e la restituisce all'utente.
Esempi di modelli RAG
I seguenti esempi di notebook illustrano come applicare il modello di generazione potenziata dal recupero.
Si prega di leggere attentamente le condizioni d'uso prima di utilizzare questi quaderni di esempio.
| Esempio | Descrizione | Collegamento |
|---|---|---|
| Esempio con Chroma | Questo notebook di esempio contiene i passaggi e il codice per dimostrare il supporto della generazione aumentata dal reperimento con un database Chroma in watsonx.ai. Introduce i comandi per il richiamo dei dati, la creazione e la query della knowledge base e il test del modello. | Utilizza i metodi RAG ( watsonx e Chroma) per rispondere alle domande |
| Esempio con LangChain | Questo notebook di esempio contiene i passaggi e il codice per dimostrare il supporto della generazione aumentata dal reperimento con LangChain in watsonx.ai. Introduce i comandi per il richiamo dei dati, la creazione e la query della knowledge base e il test del modello. | Utilizza watsonx, Chroma e LangChain per rispondere alle domande utilizzando il metodo RAG |
| Esempio con LangChain e un database vettore Elasticsearch | Questo notebook di esempio dimostra come utilizzare LangChain per applicare un modello di integrazione ai documenti in un database vettore Elasticsearch . Il notebook indicizza e utilizza l'archivio dati per generare risposte alle domande in entrata. | Utilizza watsonx, Elasticsearch e LangChain per rispondere alle domande (RAG) |
| Esempio con la libreria Python Elasticsearch | Questo notebook di esempio illustra come utilizzare la libreria Elasticsearch Python per applicare un modello di integrazione ai documenti in un database vettore Elasticsearch . Il notebook indicizza e utilizza l'archivio dati per generare risposte alle domande in entrata. | Utilizza watsonx, Elasticsearch e l'SDK di Python per rispondere alle domande (RAG) |
Ulteriori informazioni
Prova queste esercitazioni: