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.
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 documentazioni 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 dati di addestramento ulteriori sono inseriti nell'architettura del modello.
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 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 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 aiutare a implementare RAG e fine tuning nei processi di Large Language Model Operations (LLMOps).
Impara a utilizzare il fine tuning grazie all'Instructlab
Creato da Red Hat e IBM, InstructLab è un progetto di community open source che contribuisce allo sviluppo degli LLM usati nelle applicazioni di IA generativa (gen AI). Fornisce un framework che utilizza dati sintetici per rendere più accessibile il fine tuning.
How InstructLab's synthetic data enhances LLMs (blog)
Crea un modello fondativo con Red Hat Enterprise Linux AI
Se la tua azienda è pronta per realizzare applicazioni con gen AI, adottare una piattaforma di modello fondativo come Red Hat® Enterprise Linux® AI ti permetterà di affrontare gli scenari di utilizzo con i tuoi dati, più rapidamente.
Red Hat Enterprise Linux AI coniuga la famiglia Granite di LLM con licenza open source con gli strumenti di allineamento dei modelli InstructLab, tutto in un singolo ambiente server. Questo significa che per gli esperti del dominio, che non hanno un background in data science, sarà più semplice eseguire il fine tuning e contribuire a un modello IA che sia scalabile sul cloud ibrido.
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.