Panoramica
InstructLab è un progetto open source che ha la finalità di migliorare i modelli linguistici di grandi dimensioni (LLM) usati nelle applicazioni di intelligenza artificiale generativa (IA gen). Il progetto della community InstructLab, creato da IBM e Red Hat, offre una soluzione conveniente per migliorare l'allineamento degli LLM e permette di contribuire alla sviluppo del progetto anche a chi non dispone di conoscenze avanzate in materia di apprendimento automatico.
Cosa fa nello specifico InstructLab?
Gli LLM possono essere usati in svariate applicazioni utili, come chatbot e assistenti di programmazione. Questi LLM possono essere proprietari (come i modelli GPT di OpenAI e Claude di Anthropic) o offrire vari gradi di accessibilità riguardo al preaddestramento dei dati e alle restrizioni nell'utilizzo (come i modelli Llama di Meta, Mistral di Mistral AI e Granite di IBM).
Spesso gli utenti dell'IA devono adeguare un LLM preaddestrato a una particolare finalità aziendale, tenendo conto dei limiti alle modalità di modifica di un LLM:
- Per comprendere un'area specifica di conoscenze o competenze in genere il fine tuning di un LLM implica la suddivisione di un modello aperto esistente seguito da un addestramento costoso e che richiede notevoli risorse.
- Non è possibile integrare nuovamente i miglioramenti nel progetto upstream, per cui i modelli non possono continuare a essere perfezionati grazie ai contributi della community.
- Generalmente, i perfezionamenti degli LLM richiedevano grandi quantità di dati generati dall'uomo, difficili da ottenere in termini di tempo e di costi.
InstructLab segue un approccio che supera queste limitazioni. Può migliorare un LLM usando molti meno dati generati dall'uomo e molte meno risorse di elaborazione di quelle generalmente utilizzate per riaddestrare un modello, oltre a permettere ai contributi upstream di migliorare costantemente il modello.
InstructLab è basato sull'attività di IBM Research condotta sull'allineamento su larga scala dei chatbot, abbreviato LAB, da cui prende il nome. Il metodo LAB è descritto in una ricerca del 2024 svolta da membri dell'MIT-IBM Watson AI Lab e dell'IBM Research.
Non basandosi su un modello specifico, InstructLab offre la possibilità di integrare le competenze esistenti con nuove conoscenze di livello avanzato a supporto di un LLM di propria scelta. Questo impianto di competenze e conoscenze viene costantemente perfezionato grazie ai contributi della community e può essere applicato per supportare build regolari di un LLM migliorato. InstructLab mantiene una versione migliorata di Granite di IBM. IBM ha rilasciato altri due modelli migliorati in laboratorio: Labradorite, che ha origine da Llama 2, e Merlinite, che deriva da Mistral. Il progetto InstructLab è incentrato principalmente sull'iterazione rapida e punta a riaddestrare i modelli con regolarità. Le organizzazioni possono anche utilizzare gli strumenti di allineamento dei modelli di InstructLab per addestrare i propri LLM privati con competenze e conoscenze di loro proprietà.
Come funziona InstructLab?
Il metodo LAB è strutturato su tre fasi principali:
- Selezione dei dati basata su tassonomia. La tassonomia è una serie di dati di addestramento variegati selezionati manualmente come esempi di nuove conoscenze e competenze per il modello.
- Generazione di dati artificiali su larga scala. Il modello viene poi utilizzato per generare nuovi esempi basati sui dati di addestramento dei seed. Considerato che la qualità dei dati artificiali può variare, il metodo LAB aggiunge un passaggio automatizzato per perfezionare gli esempi di risposta, assicurandosi che siano fondati e sicuri.
- Ottimizzazione dell'allineamento iterativa e su larga scala. Infine, il modello viene riaddestrato sulla base della serie di dati artificiali. Il metodo LAB prevede due ulteriori passaggi di ottimizzazione: quella delle conoscenze e quella delle competenze.
I contributi di dati dalla community possono portare a build iterative regolari di LLM migliorati, ciascuno dei quali viene affinato da un insieme di competenze generato dai contributi della community.
Cosa contraddistingue InstructLab da altri metodi di addestramento di un LLM?
Confrontiamo InstructLab con altri passaggi legati alla creazione e al miglioramento di un LLM.
Preaddestramento
Durante il preaddestramento, un LLM viene addestrato per prevedere il token successivo utilizzando bilioni di token di dati non etichettati. Questo processo può essere molto costoso, e talvolta richiede migliaia di GPU e mesi di lavoro. Solo le organizzazioni che dispongono di molte risorse possono preaddestrare un LLM altamente competente.
Ottimizzazione dell'allineamento
In seguito al preaddestramento, gli LLM vengono sottoposti all'ottimizzazione dell'allineamento, per rendere le risposte del modello più accurate e utili possibile. Generalmente, il primo passaggio di questo processo è l'ottimizzazione delle istruzioni, che addestra un modello direttamente su attività di interesse specifiche. Si passa poi all'ottimizzazione delle preferenze, che può includere l'apprendimento per rinforzo da feedback umano (RLHF). In questa fase, il modello viene testato manualmente e se ne valuta l'output, segnalando se le risposte sono preferite oppure no. Un processo RLHF può includere diverse fasi di feedback e perfezionamento per ottimizzare un modello.
Secondo i ricercatori la quantità di feedback ricevuta in questa fase può essere sensibilmente inferiore rispetto all'insieme iniziale di dati di addestramento (decine di migliaia di annotazioni umane rispetto ai bilioni di token di dati necessari per il preaddestramento), ma può comunque sbloccare funzionalità latenti del modello.
InstructLab
Come concetto di base, il metodo LAB prevede che dovrebbe essere possibile ottenere i vantaggi dell'allineamento del modello anche da un insieme più ridotto di dati generati dall'uomo. Un modello di IA può avvalersi di un numero limitato di esempi umani per generare una notevole quantità di dati artificiali, perfezionare l'elenco per una migliore qualità e infine utilizzare l'insieme di dati artificiali di alta qualità per un'ulteriore ottimizzazione e addestramento. Al contrario dell'ottimizzazione delle istruzioni, che generalmente necessita di migliaia di esempi di feedback umano, LAB può affinare un modello in maniera significativa utilizzando relativamente pochi esempi forniti dall'uomo.
Cosa contraddistingue InstructLab dalla retrieval augmented generation (RAG)?
In breve, InstructLab e RAG risolvono problemi diversi.
RAG è un metodo conveniente per integrare un LLM con conoscenze specifiche che non facevano parte del suo preaddestramento. Utilizzando RAG, un chatbot può rispondere con precisione alle domande relative a un campo o settore specifico senza riaddestrare il modello. I documenti delle conoscenze sono archiviati in un database vettoriale, poi recuperati in blocchi e inviati al modello come parte delle query dell'utente. Questo è utile per chiunque voglia aggiungere dati proprietari a un LLM senza rinunciare al controllo delle informazioni o per chi ha bisogno di un LLM per accedere a informazioni tempestive.
Il metodo InstructLab, al contrario, attinge a contributi degli utenti finali per supportare build periodiche di una versione migliorata di un LLM. InstructLab contribuisce a espandere le conoscenze e a sfruttare nuove competenze di un LLM.
È possibile "potenziare" un processo RAG utilizzando la tecnica RAG su un modello ottimizzato da InstructLab.
Quali sono i componenti del progetto InstructLab?
InstructLab è composto da diversi progetti.
Tassonomia
InstructLab è basato su tassonomie, create con precisione e per lo più manualmente. Contiene un albero tassonomico che consente agli utenti di creare modelli ottimizzati con dati forniti dall'uomo, che viene poi migliorato con la generazione di dati artificiali.
Interfaccia a riga di comando (CLI)
La CLI di InstructLab permette ai collaboratori di testare i propri contributi usando un portatile o una workstation. I membri della community possono usare la propria tecnica InstructLab per generare un'approssimazione a bassa fedeltà della generazione di dati artificiali e l'ottimizzazione delle istruzioni del modello senza dover accedere a hardware specializzato.
Infrastruttura di addestramento del modello
Infine, si inserisce il processo di creazione degli LLM migliorati. Per riaddestrare regolarmente i modelli sulla base di nuovi contributi della community occorre un'infrastruttura ad alto impatto sulla GPU. IBM fornisce e mantiene l'infrastruttura necessaria a riaddestrare frequentemente i modelli migliorati del progetto InstructLab.
Scopri Red Hat Enterprise Linux AI
Red Hat® Enterprise Linux® AI offre alle aziende pronte ad adottare l'IA tutto l'essenziale: il gruppo Granite di LLM con licenza open source, gli strumenti di allineamento dei modelli InstructLab, un'immagine di avvio di Red Hat Enterprise Linux, supporto tecnico di livello enterprise e un indennizzo di proprietà intellettuale dei modelli.
Red Hat Enterprise Linux è la piattaforma Linux preferita dalle aziende a livello mondiale, certificata per centinaia di cloud e da migliaia di fornitori di hardware e software. Grazie alla base tecnologica di Linux, ai container e all'automazione, la strategia di cloud ibrido e aperto di Red Hat ti offre la flessibilità di eseguire le applicazioni di IA ovunque ti serva.
Red Hat Enterprise Linux AI e il progetto InstructLab apportano anche altri vantaggi, eliminando gli ostacoli legati ai costi e alle risorse per la sperimentazione e la creazione di modelli di IA e fornendo gli strumenti, i dati e i concetti necessari per alimentare i futuri carichi di lavoro intelligenti.