È possibile utilizzare i modelli di fondazione in IBM watsonx.ai per generare risultati accurati, basati sulle informazioni contenute in una base di conoscenza, applicando il modello RAG (retrieval-augmented generation ).
Questo video fornisce un metodo visivo per apprendere i concetti e le attività in questa documentazione.
Capitoli video
Copy link to section
[ 0:08 ] Descrizione dello scenario [ 0:27 ] Panoramica del pattern [ 1:03 ] Base di conoscenza [ 1:22 ] Componente di ricerca [ 1:41 ] Prompt aumentato con il contesto [ 2:13 ] Generazione dell'output [ 2:31 ] Soluzione completa [ 2:55 ] Considerazioni per la ricerca [ 3:58 ] Considerazioni per il testo del prompt [ 5:01 ] Considerazioni per la spiegabilità
Fornire il contesto nel prompt migliora l'accuratezza
Copy link to section
I modelli di base possono generare un output che è di fatto inaccurato per vari motivi. Un modo per migliorare l'accuratezza dell'output generato è fornire i fatti necessari come contesto nel testo del prompt.
Esempio
Copy link to section
Il seguente prompt include il contesto per stabilire alcuni fatti:
Aisha recently painted the kitchen yellow, which is her favorite color.
Aisha's favorite color is
Copy to clipboardCopiato negli appunti
A meno che Aisha non sia una persona famosa il cui colore preferito è stato menzionato in molti articoli online inclusi nei comuni set di dati di pre-addestramento, senza il contesto all'inizio del prompt, nessun modello di base può generare in modo affidabile il completamento corretto della frase alla fine del prompt.
Se si richiede un modello con testo che include un contesto pieno di fatti, è più probabile che l'output generato dal modello sia accurato. Per ulteriori dettagli, consultare Generazione di un output accurato.
Il modello di generazione con recupero e incremento
Copy link to section
È possibile scalare la tecnica di inclusione del contesto nei prompt utilizzando le informazioni in una knowledge base.
Il diagramma che segue illustra il modello di generazione con recupero e incremento. 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:
Ricercare nella knowledge base il contenuto correlato alla domanda di un utente.
Inserire i risultati di ricerca più pertinenti nel prompt come contesto e aggiungere un'istruzione, ad esempio "Rispondi alla seguente domanda utilizzando solo le informazioni dei seguenti passaggi".
Solo se il modello di base che stai utilizzando non è ottimizzato per l'istruzione : aggiungi alcuni esempi che dimostrino il formato di input e output previsto.
Invia il testo del prompt combinato (istruzioni + risultati della ricerca + domanda) al modello di base.
Il modello di base utilizza le informazioni contestuali della richiesta per generare una risposta concreta.
L'origine della generazione aumentata dal reperimento
Copy link to section
In questo lavoro è stato introdotto il termine retrieval-augmented generation (RAG ): Retrieval-augmented generation for knowledge-intensive NLP tasks. "Costruiamo modelli RAG in cui la memoria parametrica è un trasformatore pre-addestrato di tipo " seq2seq " e la memoria non parametrica è un indice vettoriale denso di Wikipedia, a cui si accede con un "neural retriever" riqualificato"
In questo articolo, il termine Modelli RAG fa riferimento a un'implementazione specifica di un retriever (un codificatore di query specifico e un indice di ricerca di documenti basato su vettori) e di un generatore (uno specifico modello di linguaggio generativo pre - addestrato). Tuttavia, l'approccio di base di ricerca e generazione può essere generalizzato per utilizzare diversi componenti retriever e modelli di base.
Knowledge base
Copy link to section
La knowledge base può essere qualsiasi raccolta di risorse utente contenenti informazioni, ad esempio:
Informazioni sul processo nelle pagine wiki aziendali interne
File in GitHub (in qualsiasi formato: Markdown, testo semplice, JSON, codice)
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
Programma di recupero
Copy link to section
Il retriever può essere una qualsiasi combinazione di strumenti di ricerca e contenuto che restituiscono in modo affidabile contenuti pertinenti dalla knowledge base, inclusi strumenti di ricerca come IBM Watson Discovery o API di ricerca e contenuto come quelle fornite da GitHub.
Anche i database vettoriali sono dei retriever efficaci. Un database vettoriale memorizza non solo i dati, ma anche un inserimento vettoriale dei dati, che è una rappresentazione numerica dei dati che cattura il suo significato semantico. Al momento della query, viene utilizzato un vettore che incorpora il testo della query per trovare corrispondenze rilevanti.
IBM watsonx.ai non include un database vettoriale, ma puoi utilizzare i modelli di fondazione in watsonx.ai con qualsiasi database vettoriale sul mercato. I notebook di esempio illustrano i passaggi per la connessione a database vettoriali diffusi, come Cloud Pak for Data e Elasticsearch.
Per aiutarvi a implementare un modello RAG in cui il retriever utilizza testo vettoriale, watsonx.ai offre un'API di incorporamento e modelli di incorporamento che potete usare per convertire frasi e passaggi in vettori. Per ulteriori informazioni su questo tipo di implementazione di RAG, vedere Utilizzo di testo vettoriale con compiti di generazione aumentata dal reperimento.
Generatore
Copy link to section
Il componente generatore può utilizzare qualsiasi modello in watsonx.ai, a seconda del caso di utilizzo, del formato del prompt e del contenuto che si sta estraendo per il contesto.
Progetto di esempio
Copy link to section
Importazione di un progetto di esempio con notebook e altre risorse che implementano una soluzione di domande e risposte utilizzando la generazione aumentata dal recupero. Il progetto mostra come eseguire le seguenti operazioni:
Utilizzate i file HTML, PDF, DOC o PPT come base di conoscenza e un indice vettoriale Elasticsearch come retriever. (È necessario creare l'istanza del servizio Elasticsearch separatamente)
Scrivere una funzione di " Python " che interroghi l'indice vettoriale per cercare informazioni relative a una domanda, quindi deduca un modello di base e controlli la risposta generata per verificare la presenza di contenuti allucinati.
Utilizzate i modelli di prompt che vi aiutano a formulare prompt efficaci per i modelli di fondazione.
Seguite il modello in modo efficiente con le utilità RAG della libreria watsonx.ai Python.
Implementare la fase successiva di un'implementazione di RAG includendo funzioni per la raccolta e l'analisi del feedback degli utenti sulle risposte generate.
La documentazione watsonx.ai dispone di una funzione di ricerca e risposta che può rispondere alle domande di base utilizzando gli argomenti nella documentazione come una knowledge base.
Contiene i passaggi e il codice per dimostrare il supporto della generazione aumentata dal recupero 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.
Esempio con LangChain e un database vettore Elasticsearch
Dimostra come utilizzare LangChain per applicare un modello di incorporazione ai documenti in un database vettore Elasticsearch . Il notebook indicizza e utilizza l'archivio dati per generare risposte alle domande in entrata.
Dimostra come utilizzare la libreria Elasticsearch Python per applicare un modello di integrazione ai documenti in un database vettoriale Elasticsearch . Il notebook indicizza e utilizza l'archivio dati per generare risposte alle domande in entrata.
Mostra come applicare la generazione ottimizzata per il reperimento a modelli linguistici di grandi dimensioni in watsonx utilizzando il database SingleStoreDB.
Informazioni sui cookie del presente sitoPer il corretto funzionamento, i nostri siti Web richiedono alcuni cookie (richiesto). Inoltre, con il suo consenso, potrebbero essere utilizzati altri cookie per l'analisi dell'utilizzo del sito, per migliorare l'esperienza utente e per scopi pubblicitari.Per ulteriori informazioni, consultare le Preferenze cookie. Visitando il nostro sito web, accettate il trattamento delle informazioni da parte nostra come descritto nelladichiarazione sulla privacy di IBM.Per consentire una corretta navigazione, le preferenze per i cookie dell'utente verranno condivise sui domini Web IBM qui elencati.