Come addestrare agenti basati su LLM con RL sui tuoi GPU
L'addestramento di modelli linguistici con Reinforcement Learning è stato a lungo associato a cluster massicci e laboratori chiusi. Mentre il SFT (Supervised Fine-Tuning) è diventato routine per gli ingegneri ML, eseguire in modo affidabile PPO o GRPO per agenti multi-step è sempre stato una sfida considerevole. Dovevi o scrivere il tuo wrapper personalizzato attorno a vLLM e DeepSpeed, o mettere mano con le limitazioni dei framework già pronti.
I ricercatori del Berkeley Sky Computing Lab hanno deciso di semplificare questo processo e hanno rilasciato il progetto SkyRL come open source. Si tratta di un framework completo che copre l'intero ciclo di fine-tuning con RL: dalla generazione di traiettorie in isolamento all'aggiornamento dei pesi del modello durante il runtime.
Di cosa si compone il framework
Gli sviluppatori non hanno costruito un sistema monolitico. Hanno invece suddiviso il progetto in diversi layer indipendenti che possono essere facilmente combinati per le tue esigenze specifiche.
Il layer centrale skyrl gestisce l'orchestrazione del training sul tuo hardware. Combina un motore di training e inferenza distribuita. La caratteristica principale di questo layer è il supporto per lo standard aperto Tinker API. Puoi scrivere uno script di training una volta e poi eseguirlo su un server locale con GPU NVIDIA o AMD, così come nel cloud.
Il layer skyrl-gym fornisce un'interfaccia per la creazione di ambienti di training. A differenza del classico Gymnasium per la robotica, qui gli ambienti sono adattati per interazioni testuali e di codice. Out of the box, ottieni il supporto per database SQL, interpreti Python, motori di ricerca e terminale Linux.
Il layer skyrl-agent si concentra su compiti a lungo termine. Aiuta ad addestrare agenti che eseguono decine di passaggi sequenziali, chiamano utility esterne e regolano le loro azioni in base alle risposte dell'ambiente.
Risultati nella pratica
Un framework di qualità non è definito dal numero di astrazioni ma da metriche reali. Il team del progetto ha dimostrato le capacità della libreria sul task Text-to-SQL.
Gli autori hanno preso un modello standard da 7 miliardi di parametri e hanno eseguito il training RL attraverso la pipeline SkyRL-SQL. Il dataset conteneva solo 653 esempi di training. Il modello non si è limitato a memorizzare query SQL corrette—ha imparato a eseguirle in un DBMS reale, ricevere errori di esecuzione e correggere la sintassi al passo successivo. Di conseguenza, questo piccolo modello ha superato i servizi commerciali GPT-4o e o4-mini nell'accuratezza di generazione su benchmark specializzati.
Un altro esempio interessante è l'integrazione con l'ambiente Harbor per l'addestramento di agenti da riga di comando. Il modello impara a lavorare in un terminale reale: modificare file, eseguire test, trovare bug nei repository e distribuire ambienti senza coinvolgimento umano.
Dettagli tecnici di implementazione
Nell'addestramento RL tradizionale dei modelli, inferenza e training spesso si bloccano a vicenda. Il modello genera risposte, il processo si ferma, vengono calcolati i gradienti, i pesi vengono aggiornati, e solo allora inizia una nuova iterazione. SkyRL implementa una modalità completamente asincrona con i cosiddetti aggiornamenti dei pesi in-flight.
Mentre l'attore genera nuovi token e interagisce con l'ambiente, il processo di training aggiorna simultaneamente i parametri del modello. I nuovi pesi vengono trasmessi al servizio di inferenza al volo, il che riduce drasticamente i tempi di inattività per accelerator costosi.
La libreria non tenta di reinventare la ruota da zero. Sotto il cofano, utilizza soluzioni collaudate dalla comunità open-source: idee da veRL, OpenRLHF e Search-R1.
Dove il progetto ha già trovato applicazione
Nonostante la sua giovane età, il framework è già diventato la base per diversi progetti di ricerca di terze parti.
Un team di Stanford ha usato SkyRL per creare Biomni-R0. Si tratta di un agente capace di risolvere compiti biomedici complessi e costruire catene logiche a livello esperto. Il progetto CodeScout ha applicato il framework per la localizzazione precisa di bug nel codice all'interno del benchmark SWE-Bench. Progetti come OpenThoughts-Agent e Endless Terminals vengono sviluppati sulla base della libreria, dove il RL viene utilizzato per la generazione procedurale di compiti nei terminali Linux senza etichettatura manuale dei dati.
Dove iniziare gli esperimenti
Avrai bisogno di un server Linux con più GPU e PyTorch installato. Il processo di installazione è standard per i progetti Python:
git clone https://github.com/NovaSky-AI/SkyRL.git
cd SkyRL
pip install -e .
Puoi poi eseguire una delle ricette di training pronte all'uso. Ad esempio, per lanciare il loop RL più semplice su compiti matematici o SQL, basta chiamare lo script corrispondente dalla cartella degli esempi:
python -m skyrl.train --config-name=math_ppo
Se vuoi integrare il tuo ambiente personale, eredita semplicemente dalla classe API di Gymnasium e definisci i metodi step() e reset(). Il modello riceverà le osservazioni come testo o risposte di sistema e restituirà il testo generato come azione.
Vale la pena adottarlo nei tuoi progetti
SkyRL sarà utile per team di R&S e ingegneri che hanno superato il SFT standard e vogliono spremere le massime prestazioni da modelli di medie dimensioni. Insegnare a un LLM a usare strumenti in un'area di dominio specifica attraverso il RL è un modo praticabile per battere i modelli proprietari general-purpose in accuratezza e costo delle query.
La principale avvertenza: il progetto è in sviluppo attivo. Il repository ha circa 400 issue aperte e l'architettura dei singoli moduli continua a evolversi. Se hai bisogno di una soluzione chiavi in mano pronta all'uso con un pulsante "funziona e basta", potresti voler aspettare un po'. Ma se sei disposto a scavare nel codice e stai cercando una base flessibile per i tuoi agenti RL, SkyRL ti farà risparmiare mesi di sviluppo.
Progetti correlati