Luca Vinciguerra : 27 Agosto 2024 07:32
Nell’articolo “Perché un Large Language Model (LLM) non è un Database?”, abbiamo esplorato la natura di questa tecnologia, chiarendo come dovrebbe essere utilizzata e, soprattutto, quali sono i suoi limiti. Tra questi, il più significativo è la limitazione della conoscenza del modello a un determinato periodo di tempo, definito dai dati di addestramento (Cutoff Knowledge). Questo comporta il rischio di ricevere risposte obsolete o, in alcuni casi, apparentemente coerenti ma fattualmente errate (le cosiddette allucinazioni).
Una tecnica emergente che consente di superare questi limiti è la Retrieval-Augmented Generation (RAG). La RAG rappresenta un avanzamento significativo nel campo del Natural Language Processing (NLP), combinando le capacità di generazione di linguaggio naturale con quelle di recupero di informazioni. Questa tecnica è particolarmente rilevante in applicazioni che richiedono una comprensione profonda e contestuale del linguaggio e la distribuzione di informazioni affidabili. La RAG si distingue per la sua capacità di migliorare la generazione di testi, incorporando informazioni aggiornate e pertinenti direttamente da database o altre fonti di dati esterne.
Nei sistemi di generazione del testo basati su LLM, uno dei principali limiti è la dipendenza esclusiva dal modello generativo, che è vincolato alla conoscenza acquisita durante l’addestramento. Immaginiamo che una grande testata giornalistica voglia mettere a disposizione dei propri lettori un chatbot che fornisce informazioni sugli ultimi eventi relativi, per esempio, alla guerra in Ucraina. Per poter abilitare un LLM a rispondere su fatti di attualità è necessario permettergli di accedere a tali informazioni.
La NIS2 è complessa da capire?
Non perdere tempo, segui l'anteprima gratuita del corso che stiamo preparando.Accedi quindi alla nostra Academy e segui l'anteprima del corso della durata di 30 minuti per comprendere i contenuti esclusivi che tratteremo nel corso.per ulteriori informazioni, scrivici ad [email protected] oppure scrivici su Whatsapp al 379 163 8765
Supporta RHC attraverso:
Solitamente le opzioni disponibili sono:
Le opzioni 1 e 2 sono da scartare in quanto le informazioni che deve fornire il chatbot cambiano ogni giorno. Inoltre, sono operazioni altamente costose e complesse ed è bene sottolineare che training e fine-tuning sono tecniche di addestramento mirate a migliorare la performance del modello nella comprensione e generazione del testo. L’accrescimento della base di conoscenza del modello è solo un effetto collaterale.
Invece, l’opzione 3 potrebbe risolvere il nostro problema, ma dobbiamo considerare il limite superiore della lunghezza della finestra di contesto del modello (in poche parole la lunghezza massima del testo che possiamo fornire in input al modello). Infatti, dovremmo sottomettere al Large Language Model un prompt di lunghezza crescente nel tempo che potrebbe eccedere la lunghezza massima accettata dal modello che abbiamo scelto di utilizzare. Per non parlare poi dei costi di elaborazione di input testuali molto lunghi che, se proiettati su tutti i lettori, diverrebbero altamente significativi.
La metodologia RAG affronta questo problema in modo intelligente integrando un sistema di recupero delle informazioni che fornisce al modello generativo dati aggiornati e rilevanti, limitando così i costi e la lunghezza dell’input testuale inviato.
In pratica, quando un sistema RAG riceve una richiesta dall’utente (user query), il primo passo consiste nel recuperare documenti pertinenti da un database su cui sono stati indicizzati i testi d’interesse; successivamente, questi documenti recuperati (solitamente sono pochi chunk di testo) vengono utilizzati come input per generare una risposta. Questo approccio migliora significativamente l’accuratezza, la pertinenza e la varietà delle risposte, poiché il modello non è più limitato alla conoscenza statica acquisita durante l’addestramento, ma può attingere a informazioni aggiornate e contestualizzate.
Per poter utilizzare un sistema RAG il primo passo è quello di indicizzare i documenti d’interesse in un database vettoriale. Nello specifico, il processo è il seguente:
La RAG, a questo punto, combina due componenti principali: un sistema di recupero (retriever) e un modello di generazione (generator).
Un tipico esempio di prompt da inviare al modello generativo che comprende sia la user query che i documenti più pertinenti è:
Genera una risposta alla seguente richiesta utente
USER_QUERY
utilizzando i seguenti documenti come knowledge base
RETRIEVED_DOCUMENTS
L’approccio RAG offre numerosi vantaggi rispetto ai modelli generativi tradizionali. Oltre a fornire risposte più accurate e aggiornate, la tecnologia RAG permette un adattamento a nuovi domini di conoscenza con maggiore rapidità, riducendo la necessità di un costante riaddestramento del modello generativo. Tuttavia, è importante notare che l’efficacia della RAG dipende dalla qualità e dalla pertinenza delle informazioni disponibili nel sistema di recupero. Inoltre, la complessità computazionale di questo approccio può essere maggiore rispetto ai modelli generativi puri, richiedendo risorse più significative in termini di calcolo e memoria.