Una card di titolo generata che riporta Duo-1.0-causal-base, con tre indicatori datati — paper 11 novembre, pesi 12 novembre, notizie sul repository 13 novembre — accanto a una nota secondo cui la licenza community esclude UE, Regno Unito, Corea del Sud e Stati Uniti.
Engineering & Research

Duo-1.0-causal-base: 153 GB di pesi, un paper e nessun post di lancio

Autore

Rowan Sterling

Data di pubblicazione

Ultimi modelli · 20Vedi tutti i modelli →
Benchmark: Artificial Analysis · aggiornato ogni giorno
Torna a tutti gli articoli

Alle 06:32 UTC del 12 novembre, un repository Hugging Face chiamato Duo-1.0-causal-base ha ricevuto il suo commit iniziale: 80 file, 153,46 GB e un pacchetto contenente un backbone visione-linguaggio, un diffusion transformer audiovisivo, due codec, un riconoscitore vocale e un allineatore forzato. Il paper alla base era stato pubblicato su arXiv il giorno prima. Tre repository gemelli sono seguiti entro ventiquattro ore, uno dei quali era ancora in fase di caricamento questa mattina. Il blocco notizie del repository stesso, datato 13 novembre, definisce tutto ciò un rilascio. Quasi nient'altro lo fa. Non esiste alcun post di lancio, endpoint ospitato, pagina dei prezzi né benchmark indipendente per Duo-1.0-causal-base che io riesca a trovare — e il file di licenza presente in quei 153 GB esclude dalla concessione l'Unione europea, il Regno Unito, la Corea del Sud e gli Stati Uniti.

Quindi questo non è un articolo di lancio, perché non c'è stato alcun lancio. Non è nemmeno un articolo su una fuga di notizie, perché i pesi sono pubblici, senza restrizioni e completi. Quanto segue separa le due cose che tendono a confondersi ogni volta che un laboratorio di ricerca pubblica un repository invece di un prodotto: ciò che i file e l'articolo stabiliscono effettivamente, e ciò che nessuno ha ancora confermato.

Cosa è atterrato, e in quale ordine

La sequenza è leggibile dai metadati del repository, cosa che conta perché è l'unica registrazione di prima mano.

• L'articolo — arXiv 2611.15131, Duo: un modello mondiale reciproco per l'interazione full-duplex, venti autori da Hengyuan Cao a Zhenzhong Lan, inviato l'11 novembre 2026. La pagina dell'articolo su Hugging Face mostra 27 upvote e nessuna copertura oltre ad essa.

I pesi — quattro repository sotto l'organizzazione inclusionAI, che si descrive come la casa dell'iniziativa AGI di Ant Group e la cui pagina del progetto riporta un copyright Ant Research 2026. Duo-1.0-causal-base e Duo-1.2-causal-base sono stati creati alle 06:30 e alle 06:32 UTC del 12 novembre; Duo-1.0-distill venticinque secondi prima; Duo-1.0-distill-quant questa mattina alle 08:09 UTC.

• Il codice — github.com/inclusionAI/Duo, Apache-2.0, creato il 6 novembre ma con esattamente un commit, datato 09:13 UTC di oggi, con sei stelle e nessun fork al momento della stesura.

• La dichiarazione — il blocco delle notizie del README, tutte e tre le righe datate 2026/11/13: il paper, le pipeline di streaming vLLM-Omni e SGLang-Omni, e i pesi v1 più il codice di inferenza offline.

Le dimensioni dei bundle sono la prima cosa su cui un lettore può intervenire, perché non sono intercambiabili.

• Duo-1.0-causal-base — 153.46 GB distribuiti su 80 file. Pesi di realizzazione 69.07 GB, modello Intent 66.73 GB, codec video e audio 11.02 GB, stack vocale 6.54 GB e un adattatore da 84.8 MB.

• Duo-1.2-causal-base — 153,46 GB distribuiti su 80 file, descritto unicamente come "qualità di generazione migliorata", con le relative varianti distillate e quantizzate indicate come in arrivo.

• Duo-1.0-distill — 2,78 GB, otto file. Un overlay, non un modello: viene scaricato nella stessa directory del bundle di base e sostituisce le impostazioni del sampler con Euler a quattro passi e un flow shift di 5.0, contro i cinquanta passi a 1.0 della versione base.

• Duo-1.0-distill-quant — 47,03 GB. Lo stesso overlay in quattro passaggi in ModelOpt FP8 con scaling per canale, e la scheda specifica esplicitamente che il runtime deve supportare quel formato o offrire una via di conversione.

Due moduli e un clock da 708 millisecondi

L'architettura è leggibile dai file di configurazione, il che è più di quanto ti diano la maggior parte delle model card. Duo divide il lavoro in due.

Il modulo Intent è dichiarato come Qwen3VLForConditionalGeneration: 64 layer con dimensione nascosta 5120, 64 teste di attenzione con 8 teste chiave-valore, una dimensione intermedia di 25600, un vocabolario di 151.936 token e una torre visiva a 27 strati con una dimensione delle patch pari a 16. Gli shard sommano a 66,71 GB di pesi bfloat16. Si tratta di un grande modello visione-linguaggio, e la scheda non indica mai un numero di parametri, quindi la classe dimensionale è una deduzione dalla configurazione anziché un dato del fornitore. Sopra di esso si trova un adattatore LoRA con rank 8 e alpha 16, che interessa le proiezioni query, key, value e output oltre alla testa del modello linguistico, e quattro token speciali addestrabili: <wait>, <blank>, <chunk_708> e <speak>.

Quel set di token è l'intera idea in miniatura. A ogni chunk, il modulo Intent emette <speak> con del testo oppure <wait> senza nulla. Decidere quando parlare è una previsione separata dal decidere cosa dire, che è la differenza tra un modello che risponde quando ti fermi e uno che può intervenire, restare in silenzio o continuare a parlare mentre lo fai.

Il modulo Realization è un MiniMaxH3DiTModel: 50 strati con 5376 dimensioni nascoste, 56 teste di dimensione 128, una larghezza feed-forward di 14336, una patch 1×2×2, 24 canali latenti per il video e 32 per l'audio, e un token refiner a due strati che integra gli stati nascosti del modulo Intent nel condizionamento. È inizializzato dai pesi MiniMax H3, e il file NOTICE riporta la licenza upstream. Gli shard totalizzano 66,28 GB distribuiti su 535 tensori.

L'orologio che li lega insieme è il numero che vale la pena memorizzare. L'interazione procede in blocchi di 17 fotogrammi video a 24 fotogrammi al secondo — 708 millisecondi. Ogni blocco viene codificato come cinque latenti video con una suddivisione dei fotogrammi 1-4-4-4-4, e come 2×29 latenti audio, perché l'audio procede a 40 latenti al secondo per canale a 32 kHz, uno ogni 25 millisecondi. La codifica posizionale è RoPE tridimensionale ancorata al tempo di riproduzione. Le maschere di attenzione sono costruite in modo che nessun blocco possa vedere i contenuti multimediali puliti del proprio futuro, ed è ciò che rende l'intero meccanismo causale e in streaming anziché un modello di diffusione che necessita della clip completata prima di poter iniziare.

L'affermazione sulla latenza è reale, ed è un'affermazione relativa a otto GPU

La sezione sullo streaming del paper è la parte più concreta del rilascio, e la meno riproducibile sull'hardware che la maggior parte dei lettori ha a disposizione.

• Inferenza dell'intento — da 90 a 160 ms per chunk.

• Generazione latente congiunta a 768×576 — da 200 a 450 ms.

• Decodifica in streaming — circa 30 ms per gruppo di quattro fotogrammi.

• Overhead — circa 40 ms.

• Totale — da 330 a 650 ms, rispetto a un obiettivo di ciclo di 17/24 di secondo, con un ulteriore ritardo di campionamento di 708 ms se un enunciato termina a metà finestra.

Quei numeri provengono da una configurazione a otto GPU. Il modulo Intent viene eseguito in tensor-parallel su quattro rank sulle GPU 0–3 insieme al riconoscitore vocale; il transformer di diffusione si distribuisce su tutte e otto, scegliendo per ogni chunk il parallelismo tensoriale o di sequenza, a seconda di quale minimizzi il tempo di ciclo entro il limite di memoria; il VAE in streaming si suddivide spazialmente in quattro parti sulle GPU 4–7. Le GPU 0–3 eseguono Intent per il chunk k+1 mentre le GPU 4–7 decodificano il chunk k. L'output viene rilasciato come un'ancora di un frame più quattro pacchetti da quattro frame, e l'intervallo di riproduzione più breve, 1/24 di secondo pari a circa 41,7 ms, è deliberatamente più lungo della decodifica da 30 ms, così il buffer può assorbire il jitter.

Ora confronta i requisiti del README con quanto detto. Il deployment offline di riferimento richiede due GPU CUDA — una per Intent e i codec, una per Realization — due ambienti Python perché il pacchetto qwen-asr con versione bloccata si porta dietro la propria versione di Transformers, e FFmpeg nel PATH. È la configurazione su cui gira effettivamente la demo distribuita. Il valore di 330-650 ms presuppone otto GPU di un modello non specificato. Entrambi i numeri sono onesti; rispondono a domande diverse, e il divario tra loro è la distanza tra un risultato di un articolo e una macchina che puoi assemblare questa settimana.

A generated scoreboard for Duo-1.0-causal-base listing six dimensions: bundle size 153.46 GB, two modules Intent and Realization, a 708 ms chunk clock at 24 frames per second, a latency claim of 330 to 650 ms on eight GPUs, a self-scored evaluation of 93.3 percent of 180 checks, and a license excluding the US, UK, EU and South Korea, with a footer noting that no independent benchmark exists.

Il 93,3% è costituito dagli autori che correggono il proprio esame

La valutazione è insolita in un modo che merita di essere precisato prima che la percentuale venga citata in qualsiasi contesto.

Trenta casi duplex in tempo reale sono stati riprodotti affiancati su una linea temporale condivisa e valutati a velocità di riproduzione normale con audio, rispetto a sei criteri binari con condizioni di fallimento scritte: reattività dei contenuti, aderenza linguistica, intelligibilità del parlato, stabilità dell’identità visiva, sincronizzazione audiovisiva e coerenza emotiva audiovisiva. Su 180 verifiche, 168 sono state superate — 93,3%. Novanta su novanta sono stati superati complessivamente per aderenza linguistica, intelligibilità del parlato e stabilità dell’identità visiva. La coerenza emotiva si è attestata al 96,7%, l’allineamento labiale al 90,0% e la reattività dei contenuti al 73,3%, ovvero 22 su 30.

Seguono tre cose, e solo la prima è lusinghiera.

Innanzitutto, il 93,3% su 180 verifiche binarie con condizioni di fallimento scritte è un’affermazione più falsificabile di un Elo da classifica, e l’analisi dei fallimenti è insolitamente specifica: barzellette e osservazioni oblique che richiedono al modello di leggere oltre le parole letterali, e un intento che si chiarisce solo quando audio e video vengono letti insieme — l’esempio del paper è un utente al chiuso che menziona una bici condivisa mentre inizia a piovere, che il modello ha interpretato come una richiesta di consiglio anziché un cambio di scena.

In secondo luogo, i giudici sono gli autori. Non c’è alcuna valutazione condotta da terzi, nessuno studio comparativo in cieco, nessun panel di revisori esterni. Una rubrica binaria con condizioni scritte è lo strumento giusto; applicarla ai propri output non è una verifica indipendente.

Terzo, e più rivelatore, non c’è alcun confronto con una baseline in tutto il documento. L’unico confronto quantitativo è un’ablazione sulla sintesi dei dati: su una sequenza di sessanta secondi composta da dieci blocchi da sei secondi, la baseline perde 34,2 livelli di luma entro il nono blocco, mentre il metodo proposto si stabilizza intorno a 99. Il lavoro correlato — Moshi, Qwen-Omni, Wan-Streamer, EMO, OmniHuman, LiveTalk, Self Forcing, CausVid — è discusso qualitativamente, senza numeri di confronto diretto. Il documento non indica inoltre mai il numero di parametri né i volumi dei dati di addestramento. Quindi la sintesi onesta è che Duo v1 è stato misurato rispetto a una griglia di valutazione, non rispetto a un altro modello.

La licenza è la parte che decide la tua settimana

Questa è la sezione che cambia le decisioni di approvvigionamento, ed è sepolta in un file LICENSE da 17 KB anziché nella prosa della scheda del modello.

I pesi non sono sotto Apache-2.0. Il repository del codice sì; i pesi no. Ogni checkpoint Duo porta con sé la minimax-h3-community-license, perché il modulo Realization è stato inizializzato da MiniMax H3 e la licenza accompagna l'opera derivata. L'accordo all'interno del bundle è datato 2 agosto 2026 e definisce "MiniMax" come Nanonoble Pte. Ltd.

La sua concessione è limitata territorialmente. Per «Territorio Applicabile» si intende tutto il mondo, esclusi i Territori Esclusi, e i Territori Esclusi sono l'Unione Europea, il Regno Unito, la Repubblica di Corea e gli Stati Uniti d'America. Il testo della licenza invita chiunque si trovi in tali territori a contattare M​iniMax per ottenere una licenza «basata su solidi controlli e salvaguardie», che è una via, non un permesso.

In pratica: un gruppo di ricerca a Singapore, in Svizzera, in Giappone, in India, in Brasile o in Canada può scaricarlo ed eseguirlo oggi stesso alle condizioni indicate. Un team a San Francisco, Londra, Berlino o Seul non può, stando alla lettura letterale del file, e non dovrebbe scoprirlo al termine di un'integrazione di due settimane. È anche per questa asimmetria che la licenza — non il benchmark — è ciò da verificare prima di pianificare qualsiasi cosa.

Cosa puoi effettivamente eseguire oggi

Il percorso offline è documentato ed è breve. Clona il repository, crea due ambienti virtuali — uno per Realization, uno per lo stack vocale — scarica un bundle di base, copia configs/inference.example.json in configs/inference.json, fai in modo che punti ai pesi e ai due eseguibili Python, e avvia run_demo.py --config configs/inference.json --port 4173. L'interfaccia è una pagina del browser all'indirizzo /video/index.html.

Per lo streaming, il README rimanda a due branch: vLLM-Omni, contrassegnato come consigliato, e SGLang-Omni. È il percorso a cui si riferiscono i dati sulla latenza, nonché quello che richiede la configurazione a otto GPU.

Due avvertenze su ciò che vedrai. Le demo nella pagina del progetto provengono dai dati di addestramento e dall'inferenza offline — è indicato, e si aggiunge che i risultati in tempo reale a duplex completo «saranno aggiunti presto». E la release è esplicitamente un'anteprima: «Duo v1 è una release di anteprima per i ricercatori», che supporta «una conversazione audiovisiva di base», con la v2 promessa di condizionare Realization direttamente sull'audio e sul video dell'utente per l'interazione visiva. Se il tuo interesse è un modello che ti guarda e reagisce agli oggetti, quella capacità non è inclusa in questo rilascio.

Screenshot of the Duo-1.0-causal-base model card on Hugging Face, headed A Reciprocal World Model for Full-Duplex Interaction, showing the version table with Duo 1.0, causal base variant, complete model bundle and PyTorch Distributed Checkpoint format, the package contents listing Realization weights and backbone, Intent model and adapter, video and audio codecs, speech recognizer and forced aligner, the download command, and a license section naming the MiniMax H3 community license.

Chi dovrebbe interessarsi questa settimana e chi dovrebbe aspettare

• Ricerca sull'interazione full-duplex — questa è la release aperta più concreta della categoria: un paper con un budget di latenza, un clock di chunk, una ricetta di distillazione e pesi che si scaricano davvero. La distillazione dual-rollout — eseguire il rollout del modulo Intent congelato e poi generare media dagli output del modello stesso, anziché dalla cronologia registrata — è l'idea trasferibile anche se non eseguirai mai Duo.

• Team che sviluppano un prodotto avatar o companion — vale la pena leggerlo solo per come inquadra i 708 ms. È il numero che determina se un'interiezione dà l'impressione di una persona o di un ritardo, ed è un vincolo progettuale che puoi adottare senza adottare il modello.

• I team nei territori esclusi — aspettate e trattate la conversazione sulla licenza come il percorso critico anziché il budget per le GPU.

• Chiunque voglia un'API — non è di questo che si tratta. La model card afferma chiaramente che nessun provider di inferenza la sta erogando e che non esiste un endpoint del fornitore.

Quest'ultimo punto è dove un router si inserisce davvero e dove no. OrcaRouter non ospita Duo-1.0-causal-base e non può instradarlo: uno stack diffusion a due moduli da 153 GB con un clock a chunk fisso di 708 ms non è un target di chat-completions, e nessuna quantità di routing cambia questo fatto. Ciò che è instradabile è il fallback a turni che la maggior parte dei team rilascia mentre un esperimento duplex gira dietro un flag: voce in ingresso, un modello linguistico, voce in uscita. Il ramo di uscita vocale può essere un modello text-to-speech ospitato anziché un altro processo sulle stesse due GPU, e farlo tramite un'unica API per oltre 200 modelli con il prezzo di listino del fornitore trasferito a un markup dello 0% mantiene invariata l'aritmetica dei costi quando un fornitore cambia un prezzo. Il failover automatico appartiene a quei rami ospitati, non a quello self-hosted: mantiene in vita una demo quando un fornitore vacilla e non fa nulla per uno stack che stai eseguendo sul tuo hardware.

L'altro uso onesto è la disciplina di valutazione. Mantieni il percorso di produzione su modelli che puoi chiamare e tratta Duo-1.0-causal-base come un esperimento di benchmark con una rubrica scritta — il che, dato che l'unica rubrica esistente è stata applicata dai suoi autori, è esattamente ciò che è.

Che cosa cambierebbe il verdetto

Tre cose, in ordine crescente di quanto conterebbero.

Una terza parte che valuta i sei criteri su prompt che il team Duo non ha scelto. La rubrica è già pubblicata, il che rende economico per qualcuno farlo e costoso per il modello se la reattività ai contenuti è davvero del 73,3% sui casi non visti.

Un endpoint hosted o una serving recipe che non presuppone otto GPU. La demo offline a due GPU e l'affermazione sulla latenza a otto GPU sono entrambe vere, e il divario tra le due è dove vivrà davvero la maggior parte dei lettori.

Termini di licenza che includono i territori esclusi. Nulla nell'architettura cambia quell'aritmetica, e nemmeno qualsiasi miglioramento dei benchmark lo fa.

Fino ad allora, la descrizione accurata di Duo-1.0-causal-base è questa: un bundle di ricerca completo, senza gating, da 153 GB, con un vero budget di latenza e una valutazione autovalutata, rilasciato come paper e repository con una riga di notizie datata e nessun prodotto alle spalle. È più di un preprint — i pesi ci sono e la demo funziona — e considerevolmente meno di un modello su cui pianificare un trimestre. La domanda aperta non è se Duo riesca a sostenere una conversazione in fette da 708 millisecondi. È se a qualcuno fuori dal team sarà permesso verificare.

Screenshot of the inclusionAI Duo GitHub README showing the news entries dated 2026/11/13 for the arXiv paper, the vLLM-Omni and SGLang-Omni streaming pipelines and the Duo v1 weights, followed by the model releases table listing v1.0 causal base, distilled and quantized checkpoints, v1.2 with quality improvements, and v2.0 visual interaction marked coming soon, and the requirements section asking for Linux, Python 3.10, FFmpeg and two CUDA GPUs.