Embodied.cpp: A Portable Inference Runtime of Embodied AI Models on Heterogeneous Robots
Questo articolo presenta Embodied.cpp, un runtime di inferenza in C++ portabile progettato per unificare la frammentata distribuzione di diversi modelli di IA incarnata (come VLA e WAM) su robot edge eterogenei, fornendo un'architettura modulare a cinque livelli che consente un controllo a ciclo chiuso a bassa latenza e multi-frequenza, migliorando significativamente l'efficienza della memoria e i tassi di successo dei compiti.
Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo
Immagina di aver costruito un cervello robotico brillante e altamente intelligente. Può vedere, comprendere il linguaggio e pianificare come muovere le braccia per prendere una tazza. Ma in questo momento, far funzionare questo cervello su un vero robot è come cercare di inserire un motore di Formula 1 nel telaio di una bicicletta usando del nastro adesivo e un coltellino svizzero.
Attualmente, ogni volta che uno scienziato costruisce un nuovo cervello robotico, deve scrivere un completamente nuovo set di "codice di colla" (il software che collega il cervello ai sensori e ai motori del robot). Questo codice è spesso disordinato, scritto in Python e funziona solo su computer specifici. Se cambi il robot o il cervello, devi ricostruire l'intera connessione da zero.
Entra in gioco "Embodied.cpp".
Pensa a Embodied.cpp come a un kit di adattatori universale e ad alte prestazioni per i cervelli robotici. È un pezzo di software scritto in C++ (un linguaggio noto per la sua velocità ed efficienza) che funge da ponte tra qualsiasi nuovo cervello robotico e qualsiasi corpo robotico, che si tratti di un piccolo robot su un chip o di un enorme robot da stazione di lavoro.
Ecco come funziona, usando alcune analogie semplici:
1. Il Problema: L'adattatore "Un modello per tutti, adatto a nessuno"
Immagina di avere un sistema smart home. Alcune luci si accendono ogni secondo, il termostato controlla la temperatura ogni minuto e la telecamera di sicurezza registra ogni ora.
- Il modo vecchio: Costruisci un timer separato, un sensore separato e un interruttore separato per ogni singolo dispositivo. Se aggiungi un nuovo dispositivo, devi cablare un intero nuovo circuito.
- Il problema del paper: Anche i cervelli robotici sono uguali. Alcune parti (come gli occhi) devono aggiornarsi lentamente, mentre altre (come i controlli del motore) devono aggiornarsi super velocemente. Il software esistente cerca di eseguire tutto alla stessa velocità, il che è inefficiente e causa ritardi.
2. La Soluzione: Un sistema modulare "Lego"
Gli autori hanno progettato Embodied.cpp come un set Lego ad alta tecnologia con cinque livelli specifici:
- Input Adapter (Adattatori di Input): Questi sono come prese universali. Che il robot veda una telecamera, senta un sensore di tocco o legga un sensore di forza, questo livello traduce tutto in un linguaggio che il cervello comprende.
- Sequence Builders (Costruttori di Sequenze): Questo organizza i dati, come un bibliotecario che riordina i libri prima di metterli sullo scaffale.
- Backbone Execution (Esecuzione del Backbone): Questa è la "sala macchine" dove avviene il pensiero principale.
- Head Plugins (Plugin della Testa): Questi sono gli strumenti specializzati. Un robot potrebbe aver bisogno di uno strumento di "presa", un altro di uno strumento di "camminata". Ti basta agganciare il plugin giusto senza ricostruire il motore.
- Deployment Adapters (Adattatori di Distribuzione): Questo è il livello di output che comunica con il mondo reale, inviando comandi ai motori del robot o al software di simulazione.
3. I Tre Superpoteri
Il paper evidenzia tre modi specifici in cui questo sistema è migliore di quanto esista oggi:
Esecuzione Multi-Rate (Il Direttore d'Orchestra):
In un robot, gli "occhi" non hanno bisogno di ammiccare velocemente quanto le "dita". Embodied.cpp agisce come un direttore d'orchestra, permettendo agli occhi di seguire un ritmo lento e alle dita di seguire un ritmo veloce, il tutto all'interno dello stesso sistema. Il vecchio software cerca di far marciare tutti allo stesso ritmo, il che spreca energia e causa lag.Controllo Priorità-Latenza (Il Pilota di Auto da Corsa):
Nel cloud computing (come chattare con un'IA), la velocità è misurata in base a quante persone puoi servire contemporaneamente. Ma per un robot, la velocità è misurata in base a quanto velocemente reagisce a un singolo comando. Se un robot sta prendendo al volo un oggetto che cade, non può aspettare un "batch" di calcoli; ha bisogno di una risposta istantanea. Embodied.cpp è costruito per dare priorità a questo tempo di reazione al millisecondo su diversi tipi di hardware (dai piccoli chip alle grandi workstation).Interfacce Estendibili (Il Telecomando Universale):
I robot non producono solo "parole" o "token". Producono cose complesse come "muovi il braccio di 30 gradi", "predici dove sarà la palla tra 2 secondi" o "stringi delicatamente". Embodied.cpp è costruito per gestire questi output insoliti e personalizzati senza dover essere riscritto ogni volta che viene inventato un nuovo robot.
4. I Risultati: Funziona?
Gli autori hanno testato questo sistema con due diversi tipi di cervelli robotici:
- I Cervelli "Vision-Language" (VLA): Hanno testato due modelli (HY-VLA e pi0.5). Il sistema ha controllato con successo un robot per completare i compiti.
- Risultato: Un modello ha avuto successo il 100% delle volte, e l'altro il 91%. Ha dimostrato che il software può eseguire cervelli complessi su hardware reale senza crashare.
- I Cervelli "World-Action" (WAM): Questi sono modelli più recenti che cercano di predire il futuro (come indovinare dove rotolerà una palla). Hanno testato una piccola parte di questo cervello.
- Risultato: Utilizzando questo nuovo software, hanno ridotto la memoria necessaria per eseguire quella parte del cervello da 312 MiB a 88 MiB. È come rimpicciolire uno zaino pesante in una piccola borsa, rendendolo molto più facile da eseguire su robot più piccoli e meno costosi.
In sintesi
Embodied.cpp è un motore portatile e ad alta velocità per l'intelligenza robotica. Impedisce agli scienziati di dover reinventare la ruota ogni volta che costruiscono un nuovo robot. Invece di scrivere codice disordinato e personalizzato per ogni nuovo progetto, possono collegare il loro nuovo cervello robotico a questo sistema universale, e semplicemente funziona — in modo veloce, efficiente e su quasi tutto l'hardware.
Sommerso dagli articoli nel tuo campo?
Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.