The Stochastic Parrot
I sistemi di AI generativa rendono possibile generare grandi quantità di testo e di immagini in pochissimo tempo, coerentemente con un contesto specifico in base ai prompt che vengono condivisi. Facendo una richiesta anche complessa, strumenti come ChatGPT, Mistral, Claude, Gemini e altri comprendono il contesto e restituiscono una risposta realistica. Il grande problema è proprio questo: le risposte dei modelli, realistiche e non reali, si basano su una base dati generalista che il modello rielabora con le regole che ha imparato, come un pappagallo.
Avete mai sentito parlare di stochastic parrot? Ecco, è un modo simpatico per descrivere il modo in cui i LLM generano testo.
Come Funzionano gli LLM?
Gli LLM generano testo prevedendo le parole successive basate sulla probabilità che quelle parole c’entrino con le parole precedenti. Questa probabilità è stimata a partire dai dati usati per allenare il modello. Questo processo, sebbene potente, è simile a quello di un pappagallo che ripete frasi senza comprenderne il significato. Infatti, gli LLM non hanno una vera comprensione del contenuto che generano, piuttosto, producono risposte che suonano giuste perché hanno imparato a replicare i pattern statistici dalle tonnellate di documenti, testi, libri, paper e così via visti nella fase di training.
Quando si dice che il sistema comprende il contesto, quindi, significa solo che ha capito quali parole vengono normalmente utilizzate con l’insieme di parole fornite. Le risposte quindi dipendono dalle informazioni fornite in fase di addestramento. Un LLM generalista risponde come risponderebbe un eloquente e nobile tizio che vive di rendita, ha letto moltissimo, sa esprimersi in modo eccellente, non vuole sembrare ignorante ma non ha mai davvero studiato nulla: non dirà mai che non sa rispondere, darà risposte articolate e credibili, ma non sempre le risposte saranno vere o corrette.
Per superare questo limite e rendere l’AI generativa più utile e rilevante per le aziende, sono state sviluppate metodologie avanzate come il Retrieval-Augmented Generation (RAG) e il fine-tuning dei Large Language Models (LLM). Queste tecniche permettono di migliorare la precisione e la pertinenza delle risposte generate, integrando dati aziendali specifici e informazioni aggiornate.
Retrieval-Augmented Generation (RAG)
Il Retrieval-Augmented Generation (RAG) è una metodologia che combina la generazione di testo basata su modelli di linguaggio con il recupero di informazioni da una base di dati preesistente. Questo approccio permette di migliorare l’accuratezza e la rilevanza delle risposte generate. E’ stato proposto per la prima volta a settembre 2020 dal team di ricerca di Meta nel paper Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks e negli ultimi anni si è imposto come riferimento per i sistemi di supporto aziendale basati su una knowledge base esistente.
Come funziona?
Se un LLM generalista è il tizio nobile ed eloquente che non conosce tutte le risposte, un LLM accoppiato a tecniche di RAG è lo stesso tizio eloquente che non ha ancora studiato nulla di più ma che ha a disposizione una biblioteca in cui fare ricerche. A domanda, il tizio cercherà su vari libri pezzi di testo utili per costruire una risposta vera e basata su fonti, e risponderà sintetizzando le nozioni raccolte.
Il RAG è esattamente questo: il processo di ricerca delle informazioni rilevanti in un database. La ricerca in particolare viene fatta tramite analisi della similitudine del testo con tutti i documenti nella knowledge base.
Nei sistemi che utilizzano RAG, il LLM non è modificato per imparare nuove cose, ma elabora le risposte tenendo in considerazione i risultati del processo di retrieval. Ci sono modi differenti per costruire una RAG, a seconda della complessità dei dati e delle interrogazioni.
Per costruire una soluzione RAG, serve sia un LLM, sia uno strumento che sia in grado di fare RAG e quindi estrarre testo da analisi di similitudine, sia un database su cui cercare. Questo database, di solito organizzato per contenere tutti i documenti e i dati necessari sottoforma di pezzettini di testo (token) deve essere correttamente costruito e indicizzato per rendere le ricerche facili e coerenti. Quindi, non basta attaccare il sistema di RAG al proprio Sharepoint o Drive. Mi dispiace.
Quando è utile?
In azienda, un sistema basato su RAG può essere estremamente interessante in quei contesti in cui i dati vengono aggiornati frequentemente. Nuove procedure, documenti, use case, organigrammi e co, che magari cambiano due o tre volte all’anno o più di frequente, e che devono essere sempre aggiornate per la ricerca.
Questa strategia si porta dietro alcuni vantaggi:
- Accuratezza Migliorata: Le risposte generate sono più accurate e pertinenti grazie all’integrazione di informazioni specifiche.
- Efficienza: Riduce il tempo necessario per trovare informazioni e rispondere alle domande.
- Personalizzazione: Le risposte possono essere adattate ai dati e alle necessità specifiche dell’azienda.
Fine-Tuning dei Large Language Models (LLM)
Quindi, un LLM pre-addestrato è un signor nobile che non sa praticamente nulla se non quello che ha letto sul giornale. Se lo si mette in una biblioteca enorme e gli si da modo di cercare le risposte nei libri, si ha un’architettura di RAG accoppiata con un LLM pre-addestrato. Ma se volessi che il signorotto sappia rispondere nel merito senza dover cercare sempre le info? Lo si deve spedire a studiare. In questo caso si parla di fine tuning.
Il fine-tuning è il processo di adattamento di un modello di linguaggio pre-addestrato (LLM) utilizzando dati specifici dell’azienda. Questo consente di migliorare le prestazioni del modello in contesti specifici e di renderlo più efficace nel rispondere a domande o nel generare contenuti rilevanti per l’azienda, senza doverle cercare su un database.
Come funziona?
Il fine tuning è un processo di perfezionamento nell’addestramento del modello, a partire dai dati proprietari dell’azienda. Il modello quindi ricorda tutto quello che ha imparato prima, e impara anche le nuove informazioni. Per farlo, serve però una nuova base dati, che l’azienda raccoglie e prepara in base sue esigenze specifiche.
Una volta affinato, il sistema deve essere testato e validato per assicurarsi che le risposte fornite siano allineate con le aspettative. Esistono diversi metodi sia per il processo di fine tuning, sia per quello di validazione, che vengono selezionati a partire dalla struttura dati e le performance attese del modello.
Quando è utile?
In contesti in cui serve un tono specifico, o in cui c’è una base di conoscenza che non cambia mai, il fine tuning è un’ottima strategia. I vantaggi principali lo rendono una tecnica utile per creare strumenti interessanti per le aziende.
- Adattabilità: Il modello può rispondere in modo più preciso alle domande specifiche dell’azienda.
- Qualità del Contenuto: Migliora la qualità e la pertinenza dei contenuti generati.
- Competitività: Consente alle aziende di avere un vantaggio competitivo grazie a strumenti di IA personalizzati.
Cosa scelgo?
Scegliere tra RAG e fine tuning dipende da due aspetti principali: quanto velocemente cambiano i dati, e quanto il contesto richiede un’interazione ad hoc (tono, linguaggio, termini e vocabolario).
Nel paper Retrieval-Augmented Generation for Large Language Models: A Survey viene inserita una mappa per orientarsi sulle varie tecniche e strategie. Unire RAG e fine tuning può essere una buona alternativa per contesti con molti dati e contesto molto specifico, mentre in altre situazioni ci si orienta solo su una delle due tecniche – o il semplice prompt engineering.
La lista della spesa
Ma cosa serve per costruire sistemi di questo tipo? Ecco una checklist per partire.
Architettura RAG
- Retriever: Modulo responsabile del recupero delle informazioni rilevanti dai dati aziendali.
- Generator: Modulo che genera il testo basato sulle informazioni recuperate.
- Integrazione: Unisce le capacità del retriever e del generator per fornire risposte complete e accurate.
Architettura per Fine-Tuning
- Base Model: Modello di linguaggio pre-addestrato (es. GPT-3, BERT, Llama o altri tool open o proprietari. Mai guardato su Hugging Face?).
- Fine-Tuning Layer: Strati aggiuntivi di addestramento specifici per i dati aziendali.
- Custom Dataset: Dati raccolti e preparati dall’azienda per il processo di fine-tuning.
Conclusioni
L’adozione delle metodologie di RAG e il fine-tuning dei LLM offrono alle aziende l’opportunità di sfruttare al meglio l’intelligenza artificiale generativa. Questi approcci permettono di creare strumenti altamente personalizzati e efficienti, migliorando la precisione e la pertinenza delle informazioni generate. Con l’evoluzione continua dell’IA, le aziende che investono in queste tecnologie possono ottenere significativi vantaggi competitivi