Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La generazione aumentata di recupero (RAG) è un modello che combina la ricerca con modelli di linguaggio di grandi dimensioni in modo che le risposte siano allineate ai dati. Questo articolo illustra come funziona RAG in Microsoft Foundry, quali indici ruolo svolgono e in che modo il recupero agentico modifica i modelli RAG classici.
I LLM sono addestrati sui dati pubblici disponibili durante l'addestramento. Se sono necessarie risposte in base ai dati privati o alle informazioni che cambiano di frequente, RAG consente di:
- Recuperare informazioni rilevanti dai dati (spesso tramite un indice).
- Fornire tali informazioni al modello come dati di base.
- Generare una risposta che possa includere citazioni al contenuto di origine.
Che cos'è RAG?
I modelli di linguaggio di grandi dimensioni come ChatGPT vengono sottoposti a training su dati Internet pubblici disponibili al momento del training del modello. I dati pubblici potrebbero non essere sufficienti per le proprie esigenze. Ad esempio, è possibile che si vogliano risposte basate su documenti privati o che sia necessario ottenere informazioni aggiornate.
Rag risolve questo problema recuperando il contenuto pertinente dai dati e includendolo nell'input del modello. Il modello può quindi generare risposte basate sul contenuto recuperato.
Concetti chiave per RAG:
- Dati di base: contenuto recuperato fornito al modello per ridurre le ipotesi.
- Indice: struttura dei dati ottimizzata per il recupero (parola chiave, semantica, vettore o ricerca ibrida).
- Incorporamenti: rappresentazioni numeriche di contenuto usate per la ricerca di somiglianza vettoriale. Vedere Informazioni sugli incorporamenti.
- Messaggio di sistema e prompt: istruzioni che guidano il modo in cui il modello usa il contenuto recuperato. Vedere Prompt engineering e Safety system messages.
Come funziona rag?
Rag segue un flusso in tre passaggi:
- Recupera: quando un utente pone una domanda, l'applicazione esegue una query su un indice o un archivio dati per trovare il contenuto pertinente.
- Aumenta: l'app combina la domanda dell'utente e il contenuto recuperato (dati di base) in un prompt.
- Genera: il modello riceve il prompt migliorato e genera una risposta basata sul contenuto recuperato, riducendo le imprecisioni e abilitando citazioni accurate.
Che cos'è un indice e perché è necessario?
Rag funziona meglio quando è possibile recuperare contenuti pertinenti in modo rapido e coerente. Un indice consente di organizzare il contenuto per un recupero efficiente.
Molte soluzioni RAG usano un indice che supporta una o più di queste modalità di recupero:
- Ricerca di parole chiave
- Ricerca semantica
- Ricerca vettoriale
- Ricerca ibrida (parola chiave + vettore, talvolta con classificazione semantica)
Un indice può anche archiviare campi che migliorano la qualità della citazione (ad esempio, titoli di documenti, URL o nomi di file).
Foundry può connettere il progetto a un servizio Azure AI Search e a un indice per il recupero. A seconda della funzionalità e della superficie API in uso, queste informazioni di connessione potrebbero essere rappresentate come una connessione di progetto o un ID asset di indice.
Ad esempio, l'anteprima dell'API REST del Foundry Project include un campo index_asset_id per le risorse dell'indice di Azure AI Search. Consultare l'anteprima dell'API REST del progetto Foundry.
Azure AI Search è un archivio indici consigliato per gli scenari RAG. Azure AI Search supporta il recupero su dati vettoriali e testuali archiviati negli indici di ricerca e può anche eseguire query su altre destinazioni se si usa il recupero agentico. Vedere Che è Azure AI Search?.
Agentic RAG: approccio moderno al recupero dati
I modelli rag tradizionali usano spesso una singola query per recuperare informazioni dai dati. Il recupero agentico, noto anche come RAG agentico, è un'evoluzione nell'architettura di recupero che usa un modello per scomporre gli input complessi in più sottoquery mirate, eseguirle in parallelo e restituire dati strutturati che funzionano bene con i modelli di completamento della chat.
Il recupero agentico offre diversi vantaggi rispetto all'rag classico:
- Pianificazione delle query in grado di riconoscere il contesto: usa la cronologia delle conversazioni per comprendere il contesto e la finalità. Le domande di completamento mantengono il contesto degli scambi precedenti, rendendo le conversazioni a più turni più naturali.
- Esecuzione parallela : esegue contemporaneamente più sottoquery incentrate per una migliore copertura. Invece di recuperare da una singola query in sequenza, l'esecuzione parallela riduce la latenza e recupera risultati pertinenti più diversi.
- Risposte strutturate: restituisce dati di base, citazioni e metadati di esecuzione insieme ai risultati. Questo output strutturato rende più semplice per l'applicazione di citare origini in modo accurato e tracciare il ragionamento dietro le risposte.
- Classificazione semantica predefinita : garantisce una pertinenza ottimale dei risultati. La classificazione semantica filtra il rumore e assegna priorità a passaggi veramente rilevanti, particolarmente importanti con set di dati di grandi dimensioni.
- Sintesi di risposte facoltativa : può includere le risposte formulate da LLM direttamente nella risposta alla query. In alternativa, è possibile scegliere di restituire testi grezzi e letterali per l'elaborazione da parte dell'applicazione.
Se si usa Azure AI Search come motore di recupero, vedere recupero agentico e Quickstart: recupero agentico.
Scegliere un approccio in Foundry
Foundry supporta più modelli per l'uso di dati privati. Scegliere in base alla complessità del caso d'uso e alla quantità di controllo necessaria:
- Usare RAG quando sono necessarie risposte a base di dati privati o con modifiche frequenti.
- Usare l'ottimizzazione quando è necessario modificare il comportamento del modello, lo stile o le prestazioni delle attività anziché aggiungere nuove conoscenze.
- Utilizzare un'esperienza gestita di "usare i dati" se si desidera un modo più guidato per connettersi, acquisire e chattare sui dati. Consulta Guida rapida: Chatta con i modelli di OpenAI su Azure utilizzando i tuoi dati.
- Utilizzare gli strumenti per gli agenti quando si costruisce un agente che necessita del recupero come strumento. Ad esempio, vedere Strumento di ricerca file per gli agenti.
Introduzione a RAG in Foundry
L'implementazione di RAG in Foundry segue in genere questo flusso di lavoro:
- Preparare i dati: organizzare e suddividere i documenti privati o la Knowledge Base nel contenuto ricercabile
- Impostare un indice: creare un indice Azure AI Search o usare un altro servizio di recupero per organizzare il contenuto per una ricerca efficiente
- Connettersi a Foundry: creare una connessione dal progetto Foundry al servizio di indicizzazione o recupero
- Compilare l'applicazione RAG: integrare il recupero con le chiamate LLM usando Foundry SDK o le API REST
- Test e valutazione: verificare che la qualità del recupero sia buona e che le risposte siano accurate e correttamente citate
Per iniziare, scegliere uno di questi percorsi in base alle esigenze:
- Esperienza guidata: vedere Introduzione: Chattare con i modelli Azure OpenAI utilizzando i propri dati.
- Agente con recupero di informazioni: quando si crea un agente, utilizzare il recupero di informazioni come strumento. Consulta Strumento di ricerca file per gli agenti.
- Applicazione RAG personalizzata: creare un'app RAG completa con Foundry SDK per il controllo completo.
Considerazioni sulla sicurezza e sulla privacy
I sistemi RAG possono esporre contenuti sensibili se non si progettano attentamente gli accessi e i prompt.
- Applica il controllo di accesso al momento del recupero. Se si usa Azure AI Search come origine dati, è possibile usare il controllo di accesso a livello di documento con filtri di sicurezza.
- Preferisci Microsoft Entra ID alle chiavi API per la produzione. Le chiavi API sono utili per lo sviluppo, ma non sono consigliate per gli scenari di produzione. Per la guida sul controllo degli accessi in base al ruolo di Azure AI Search, vedere Connettersi ad Azure AI Search tramite ruoli.
- Considerare il contenuto recuperato come input non attendibile. Il messaggio di sistema e la logica dell'applicazione devono ridurre il rischio di inserimento di richieste da documenti e passaggi recuperati. Vedere Messaggi del sistema di sicurezza.
Considerazioni su costi e latenza
RAG aggiunge un carico di lavoro aggiuntivo rispetto a una richiesta del solo modello.
- Costi e latenza di recupero: l'esecuzione di query su un indice aggiunge ritardi nel collegamento e elaborazione computazionale.
- Incorporazione dei costi e della latenza: la ricerca vettoriale richiede incorporazioni in fase di indicizzazione e spesso durante la fase di query.
- Utilizzo dei token: i passaggi recuperati aumentano i token di input, che possono aumentare i costi.
Se si usa Azure AI Search, verificare il livello di servizio e i prezzi prima dell'implementazione di produzione. Se usi il recupero semantico o ibrido, consulta la documentazione di Azure AI Search sui prezzi e limiti di Azure AI Search.
Limitazioni e risoluzione dei problemi
Limitazioni note
- La qualità RAG dipende dalla preparazione del contenuto, dalla configurazione del recupero e dalla progettazione del prompt. La scarsa preparazione dei dati o la strategia di indicizzazione influisce direttamente sulla qualità della risposta.
- Se il recupero restituisce passaggi irrilevanti o incompleti, il modello può comunque produrre risposte incomplete o imprecise nonostante il fondamento.
- Se non si controlla l'accesso al contenuto di origine, le risposte basate su fonti possono rivelare informazioni riservate dall'indice.
Problemi comuni e mitigazione
- Qualità scarsa del recupero: se l'indice non restituisce passaggi pertinenti, esaminare la strategia di suddivisione in blocchi dei dati, la qualità del modello di incorporamento e la configurazione della ricerca (parola chiave e semantica e ibrida).
- Allucinazione nonostante il grounding: anche con il contenuto recuperato, i modelli possono comunque generare risposte imprecise. Abilitare le citazioni e usare messaggi di sistema chiari e richieste per indicare al modello di attenersi al contenuto recuperato.
- Problemi di latenza: gli indici di grandi dimensioni possono rallentare il recupero. Prendere in considerazione la strategia di indicizzazione, il filtro e la rivalutazione per ridurre il volume dei passaggi elaborati.
- Budget dei token superato: i passaggi recuperati possono rapidamente consumare i limiti dei token. Implementare filtri di passaggio, classificazione o riepilogo per rimanere entro il budget.
Per indicazioni sulla valutazione dell'efficacia della RAG, vedere le esercitazioni e le guide rapide nella sezione dei contenuti correlati sottostante.