GenAI
Costruire sistemi di Retrieval-Augmented Generation, o RAG, è facile. Con strumenti come LamaIndex o LangChain, puoi rendere operativo il tuo modello linguistico di grandi dimensioni basato su RAG in pochissimo tempo. Certo, è necessario un certo sforzo ingegneristico per garantire che il sistema sia efficiente e ben scalabile, ma in linea di principio, edificio il RAG è la parte facile. Ciò che è molto più difficile è progettazione bene.
Avendo recentemente seguito personalmente il processo, ho scoperto quante scelte progettuali grandi e piccole devono essere fatte per un sistema di generazione aumentata con recupero. Ognuno di essi può potenzialmente influire sulle prestazioni, sul comportamento e sui costi del tuo LLM basato su RAG, a volte in modi non ovvi.
Senza ulteriori indugi, lasciatemi presentare questo elenco – per nulla esaustivo ma spero utile – delle scelte progettuali di RAG. Lascia che guidi i tuoi sforzi di progettazione.
La Retrieval-Augmented Generation fornisce a un chatbot l'accesso ad alcuni dati esterni in modo che possa rispondere alle domande degli utenti sulla base di questi dati piuttosto che sulla conoscenza generale o sulle proprie allucinazioni immaginate.
Pertanto, i sistemi RAG possono diventare complessi: dobbiamo ottenere i dati, analizzarli in un formato compatibile con i chatbot, renderli disponibili e ricercabili per LLM e infine garantire che il chatbot stia facendo l'uso corretto dei dati che era dato accesso a.
Mi piace pensare ai sistemi RAG in termini di componenti di cui sono costituiti. Ci sono cinque pezzi principali del puzzle:
- Indicizzazione: Incorporamento di dati esterni in una rappresentazione vettoriale.
- Memorizzazione: Persistenza degli incorporamenti indicizzati in un database.
- Recupero: Trovare pezzi rilevanti nei dati memorizzati.
- Sintesi: Generazione di risposte alle domande dell'utente.
- Valutazione: quantificare la validità del sistema RAG.
Nella parte restante di questo articolo esamineremo i cinque componenti RAG uno per uno, discutendo le scelte progettuali, le loro implicazioni, i compromessi e alcune risorse utili che aiutano a prendere la decisione.
Fonte: towardsdatascience.com