Creazione della propria RAG
Quando costruisci il tuo sistema di generazione potenziata da recupero dati (RAG), puoi sfruttare uno strumento di recupero e un generatore. Lo strumento di recupero può essere un modello di embedding che identifica i blocchi pertinenti dal database vettoriale in base ai punteggi di somiglianza. Il generatore può essere un modello linguistico di grandi dimensioni (LLM) che utilizza la capacità del modello di rispondere alle domande in base ai risultati recuperati (noti anche come blocchi). Nelle sezioni seguenti, forniremo ulteriori suggerimenti su come ottimizzare i prompt per il sistema RAG.
Sfrutta il prompt del sistema
Come per altre funzionalità, può essere utile potenziare il prompt del sistema. Puoi definire la descrizione dei sistemi RAG nel prompt di sistema, delineando l’utente tipo e il comportamento desiderato per il modello.
Usa le istruzioni per il modello
Puoi includere una sezione "Model
Instructions:" dedicata all’interno del prompt di sistema, in cui si possono fornire linee guida specifiche per il modello da seguire. Ad esempio, puoi elencare istruzioni come:
In this example session, the model has access to search results and a user's question, its job is to answer the user's question using only information from the search results.
Model Instructions: - You should provide concise answer to simple questions when the answer is directly contained in search results, but when comes to yes/no question, provide some details. - In case the question requires multi-hop reasoning, you should find relevant information from search results and summarize the answer based on relevant information with logical reasoning. - If the search results do not contain information that can answer the question, please state that you could not find an exact answer to the question, and if search results are completely irrelevant, say that you could not find an exact answer, then summarize search results. - Remember to add citations to your response using markers like %[1]%, %[2]%, %[3]%, etc for the corresponding passage supports the response.
Evita le allucinazioni limitando le istruzioni
Concentrati maggiormente sulle istruzioni citando chiaramente “NON UTILIZZARE INFORMAZIONI CHE NON SONO PRESENTI NEI RISULTATI DI RICERCA!” come istruzione per il modello in modo tale che le risposte siano basate sul contesto fornito.
- DO NOT USE INFORMATION THAT IS NOT IN SEARCH RESULTS!
Fornisci una query di input seguita dai risultati della ricerca
Fornisci una query di input seguita dai risultati della ricerca dello strumento di recupero o dai blocchi contestuali. Il modello funziona meglio quando i risultati dei blocchi vengono forniti dopo Resource: Search Results:
{query} Resource: Search Results: {rag_chunks_retreiver_results}
Citazioni
Le citazioni servono come riferimenti utili al contesto fornito per rispondere alla domanda. Di norma, le citazioni vengono usate principalmente per contestualizzare le risposte LLM. Le citazioni vengono impiegate come strumento di valutazione, consentendo agli utenti di fare riferimento alle fonti citate dal contesto per valutare se le risposte rimangono fedeli alle informazioni fornite.
Questo è un esempio di prompt che dovrebbe essere aggiunto nelle “Istruzioni del modello” nel prompt di sistema per consentire al modello di concentrarsi sulla produzione di citazioni nella risposta:
- Make sure to always add citations to your response using markers like %[1]%, %[2]%, %[3]%, and for the corresponding passage that supports the response.
Puoi combinare tutti i suggerimenti precedenti con il seguente modello di prompt. Questo modello verrà generato solo in base ai blocchi recuperati.
| Role | Prompt |
|---|---|
Sistema |
In questa sessione, il modello ha accesso ai risultati della ricerca e alla domanda di un utente. Il tuo compito è rispondere alla domanda dell’utente utilizzando solo le informazioni dei risultati della ricerca. Istruzioni per il modello:
|
Utente |
{Query} Risorsa: Risultati della ricerca: {search_results} |
RAG multimodale
Quando crei una RAG multimodale, devi attenerti ad alcune best practice aggiuntive.
-
Usa direttamente le immagini se non hanno un contenuto elevato di testo (ovvero scene naturali, diapositive con testo sparso, infografiche e così via). Amazon Nova è stato ottimizzato per gestire immagini a ridotto contenuto di testo. Non devi necessariamente fornire un riepilogo testuale aggiuntivo per queste immagini nella generazione contestualizzata.
-
Migliora le immagini ricche di testo con riepiloghi testuali (ad esempio report PDF, documenti). Per i PDF ricchi di testo, l’approccio migliore prevede il recupero delle immagini (PDF) e dei riepiloghi testuali corrispondenti. I riepiloghi testuali possono aiutare il modello a identificare le informazioni pertinenti fra enormi quantità di testo nell’immagine originale.
-
Fai sapere al modello che stai inserendo immagini. Nelle istruzioni, puoi aggiungere una frase come “
You will be provided with images and texts from search results”.