π0 spiegato: come la corrispondenza del flusso ha cambiato la generazione delle azioni VLA
September 4, 2026 · 12 min di lettura
Contents — find the section you need
Molti modelli Vision-Language-Action (VLA) rappresentano immagini, linguaggio e azioni come una sequenza di token e prevedono il token successivo uno alla volta. Annunciato da Physical Intelligence nel 2024, π0 (pi-zero) cambia il meccanismo stesso di generazione delle azioni: invece di tokenizzare le azioni in modo autoregressivo, genera un blocco continuo di azioni con corrispondenza di flusso condizionale. Questo articolo esamina passo passo il design descritto nel paper "π0: A Vision-Language-Action Flow Model for General Robot Control" (Black, Brown, Driess et al., Physical Intelligence, arXiv:2410.24164).
Questo articolo si basa sulle descrizioni contenute nel documento originale (arXiv:2410.24164) e nel documento PaliGemma (arXiv:2407.07726).
0. Cosa imparerai
Quali sono le differenze tra π0 e i modelli VLA autoregressivi come RT-2 e OpenVLA
Come funzionano insieme l'architettura VLM di PaliGemma e l'“Action Expert” dedicato
Come la corrispondenza del flusso condizionale genera le azioni, inclusa l'integrazione di Eulero in fase di inferenza
Come viene gestito l'addestramento eterogeneo tra sette tipi di robot
Perché il pre-addestramento e il post-addestramento sono separati in una procedura a due fasi
1. Prima le conclusioni: cos'è π0?
π0 è un modello di controllo robotico generico che combina un modello di visione-linguaggio pre-addestrato (PaliGemma) con un esperto di azioni dedicato, il quale genera sequenze di azioni continue tramite corrispondenza di flusso condizionale. Un singolo modello riceve immagini dalla telecamera, un'istruzione in linguaggio naturale e lo stato delle articolazioni del robot, quindi genera una sequenza di azioni che copre fino a 50 passi futuri contemporaneamente. È stato pre-addestrato su dati provenienti da sette diverse piattaforme robotiche, può eseguire alcune attività zero-shot ed è progettato per adattarsi a nuove attività tramite fine-tuning con una quantità di dati relativamente ridotta.
2. Perché generare azioni con la corrispondenza di flusso?
I primi VLA, come RT-2 e OpenVLA, discretizzano i valori continui delle azioni (angoli delle articolazioni, velocità e così via) in intervalli predefiniti e li assegnano a token del vocabolario del modello linguistico altrimenti inutilizzati. Ciò consente di gestire immagini, linguaggio e azioni come un'unica sequenza di token. L'approccio è semplice da implementare, ma presenta due limitazioni. Innanzitutto, poiché le azioni vengono generate un token alla volta, le sequenze di azioni ad alta frequenza e ad alta dimensionalità possono risultare lente da produrre. In secondo luogo, la discretizzazione rappresenta un'approssimazione grossolana dello spazio delle azioni, rendendo più difficile rappresentare movimenti fluidi e precisi come piegare un tessuto o versare un liquido, dove la deformazione e il contatto sono importanti.
π0 affronta entrambi i problemi evitando la tokenizzazione delle azioni e utilizzando il flow matching, una famiglia di modelli di diffusione, per generare un blocco di azioni continuo di 50 passi in un singolo passaggio attraverso la rappresentazione dell'azione. L'articolo presenta esplicitamente questa progettazione come un modo per gestire compiti che richiedono grande destrezza e blocchi di azioni a frequenze fino a 50 Hz.
3. Cosa ci vuole?
π0 riceve tre tipi di input:
Immaginio_t: immagini RGB provenienti da diverse angolazioni della telecamera (fino a tre, a seconda della configurazione)
Istruzioni linguistiche: una descrizione di un'attività in linguaggio naturale, ad esempio "piega la camicia"
Propriocezioneq_t: un vettore di stato, come ad esempio gli angoli delle articolazioni del robot
Questi dati vengono trattati insieme come un'osservazione o_t = [I_t^1, \dots, I_t^n, \ell_t, q_t]. Il numero di telecamere e i gradi di libertà delle articolazioni variano a seconda della configurazione del robot, pertanto sono necessari padding e masking per allineare le dimensioni, come descritto di seguito.
4. Cosa viene previsto?
L'output è un blocco di azioniA_t = [a_t, a_{t+1}, \dots, a_{t+H-1}] contenente H=50 azioni a partire dal momento corrente. A differenza di un modello autoregressivo che produce un token di azione alla volta, π0 genera l'intero blocco contemporaneamente. La generazione di questo blocco tramite il flow matching è l'idea centrale di π0.
5. Architettura di base
π0 esegue un VLM pre-addestrato (PaliGemma) insieme a un piccolo "Action Expert" specializzato nella generazione di azioni. I due Transformer operano in parallelo all'interno degli stessi layer.
x="830" y="173" class="node-text" text-anchor="middle" font-size="11">Fino a 50 Hz
Figura 1 — PaliGemma (immagine e linguaggio) e Action Expert (stato e azione rumorosa) utilizzano set di parametri separati pur condividendo gli stessi layer Transformer tramite attenzione causale a blocchi.
Il campo vettoriale dell'Action Expert viene accumulato con 10 passaggi di integrazione di Eulero per generare un blocco di azioni di 50 passi.
6. Dettagli tecnici dei componenti
Architettura PaliGemma e Action Expert
L'architettura VLM è basata su PaliGemma, annunciata da Google nel 2024. PaliGemma combina un encoder visivo SigLIP-So400m con un modello linguistico Gemma-2B in un VLM a 3B parametri. L'obiettivo è trasferire le conoscenze visive e linguistiche apprese dal pre-addestramento su scala internet alla generazione di azioni robotiche.
Oltre a PaliGemma (circa 3 miliardi di parametri), π0 aggiunge un Action Expert con circa 300 milioni di parametri: un Transformer più piccolo con larghezza 1024 e una dimensione MLP di 4096. Per quanto riguarda PaliGemma, i valori corrispondenti sono larghezza 2048, profondità 18 strati e dimensione MLP 16384. Il modello π0 completo ha quindi circa 3,3 miliardi di parametri.
Il punto importante è che non si tratta di due reti completamente indipendenti che operano in parallelo. Utilizzano set di parametri diversi per diversi tipi di token, pur condividendo gli stessi strati Transformer. PaliGemma gestisce i token di immagine e di linguaggio, mentre l'Action Expert gestisce i token di stato e di azione rumorosa; le informazioni passano tra di loro tramite attenzione causale a blocchi negli strati condivisi. I token di azione possono prestare attenzione l'uno all'altro bidirezionalmente all'interno del loro blocco, ma il vincolo di addestramento impedisce loro di anticipare informazioni future. Questo approccio ricorda un'idea di "mix di esperti" e permette a un singolo modello di combinare output linguistico discreto (addestrato con entropia incrociata) e output di azioni continue (addestrato con una funzione di perdita di flow matching).
Generazione di azioni con flow matching condizionale
π0 genera azioni con flow matching condizionale, che appartiene alla famiglia dei metodi generativi basati sulla diffusione. Durante l'addestramento, il frammento di azione reale A_t e il rumore gaussiano \epsilon \sim \mathcal{N}(0, I) vengono miscelati linearmente lungo un parametro temporale \tau \in [0,1] per creare l'azione rumorosa A_t^\tau.
A_t^\tau = \tau A_t + (1-\tau)\epsilon
La direzione target da seguire per muovere A_t^\tau verso l'azione reale A_t è definita come segue.
u(A_t^\tau \mid A_t) = \epsilon - A_t
L'Action Expert viene addestrato come una rete v_\theta(A_t^\tau, o_t) che predice il campo vettoriale target a partire dall'osservazione o_t e dall'azione rumorosa A_t^\tau. La funzione di perdita è l'errore quadratico tra il campo vettoriale previsto e quello target.
In fase di inferenza, il campionamento inizia dal rumore puro A_t^{\tau=0} = \epsilon. Un metodo di Eulero in avanti integra il campo vettoriale previsto da \tau=0 a \tau=1, assemblando il blocco di azione finale.
L'articolo utilizza \delta = 0.1, ovvero 10 passaggi di integrazione, per passare da \tau=0 a \tau=1. Mentre la generazione di token autoregressivi in RT-2/OpenVLA ripete la decodifica sequenziale per tutta la lunghezza del blocco di azioni, π0 affina l'intero blocco in 10 passaggi di aggiornamento. Il numero di aggiornamenti, quindi, non aumenta con la lunghezza del blocco, il che rappresenta la fonte pratica del suo vantaggio in termini di velocità.
Apprendimento cross-incarnazione: addestramento di un modello su diversi robot
I dati di addestramento di π0 coprono sette diverse piattaforme robotiche: UR5e, UR5e bimanuale, Franka, Trossen bimanuale, ARX e AgileX bimanuali, Trossen e ARX mobili e Fibocom mobile. Il numero di telecamere è compreso tra 2 e 3, mentre il numero di gradi di libertà varia da 7 a 17 a seconda del robot.
Per rappresentare questi dati eterogenei in un unico modello, π0 applica la seguente normalizzazione:
Il vettore di stato q_t e il vettore di azione a_t vengono riempiti con zeri fino al massimo grado di libertà presente nei dati di addestramento (18 dimensioni). I robot con un numero inferiore di gradi di libertà utilizzano zeri per le voci non utilizzate.
Per i robot con meno di tre telecamere, gli slot delle immagini mancanti vengono mascherati in modo che il meccanismo di attenzione ignori tali posizioni.
Poiché il numero di campioni varia considerevolmente a seconda della combinazione di attività e robot, il campionamento viene ponderato in base a n^{0.43} per una combinazione con n campioni. Questo riduce la predominanza delle attività ricche di dati.
Il set di dati di addestramento completo contiene circa 900 milioni di intervalli di tempo, ovvero circa 10.000 ore: dati proprietari di Physical Intelligence relativi a 68 attività e sette robot, combinati con dataset pubblici tra cui Open X-Embodiment (OXE), Bridge v2 e DROID.
Metodo di addestramento a due fasi: pre-addestramento e post-addestramento
L'addestramento di π0 è suddiviso in due fasi principali. La fase di pre-addestramento utilizza l'intero dataset, ampio e diversificato. Si avvale dei nomi delle attività e delle annotazioni dei segmenti che suddividono le esecuzioni in unità di pochi secondi per costruire una solida base di conoscenze. La fase di post-addestramento utilizza dati di alta qualità e accuratamente selezionati, focalizzati su una specifica attività successiva, per trasformare tale base nel comportamento desiderato.
L'articolo fornisce una motivazione specifica per questa suddivisione: "Se ci addestrassimo solo su dati di alta qualità, il modello non imparerebbe a recuperare dagli errori". I dati di esecuzione variegati nella fase di pre-addestramento, che non sono sempre perfetti, forniscono al modello l'esperienza necessaria per recuperare quando qualcosa va storto. I dati di alta qualità nella fase di post-addestramento affinano quindi la capacità di eseguire il compito target con la precisione desiderata.
Perché il flow matching anziché un modello di diffusione convenzionale?
I modelli di diffusione standard, come il DDPM (Denoising Diffusion Probabilistic Models), presuppongono un percorso non lineare che aggiunge e rimuove gradualmente il rumore e spesso richiedono decine o centinaia di iterazioni. Il flow matching condizionale in π0 utilizza invece un percorso di probabilità lineare-gaussiano che collega il rumore \epsilon e l'azione reale A_t con una linea retta ( A_t^\tau = \tau A_t + (1-\tau)\epsilon ). Poiché il percorso è rettilineo, il campo vettoriale da apprendere è più semplice e un piccolo numero di iterazioni (10 in π0) può raggiungere l'azione target con una precisione utile. L'articolo propone questa soluzione come una scelta pratica per generare blocchi di azioni ad alta frequenza e ad alta dimensionalità a una velocità prossima al tempo reale.
7. In che modo π0 si differenzia dagli altri metodi di generazione di azioni VLA
La generazione di azioni VLA può essere suddivisa in tre grandi famiglie.
Aspetto
Tokenizzazione autoregressiva (RT-2, OpenVLA)
Diffusione (come Octo)
Corrispondenza di flusso (π0)
Rappresentazione dell'azione
Valori di azione discretizzati predetti come token uno alla volta
Valori continui generati tramite un processo di diffusione, condizionati dall'output del Transformer
Valori continui generati tramite corrispondenza di flusso
Numero di iterazioni di generazione
Scala con la lunghezza del blocco; blocchi più lunghi sono più lenti
Dipende dal numero di passaggi di diffusione
Un piccolo numero di passaggi di integrazione; π0 ne utilizza 10
Idoneità per movimenti rapidi e ad alta frequenza
La discretizzazione può diventare un collo di bottiglia
È possibile ottenere un output fluido, ma più fasi aggiungono latenza
Genera blocchi ad alta frequenza (fino a 50 Hz) in tempi relativamente brevi
Semplicità di implementazione | Semplice: estende il vocabolario del modello linguistico | Richiede una testa di diffusione dedicata | Richiede un Action Expert dedicato e la progettazione del campo vettoriale |
Costo computazionale | Elevato overhead di decodifica sequenziale | Da moderato ad alto a seconda del numero di passaggi di diffusione | Relativamente leggero perché utilizza pochi passaggi |
Difficoltà di implementazione | Relativamente bassa; l'infrastruttura LLM esistente è riutilizzabile | Moderata | Alta; la condivisione dei parametri e la progettazione della funzione di perdita si estendono a due tipi di output |
La tokenizzazione autoregressiva è semplice da implementare, ma la decodifica sequenziale aumenta la latenza con la crescita del blocco di azioni. Una testa di diffusione produce valori continui e uniformi, ma richiede un processo di generazione a più fasi. π0 si colloca tra questi approcci: gestisce i valori continui generando l'intero blocco di azioni in un numero fisso e ridotto di passaggi di integrazione. Dal punto di vista dell'apprendimento per imitazione, BC (Behavior Cloning) e DAgger descrivono come apprendere una mappatura dall'osservazione all'azione, mentre π0 è un'implementazione di tale mappatura che utilizza un ampio VLM e una testa generativa dedicata. Per i fondamenti, si veda "Imitation Learning and Inverse Reinforcement Learning".
8. Punti deboli / Ambienti difficili
Le valutazioni riportate nell'articolo mostrano tendenze generali piuttosto che una garanzia universale. Su diverse attività reali (piegare camicie, sparecchiare un tavolo, imbustare la spesa e prendere il pane dal tostapane), il modello base pre-addestrato senza fine-tuning mostra tassi di successo sostanzialmente più elevati rispetto ai modelli di riferimento esistenti come OpenVLA e Octo. π0 si avvicina particolarmente all'affidabilità in attività come piegare una camicia, dove OpenVLA e Octo risultano molto più indietro. Tuttavia, la differenza riflette anche la scala e la diversità dei dati di pre-addestramento, quindi è difficile isolare un vantaggio che appartenga esclusivamente al flow matching.
L'articolo individua anche una limitazione diretta: quanto più un compito è simile a quelli rappresentati nel pre-addestramento, tanto maggiore è il beneficio; i compiti molto al di fuori di tale distribuzione dipendono maggiormente dalla qualità e dalla quantità dei dati post-addestramento. Per compiti lunghi e multi-fase come assemblare una scatola o confezionare uova, il successo riportato può essere relativamente elevato, ma in alcune aree i tassi di successo sono ancora inferiori a quelli quasi perfetti osservati in compiti più semplici a singola azione.
Più in generale, il riempimento con zeri per l'apprendimento cross-embodiment non si estende automaticamente a un robot con una configurazione di gradi di libertà completamente nuova che non era presente nell'addestramento. Inoltre, il numero di passaggi di integrazione del flow matching (10) è fisso, limitando la precisione con cui gli utenti in fase di inferenza possono regolare il compromesso velocità-precisione.
Come sceglierlo nella pratica
Per un robot manipolatore generico che deve gestire molteplici attività con un unico modello, π0 rappresenta un ottimo punto di partenza: il suo design supporta alcuni comportamenti a zero-shot e la messa a punto con una quantità di dati relativamente ridotta. Physical Intelligence ha reso open source i pesi e il codice tramite il repository OpenPI, semplificando la sperimentazione con un robot personalizzato.
Per attività come piegare un tessuto o versare un liquido, dove il contatto e la fluidità delle traiettorie sono fondamentali, un modello di flow matching (o un modello a testa di diffusione come Octo) potrebbe essere più adatto di un VLA autoregressivo che si basa su token di azione discreti.
Se l'obiettivo è solo quello di eseguire semplici attività di prelievo e posizionamento a bassa latenza, i 3,3 miliardi di parametri di π0 potrebbero essere eccessivi. Un modello di imitazione leggero e specifico per l'attività, come una piccola rete basata su BC, potrebbe offrire un migliore equilibrio tra costi di implementazione e costi operativi.
Se un robot specifico deve eseguire un insieme fisso di compiti, addestrare un modello più ristretto su dati specifici per il compito può essere più efficiente rispetto all'utilizzo di un modello pre-addestrato di grandi dimensioni come π0. La scelta tra un modello generale e uno specializzato dipende dalla diversità dei compiti target e dalla quantità di dati che è possibile raccogliere.
Per le versioni più recenti come π0.5, π0.6 e π0.7, per il panorama più ampio del VLA e per la competizione sul benchmark LIBERO, consultare "Tendenze tecnologiche del VLA". Per i fondamenti dell'apprendimento per imitazione, dell'apprendimento per rinforzo inverso e del problema del covariate-shift in BC/DAgger, consultare "Apprendimento per imitazione e apprendimento per rinforzo inverso".
10. Riepilogo in tre righe
π0 esegue un VLM PaliGemma (3B) e un Action Expert dedicato (300M) negli stessi layer Transformer, generando blocchi di azioni continui con corrispondenza di flusso condizionale.
Prevede il campo vettoriale target u = \epsilon - A_t da A_t^\tau = \tau A_t + (1-\tau)\epsilon, quindi utilizza 10 passaggi di integrazione di Eulero per generare un blocco di azioni di 50 passi in fase di inferenza. Questa è la principale differenza rispetto alla tokenizzazione autoregressiva, la cui decodifica diventa più lenta man mano che il blocco cresce.
Si addestra su sette tipi di robot con padding zero e campionamento ponderato, quindi separa i dati pre-addestramento eterogenei dai dati post-addestramento di alta qualità per bilanciare generalità e prestazioni specifiche del compito.
Un modello che genera azioni può far funzionare un robot sconosciuto senza adattamenti?
La configurazione delle articolazioni, la rappresentazione delle azioni, le osservazioni e l'interfaccia dei dati di addestramento devono corrispondere. Essere un modello di base non implica la compatibilità senza modifiche.
Commenti
Accedi per continuare.
Nessun dato disponibile.