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:

python -m cosmosframework.scripts.inference \

--parallelism-preset=latency -i "inputs/omni/t2v.json" \

-o outputs/omninano --checkpoint-path Cosmos3-Nano --seed 0

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.