InstructLab, il progetto open-source di IBM e Red Hat per semplificare il fine-tuning degli LLM

Di recente IBM e RedHat hanno presentato InstructLab, un progetto open-source che semplifica il fine-tuning degli LLM, rendendolo più accessibile.

Avatar di Marina Londei

a cura di Marina Londei

Editor

"Il futuro dell'IA è open" ha dichiarato IBM presentando InstructLab, un progetto open-source che mira ad abbassare il costo del fine-tuning dei grandi modelli di IA per renderli più accessibili agli utenti e democratizzare così l'accesso all'IA generativa.

Attualmente utilizzare adattare un LLM pre-addestrato per creare una particolare applicazione è un processo complesso che non tutti riescono a svolgere: Red Hat specifica che per eseguire il fine-tuning di questi modelli su un'area specifica occorre prendere un modello open esistente e poi eseguire del training costoso in termini di soldi e risorse.

Bisogna anche considerare che il fine-tuning degli LLM generalmente richiede grandi quantità di dati difficili da reperire; inoltre, visto non è possibile integrare i miglioramenti del modello nel progetto principale, i progetti open-source non giovano dei contributi della community.

InstructLab supera questi limiti permettendo agli utenti di effettuare il fine-tuning degli LLM usando molti meno dati e meno risorse computazionali usati normalmente per il ri-addestramento di un modello, e consente alla community di integrare le proprie migliorie nel progetto per renderle disponibili agli altri utenti.

Come funziona InstructLab

InstructLab è stato sviluppato basandosi su LAB (Large-Scale Alignment for chatBots), una metodologia ideata da IBM e Red Hat per superare le sfide di scalabilità nella fase di instruction-tuning dell'addestramento degli LLM.

Il metodo sfrutta un processo di generazione di dati sintetici guidato dalla tassonomia e un framework multifase di tuning per ridurre la quantità di dati "umani" necessari per il tuning.

L'approccio LAB consiste di tre componenti principali: una parte di gestione dei dati "taxonomy-driven" che utilizza un set di dati di addestramento curato da umani come esempio di nuova conoscenza peril modello; una seconda componente che, a partire dal set di dati iniziale, genera nuovi esempi sintetici usando un metodo a più fasi per raffinare i nuovi dati; infine, un componente che si occupa di rieffettuare il tuning del modello usando i dati sintetici generati. 

La componente che gestisce la tassonomia dei dati è centrale per aumentare la conoscenza del modello. La tassonomia è organizzata in maniera gerarchica e classifica il dataset iniziale in gruppi più piccoli.

Al livello più alto la tassonomia ha tre ramificazioni principali: la conoscenza, le capacità fondazionali e le capacità compositive; ognuno di questi rami è poi diviso in livelli più granulari che si concludono con task specifici definiti come coppie istruzione-risposta.

La parte di conoscenza è divisa inizialmente in tipi di documenti, come per esempio manuali tecnici o libri di testo, i quali a loro volta sono suddivisi in diversi domini (finanza, statistica, ecc...); ogni dominio comprende un set di documenti e delle coppie di risposte e domande legate al dominio.

Le capacità fondazionali comprendono domini di abilità come il coding, la matematica, le capacità di ragionamento o le abilità linguistiche, tutte skill richieste per apprendere nuova conoscenza e sviluppare nuove abilità.

Le capacità compositive includono invece tutti quei task che sfruttano una combinazione di conoscenza e capacità fondazionali per rispondere alle domande complesse degli utenti, come per esempio scrivere un'email formale su uno specifico argomento. 

La tassonomia viene utilizzata per generare dati sintetici di qualità e aumentare la conoscenza del modello; in seguito si arriva alla fase di training.

Infine, l'addestramento è organizzato in due fasi: il knowledge tuning e lo skill tuning. Nella prima fase, il modello viene addestrato sugli esempi presenti nei branch di conoscenza e abilità fondazionali, inizialmente sulle risposte corte e più semplici e poi su quelle più complesse. In seguito si passa alla fase di skill tuning per sviluppare le abilità compositive.

Pixabay
intelligenza artificiale

I risultati dei test

Per valutare le performance dell'approccio, i ricercatori hanno implementato il metodo LAB su Llama-2 con 13 miliardi di parametri e Mistral con 7 miliardi di parametri usando una tassonomia che comprendeva 1.2 milioni di esempi.

I due nuovi modelli specializzati hanno dimostrato performance migliori e risposte più precise di altri modelli che utilizzano Llama-2 e Mistral come base di addestramento a un costo molto minore per il fine-tuning.

Paul Smith-Goodson, vice presidente e analista leader in Moor Insights & Strategy, riporta che il modello Granite con 13 miliardi di parametri di IBM è stato perfezionato proprio con l'approccio LAB; grazie a questo metodo, il modello è riuscito a eguagliare le performance di Llama2 con 70 miliardi di parametri.

Confrontando inoltre il modello base con quello perfezionato, Smith-Goodson ha evidenziato una differenza significativa: a fronte dello stesso prompt, la versione perfezionata con LAB è riuscita a generare risposte più lunghe, dettagliate e con maggior varietà di linguaggio. 

Grazie a LAB e ora a InstructLab, la community di sviluppatori può effettuare il fine tuning dei modelli velocemente e consumando meno risorse. Poiché la community può integrare i propri sviluppi nel modello originale, l'LLM si arricchisce di volta in volta di nuova conoscenza e nuove abilità. InstructLab può essere utilizzato con qualsiasi modello open-source.

"Invece di lasciare che sia una grande compagnia a decidere che cosa sa il tuo modello e cosa può fare, InstructLab ti permette di decidere attraverso la sua tassonomia quale conoscenza e quali abilità dovrebbero avere il modello" ha affermato Akash Srivastava, il ricercatore IBM che ha guidato il team dietro lo sviluppo di LAB.

InstructLab consente a chiunque di contribuire all'innovazione e raffinare i modelli open esistenti, a vantaggio di tutta la community di sviluppatori e dell'innovazione stessa, rendendo lo sviluppo di applicazioni basate su LLM più accessibile.

"Questa innovazione rivoluzionaria permette qualcosa che prima era quasi impossibile: la possibilità per le community di contribuire ai modelli e migliorarli insieme" ha concluso Máirín Duffy, software engineering manager del team Enterprise Linux AI di Red Hat.

Leggi altri articoli