LlamaIndex è un framework di dati per lo sviluppo di applicazioni di modelli linguistici di grandi dimensioni (LLM) con incremento di contesto. L'aumento del contesto avviene quando applichi un LLM ai dati. Questo implementa RAG (Retrieval Augmented Generation).
Un problema comune con gli LLM è che non comprendono le conoscenze private, cioè i dati della tua organizzazione. Con LlamaIndex su Vertex AI per RAG, è possibile arricchire il contesto LLM con ulteriori informazioni private, poiché il modello può ridurre l'allucinazione e rispondere alle domande in modo più accurato.
Combinando ulteriori fonti di conoscenza con le conoscenze esistenti degli LLM, viene fornito un contesto migliore. Il contesto migliorato e la query migliorano la qualità della risposta dell'LLM.
I seguenti concetti sono fondamentali per comprendere LlamaIndex su Vertex AI. Questi concetti sono elencati nell'ordine del processo RAG (Retrieval Augmented Generation).
Importazione dati: raccogli dati da diverse origini dati. ad esempio file locali, Cloud Storage e Google Drive.
Trasformazione dei dati: conversione dei dati in preparazione per l'indicizzazione. Ad esempio, i dati vengono suddivisi in blocchi.
Incorporamento: rappresentazioni numeriche di parole o parti di testo. Questi numeri acquisiscono il significato semantico e il contesto del testo. Parole o testi simili o correlati tendono ad avere incorporamenti simili, il che significa che sono più vicini tra loro nello spazio vettoriale ad alta dimensionalità.
Indicizzazione dei dati: LlamaIndex su Vertex AI per RAG crea un indice chiamato corpus. L'indice struttura la knowledge base in modo che sia ottimizzata per la ricerca. Ad esempio, l'indice è come un sommario dettagliato di un enorme libro di riferimento.
Recupero: quando un utente pone una domanda o fornisce un prompt, il componente di recupero in LlamaIndex su Vertex AI per RAG cerca nella knowledge base per trovare informazioni pertinenti alla query.
Generazione: le informazioni recuperate diventano il contesto aggiunto alla query dell'utente originale come guida per il modello di AI generativa per generare risposte concretamente basate e pertinenti.
Questa pagina inizia a utilizzare LlamaIndex su Vertex AI per RAG e fornisce esempi di Python per dimostrare come utilizzare l'API RAG.
Per informazioni sui limiti di dimensione dei file, vedi Tipi di documenti supportati. Per informazioni sulle quote relative a LlamaIndex su Vertex AI per RAG, consulta Quote di LlamaIndex su Vertex AI per RAG. Per informazioni sulla personalizzazione dei parametri, consulta Parametri di recupero.
Esegui LlamaIndex su Vertex AI per RAG utilizzando l'SDK Vertex AI
Per utilizzare LlamaIndex su Vertex AI per RAG:
Esegui questo comando nella console Google Cloud per configurare il tuo progetto.
gcloud config set {project}
Esegui questo comando per autorizzare l'accesso.
gcloud auth application-default login
Copia e incolla questo codice campione nella console Google Cloud per eseguire LlamaIndex su Vertex AI.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python.
Modelli di generazione supportati
I seguenti modelli e le relative versioni che supportano LlamaIndex su Vertex AI includono:
Modello | Versione |
---|---|
Gemini 1.5 Flash | gemini-1.5-flash-001 |
Gemini 1.5 Pro | gemini-1.5-pro-001 |
Gemini 1.0 Pro | gemini-1.0-pro-001 gemini-1.0-pro-002 |
Gemini 1.0 Pro Vision | gemini-1.0-pro-vision-001 |
Gemini | gemini-experimental |
Modelli di incorporamento supportati
Sono supportati i modelli Google indicati di seguito:
textembedding-gecko@003
textembedding-gecko-multilingual@001
text-embedding-004
text-multilingual-embedding-002
Sono supportati i modelli Google ottimizzati per le seguenti versioni:
textembedding-gecko@003
textembedding-gecko-multilingual@001
text-embedding-004
text-multilingual-embedding-002
textembedding-gecko@002
textembedding-gecko@001
Se la configurazione non è specificata, il comportamento predefinito prevede l'utilizzo di
text-embedding-004
per la scelta di incorporamento su RagCorpus
. Per
ulteriori informazioni sull'ottimizzazione dei modelli di incorporamento, consulta
Ottimizzazione degli incorporamenti di testo.
Tipi di documenti supportati
Sono supportati i documenti di solo testo, che includono i seguenti tipi di file con i relativi limiti di dimensione:
Tipo di file | Limite dimensioni file |
---|---|
Documenti Google. | 10 MB quando vengono esportati da Google Workspace |
disegni Google | 10 MB quando vengono esportati da Google Workspace |
Presentazioni Google | 10 MB quando vengono esportati da Google Workspace |
File HTML | 10 MB |
File JSON | 1 MB |
File Markdown | 10 MB |
Diapositive di Microsoft PowerPoint (file PPTX) | 10 MB |
Documenti di Microsoft Word (file DOCX) | 10 MB |
File PDF | 50 MB |
File di testo | 10 MB |
È possibile utilizzare LlamaIndex su Vertex AI per RAG con altri tipi di documenti, ma generare risposte di qualità inferiore.
Origini dati supportate
Sono supportate tre origini dati, tra cui:
Il caricamento di un singolo file mediante
upload_file
(fino a 25 MB), che è una chiamata sincrona.Importa file da Cloud Storage.
Importa una directory da Google Drive.
È necessario concedere all'account di servizio le autorizzazioni corrette per importare i file. In caso contrario, i file non vengono importati e non viene visualizzato alcun messaggio di errore. Per ulteriori informazioni sui limiti di dimensione dei file, vedi Tipi di documenti supportati.
Per eseguire l'autenticazione e concedere le autorizzazioni, segui questi passaggi:
- Vai alla pagina IAM del tuo progetto Google Cloud.
- Seleziona Includi la concessione del ruolo fornita da Google.
- Cerca l'account di servizio Agente di servizio dati RAG Vertex AI.
- Fai clic su Condividi nella cartella di Drive e condividilo con l'account di servizio.
- Concedi l'autorizzazione
Viewer
all'account di servizio nella cartella o nel file di Google Drive. Puoi trovare l'ID risorsa di Google Drive nell'URL web.
Per ulteriori informazioni, consulta il riferimento dell'API RAG.
Trasformazioni dei dati supportate
Dopo l'importazione di un documento, LlamaIndex su Vertex AI per RAG esegue un insieme di trasformazioni per la migliore qualità e esistono parametri che gli sviluppatori possono controllare per i loro casi d'uso.
Questi parametri includono:
Parametro | Descrizione |
---|---|
chunk_size |
Quando i documenti vengono importati in un indice, vengono suddivisi in blocchi. Il parametro chunk_size (nei token) specifica la dimensione del blocco. La dimensione predefinita del blocco è 1024 token. |
chunk_overlap |
Per impostazione predefinita, i documenti vengono suddivisi in blocchi con una certa quantità di sovrapposizione per migliorare la pertinenza e la qualità del recupero. La sovrapposizione predefinita del blocco è di 200 token. |
Una dimensione del chunk inferiore significa che gli incorporamenti sono più precisi. Una dimensione del chunk maggiore significa che gli incorporamenti potrebbero essere più generici ma possono perdere dettagli specifici.
Ad esempio, se converti 200 parole anziché 1000 in un array di incorporamento della stessa dimensione, potresti perdere i dettagli. Questo è anche un buon esempio di quando si considera il limite di lunghezza del contesto del modello. Un blocco di grandi dimensioni potrebbe non rientrare in un modello con finestra piccola.
Parametri di recupero
La tabella seguente include i parametri di recupero:
Parametro | Descrizione |
---|---|
similarity_top_k |
Controlla il numero massimo di contesti recuperati. |
vector_distance_threshold |
Vengono presi in considerazione solo i contesti con una distanza inferiore alla soglia. |
Gestione degli indici
Un corpus è una raccolta di documenti o una fonte di informazioni. Questa raccolta è detta anche indice. È quindi possibile eseguire query sull'indice per recuperare contesti pertinenti per la generazione LLM. Quando crei un indice per la prima volta, il processo potrebbe richiedere un altro minuto. Per altre creazioni di indici all'interno dello stesso progetto Google Cloud, il processo richiede meno tempo.
Sono supportate le seguenti operazioni di indicizzazione:
- Crea un corpus: crea un indice per importare o caricare documenti.
- Elimina un corpus: elimina l'indice.
- Recupera i dettagli di un corpus: recupera i metadati che descrivono l'indice.
- Elenca corpora in un determinato progetto: elenca più indici in un dato progetto.
Le operazioni simultanee su corpora non sono supportate. Per maggiori informazioni, consulta il riferimento dell'API RAG.
Gestione dei file
Sono supportate le seguenti operazioni sui file:
- Carica un file dallo spazio di archiviazione locale in un corpus: carica un file con informazioni aggiuntive che forniscono contesto all'LLM per generare risposte più accurate.
- Importare file da un altro spazio di archiviazione in un corpus: importa un insieme di file da una posizione di archiviazione.
- Recupera i dettagli di un file: recupera contesti pertinenti per una determinata query da un indice o da file specifici nell'indice.
- Elenca i file in un corpus: genera un elenco di file nell'indice.
- Eliminare un file da un corpus: rimuovi un file dall'indice.
Per ulteriori informazioni, consulta il riferimento dell'API RAG.
Passaggi successivi
- Scopri di più sull'IA generativa su Vertex AI .
- Scopri di più sul grounding e sulla sua correlazione a LlamaIndex su Vertex AI per RAG.
- Scopri di più sull'API Retrieval-Augmented Generation.
- Scopri di più sull'architettura RAG. Consulta Infrastruttura per un'applicazione di IA generativa compatibile con RAG utilizzando Vertex AI .