• 6 October 2024
Intelligenza Artificiale e lavoro

L’Intelligenza Artificiale fa ormai parte integrante dei meccanismi più complessi all’interno dei tanti campi professionali. Inoltre, la richiesta di mondi 3D e ambienti virtuali sta crescendo in modo esponenziale in tutti i settori. I flussi di lavoro 3D sono fondamentali per la digitalizzazione industriale, lo sviluppo di simulazioni in tempo reale per testare e convalidare, ad esempio, veicoli e robot autonomi, il funzionamento di gemelli digitali per ottimizzare la produzione industriale e l’apertura di nuove strade per la scoperta scientifica.

Oggi, la progettazione 3D e la costruzione del mondo sono ancora fatti manualmente. Mentre gli artisti e i designer 2D si sono arricchiti di strumenti di assistenza, i flussi di lavoro 3D rimangono pieni di operazioni ancora molto ripetitive e noiose. La creazione o la ricerca di oggetti per una scena è un processo che richiede molto tempo e competenze 3D specializzate affinate nel tempo come la modellazione e il texturing. Posizionare correttamente gli oggetti e creare rappresentazioni in un contesto 3D alla perfezione richiede ore di messa a punto.

L’esempio targato Nvidia

Per ridurre le attività manuali e ripetitive e aiutare creators e designer a concentrarsi sugli aspetti creativi e divertenti del loro lavoro, NVIDIA ha lanciato numerosi progetti di intelligenza artificiale come strumenti di intelligenza artificiale generativa per mondi virtuali. Si è così giunti al momento Iphone ovvero quando il Melafonino era al suo hype. 

Oggi tocca a ChatGPT; stiamo vivendo il momento “iPhone dell’AI”, in cui individui di tutti i livelli tecnici possono interagire con una piattaforma informatica avanzata utilizzando il linguaggio quotidiano. I modelli linguistici di grandi dimensioni (LLM) stavano diventando sempre più sofisticati e quando un’interfaccia user-friendly come ChatGPT li ha resi accessibili a tutti, è diventata l’applicazione consumer in più rapida crescita nella storia, superando i 100 milioni di utenti solo due mesi dopo il lancio.  Ora, ogni settore sta pianificando di sfruttare la potenza dell’AI per una vasta gamma di applicazioni come la scoperta di farmaci, macchine autonome e assistenti virtuali avatar.

Omniverse e modelli 3D con intelligenza artificiale

Recentemente, si è sperimentato ChatGPT di OpenAI e il nuovo modello multimodale GPT-4 per mostrare quanto sia facile sviluppare strumenti personalizzati in grado di generare oggetti 3D per mondi virtuali in NVIDIA Omniverse.  Rispetto a ChatGPT, GPT-4 segna un “miglioramento piuttosto sostanziale in molte dimensioni”, ha dichiarato il co-fondatore di OpenAI, Ilya Sutskever in un’intervista con il fondatore e CEO di NVIDIA Jensen Huang al GTC 2023.

Combinando GPT-4 con Omniverse DeepSearch, una sorta di bibliotecario AI intelligente in grado di cercare attraverso enormi database di risorse 3D senza tag, si è stati in grado di sviluppare rapidamente un’estensione personalizzata che recupera oggetti 3D con semplici istruzioni basate su testo e li aggiunge automaticamente a una scena 3D.

Estensione AI Room Generator

Questo divertente esperimento in NVIDIA Omniverse, una piattaforma di sviluppo per applicazioni 3D, mostra agli sviluppatori e agli artisti tecnici quanto sia facile sviluppare rapidamente strumenti personalizzati che sfruttano l’intelligenza artificiale generativa.  Gli utenti finali possono semplicemente inserire prompt basati su testo per generare e posizionare automaticamente oggetti ad alta fedeltà, risparmiando ore di tempo che in genere sarebbero necessarie per creare una scena complessa. Gli oggetti generati dall’estensione sono basati sulle risorse SimReady USD (Universal Scene Description). Le risorse SimReady sono oggetti 3D fisicamente accurati che possono essere utilizzati in qualsiasi simulazione e si comportano come nel mondo reale.

Tutto inizia con la scena USD in Omniverse. Gli utenti possono facilmente circondare un’area utilizzando lo strumento Matita in Omniverse, digitare il tipo di stanza che desiderano generare e con un clic viene creata quell’area.

Creazione del prompt per ChatGPT

Il prompt ChatGPT è composto da quattro parti: input di sistema, esempio di input utente, esempio di output dell’assistente e prompt dell’utente. Iniziamo con gli aspetti del prompt che si adattano allo scenario dell’utente. Ciò include il testo immesso dall’utente e i dati della scena.

Ad esempio, se l’utente desidera creare una sala di ricevimento, specifica qualcosa come “Questa è la stanza in cui incontriamo i nostri clienti. Assicurati che ci sia un set di comode poltrone, un divano e un tavolino da caffè. Oppure, se vuole aggiungere un certo numero di elementi, potrebbero aggiungere “assicurati di includere un minimo di 10 elementi”. Questo testo è combinato con informazioni sulla scena come la dimensione e il nome dell’area in cui l’utente posizionerà gli elementi come prompt utente.

Questa nozione di combinare il testo dell’utente con i dettagli della scena è molto potente. È molto più semplice selezionare un oggetto nella scena e accedere a livello di programmazione piuttosto che richiedere all’utente di scrivere un prompt per descrivere tutti questi dettagli. 

Forse vedremo molte estensioni dell’Omniverse che fanno uso di questo modello Text + Scene to Scene. Oltre al prompt dell’utente, dobbiamo anche innescare ChatGPT con un prompt di sistema ma basta davvero un veloce allenamento e il gioco è fatto!

Al fine di creare risultati prevedibili e deterministici, l’AI viene istruita dal prompt di sistema e dagli esempi per restituire specificamente un formato JSON con tutte le informazioni formattate in modo ben definito, in modo che possa essere utilizzato in Omniverse.

Come creare una scena 3D con ChatGPT

Potremmo anche facilmente riepilogare le azioni da compiere:

Esempio di input utente

Questo è un esempio di ciò che un utente potrebbe inviare. Si noti che si tratta di una combinazione di dati dalla scena e dal prompt di testo.

Esempio di output dell’assistente

Ciò fornisce un modello che l’AI deve utilizzare. Notare come stiamo descrivendo l’esatto JSON che ci aspettiamo.

Connessione a OpenAI

Questo prompt viene inviato all’IA dall’estensione tramite codice Python. Questo è abbastanza facile in Omniverse Kit e può essere fatto con solo un paio di comandi usando l’ultima libreria Python OpenAI. Da notare che stiamo passando all’API OpenAI l’input di sistema, l’input dell’utente di esempio e l’output dell’assistente atteso di esempio che abbiamo appena delineato. La variabile conterrà la risposta attesa da ChatGPT.

Passaggio del risultato da ChatGPT all’API Omniverse DeepSearch e generazione della scena

Gli elementi della risposta JSON ChatGPT vengono quindi analizzati dall’estensione e passati all’API Omnivere DeepSearch. DeepSearch consente agli utenti di cercare modelli 3D memorizzati all’interno di un server Omniverse Nucleus utilizzando query in linguaggio naturale.

Ciò significa che anche se non conosciamo il nome esatto del file di un modello di divano, ad esempio, possiamo recuperarlo semplicemente cercando “Comodo divano” che è esattamente quello che abbiamo ottenuto da ChatGPT.

DeepSearch comprende il linguaggio naturale e chiedendogli un “Comodo divano” otteniamo un elenco di elementi che il nostro utile “bibliotecario AI” ha deciso essere più adatti dalla selezione di risorse che abbiamo. È sorprendentemente bravo in questo e quindi spesso possiamo usare il primo elemento che restituisce, ma ovviamente abbiamo differenti possibilità di scelta in cui l’utente voglia selezionare qualcosa dall’elenco. Da lì, aggiungiamo semplicemente l’oggetto alla scena.

Nuovi elementi

Aggiungere elementi da DeepSearch alla fase Omniverse

Ora che DeepSearch ha restituito risultati, dobbiamo solo posizionare gli oggetti in Omniverse. Nella nostra estensione, abbiamo creato una funzione chiamata place_deepsearch_results () che elabora tutti gli elementi e li posiziona nella scena. Questo metodo lo utilizziamo poi per posizionare gli elementi. Salviamo anche la query di DeepSearch in un attributo in USD, in modo che possa essere utilizzata in seguito nel caso in cui vogliamo eseguire nuovamente DeepSearch. 

E voilà! Abbiamo la nostra scena generata dall’IA in Omniverse!

Scambio di elementi usando DeepSeach

Tuttavia, potrebbero non piacerci tutti gli elementi recuperati la prima volta. Quindi, abbiamo creato una piccola estensione complementare per consentire agli utenti di cercare oggetti simili e scambiarli con un solo clic. 

Con Omniverse, è molto facile costruire in modo da poter estendere facilmente i flussi di lavoro con estensioni aggiuntive.

Da ChatGPT a GPT-4. Intelligenza Artificiale e mondo del lavoro

Uno dei principali progressi nel nuovo GPT-4 di OpenAI è la sua maggiore consapevolezza dello spazio nei modelli linguistici di grandi dimensioni. Inizialmente è stato utilizzato come esempio ChatGPT API, che si basa su GPT-3.5-turbo. GPT-4 offre risultati decisamente migliori. 

GPT-4 è notevolmente migliorato rispetto a GPT-3.5 nel risolvere compiti complessi e comprendere istruzioni complesse. Pertanto, potremmo essere molto più descrittivi e utilizzare il linguaggio naturale quando ingegnerizziamo il prompt del testo per “istruire l’AI”.

Potremmo dare all’AI istruzioni molto esplicite come:

  • “Il nome di ogni oggetto dovrebbe includere un aggettivo appropriato.”
  • “Tieni presente che gli oggetti dovrebbero essere posizionati nell’area per creare il layout più significativo possibile e non dovrebbero sovrapporsi”.
  • “Tutti gli oggetti devono essere entro i limiti delle dimensioni dell’area; non posizionare mai oggetti oltre 1/2 della lunghezza o 1/2 della profondità dell’area dall’origine.
  • “Inoltre, tieni presente che gli oggetti devono essere posizionati su tutta l’area rispetto al punto di origine dell’area. Puoi utilizzare anche valori negativi per visualizzare correttamente gli elementi, poiché l’origine dell’area è sempre al centro dell’area.”

Il fatto che questi prompt di sistema vengano seguiti in modo appropriato dall’AI durante la generazione della risposta è particolarmente impressionante, poiché l’AI dimostra di avere una buona comprensione della consapevolezza dello spazio e di come posizionare correttamente gli elementi. Una delle sfide dell’utilizzo di GPT-3.5 per questo compito è che a volte gli oggetti sono stati generati al di fuori della stanza, o in posizioni strane.

GPT-4 non solo posiziona gli oggetti entro i giusti confini della stanza, ma posiziona anche gli oggetti in maniera logica: un comodino apparirà effettivamente sul lato di un letto, un tavolino da caffè sarà posizionato tra due divani e così via. Con questo, probabilmente stiamo solo vedendo la superficie di ciò che i LLM possono fare negli spazi 3D!

Conclusione

Anche se questa è solo una piccola dimostrazione di ciò che l’AI può fare una volta connessa a uno spazio 3D, crediamo che aprirà le porte a una vasta gamma di strumenti oltre la costruzione di scene. Gli sviluppatori possono creare estensioni basate sull’intelligenza artificiale in Omniverse per illuminazione, telecamere, animazioni, dialoghi dei personaggi e altri elementi che ottimizzano i flussi di lavoro dei creators. Possono persino sviluppare strumenti per collegare la fisica alle scene ed eseguire intere simulazioni.