Retrieval-augmented generation (RAG) e fine-tuning
Sia la RAG sia il fine tuning sono tecniche pensate per migliorare i modelli linguistici di grandi dimensioni (LLM). La RAG realizza questo obiettivo senza modificare l'LLM alla base, mentre con il fine tuning è necessario adeguare i pesi e i parametri di un LLM. Spesso è possibile personalizzare un modello usando sia un'architettura RAG che il fine tuning.
Estensione dei modelli linguistici di grandi dimensioni
Un Large Language Model (LLM), ovvero un modello linguistico di grandi dimensioni, è un tipo di intelligenza artificiale (IA) che utilizza tecniche di apprendimento automatico per comprendere e generare linguaggio umano. Oggi questi modelli di machine learning (ML) possono generare, riassumere, tradurre, riscrivere, classificare, categorizzare e analizzare testo, oltre a svolgere altre svariate funzioni. L'uso più comune di questi modelli a livello aziendale è la creazione di sistemi di domanda e risposta, come un chatbot.
I modelli fondativi degli LLM sono addestrati con conoscenze generiche per supportare una vasta gamma di scenari di utilizzo. Tuttavia, è possibile che non dispongano delle conoscenze specifiche del dominio appartenenti all'organizzazione. La RAG e il fine tuning sono due tecniche adottate per regolare e modificare l'LLM con dati personalizzati, in modo che produca l'output desiderato.
Ad esempio, ipotizziamo di voler creare un chatbot per comunicare con i clienti. In questo scenario, il chatbot rappresenta l'azienda, quindi vogliamo che interagisca come un dipendente con competenze e conoscenze approfondite. Deve saper analizzare e comprendere ogni dettaglio inerente all'azienda, come i prodotti commercializzati e le policy applicate. Similmente alla formazione erogata a un neoassunto che riceve documentazione da studiare e indicazioni da seguire, per istruire un chatbot utilizziamo la RAG e il fine tuning per aumentare e approfondire le sue conoscenze di base.
Risorse da Red Hat
Che cos'è la RAG e come funziona?
La RAG integra i dati presenti all'interno di un modello linguistico di grandi dimensioni recuperando le informazioni da fonti di dati esterne selezionate, ad esempio repository di dati, raccolte di determinati testi e documentazione preesistente. Dopo aver recuperato i dati, l'architettura RAG li elabora in un contesto LLM e genera una risposta basata su una commistione di più fonti.
La RAG è utile soprattutto per fornire al modello informazioni supplementari periodicamente aggiornate. Fornendo all'LLM una linea di comunicazione a fonti esterne prescelte, l'output sarà più accurato. Poiché è possibile progettare la RAG in modo che la fonte venga esplicitata, è facile tenere traccia di come viene formulato l'output, e questo crea maggiore trasparenza e fiducia.
Tornando allo scenario di esempio: se dovessimo realizzare un chatbot che risponde a domande come "Qual è la vostra politica sui resi?", potremmo usare un'architettura RAG. Si può connettere l'LLM a un documento che definisca con precisione la politica sui resi della propria azienda e istruire il chatbot a estrarre informazioni rilevanti. Si potrebbe perfino istruire il chatbot a citare la propria fonte e fornire un link per ulteriori letture. Se la documentazione relativa alla politica sui resi dovesse cambiare, il modello RAG potrebbe estrarre le informazioni più recenti e fornirle all'utente.
Scenari di utilizzo per la RAG
La RAG è in grado di trovare e organizzare le informazioni in modo da agevolare l'interazione tra gli utenti e i dati. Con un'architettura RAG, i modelli possono estrarre insight e fornire a un LLM il contesto per sorgenti di dati sia on premise sia sul cloud. Ciò significa che i dati esterni, i documenti interni e anche i feed sui social media possono essere usati per rispondere a domande, fornire contesto e prendere decisioni informate.
Ad esempio, è possibile creare un'architettura RAG che, alle query ricevute, fornisca risposte specifiche relative a politiche aziendali, procedure e documentazione. In questo modo, si risparmia tempo che sarebbe altrimenti usato per cercare e interpretare i documenti manualmente.
Che cos'è il fine tuning?
Il fine tuning è paragonabile a un metodo impiegato per comunicare le proprie intenzioni all'LLM, affinché il modello possa personalizzare il proprio risultato in base ai tuoi obiettivi. Il fine tuning è un processo di addestramento ulteriore di un modello pre-addestrato con un numero più limitato di dati, affinché sia in grado di svolgere mansioni specifiche per un dominio in modo efficiente. Questi ulteriori dati di addestramento sono inseriti nell'architettura del modello.
LoRA e QLoRA sono entrambe tecniche di fine tuning efficienti in termini di parametri (PEFT) che consentono agli utenti di ottimizzare i costi e le risorse di elaborazione.
Torniamo all'esempio del chatbot. Ipotizziamo di volere che il chatbot interagisca con dei pazienti, in un contesto medico. È importante che il modello comprenda la terminologia medica correlata a questo ambito. Utilizzando tecniche di fine tuning, ci si può assicurare che quando un paziente chiede al chatbot informazioni su "servizi RM", il sistema comprende che significa "servizi di risonanza magnetica" e indirizza il paziente verso le risorse corrette.
Scenari di utilizzo per il fine tuning
Il fine tuning è particolarmente utile per addestrare il modello a interpretare le informazioni a cui ha accesso. Ad esempio, si può addestrare un modello per comprendere le particolarità e la terminologia di un settore specifico, come acronimi e valori aziendali.
Il fine tuning è utile anche per le attività di classificazione di immagini. Ad esempio, nell'ambito dei referti di risonanze magnetiche, si può usare il fine tuning per addestrare il proprio modello di IA predittiva a identificare le anomalie.
Il fine tuning può anche aiutare l'organizzazione ad adottare lo stile comunicativo più adeguato nelle interazioni con le persone, specialmente in un contesto di assistenza clienti. Consente di addestrare un chatbot per analizzare l'atteggiamento o le emozioni della persona con cui interagisce. Inoltre, puoi addestrare il modello di IA generativa per rispondere in un modo che risulti utile all'utente, nel rispetto dei valori aziendali.
Considerazioni per la scelta di RAG o fine tuning
Comprendere le differenze tra RAG e fine tuning può aiutare a scegliere in maniera strategica quali risorse e strumenti per l'IA adottare a seconda delle esigenze. Gli elementi di cui tenere conto possono includere:
Le competenze specifiche del team
Personalizzare un modello con RAG richiede competenze di programmazione e architetturali. Rispetto ai metodi di fine tuning tradizionali, la RAG offre delle soluzioni più accessibili e semplici per ricevere feedback, risolvere i problemi e correggere le applicazioni. Il fine tuning di un modello richiede esperienza con l'elaborazione del linguaggio naturale (Natural Language Processing, NLP), deep learning, configurazione di modelli, rielaborazione dei dati e valutazione. Nel complesso, può essere un procedimento più tecnico e richiedere più tempo.
La tipologia dei dati: statici o dinamici
Il fine tuning insegna al modello ad apprendere schemi comuni che non cambiano nel tempo: poiché si basano su istantanee statiche di set di dati di addestramento, le informazioni del modello possono diventare obsolete e può essere necessario ripetere l'addestramento. Al contrario, la RAG permette all'LLM di sfruttare informazioni specifiche in tempo reale, attingendo a una o più fonti attendibili. Questo significa che il modello estrae i dati più aggiornati per informare l'applicazione, generando un output più preciso e rilevante.
Il budget a disposizione
Tradizionalmente, il fine tuning è una tecnica di deep learning che richiede molti dati e risorse di elaborazione. Per informare un modello con il fine tuning, è sempre stato necessario etichettare i dati ed eseguire addestramento su hardware costosi, di alto livello. Inoltre, le prestazioni del modello di fine tuning dipendono dalla qualità dei dati e ottenere dati di alta qualità può essere dispendioso, in termini economici.
Al contrario, la RAG tende a essere più conveniente rispetto al fine tuning. Per impostare una RAG, si costruiscono sistemi pipeline per collegare i dati all'LLM. Questa connessione diretta riduce i costi delle risorse utilizzando dati esistenti per informare l'LLM, anziché impiegare tempo, energia e risorse per generare nuovi dati.
Il ruolo di Red Hat
Le soluzioni open source di Red Hat e l'ecosistema di partner per le soluzioni di IA possono aiutarti a implementare RAG e fine tuning nei processi di Large Language Model Operations (LLMOps).
Un buon punto di partenza può essere Red Hat® Enterprise Linux® AI: una piattaforma per eseguire LLM in ambienti server individuali. La soluzione include Red Hat AI Inference Server, per offrire un'inferenza rapida e conveniente nel cloud ibrido, massimizzando la produttività e minimizzando la latenza.
Red Hat Enterprise Linux AI è inoltre supportato dai vantaggi di una sottoscrizione Red Hat, che include la distribuzione di prodotti enterprise, il supporto dei prodotti sempre disponibile, il supporto esteso al ciclo di vita del modello e tutele legali con il programma Open Source Assurance.
Ottieni applicazioni scalabili con Red Hat OpenShift AI
Dopo aver addestrato il modello con Red Hat Enterprise Linux AI, è possibile adattarlo per la produzione attraverso Red Hat OpenShift® AI.
Red Hat OpenShift AI è una piattaforma per le operazioni di machine learning (MLOps) flessibile e scalabile, dotata di strumenti per creare, distribuire e gestire le applicazioni basate sull'intelligenza artificiale. Fornisce l'infrastruttura relativa al carico di lavoro alla base, come un LLM per creare integrazioni, il meccanismo di recupero necessario per produrre output e accedere a un database di vettori.
Definizione della strategia aziendale per l'IA: una guida introduttiva
Leggi questa guida introduttiva per scoprire come Red Hat OpenShift AI e Red Hat Enterprise Linux AI possono accelerare il percorso di adozione dell'IA.