AsyncGRPO di TRL allena solo l’adattatore LoRA e separa training e inference
Testo scritto con l’intelligenza artificiale a partire da una fonte citata, senza revisione umana prima della pubblicazione.
Con TRL v1.14 il trainer AsyncGRPO sincronizza un adattatore rank‑1 di pochi megabyte via Storage Bucket, evitando NCCL e permettendo job separati per training e vLLM.
TRL v1.14 sposta solo l’adattatore LoRA: AsyncGRPOTrainer lo addestra e sincronizza verso vLLM senza trasferire l’intero modello1. L’aggiornamento arriva con la PR #7017 e consente di far girare trainer e repliche vLLM come Hugging Face Jobs separati, su macchine diverse1.
Un adattatore LoRA di rank‑1 pesa pochi megabyte. Questa scala permette di copiarlo tramite uno Storage Bucket montato in ogni Job, al posto di usare NCCL1. Il trainer salva l’adattatore aggiornato nel bucket condiviso. Le repliche lo caricano quando serve, evitando la sincronizzazione del modello completo.
Il flusso operativo ruota attorno a tre elementi: uno Storage Bucket, un proxy leggero, niente NCCL1. Bucket come punto di scambio tra i Job. Trainer e repliche su ambienti distinti. Traffico di rete concentrato su pochi megabyte di adapter.
Davanti alle repliche siede un proxy che aggiunge l’header di autenticazione alle richieste in ingresso1. Instrada ogni rollout verso la replica che conserva il prefisso KV di quella conversazione. Quando l’adattatore cambia, invia a tutte le repliche un comando di caricamento in broadcast1. Il routing sul prefisso KV mantiene la continuità tra rollout successivi diretti alla stessa replica.
Le metriche riportate documentano dove nasce il collo di bottiglia e quanto incide la pipeline asincrona. Cinque run con la stessa ricetta mostrano una discesa del tempo totale da 3 ore e 27 minuti a 53 minuti per 500 step1. I numeri provengono dallo stesso flusso: adapter che viaggia nel bucket, repliche che caricano gli aggiornamenti quando il proxy li annuncia.
La separazione tra training e inference resta netta. Trainer e vLLM girano come Jobs distinti, su macchine diverse, con sincronizzazione attraverso il bucket comune e senza NCCL1. Il proxy gestisce autenticazione e coerenza nel caricamento degli adattatori. Questa impostazione evita di mescolare training e serving sulla stessa macchina.
Il perimetro di modifica del modello si limita all’adattatore LoRA. AsyncGRPOTrainer lo aggiorna in modo asincrono e sincronizza solo quell’oggetto verso vLLM; il proxy ne diffonde il caricamento a tutte le repliche1. Le richieste successive vengono indirizzate alla replica con il prefisso KV corretto per proseguire sulla memoria già presente1.
Il post collega questa scelta a risultati pubblicati sul reinforcement learning: un lavoro di Thinking Machines indica che LoRA può eguagliare il full fine‑tuning nel policy‑gradient RL, con aggiornamenti più leggeri1. In questo quadro, sincronizzare solo l’adattatore riduce i dati in transito e preserva la separazione tra generazione e training, mantenuti su macchine diverse1.
Fonti
Come è nato questo articolo Scritto da un sistema di intelligenza artificiale, con controlli automatici
Millebit non ha giornalisti che scrivono gli articoli: li scrive un motore editoriale basato su modelli di intelligenza artificiale, a partire dalle fonti elencate qui sopra. Prima di uscire, ogni testo passa questi controlli:
- Fedeltà alle fonti. Un secondo passaggio toglie ogni affermazione che le fonti non sostengono.
- Anti-cliché. Un filtro scarta frasi fatte, enfasi e tic della prosa artificiale.
- Giudizio editoriale. Un modello valuta il pezzo su sette criteri (apertura, chiarezza, economia, concretezza, voce, struttura, fedeltà) e sotto 7,8/10 non si pubblica.
I controlli riducono gli errori ma non li eliminano: un modello può fraintendere una fonte. Per le decisioni importanti, risali alla fonte originale. Se trovi un errore, segnalacelo.
Per vedere Millebit nelle notizie principali di Google, aggiungilo alle tue fonti preferite. Oppure segui l’edizione di oggi, il feed RSS o La Sintesi.