in

Come funziona SORA, il generativo per i video di OpenAI

E’ veramente stupefacente la quantità di innovazioni che OpenAI, ancora una volta, ha saputo mettere a terra per il loro nuovissimo SORA, il generativo dedicato al mondo del video. Proviamo a scomporre SORA nelle sue componenti fondamentali, per approfondirne il funzionamento ed apprezzare le soluzioni tecnologiche adottate.

Riduzione della complessità dei dati video

La prima fase del processo implica la riduzione della complessità dei dati video originali. I video sono composti da una grande quantità di informazioni, data l’alta risoluzione e il numero di frame per secondo. Per rendere questi dati più gestibili per i modelli di apprendimento automatico, i video vengono “compressi” in uno spazio latente. Uno spazio latente è una rappresentazione a dimensione ridotta dei dati che cerca di catturare le informazioni essenziali o le caratteristiche latenti dei dati originali. Questo è simile al modo in cui un file zip riduce la dimensione di un documento mantenendo intatto il contenuto essenziale. La compressione in uno spazio latente aiuta a ridurre il rumore e l’overfitting, migliorando l’efficienza computazionale e la capacità del modello di generalizzare da dati limitati. (Qui il mio articolo che spiega come avviene la compressione in uno spazio latente)

Dopo aver compresso i video in una rappresentazione più gestibile, questa viene poi suddivisa in piccoli blocchi o “patch” che comprendono informazioni sia spaziali (relative all’immagine) che temporali (relative al movimento o al cambiamento nel tempo). Queste patch spazio-temporali fungono da unità discrete di informazione, simili ai token (parole) in un testo per un modello di linguaggio naturale. Questo approccio consente ai modelli basati su transformer di analizzare e generare contenuti video apprendendo le relazioni complesse e le dinamiche presenti all’interno e tra queste patch.

In sintesi, l’approccio di OpenAI mira a trasformare i video complessi e ad alta dimensione in una serie di patch più semplici e gestibili secondo un processo “a token” che consente di sfruttare le capacità dei Transformer (come GPT) di gestire sequenze di dati e di apprendere da queste relazioni complesse, facilitando la generazione di video e immagini realistiche.

Generazione di video nello spazio latente compresso

Una volta che la rete è in grado di comprimere i video in questa rappresentazione latente, Sora viene addestrato per generare nuovi contenuti video all’interno di questo stesso spazio latente. Ciò significa che Sora non lavora direttamente con i pixel dei video, ma piuttosto con la rappresentazione compressa, da cui può generare nuove sequenze video che mantengono le caratteristiche essenziali dei dati di addestramento ma in nuove configurazioni o sequenze generate.

Per generare nuovi contenuti, Sora applica un innovativo approccio di combinazione tra “diffusione” e “transformer“, in cui le caratteristiche distintive di entrambi i tipi di modelli vengono integrate per creare un sistema potente e flessibile. Ecco come Sora può essere sia un modello di diffusione che un transformer:

Modello di Diffusione

Nei modelli di diffusione, la generazione di dati avviene attraverso un processo iterativo che inizia con un pattern di rumore e gradualmente lo trasforma in un output strutturato (ad esempio, un’immagine o un frame video). Questo processo si basa sull’inversione di una catena di passaggi che aggiungono rumore ai dati originali, guidando il modello a “disimparare” il rumore e a ricostruire l’input pulito.

Transformer

I transformer, d’altra parte, sono una classe di modelli che utilizzano meccanismi di attenzione per gestire le relazioni tra le parti di una sequenza di input. Questi modelli sono estremamente efficaci nel catturare dipendenze complesse e a lungo raggio nei dati, rendendoli particolarmente adatti per elaborare sequenze come il testo o, nel caso di Sora, sequenze temporali nei video.

Integrazione in Sora di Diffusione e Transformer

Diffusione per la Generazione: Sora utilizza il framework di diffusione per la generazione di contenuti, impiegando il concetto di partire da rumore e attraverso iterazioni successive arrivare a ricostruire l’output desiderato. Questo permette a Sora di generare dati complessi come video, dove ogni frame può essere considerato come un’iterazione nel processo di diffusione.

Transformer per la Struttura: All’interno di questo processo di diffusione, Sora integra l’architettura dei transformer per gestire le relazioni spaziali e temporali tra le patch dei video durante il processo di generazione. I transformer analizzano le patch (che possono essere viste come i “token” nel contesto dei transformer) per determinare come ciascuna patch influisce sulle altre nel contesto spaziotemporale del video. Questo approccio permette a Sora di mantenere coerenza e continuità nei video generati.

Attuazione Pratica: Nella pratica, ciò significa che durante il processo di diffusione in cui il modello inverte il rumore per generare l’output, utilizza meccanismi di attenzione del transformer per decidere come ogni passo di diffusione (ogni iterazione verso l’output pulito) dovrebbe essere influenzato dalle relazioni spaziotemporali catturate dai transformer.

In questo modo, Sora sfrutta la potente capacità di elaborazione sequenziale e di attenzione dei transformer all’interno del paradigma di generazione guidata dal modello di diffusione. Questa combinazione consente a Sora di generare video che non solo sono visivamente coerenti frame per frame (grazie al processo di diffusione) ma anche strutturati e logicamente sequenziali nel tempo (grazie ai transformer), rendendolo efficace per compiti complessi di generazione video.

Decodifica della rappresentazione latente in spazio pixel

Per rendere i video generati da Sora visibili e utilizzabili, è necessaria una fase di decodifica. Questo processo è gestito da un modello di decoder che prende come input la rappresentazione latente generata da Sora e la trasforma nuovamente in dati video nel formato originale, ovvero in una sequenza di immagini o frame in spazio pixel. Questo passaggio è fondamentale perché trasforma i dati astratti e compressi nello spazio latente in video che possiamo effettivamente vedere e apprezzare visivamente.

Cosa ne pensi?

Scritto da Emanuele Donati

I'm a charismatic leader, highly experienced and able to ensure success of the most challenging and ambitious projects. My deep competence in ICT's activities and years of experience in marketing, communication and production, together with business administration wide understanding allow me to operate and succeed in all layers of the company's strategic goals.

I'm continuously searching for original and challenging growing paths to verify and increase my managerial skills. Ranging from defence to telecommunications, entertainment to pharmaceuticals industry, I’ve been able to enrich my managerial background with both start-up and business expansion activities.

Strengths: Creativity, problem solving and design skills, high-technological background, strong managerial capabilities in difficult situations, group development, company mission and vision evangelist, deep comprehension of corporate governance

Cos’è la compressione in uno spazio latente?

EMO: Pioneering Expressive Audio-Driven Portrait Video Generation