Come progettiamo un modello ridotto ispirato a Cosmos 3, compatibile con Google Colab, usando dati sintetici e un modello misto multimodale di Trasformatori (Omnimodal Mixture-of-Transformers)? In questa guida esaminiamo le limitazioni hardware di Colab e mostriamo una miniaturizzazione tecnica e significativa dei concetti principali del modello.
Il framework Cosmos consente di lavorare con linguaggio, immagine, video, audio e azione in un unico modello, grazie al Misto di Trasformatori (Mixture of Transformers). Ogni modalità è convertita in token disposti in una sola sequenza continua; l'attenzione causale condivisa (con RoPE) permette a ogni token di attendere a tutti i precedenti, indipendentemente dalla modalità.
Sezione 0 — Analisi dell’ambiente: requisiti necessari ed effettivamente presenti
Per capire se l’ambiente di Colab può supportare i veri checkpoints Cosmos 3, verifichiamo:
- Se si è all’interno di Colab
- Versione di Python e sistema operativo
- Disponibilità di PyTorch e versione
- CUDA e informazioni GPU (nome, memoria, capacità)
- Su Colab, la memoria e l’architettura del GPU devono essere adeguate per i modelli grandi
Ecco i requisiti necessari per Cosmos 3 rispetto a ciò che normalmente offre Colab standard:
- Architettura GPU: Ampere o successiva per modelli grandi
- Memoria GPU: almeno 79GB
- Toolkit CUDA: >=12.8 (disponibile solo su Colab Pro)
- Disk libero: ~150 GB inizialmente
Vengono stampati chiari risultati indicando che solo gli ambienti molto potenti possono eseguire i checkpoints di Cosmos 3 come il Nano-16B. Al contrario, su Colab standard è consigliata un’implementazione ridotta in modo educativo.
Sezione 1 — Clonare e mappare il package cosmosframework
Cloniamo il repository ufficiale di NVIDIA per mapparlo all’interno del nostro ambiente Colab. Se non è possibile, procediamo ugualmente in quanto abbiamo già estratto la struttura, la CLI e gli esempi chiave da analizzare.
Il repository originale contiene:
- Moduli e sottopacchetti organizzati per risorse specifiche
- Struttura esempio di input come il t2v.json
I comandi CLI principali includono:
Single GPU:
--parallelism-preset=latency -i "inputs/omni/t2v.json" \ -o outputs/omninano --checkpoint-path Cosmos3-Nano --seed 0python -m cosmosframework.scripts.inference \
Multi GPU:
torchrun --nproc-per-node=8 -m cosmosframework.scripts.inference \
--parallelism-preset=throughput -i "inputs/omni/*.json" \
-o outputs/omnisuper --checkpoint-path Cosmos3-Super --seed 0
I modelli disponibili includono Cosmos3-Nano (16B, tutti i modi) e Cosmos3-Super (65B, t2i/t2v/i2v). Le modalità di inferenza coprono:
- da testo a immagine (text2image)
- da testo a video (text2video)
- da immagine a video (image2video)
- da video a video (video2video)
- dinamica diretta (forwarddynamics)
- dinamica inversa (inverse_dynamics)
- politica (policy)
Il parallellismo si divide fra:
• FSDP (dp-shard / dp-replicate)
• contesto (cp)
• CFG (cfgp)
Le configurazioni di parallelismo possono essere rapide (latency) o massicce (throughput). Sono anche incluse le funzioni di sicurezza, come Cosmos-Guardrail1, Qwen3Guard-Gen-0.6B e RetinaFace.
Sezione 2 — Modello Misto Multimodale (MoT)
Il framework Cosmos 3 unifica linguaggio, immagini, video, audio e azione in un unico modello, grazie a un Misto di Trasformatori. Ogni modalità è rappresentata in token in una sequenza unica:
- I token del linguaggio sono [t0, t1, t2 ...]
- I token di visione sono [v0, v1, v2 ...]
- I token di azione sono [a0, a1 ...]
Tutti vengono fusi in un’unica sequenza in cui l'attenzione causale è condivisa (RoPE): ogni token può fare riferimento a tutti quelli precedenti, indipendentemente dalla fonte. Poi ogni token è instradato a un modulo esperto (FFN SwiGLU) adatto alla sua modalità:
Testo → Esperto0
Visione → Esperto1
Video → Esperto2
Questa struttura consente un rapporto tra le diverse modellità, creando una comprensione globale e una previsione efficace.
Implementazione ridotta nel tutorial
Nonostante le limitazioni hardware (memoria e velocità), proponiamo un modello di world model ridotto basato su un Misto Multimodale di Trasformatori. Utilizziamo:
- dati sintetici per rappresentare testo, visione ed azione
- una rete di Trasformatori con attenzione condivisa
- esperti modali separati (testo, visione e azione)
- una funzione di perdita con tracciamento per seguire l’apprendimento cross-modal
Questo modello:
- Simula il rapporto tra le diverse modellità
- Più in generale predice gli stati futuri in modi significativi
- Rappresenta un modello funzionalmente minimo di Cosmos 3
Usiamo dati generati artificialmente di un ambiente fisico per addestrare il modello con una funzione di perdita e un rollout autoregressivo per ottenere una previsione di stato.
I dati sintetici aiutano a evitare le esigenze di memorizzazione elevate di dati reali e permettono di testare il modello in condizioni controllate. Gli output saranno quindi analizzabili per verificare il rapporto intermodalità imparato.