Micorsof ha esteso le capacità di ChatGPT alla robotica e controllato diverse piattaforme come bracci robotici, droni e robot assistenti domestici in modo intuitivo con il linguaggio.
Avete mai desiderato dire a un robot cosa fare usando le vostre stesse parole, come fareste con un umano? Non sarebbe fantastico dire al vostro assistente domestico robot: “Riscalda il mio pranzo” e fargli trovare da solo il microonde? Anche se il linguaggio è il modo più intuitivo per esprimere le nostre intenzioni, ci affidiamo ancora molto al codice scritto a mano per controllare i robot.
L’obbiettivo di Microsoft
Il team di Microsoft sta studiando come cambiare questa realtà e rendere possibili interazioni naturali tra uomo e robot utilizzando il nuovo modello linguistico ChatGPT di OpenAI,
ChatGPT è un modello linguistico addestrato su un corpus enorme di testi e interazioni umane, che gli consente di generare risposte coerenti e grammaticalmente corrette a un’ampia gamma di richieste e domande.
L’obiettivo con questa ricerca è vedere se ChatGPT è in grado di pensare al di là del testo e di ragionare sul mondo fisico per aiutare a svolgere compiti di robotica.
Microsoft ha vuole aiutare le persone a interagire con i robot in modo più semplice, senza dover imparare linguaggi di programmazione complessi o dettagli sui sistemi robotici.
La sfida principale è insegnare a ChatGPT a risolvere i problemi tenendo conto delle leggi della fisica, del contesto dell’ambiente operativo e di come le azioni fisiche del robot possono cambiare lo stato del mondo.
ChatGPT può fare molto da solo, ma ha ancora bisogno di aiuto. Il documento tecnico descrive una serie di principi di progettazione che possono essere utilizzati per guidare i modelli linguistici verso la risoluzione di compiti robotici. Questi includono, ma non si limitano a, strutture di prompt speciali, API di alto livello e feedback umano via testo.
Microsoft crede che con il loro lavoro siano solo all’inizio di un cambiamoneto nel mondo, in cui sviluppano i sitemi robotici e sperano di ispirare altri ricercatori a lanciarsi in questo campo entusiasmante. Continuate a leggere per maggiori dettagli tecnici sui metodi e sulle idee.
Le sfide della robotica oggi e il modo in cui ChatGPT può aiutare
Le attuali pipeline robotiche iniziano con un ingegnere o un utente tecnico che deve tradurre i requisiti del compito in codice per il sistema. L’ingegnere rimane nel loop, cioè deve scrivere nuovo codice e nuove specifiche per correggere il comportamento del robot.
Nel complesso, questo processo è lento (l’utente deve scrivere codice di basso livello), costoso (richiede utenti altamente qualificati con una profonda conoscenza della robotica) e inefficiente (richiede interazioni multiple per far funzionare le cose correttamente).
ChatGPT apre un nuovo paradigma di robotica e consente a un utente (potenzialmente non tecnico) di partecipare al ciclo, fornendo un feedback di alto livello al modello linguistico di grandi dimensioni (LLM) e monitorando le prestazioni del robot.
Seguendo i principi di progettazione, ChatGPT può generare codice per scenari robotici. Senza alcuna messa a punto, sfruttano le conoscenze dell’LLM per controllare diversi fattori di forma dei robot per una varietà di compiti. Nel loro lavoro mostrano diversi esempi di ChatGPT che risolve puzzle di robotica, oltre a complesse implementazioni di robot nei domini della manipolazione, dell’aereo e della navigazione.
Robotica con ChatGPT: principi di progettazione
La scrittura dei prompt è una scienza altamente empirica. Attraverso prove ed errori, hanno costruito una metodologia e un insieme di principi di progettazione per la scrittura di prompt per compiti di robotica:
- In primo luogo, definiscono una serie di API di alto livello per i robot o una libreria di funzioni. Questa libreria può essere specifica per un particolare robot e dovrebbe corrispondere alle implementazioni di basso livello esistenti nello stack di controllo del robot o in una libreria di percezione. È molto importante usare nomi descrittivi per le API di alto livello, in modo che ChatGPT possa ragionare sui loro comportamenti;
- Successivamente, scrivino un messaggio di testo per ChatGPT che descrive l’obiettivo dell’attività e indica esplicitamente quali funzioni della libreria di alto livello sono disponibili. Il prompt può anche contenere informazioni sui vincoli del compito o su come ChatGPT deve formare le sue risposte (linguaggio di codifica specifico, utilizzo di elementi di parsing ausiliari);
- L’utente rimane sul loop per valutare l’output del codice di ChatGPT, sia attraverso un’ispezione diretta sia utilizzando un simulatore. Se necessario, l’utente utilizza il linguaggio naturale per fornire un feedback a ChatGPT sulla qualità e la sicurezza della risposta.
- Quando l’utente è soddisfatto della soluzione, il codice finale può essere distribuito sul robot.
Basta con la teoria… Cosa può fare esattamente ChatGPT?
Dall’ultima versione (ChatGPT-3) ci sono stati enormi passi avanti. Diamo un’occhiata ad alcuni esempi…
Pianificazione dei compiti a colpo zero
Hanno dato a ChatGPT l’accesso alle funzioni che controllano un vero drone e si è rivelato un’interfaccia estremamente intuitiva basata sul linguaggio tra l’utente non tecnico e il robot.
ChatGPT ha posto domande di chiarimento quando le istruzioni dell’utente erano ambigue e ha scritto strutture di codice complesse per il drone, come uno schema a zig-zag per ispezionare visivamente gli scaffali. Ha persino capito come scattare un selfie!
Hanno anche utilizzato ChatGPT in uno scenario di ispezione industriale simulato con il simulatore Microsoft AirSim. Il modello è stato in grado di analizzare efficacemente le intenzioni di alto livello dell’utente e le indicazioni geometriche per controllare con precisione il drone.
Utente in loop: quando è necessaria una conversazione per un compito complesso
Successivamente, hanno utilizzato ChatGPT in uno scenario di manipolazione con un braccio robotico. Hanno usato il feedback conversazionale per insegnare al modello come comporre le API originariamente fornite in funzioni di alto livello più complesse, che ChatGPT ha codificato da solo.
Utilizzando una strategia basata sul curriculum, il modello è stato in grado di concatenare queste abilità apprese in modo logico per eseguire operazioni come l’impilamento di blocchi.
Inoltre, il modello ha mostrato un affascinante esempio di collegamento tra il dominio testuale e quello fisico quando gli è stato chiesto di costruire il logo Microsoft con dei blocchi di legno.
Non solo è stato in grado di richiamare il logo dalla sua base di conoscenza interna, ma è stato anche in grado di “disegnare” il logo (come codice SVG) e poi di utilizzare le abilità apprese in precedenza per capire quali azioni robotiche esistenti possono comporre la sua forma fisica.
Poi Hanno chiesto a ChatGPT di scrivere un algoritmo che permettesse a un drone di raggiungere un obiettivo nello spazio senza andare a sbattere contro gli ostacoli.
Hanno detto al modello che questo drone ha un sensore di distanza rivolto in avanti e ChatGPT ha codificato subito la maggior parte degli elementi chiave dell’algoritmo. Questo compito ha richiesto un po’ di conversazione con l’umano, e sono rimasti colpiti dalla capacità di ChatGPT di apportare miglioramenti localizzati al codice utilizzando solo il feedback linguistico.
Loops di percezione-azione: robot che percepiscono il mondo prima di agire
La capacità di percepire il mondo (percezione) prima di fare qualcosa (azione) è fondamentale per qualsiasi sistema robotico. Hanno quindi deciso di testare la comprensione di questo concetto da parte di ChatGPT, chiedendogli di esplorare un ambiente fino a trovare un oggetto specificato dall’utente.
Hanno dato al modello l’accesso a funzioni quali le API per il rilevamento degli oggetti e la loro distanza e hanno verificato che il codice generato implementasse correttamente un ciclo di percezione-azione.
In carattere sperimentale, hanno eseguito ulteriori esperimenti per valutare se ChatGPT è in grado di decidere dove il robot deve andare in base al feedback dei sensori in tempo reale (invece di far generare a ChatGPT un ciclo di codice che prende queste decisioni).
È interessante notare che hanno verificato che è possibile inserire nella chat una descrizione testuale dell’immagine della telecamera a ogni passo, e il modello è stato in grado di capire come controllare il robot finché non raggiunge un determinato oggetto.
PromptCraft, uno strumento collaborativo open-sourced per la ricerca LLM+Robotica
Una buona ingegneria dei prompt è fondamentale per il successo di LLM come ChatGPT per i compiti di robotica. Purtroppo, il prompt è una scienza empirica e mancano risorse complete e accessibili con buoni (e cattivi) esempi per aiutare i ricercatori e gli appassionati del settore.
Per colmare questa lacuna, hanno introdotto PromptCraft, una piattaforma collaborativa open-source dove chiunque può condividere esempi di strategie di prompting per diverse categorie di robotica. Hanno pubblicato tutti i prompt e le conversazioni utilizzate in questo studio.
Oltre alla progettazione dei prompt, speriamo di includere anche diversi simulatori di robotica e interfacce per consentire agli utenti di testare gli algoritmi generati da ChatGPT.
Come inizio, Rilasciano anche un ambiente AirSim con l’integrazione di ChatGPT che chiunque può utilizzare per iniziare a lavorare con queste idee. Accolgono con favore anche i contributi di nuovi simulatori e interfacce.
Portare la robotica fuori dai laboratori e nel mondo
Sono entusiasti di rilasciare queste tecnologie con l’obiettivo di portare la robotica alla portata di un pubblico più vasto. Credono che il controllo robotico basato su un linguaggio sarà fondamentale per portare la robotica fuori dai laboratori scientifici e nelle mani degli utenti di tutti i giorni.
Detto questo, sottolineano che i risultati di ChatGPT non sono destinati a essere utilizzati direttamente sui robot senza un’attenta analisi. Incoraggiano gli utenti a sfruttare la potenza delle simulazioni per valutare questi algoritmi prima di potenziali impieghi nella vita reale e a prendere sempre le necessarie precauzioni di sicurezza.
Il loro lavoro rappresenta solo una piccola parte di ciò che è possibile fare nell’ambito dell’intersezione di grandi modelli linguistici che operano nello spazio della robotica, e sperano di ispirare molto del lavoro che verrà.