Utilizzate l'SDK AutoAI Python per automatizzare e accelerare la progettazione e l'implementazione di un pattern RAG (Retrieval-augmented generation) ottimizzato, di qualità produttiva, basato sui vostri dati e sul vostro caso d'uso.
- Formato dei dati:
- File di raccolta di documenti di tipo PDF, HTML, DOCX o testo normale
- Dati del test con domande e risposte in formato JSON '
Limiti del file di dati - Fino a 20 file o cartelle per la raccolta di documenti
- 1 file JSON per i dati di test "
Dimensione ambiente - Grande: 8 CPU e 32 GB di RAM
Fornire risposte precise con la generazione aumentata dal recupero
La Retrieval-augmented generation (RAG) combina la potenza generativa di un modello linguistico di grandi dimensioni con l'accuratezza di una raccolta di documenti di base. L'interazione con un'applicazione RAG segue questo schema:
- Un utente invia una domanda all'applicazione.
- La ricerca recupera innanzitutto il contesto rilevante da un insieme di documenti di base.
- Il modello linguistico di accompagnamento genera una risposta che include le informazioni pertinenti.
Ad esempio, i notebook di esempio forniti per questa funzione utilizzano la documentazione del prodotto per la libreria client Python watsonx.ai come documenti di base per un'applicazione Q&A sulla codifica delle soluzioni watsonx.ai. Gli utenti del modello ottengono il beneficio di informazioni specifiche e pertinenti dalla documentazione, mentre il modello generativo dell'intelligenza artificiale aggiunge il contesto e presenta le risposte in linguaggio naturale.
Per una descrizione completa ed esempi di come la generazione aumentata dal reperimento può migliorare le applicazioni di domande e risposte, vedere Generazione aumentata dal reperimento (RAG).
Automatizzazione della ricerca della migliore configurazione RAG
RAG è dotato di molti parametri di configurazione, tra cui il modello linguistico di grandi dimensioni da scegliere, il modo in cui suddividere i documenti di grounding e il numero di documenti da recuperare. Le scelte di configurazione che funzionano bene per un altro caso d'uso potrebbero non essere le migliori per i vostri dati. Per creare il miglior modello RAG possibile per il vostro set di dati, potreste esplorare tutte le possibili combinazioni di opzioni di configurazione RAG per trovare, valutare e distribuire la soluzione migliore. Questa parte del processo può richiedere un notevole investimento di tempo e risorse. Così come è possibile utilizzare AutoAI per addestrare e ottimizzare rapidamente i modelli di apprendimento automatico, è possibile utilizzare le funzionalità di AutoAI per automatizzare la ricerca della soluzione RAG ottimale in base ai dati e al caso d'uso. Accelerare la sperimentazione può ridurre drasticamente i tempi di produzione.
Le caratteristiche principali dell'approccio AutoAI includono:
- Esplorazione e valutazione completa di un insieme vincolato di opzioni di configurazione .
- Rivalutare e modificare rapidamente la configurazione quando qualcosa cambia. Ad esempio, è possibile rieseguire facilmente il processo di formazione quando è disponibile un nuovo modello o quando i risultati della valutazione segnalano un cambiamento nella qualità delle risposte.
L'uso di AutoAI automatizza il flusso end-to-end dalla sperimentazione alla distribuzione. Il diagramma seguente illustra l'approccio di AutoAI per trovare un modello RAG ottimizzato per i dati e il caso d'uso in 3 livelli:
- Al livello base ci sono pipeline RAG parametrizzate che vengono utilizzate per popolare un archivio vettoriale (indice) e per recuperare i dati dall'archivio vettoriale da utilizzare quando il modello linguistico di grandi dimensioni genera le risposte.
- Successivamente, le metriche di valutazione RAG e gli strumenti di benchmarking valutano la qualità delle risposte.
- Infine, un algoritmo di ottimizzazione degli iperparametri cerca la migliore configurazione RAG possibile per i dati.
AutoAI Processo di ottimizzazione RAG
L'esecuzione degli esperimenti utilizzando AutoAI RAG evita di testare tutte le opzioni di configurazione di RAG (ad esempio, evita una ricerca su griglia) utilizzando un algoritmo di ottimizzazione iperparametrica. Il diagramma seguente mostra un sottoinsieme dello spazio di ricerca della configurazione RAG con 16 modelli RAG tra cui scegliere. Se l'esperimento le valuta tutte, vengono classificate da 1 a 16, con le tre configurazioni più alte classificate come più performanti. L'algoritmo di ottimizzazione determina quale sottoinsieme di modelli RAG valutare e interrompe l'elaborazione degli altri, che sono mostrati in grigio. Questo processo evita l'esplorazione di uno spazio di ricerca esponenziale, pur selezionando i modelli RAG più performanti nella pratica.
Utilizzare il percorso rapido per automatizzare la ricerca di un modello RAG
AutoAI offre una soluzione senza codice per automatizzare la ricerca di un modello RAG. Per utilizzare il percorso rapido, partire da un progetto e utilizzare l'interfaccia AutoAI per caricare i documenti di messa a terra e di test. Accettare la configurazione predefinita o aggiornare le impostazioni dell'esperimento. Eseguire l'esperimento per creare i modelli RAG più adatti al proprio caso d'uso.
Utilizzare l'AutoAI SDK per codificare un modello RAG
Utilizzate i notebook di esempio per imparare a usare la libreria watsonx.ai Python client (versione 1.1.11 o successiva) per codificare una soluzione RAG automatizzata per il vostro caso d'uso.
Esempio | Descrizione |
---|---|
Automatizzazione del modello RAG con il database Chroma | Questo notebook mostra l'approccio rapido alla creazione di un modello RAG. - Utilizza i file di documentazione dell'SDK watsonx.ai Python come documenti di base per un modello RAG. - Memorizza il contenuto vettoriale nel database predefinito di Chroma in memoria |
Automatizzazione del modello RAG con il database Milvus | - Utilizza i file di documentazione dell'SDK watsonx.ai Python come documenti di base per un modello RAG. - Memorizza il contenuto vettoriale in un database esterno Milvus |
Funzioni supportate
Esaminate questi dettagli per le funzionalità fornite con la versione beta del processo AutoAI RAG.
Funzione | Descrizione |
---|---|
Interfaccia supportata | Services |
Formati di file per la raccolta di documenti di base | PDF, HTML, DOCX, testo normale |
Connessioni dati per la raccolta dei documenti | IBM Cloud Object Storage (bucket) cartella nel bucket file (fino a 20) |
formati dati di test | JSON con schema fisso (campi: - domanda, risposta_corretta, ID_documento_risposta_corretta) |
Connessioni dati per i dati di test | IBM Cloud Object Storage(singolo file JSON) ' singolo file JSON nel progetto o nello spazio (asset di dati) ' singolo file JSON nel volume di archiviazione NFS |
Suddivisione in blocchi | Preset multipli di 64-1024 caratteri ' Documenti di messa a terra suddivisi in pezzi con dimensioni e sovrapposizioni ottimizzate. |
Modello di integrazione | Modelli di incorporamento supportati disponibili con watsonx.ai |
Archivio vettoriale | Milvus e ChromaDB |
Aumento dei blocchi | Abilitato (aggiunge pezzi circostanti dal documento) |
Tipo di ricerca | Standard (in un unico indice) |
Modelli generativi | Vedere i modelli di Fondazione per attività |
Campionamento | Benchmark-driven (prima selezionare le domande, poi i documenti, riempire con quelli casuali fino al limite) |
Algoritmo di ricerca | Per l'ottimizzazione degli iperparametri viene utilizzato il Tree Parzen Estimator (TPE) della libreria hyperopt |
Metriche | Correttezza della risposta, Fedeltà, Correttezza del contesto. Per ulteriori informazioni, vedere Vedere Metriche di rag lessicale dell'unito |
Metrica di ottimizzazione | La metrica utilizzata come obiettivo dell'ottimizzazione. La correttezza e la fedeltà delle risposte sono supportate. |
Vincoli utente personalizzabili | Modello di incorporazione Modello generativo Limite di configurazione (numero massimo di modelli in uscita da 4 a 20) |
Distribuzione | Milvus: AutoAI notebook per l'indicizzazione e l'inferenza utilizzando il database vettoriale esterno Milvus Chroma: singolo AutoAI notebook per l'indicizzazione e l'inferenza utilizzando il database vettoriale in-memory Chroma |
Passi successivi
- Vedere Scelta di un archivio vettoriale per pianificare dove archiviare i documenti vettoriali.
- Vedere Creazione di un esperimento RAG (fastpath)
Argomento principale: Codifica di soluzioni di IA generativa