In precedenza noto come LlamaIndex su Vertex AI e più di recente come Knowledge Engine, RAG Engine è un framework di dati per lo sviluppo di applicazioni con modelli linguistici di grandi dimensioni (LLM) basati sul contesto. L'aumento del contesto avviene quando applichi un LLM ai tuoi dati. Questa operazione implementa il recupero RAG.
Un problema comune con gli LLM è che non comprendono le conoscenze private, che sono i dati della tua organizzazione. Con RAG Engine, puoi arricchire contesto LLM con ulteriori informazioni private, perché il modello può ridurre allucinazione e a rispondere alle domande in modo più preciso.
Combinando fonti di conoscenza aggiuntive con le conoscenze esistenti degli LLM, viene fornito un contesto migliore. Il contesto migliorato insieme alla query migliora la qualità della risposta dell'LLM.
I seguenti concetti sono fondamentali per comprendere RAG Engine. Questi concetti sono elencati nell'ordine del processo di RAG (Retrieval Augmented Generation).
Importazione dei dati: importa i dati da origini dati diverse. Ad esempio, file locali, Cloud Storage e Google Drive.
Trasformazione dei dati: conversione dei dati in preparazione all'indicizzazione. Ad esempio, i dati vengono suddivisi in blocchi.
Incorporamento: numerico rappresentazioni di parole o parti di testo. Questi numeri catturano significato semantico e contesto del testo. Parole o testo simili o correlati tendono ad avere incorporamenti simili, il che significa che sono più vicini nello spazio vettoriale di alta dimensione.
Indicizzazione dei dati: il motore RAG crea un indice chiamato corpus. L'indice struttura la knowledge base in modo che sia ottimizzata per la ricerca. Per ad esempio, l'indice è come un sommario dettagliato per un libro di riferimento.
Recupero: quando un utente pone una domanda o fornisce un prompt, il recupero in RAG Engine cerca nelle sue conoscenze per trovare informazioni pertinenti alla query.
Genesi: le informazioni recuperate diventano il contesto aggiunto alla query dell'utente originale come guida per il modello di IA generativa per generare risposte pertinenti e basate su fatti.
Modelli di IA generativa che supportano RAG
Questa sezione elenca i modelli che supportano RAG.
Modelli Gemini
La tabella seguente elenca i modelli Gemini e le relative versioni che supportano RAG Engine:
Modello | Versione |
---|---|
Gemini 1.5 Flash | gemini-1.5-flash-002 gemini-1.5-flash-001 |
Gemini 1.5 Pro | gemini-1.5-pro-002 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 cui è stato eseguito il deployment autonomo
RAG Engine supporta tutti i modelli Model Garden.
Utilizza RAG Engine con gli endpoint dei modelli aperti di tua creazione.
# Create a model instance with your self-deployed open model endpoint
rag_model = GenerativeModel(
"projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID",
tools=[rag_retrieval_tool]
)
Modelli con API gestite su Vertex AI
I modelli con API gestite su Vertex AI che supportano RAG Engine include:
Il seguente esempio di codice mostra come utilizzare l'API GeminiGenerateContent
per creare un'istanza di modello generativo. L'ID modello,/publisher/meta/models/llama-3.1-405B-instruct-maas
, si trova nella
scheda del modello.
# Create a model instance with Llama 3.1 MaaS endpoint
rag_model = GenerativeModel(
"projects/PROJECT_ID/locations/REGION/publisher/meta/models/llama-3.1-405B-instruct-maas",
tools=[rag_retrieval_tool]
)
Il seguente esempio di codice mostra come utilizzare l'ambiente compatibile con OpenAI
API ChatCompletions
per generare una risposta del modello.
# Generate a response with Llama 3.1 MaaS endpoint
response = client.chat.completions.create(
model="meta/llama-3.1-405b-instruct-maas",
messages=[{"role": "user", "content": "your-query"}],
extra_body={
"extra_body": {
"google": {
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": rag_corpus_resource
},
"similarity_top_k": 10
}
}
}
},
)
Modelli di embedding
I modelli di incorporamento vengono utilizzati per creare un corpus e per la ricerca e il recupero durante la generazione di risposte. Questa sezione elenca i modelli di incorporamento supportati.
textembedding-gecko@003
textembedding-gecko-multilingual@001
text-embedding-004
(valore predefinito)text-multilingual-embedding-002
textembedding-gecko@002
(solo versioni ottimizzate)textembedding-gecko@001
(solo versioni ottimizzate)
Per saperne di più sull'ottimizzazione dei modelli di incorporamento, consulta Ottimizzare le rappresentazioni distribuite del testo.
Sono supportati anche i seguenti modelli di incorporamento aperti. Puoi trovarli in Model Garden.
e5-base-v2
e5-large-v2
e5-small-v2
multilingual-e5-large
multilingual-e5-small
Tipi di documenti supportati per il RAG
Sono supportati solo i documenti di testo. La tabella seguente mostra i tipi di file e i relativi limiti di dimensione:
Tipo di file | Limite di dimensioni dei file |
---|---|
documenti Google | 10 MB se 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) | 50 MB |
File PDF | 50 MB |
File di testo | 10 MB |
L'utilizzo di RAG Engine con altri tipi di documenti è possibile, ma può generare risposte di qualità inferiore.
Origini dati supportate per RAG
Sono supportate le seguenti origini dati:
- Carica un file locale: un caricamento di un singolo file utilizzando
upload_file
(fino a 25 MB), che è una chiamata sincrona. - Cloud Storage: importa i file da Cloud Storage.
Google Drive: importa una directory da Google Drive.
È necessario concedere all'account di servizio le autorizzazioni corrette per importare i file. In caso contrario, non viene importato alcun file e non viene visualizzato alcun messaggio di errore. Per ulteriori informazioni sui limiti di dimensioni dei file, consulta 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 Vertex AI RAG Data Service Agent.
- 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. L'ID risorsa di Google Drive è disponibile nell'URL web.
Slack:importa i file da Slack utilizzando un connettore dati.
Jira: importa file da Jira usando un connettore dati.
Per ulteriori informazioni, consulta il riferimento all'API RAG.
Ottimizza le trasformazioni RAG
Dopo l'importazione di un documento, RAG Engine esegue un insieme di trasformazioni preparare i dati per l'indicizzazione. Puoi controllare i casi d'uso utilizzando i seguenti parametri:
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 blocco più grande gli incorporamenti potrebbero essere più generici, ma potrebbero perdere dettagli specifici.
Ad esempio, se converti 200 parole anziché 1000 in un array di embedding della stessa dimensione, potresti perdere dettagli. Questo è anche un buon un esempio di quando si considera il limite di lunghezza del contesto del modello. Una grossa fetta il testo potrebbe non rientrare in un modello con finestra piccola.
Quote RAG
Per ogni servizio che esegue la generazione basata sul recupero con l'utilizzo di RAG Engine, si applicano le seguenti quote, misurate in richieste al minuto (RPM).Servizio | Quota | Metrica |
---|---|---|
API di gestione dei dati di RAG Engine | 60 giri/min | VertexRagDataService requests per minute per region |
RetrievalContexts API |
1500 rpm | VertexRagService retrieve requests per minute per region |
base_model: textembedding-gecko |
1500 rpm | Online prediction requests per base model per minute per region per base_model Un altro filtro da specificare è base_model: textembedding-gecko |
Servizio | Limite | Metrica |
---|---|---|
ImportRagFiles richieste in parallelo |
3 rpm | VertexRagService import rag files requests per region |
Numero massimo di file per richiesta ImportRagFiles |
10.000 | VertexRagService import rag files requests per region |
Per ulteriori limiti di frequenza e quote, consulta IA generativa su Vertex AI di traffico di rete.
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. |
Gestire la knowledge base (corpus) RAG
Questa sezione descrive come gestire il tuo corpus per le attività RAG la gestione degli indici e dei file.
Gestione del corpus
Un corpus, chiamato anche indice, è una raccolta di documenti o fonte di informazioni. È possibile eseguire query sul corpus per recuperare contesti pertinenti la generazione di risposte. Quando crei un corpus per la prima volta, il processo potrebbe richiedere un altro minuto.
Sono supportate le seguenti operazioni sul corpus:
Operazione | Descrizione | Parametri | Esempi |
---|---|---|---|
Crea un corpus RAG. | Crea un indice per importare o caricare documenti. | Creare parametri | Creare un esempio |
Aggiorna un corpus RAG. | Aggiorna un indice creato in precedenza per importare o caricare i documenti. | Aggiornare i parametri | Esempio di aggiornamento |
Elenca un corpus RAG. | Elenca tutti gli indici. | Elenca parametri | Esempio di elenco |
Ottieni un corpus RAG. | Ottieni i metadati che descrivono l'indice. | Ottieni parametri | Esempio |
Eliminare un corpus RAG. | Elimina l'indice. | Eliminare i parametri | Esempio di eliminazione |
Le operazioni simultanee su corpora non sono supportate. Per ulteriori informazioni, consulta il riferimento all'API RAG.
Gestione dei file
Sono supportate le seguenti operazioni sui file:
Operazione | Descrizione | Parametri | Esempi |
---|---|---|---|
Carica un file RAG. | Carica un file dallo spazio di archiviazione locale con informazioni aggiuntive che forniscono contesto all'LLM per generare risposte più accurate. | Parametri di caricamento | Esempio di caricamento |
Importa i file RAG. | Importa un insieme di file da un altro spazio di archiviazione in una posizione di archiviazione. | Importare parametri | Esempio di importazione |
Ricevi un file RAG. | Visualizza i dettagli di un file RAG da utilizzare dall'LLM. | Ottieni parametri | Esempio |
Elimina un file RAG. | Carica un file dallo spazio di archiviazione locale con informazioni aggiuntive che forniscono il contesto all'LLM per generare risposte più accurate. | Eliminare parametri | Esempio di eliminazione |
Per ulteriori informazioni, consulta Riferimento API RAG.
Passaggi successivi
- Per scoprire di più sui limiti di dimensioni dei file, vedi Tipi di documenti supportati.
- Per informazioni sulle quote relative a RAG Engine, consulta Quote di RAG Engine.
- Per informazioni sulla personalizzazione dei parametri, consulta Parametri di recupero.
- Per scoprire di più sull'API RAG, vedi API RAG Engine.
- Per scoprire di più sul grounding, consulta la Panoramica del grounding.
- Per scoprire di più sulla differenza tra messa a terra e RAG, consulta Risposte di messa a terra utilizzando RAG.
- Per saperne di più sull'IA generativa su Vertex AI, consulta la Panoramica dell'IA generativa su Vertex AI.
- Per scoprire di più sull'architettura RAG, consulta Infrastruttura per un'applicazione di IA generativa compatibile con RAG che utilizza Vertex AI.