Fase di preparazione rag

Servizi di intelligenza artificiale di Azure
Ricerca di intelligenza artificiale di Azure
Servizio OpenAI di Azure
Azure Machine Learning

La prima fase dello sviluppo e della sperimentazione della generazione aumentata di recupero (RAG) è la fase di preparazione. Durante questa fase, si definisce il dominio aziendale per la soluzione. Dopo aver definito il dominio, raccogliere documenti, eseguire l'analisi dei documenti e raccogliere domande di esempio pertinenti al dominio. È possibile eseguire questi passaggi in parallelo perché sono correlati. Ad esempio, l'analisi dei documenti consente di determinare quali documenti di test e query di test è necessario raccogliere. Le domande poste devono essere risposte ai contenuti nei documenti e i documenti devono rispondere alle domande pertinenti.

Questo articolo fa parte di una serie. Leggere l'introduzione.

Determinare il dominio della soluzione

Il primo passaggio di questo processo consiste nel definire chiaramente i requisiti aziendali per la soluzione o il caso d'uso. Questi requisiti consentono di determinare quale tipo di domande la soluzione deve rispondere e quali dati o documenti di origine consentono di rispondere a tali domande. Nelle fasi successive, il dominio della soluzione consente di informare la strategia del modello di incorporamento.

Analisi dei documenti

L'obiettivo dell'analisi dei documenti è raccogliere informazioni sufficienti sulla raccolta documenti per comprendere:

  • Le diverse classificazioni dei documenti. Ad esempio, si potrebbero avere specifiche di prodotto, report trimestrali, contratti di assicurazione auto o contratti di assicurazione sanitaria.

  • Tipi diversi di documenti. Ad esempio, si potrebbero avere file PDF, file Markdown, file HTML o file DOCX.

  • Vincoli di sicurezza. Ad esempio, è possibile richiedere l'autenticazione e l'autorizzazione per accedere ai documenti a seconda che siano accessibili pubblicamente.

  • Struttura dei documenti. Ad esempio, la lunghezza dei documenti può variare. Oppure potrebbero avere interruzioni di argomento, immagini contestualmente rilevanti o dati tabulari.

Le sezioni seguenti descrivono come queste informazioni consentono di scegliere le strategie di caricamento e suddivisione in blocchi.

Classificazione di documenti

È necessario comprendere le diverse classificazioni dei documenti per determinare il numero di documenti di test necessari. Questa parte dell'analisi dovrebbe indicare le classificazioni di alto livello, ad esempio assicurazione o finanza. Dovrebbe anche indicare le sottoclassificazioni, ad esempio documenti di assicurazione sanitaria o documenti di assicurazione auto. Si vuole anche sapere se le sottoclassificazioni hanno strutture o contenuto diversi.

L'obiettivo è comprendere tutte le diverse varianti di documento disponibili. È quindi possibile determinare il numero e la suddivisione dei documenti di test necessari. Non si vuole superare o sotto rappresenta una classificazione di documenti specifica nella sperimentazione.

Tipi di documento

Comprendere i diversi formati di file nella raccolta consente di determinare il numero e la suddivisione dei documenti di test. Ad esempio, se sono disponibili tipi di documento PDF e Open XML per i report trimestrali, sono necessari documenti di test per ognuno di questi tipi di documento. Comprendere i tipi di documento consente anche di comprendere i requisiti tecnici per il caricamento e la suddivisione in blocchi dei documenti. Questi requisiti tecnici includono librerie specifiche che possono elaborare tali formati di file.

Vincoli di sicurezza

La comprensione dei vincoli di sicurezza è fondamentale per determinare le strategie di caricamento e suddivisione in blocchi. Ad esempio, è necessario identificare se alcuni o tutti i documenti richiedono l'autenticazione, l'autorizzazione o la visibilità di rete. Se i documenti si trovano all'interno di un perimetro sicuro, assicurarsi che il codice possa accedervi o implementare un processo per replicare in modo sicuro i documenti in una posizione accessibile per il codice di elaborazione.

I documenti talvolta fanno riferimento a contenuti multimediali come immagini o audio importanti per il contesto del documento. Tale supporto potrebbe anche essere soggetto a controlli di accesso simili al documento stesso. Se tale supporto richiede l'autenticazione o la linea di rete, è necessario assicurarsi che il codice possa accedere ai supporti o che sia presente un processo che abbia accesso e possa replicare il contenuto.

Se il carico di lavoro richiede che utenti diversi abbiano accesso solo a documenti o segmenti di documenti distinti, assicurarsi di comprendere come conservare tali autorizzazioni di accesso nella soluzione di suddivisione in blocchi.

Struttura del documento

È necessario comprendere la struttura del documento, inclusi il relativo layout e i tipi di contenuto nel documento. La comprensione della struttura e del contenuto dei documenti consente di effettuare le decisioni seguenti:

  • Indica se il documento richiede la pre-elaborazione per pulire il rumore, estrarre supporti, riformattare il contenuto o aggiungere annotazioni agli elementi da ignorare

  • Se si desidera ignorare o escludere il contenuto nel documento

  • Quali parti del documento si desidera acquisire

  • Come si vuole suddividere il documento

  • Come gestire immagini, tabelle, grafici e altri supporti incorporati

Le sezioni seguenti elencano le domande classificate che è possibile usare per facilitare alcune di queste decisioni.

Determinare gli elementi che è possibile ignorare

Alcuni elementi strutturali potrebbero non aggiungere significato al documento e possono essere ignorati in modo sicuro durante la suddivisione in blocchi. In alcune situazioni, questi elementi possono aggiungere contesto prezioso e migliorare la pertinenza delle query nell'indice, ma non tutti. Porre le domande seguenti sulle funzionalità comuni dei documenti per verificare se aggiungono la pertinenza o devono essere ignorate.

  • Il documento contiene un sommario?

  • Sono presenti intestazioni o piè di pagina?

  • Esistono copyright o dichiarazioni di non responsabilità?

  • Ci sono note a piè di pagina o note di chiusura?

  • Ci sono filigrane?

  • Sono presenti annotazioni o commenti?

Determinare una strategia di pre-elaborazione e suddivisione in blocchi

Le domande seguenti sulla struttura del documento consentono di decidere se è necessario pre-elaborare il documento per semplificare l'elaborazione. Consentono anche di scegliere una strategia di suddivisione in blocchi.

  • Sono presenti dati multicolumn o paragrafi a più colonne? Non si vuole analizzare il contenuto multicolonna allo stesso modo del contenuto a colonna singola.

  • Come è strutturato il documento? Ad esempio, i file HTML talvolta usano tabelle che devono essere differenziate dai dati tabulari incorporati.

  • Quanti paragrafi ci sono? Quanto tempo sono i paragrafi? I paragrafi sono simili?

  • Quali lingue, varianti linguistiche o dialetti si trovano nei documenti?

  • Il documento contiene caratteri Unicode?

  • Come vengono formattati i numeri? Includono virgole o decimali? Sono coerenti?

  • Quali parti del documento sono uniformi e quali parti non sono uniformi?

  • Esiste una struttura di intestazione in cui è possibile estrarre il significato semantico?

  • Sono presenti punti elenco o rientri significativi?

Determinare i requisiti di elaborazione delle immagini

La comprensione delle immagini nel documento consente di scegliere una strategia di elaborazione delle immagini. È necessario conoscere il tipo di immagini disponibili, se hanno una risoluzione sufficiente per elaborare e se l'immagine contiene tutte le informazioni necessarie. Le domande seguenti consentono di comprendere i requisiti di elaborazione delle immagini.

  • Il documento contiene immagini?

  • Quale risoluzione sono le immagini?

  • C'è del testo incorporato nelle immagini?

  • Sono presenti immagini astratte che non aggiungono valore? Ad esempio, le icone potrebbero non aggiungere alcun valore semantico. L'aggiunta di una descrizione per le icone potrebbe essere dannosa per la soluzione perché l'icona in genere non è rilevante per il contenuto del documento.

  • Qual è la relazione tra le immagini e il testo circostante? Determinare se le immagini hanno contenuto autonomo o se è presente un contesto intorno all'immagine da usare quando lo si passa a un modello linguistico. Le didascalie sono un esempio di testo circostante che potrebbe avere un contesto prezioso che non è incluso nell'immagine.

  • Esiste una rappresentazione testuale rtf, ad esempio descrizioni di accessibilità delle immagini?

Determinare la tabella, il grafico e altri requisiti di elaborazione multimediale

Informazioni sulle informazioni incapsulate in tabelle, grafici e altri supporti consentono di decidere come elaborarlo. Le domande seguenti consentono di comprendere la tabella, il grafico e altri requisiti di elaborazione multimediale.

  • Il documento include grafici che includono numeri?

  • Il documento contiene tabelle?

    • Le tabelle sono complesse, ad esempio tabelle nidificate o non complesse?

    • Sono presenti didascalie per le tabelle?

    • Quanto tempo sono le tabelle? Le tabelle lunghe potrebbero richiedere intestazioni ripetute in blocchi.

  • Esistono altri tipi di supporti incorporati, ad esempio video o audio?

  • Ci sono equazioni matematiche o notazioni scientifiche nel documento?

Raccogliere documenti di test rappresentativi

In questo passaggio raccogliere documenti che rappresentano meglio i documenti usati nella soluzione. I documenti devono affrontare il caso d'uso definito e rispondere alle domande raccolte nella fase parallela di raccolta di domande.

Considerazioni

Quando si valutano i documenti di test rappresentativi potenziali, tenere presenti le aree seguenti:

  • Pertinenza: I documenti devono soddisfare i requisiti aziendali dell'applicazione conversazionale. Ad esempio, se si crea un chatbot che consente ai clienti di eseguire operazioni bancarie, i documenti devono soddisfare tale requisito. Ad esempio, i documenti devono mostrare come aprire o chiudere un conto bancario. I documenti devono essere in grado di rispondere alle domande di test raccolte nel passaggio parallelo. Se i documenti non contengono informazioni rilevanti per le domande, la soluzione non può produrre una risposta valida.

  • rappresentazione: I documenti devono rappresentare i diversi tipi di documenti usati dalla soluzione. Ad esempio, un documento di assicurazione auto contiene informazioni diverse rispetto a un documento di assicurazione sanitaria o vita. Si supponga che il caso d'uso richieda la soluzione per supportare tutti e tre questi tipi di assicurazione, ma si dispone solo di documenti di assicurazione auto. La soluzione potrebbe avere prestazioni scarse per le operazioni di assicurazione sanitaria e vita. Per ogni variante dovrebbero essere presenti almeno due documenti.

  • qualità del documento fisico: I documenti devono essere in forma utilizzabile. Le immagini analizzate, ad esempio, potrebbero non consentire l'estrazione di informazioni utilizzabili.

  • Qualità del contenuto del documento: I documenti devono avere contenuto di alta qualità. Non devono contenere errori ortografici o grammaticali. I modelli linguistici non offrono prestazioni buone se vengono forniti con contenuti di scarsa qualità.

Per raccogliere correttamente i documenti di test, è necessario qualitativamente sicuri che i documenti di test rappresentino in modo completo e accurato il dominio specifico.

Materiale sussidiario per i documenti di test

  • Scegliere documenti reali rispetto a quelli sintetici. I documenti reali devono eseguire un processo di pulizia per rimuovere i dati personali.

  • Prendere in considerazione l'aumento selettivo dei documenti con dati sintetici. Questo processo consente di garantire che i documenti includano tutti i tipi di scenari, inclusi gli scenari futuri previsti. Se è necessario usare i dati sintetici, fare del proprio meglio per renderli più simili ai dati reali il più possibile.

  • Assicurarsi che i documenti possano risolvere le domande raccolte.

  • Avere almeno due documenti per ogni variante di documento.

  • Usare modelli linguistici o altri strumenti per valutare la qualità dei documenti.

Raccogliere query di test

In questo passaggio si raccolgono query di test usate per valutare i blocchi, la soluzione di ricerca e la progettazione dei prompt. Eseguire questo passaggio durante la raccolta dei documenti rappresentativi. È necessario raccogliere le query e determinare il modo in cui i documenti rappresentativi rispondono contemporaneamente a tali query. Avendo sia le query di esempio che le parti dei documenti di esempio che rispondono a tali query, è possibile valutare ogni fase della soluzione RAG mentre si sperimentano strategie e approcci diversi.

Raccogliere l'output della query di test

L'output di questa fase include il contenuto del raccogliere query di test rappresentative passaggio e il passaggio raccogliere documenti di test rappresentativi passaggio. L'output è una raccolta che contiene i dati seguenti:

  • Query: La domanda, che rappresenta la potenziale richiesta di un utente legittimo.

  • Context: Raccolta di tutto il testo effettivo nei documenti che indirizzano la query. Per ogni bit di contesto, è necessario includere la pagina e il testo effettivo.

  • Risposta: Una risposta valida alla query. La risposta può essere contenuto direttamente dai documenti oppure riformularlo da una o più parti di contesto.

Creare query sintetiche

Spesso è difficile per gli esperti di materia (PMI) mettere insieme un elenco completo di domande per il caso d'uso. Una soluzione a questa sfida consiste nel generare domande sintetiche dai documenti di test rappresentativi raccolti. I passaggi seguenti descrivono un approccio reale alla generazione di domande sintetiche da documenti rappresentativi:

  1. Suddividere i documenti. Suddividere i documenti in blocchi. Non usare la strategia di suddivisione in blocchi per la soluzione complessiva. Usare questo passaggio uno-off usato per generare query sintetiche. È possibile eseguire manualmente la suddivisione in blocchi se il numero di documenti è ragionevole.

  2. Generare query per ogni blocco. Per ogni blocco, generare query manualmente o usando un modello linguistico. Quando si usa un modello linguistico, in genere si inizia generando due query per ogni blocco. È anche possibile usare il modello linguistico per creare la risposta. L'esempio seguente mostra un prompt che genera domande e risposte per un blocco.

    Please read the following CONTEXT and generate two question and answer JSON objects in an array based on the CONTEXT provided. The questions should require deep reading comprehension, logical inference, deduction, and connecting ideas across the text. Avoid simplistic retrieval or pattern-matching questions. Instead, focus on questions that test the ability to reason about the text in complex ways, draw subtle conclusions, and combine multiple pieces of information to arrive at an answer. Ensure that the questions are relevant, specific, and cover the key points of the CONTEXT. Provide concise answers to each question, and directly quote the text from the provided context. Provide the array output in strict JSON format as shown in the output format. Ensure that the generated JSON is completely structurally correct, including proper nesting, comma placement, and quotation marks. There shouldn't be a comma after the last element in the array.
    
    Output format:
    [
      {
        "question": "Question 1",
        "answer": "Answer 1"
      },
      {
        "question": "Question 2",
        "answer": "Answer 2"
      }
    ]
    
    CONTEXT:
    
  3. Verificare l'output. Verificare che le domande siano pertinenti al caso d'uso e che le risposte rispondano alla domanda. Una PMI deve eseguire questa verifica.

Query non indirizzate

È importante raccogliere query che i documenti non indirizzano e le query a cui si indirizzano. Quando si testa la soluzione e soprattutto quando si testa il modello linguistico, è necessario determinare in che modo la soluzione deve rispondere alle query a cui non è a disposizione un contesto sufficiente per rispondere. Per rispondere alle query che la soluzione non può risolvere, la soluzione può:

  • Dichiarare che non conosce la risposta.

  • Dichiarare che non conosce la risposta e fornire un collegamento in cui l'utente potrebbe trovare altre informazioni.

Raccogliere query di test per supporti incorporati

Come per il testo, è necessario raccogliere un set diversificato di domande che implicano l'uso dei supporti incorporati per generare risposte altamente rilevanti. Se sono presenti immagini con grafici, tabelle o screenshot, assicurarsi di avere domande che coprono tutti i casi d'uso. Se si determina nella parte immagini del passaggio di analisi dei documenti che il testo prima o dopo l'immagine sia necessario per rispondere ad alcune domande, assicurarsi di avere tali domande nelle query di test.

Raccogliere indicazioni sulle query di test

  • Determinare se è presente un sistema che contiene domande reali per i clienti che è possibile usare. Ad esempio, se si crea un chatbot per rispondere alle domande dei clienti, è possibile usare le domande dei clienti dal supporto tecnico, dalle domande frequenti o dal sistema di creazione di ticket.

  • Il cliente o lo SME per il caso d'uso deve fungere da controllo di qualità per determinare se i documenti raccolti, le query di test associate e le risposte alle query dei documenti sono completi, rappresentativi e corretti.

  • Esaminare periodicamente il corpo delle domande e delle risposte per assicurarsi che continuino a riflettere accuratamente i documenti di origine.

Passaggio successivo