Um cartão de título gerado com o texto Duo-1.0-causal-base, com três marcadores datados — artigo 11 de novembro, pesos 12 de novembro, notícias do repositório 13 de novembro — ao lado de uma nota de que a licença comunitária exclui a UE, o Reino Unido, a Coreia do Sul e os Estados Unidos.
Engineering & Research

Duo-1.0-causal-base: 153 GB de pesos, um artigo e nenhum post de lançamento

Autor

Rowan Sterling

Data de publicação

Modelos mais recentes · 20Ver todos os modelos →
Benchmarks: Artificial Analysis · atualizado diariamente
Voltar para todas as publicações

Às 06:32 UTC de 12 de novembro, um repositório do Hugging Face chamado Duo-1.0-causal-base recebeu seu commit inicial: 80 arquivos, 153,46 GB, e um pacote contendo um backbone de visão e linguagem, um transformer de difusão audiovisual, dois codecs, um reconhecedor de fala e um alinhador forçado. O artigo por trás dele havia sido publicado no arXiv no dia anterior. Três repositórios irmãos surgiram dentro de vinte e quatro horas, um deles ainda sendo enviado esta manhã. O próprio bloco de notícias do repositório, datado de 13 de novembro, chama tudo isso de lançamento. Quase nada mais o faz. Não há post de lançamento, endpoint hospedado, página de preços nem benchmark independente para Duo-1.0-causal-base que eu consiga encontrar — e o arquivo de licença dentro desses 153 GB exclui a União Europeia, o Reino Unido, a Coreia do Sul e os Estados Unidos da sua concessão.

Portanto, este não é um texto de lançamento, porque não houve lançamento. Também não é um texto de vazamento, porque os pesos são públicos, sem restrições de acesso e completos. O que segue separa as duas coisas que se confundem sempre que um laboratório de pesquisa publica um repositório em vez de um produto: o que os arquivos e o artigo de fato estabelecem, e o que ninguém confirmou ainda.

O que chegou e em que ordem

A sequência pode ser lida a partir dos metadados do repositório, o que importa porque é o único registro de origem própria.

• O artigo — arXiv 2611.15131, Duo: Um Modelo de Mundo Recíproco para Interação Full-Duplex, vinte autores, de Hengyuan Cao a Zhenzhong Lan, submetido em 11 de novembro de 2026. A página do artigo no Hugging Face mostra 27 votos positivos e nenhuma cobertura além dela.

• Os pesos — quatro repositórios sob a organização inclusionAI, que se descreve como a casa da iniciativa AGI do Ant Group e cuja página do projeto traz um copyright de 2026 da Ant Research. Duo-1.0-causal-base e Duo-1.2-causal-base foram criados às 06:30 e 06:32 UTC em 12 de novembro; Duo-1.0-distill vinte e cinco segundos antes; Duo-1.0-distill-quant hoje de manhã às 08:09 UTC.

• O código — github.com/inclusionAI/Duo, Apache-2.0, criado em 6 de novembro, mas contendo exatamente um commit, com carimbo de data/hora 09:13 UTC de hoje, com seis estrelas e nenhum fork no momento da redação.

• A declaração — o bloco de novidades do README, com todas as três linhas datadas de 2026/11/13: o artigo, os pipelines de streaming vLLM-Omni e SGLang-Omni, e os pesos v1 mais o código de inferência offline.

Os tamanhos dos pacotes são a primeira coisa sobre a qual um leitor pode agir, porque não são intercambiáveis.

• Duo-1.0-causal-base — 153,46 GB em 80 arquivos. Pesos de realização 69,07 GB, modelo de Intenção 66,73 GB, codecs de vídeo e áudio 11,02 GB, pilha de fala 6,54 GB, e um adaptador de 84,8 MB.

• Duo-1.2-causal-base — 153.46 GB em 80 arquivos, descrito apenas como "qualidade de geração aprimorada", com suas variantes destiladas e quantizadas listadas como em breve.

• Duo-1.0-distill — 2,78 GB, oito arquivos. Uma camada de sobreposição, não um modelo: ela é baixada no mesmo diretório do pacote base e substitui as configurações do sampler por Euler em quatro passos e um deslocamento de fluxo de 5,0, em contraste com cinquenta passos a 1,0 para o pacote base.

• Duo-1.0-distill-quant — 47,03 GB. A mesma sobreposição em quatro etapas no ModelOpt FP8 com escala por canal, e a ficha deixa explícito que o runtime precisa oferecer suporte a esse formato ou uma rota de conversão.

Dois módulos e um relógio de 708 milissegundos

A arquitetura é legível a partir dos arquivos de configuração, o que é mais do que a maioria dos cartões de modelo oferece. O Duo divide o trabalho em duas partes.

O módulo Intent é declarado como Qwen3VLForConditionalGeneration — 64 camadas com 5120 de dimensão oculta, 64 cabeças de atenção com 8 cabeças de chave-valor, um tamanho intermediário de 25600, um vocabulário de 151.936 tokens e uma torre de visão de 27 camadas com tamanho de patch 16. Os shards somam 66,71 GB de pesos bfloat16. Esse é um grande modelo de visão-linguagem, e o card nunca informa uma contagem de parâmetros, portanto a classe de tamanho é uma inferência a partir da config, e não um número do fornecedor. Sobre ele há um adaptador LoRA com rank 8 e alpha 16, aplicado às projeções query, key, value e output, além da cabeça do modelo de linguagem, e quatro tokens especiais treináveis: <wait>, <blank>, <chunk_708> e <speak>.

Esse conjunto de tokens é a ideia toda em miniatura. A cada chunk, o módulo Intent emite ou <speak> com texto ou <wait> sem nada. Decidir quando falar é uma previsão separada de decidir o que dizer, o que é a diferença entre um modelo que responde quando você para e um que pode interromper, manter silêncio ou continuar falando enquanto você fala.

O módulo Realization é um MiniMaxH3DiTModel: 50 camadas com 5376 de dimensão oculta, 56 cabeças de dimensão 128, uma largura de feed-forward de 14336, um patch 1×2×2, 24 canais latentes para vídeo e 32 para áudio, e um refinador de tokens de duas camadas que incorpora os estados ocultos do módulo Intent ao condicionamento. Ele é inicializado a partir dos pesos do MiniMax H3, e o arquivo NOTICE indica a licença upstream. Os shards totalizam 66,28 GB em 535 tensores.

O relógio que os une é o número que vale a pena memorizar. A interação corre em blocos de 17 quadros de vídeo a 24 quadros por segundo — 708 milissegundos. Cada bloco é codificado como cinco latentes de vídeo com uma divisão de quadros 1-4-4-4-4, e como 2×29 latentes de áudio, porque o áudio corre a 40 latentes por segundo por canal a 32 kHz, um a cada 25 milissegundos. A codificação posicional é RoPE tridimensional indexada ao tempo de reprodução. As máscaras de atenção são construídas de modo que nenhum bloco consiga ver a mídia limpa do seu próprio futuro, e é isso que torna tudo causal e transmissível em fluxo, em vez de um modelo de difusão que precisa do clipe terminado antes de poder começar.

A alegação de latência é real, e é uma alegação de oito GPUs.

A seção de streaming do artigo é a coisa mais concreta no lançamento, e a menos reproduzível no hardware que a maioria dos leitores possui.

• Inferência de intenção — 90 a 160 ms por trecho.

• Geração latente conjunta em 768×576 — 200 a 450 ms.

• Decodificação em streaming — cerca de 30 ms por grupo de quatro quadros.

• Sobrecarga — cerca de 40 ms.

• Total — 330 a 650 ms, contra uma meta de ciclo de 17/24 de segundo, com mais 708 ms de atraso de amostragem se um enunciado terminar no meio da janela.

Esses números vêm de um layout de oito GPUs. O módulo Intent é executado em paralelismo de tensores em quatro ranks nas GPUs 0–3, ao lado do reconhecedor de fala; o transformer de difusão se distribui por todas as oito, escolhendo paralelismo de tensores ou de sequência por chunk conforme o que minimiza o tempo de ciclo sob o limite de memória; o VAE de streaming divide o espaço em quatro partes nas GPUs 4–7. As GPUs 0–3 executam o Intent para o chunk k+1 enquanto as GPUs 4–7 decodificam o chunk k. A saída é liberada como uma âncora de um quadro mais quatro pacotes de quatro quadros, e o intervalo de reprodução mais curto, 1/24 de segundo, cerca de 41,7 ms, é deliberadamente maior que os 30 ms de decodificação para que o buffer absorva o jitter.

Agora leia os requisitos do README em relação a isso. A implantação offline de referência exige duas GPUs CUDA — uma para Intent e os codecs, outra para Realization — dois ambientes Python, porque o pacote qwen-asr fixado arrasta sua própria versão do Transformers, e FFmpeg no PATH. Essa é a configuração que a demo fornecida realmente executa. O valor de 330 a 650 ms pressupõe oito GPUs de um modelo não especificado. Ambos os números são honestos; eles respondem a perguntas diferentes, e a diferença entre eles é a distância entre um resultado de artigo e uma máquina que você consegue montar nesta semana.

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.

93,3% são os autores corrigindo a própria prova.

A avaliação é incomum de um modo que merece ser declarado antes de a porcentagem ser citada em qualquer lugar.

Trinta casos duplex em tempo real foram reproduzidos lado a lado em uma linha do tempo compartilhada e avaliados em velocidade normal de reprodução com som, segundo seis critérios binários com condições de falha escritas: capacidade de resposta do conteúdo, aderência ao idioma, inteligibilidade da fala, estabilidade da identidade visual, sincronização audiovisual e consistência emocional audiovisual. De 180 verificações, 168 foram aprovadas — 93,3%. Noventa de noventa foram aprovadas nos critérios de aderência ao idioma, inteligibilidade da fala e estabilidade da identidade visual combinados. A consistência emocional ficou em 96,7%, o alinhamento labial em 90,0% e a capacidade de resposta do conteúdo em 73,3%, ou 22 de 30.

Seguem-se três coisas, e apenas a primeira é lisonjeira.

Primeiro, 93,3% em 180 verificações binárias com condições de falha escritas é uma afirmação mais falseável do que um Elo de ranking, e a análise de falhas é excepcionalmente específica: piadas e comentários oblíquos que exigem que o modelo leia além das palavras literais, e intenção que só se resolve quando fala e vídeo são lidos em conjunto — o exemplo do artigo é um usuário em ambiente interno mencionando uma bicicleta compartilhada quando começa a chover, o que o modelo tratou como um pedido de conselho em vez de uma mudança de cena.

Segundo, os juízes são os autores. Não há execução por terceiros, nenhum estudo cego de comparação par a par, nenhum painel de revisores externos. Uma rubrica binária com condições escritas é o instrumento correto; aplicá-la às suas próprias saídas não é verificação independente.

Terceiro, e mais revelador, não há comparação com linha de base em nenhum lugar do artigo. O único contraste quantitativo é uma ablação sobre síntese de dados: ao longo de uma sequência de sessenta segundos composta por dez blocos de seis segundos, a linha de base perde 34,2 níveis de luma até o nono bloco, enquanto o método proposto se estabiliza em cerca de 99. Trabalhos relacionados — Moshi, Qwen-Omni, Wan-Streamer, EMO, OmniHuman, LiveTalk, Self Forcing, CausVid — são discutidos qualitativamente, sem números comparativos diretos. O artigo também nunca informa contagens de parâmetros ou volumes de dados de treinamento. Portanto, o resumo honesto é que o Duo v1 foi medido contra uma rubrica, não contra outro modelo.

A licença é a parte que decide a sua semana

Esta é a seção que muda as decisões de compra, e ela está enterrada em um arquivo LICENSE de 17 KB, em vez da prosa da ficha do modelo.

Os pesos não são Apache-2.0. O repositório de código é; os pesos não são. Todo checkpoint Duo carrega minimax-h3-community-license, porque o módulo Realization foi inicializado a partir do MiniMax H3 e a licença acompanha a obra derivada. O acordo dentro do pacote é datado de 2 de agosto de 2026 e define "M​iniMax" como Nanonoble Pte. Ltd.

Sua concessão é territorialmente limitada. “Território Aplicável” significa todo o mundo, excluindo os Territórios Excluídos, e os Territórios Excluídos são a União Europeia, o Reino Unido, a República da Coreia e os Estados Unidos da América. O texto da licença convida qualquer pessoa nesses territórios a entrar em contato com a M​iniMax para obter uma licença “com base em controles e salvaguardas robustos”, o que é uma via, não uma permissão.

Na prática: um grupo de pesquisa em Singapura, Suíça, Japão, Índia, Brasil ou Canadá pode baixar e executar isto hoje sob os termos declarados. Uma equipe em São Francisco, Londres, Berlim ou Seul não pode, pela leitura literal do arquivo, e não deveria descobrir isso ao final de duas semanas de integração. Essa assimetria também é o motivo pelo qual a licença — não o benchmark — é o que se deve verificar antes de agendar qualquer coisa.

O que você pode realmente executar hoje

O caminho offline está documentado e é curto. Clone o repositório, crie dois ambientes virtuais — um para Realization, outro para o stack de fala — baixe um pacote base, copie configs/inference.example.json para configs/inference.json, aponte-o para os pesos e para os dois executáveis Python e inicie run_demo.py --config configs/inference.json --port 4173. A interface é uma página do navegador em /video/index.html.

Para streaming, o README aponta para dois branches: {{1}}vLLM-Omni{{/1}}, marcado como recomendado, e {{2}}SGLang-Omni{{/2}}. Esse é o caminho que os números de latência descrevem, e o que precisa do layout de oito GPUs.

Duas ressalvas sobre o que você verá. As demonstrações da página do projeto são extraídas de dados de treinamento e inferência offline — a página diz isso e acrescenta que os resultados em tempo real e full-duplex "serão adicionados em breve". E o lançamento é explicitamente uma prévia: "O Duo v1 é uma versão de prévia para pesquisadores", com suporte a "conversa audiovisual básica", e a v2 promete condicionar o Realization diretamente ao áudio e ao vídeo do usuário para interação visual. Se o seu interesse é um modelo que observa você e reage a objetos, esse recurso não está nesta versão.

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.

Quem deve se importar esta semana e quem deve esperar

• Pesquisa de interação full-duplex — este é o lançamento aberto mais concreto da categoria: um artigo com um orçamento de latência, um relógio de chunks, uma receita de destilação e pesos que realmente podem ser baixados. A destilação com rollout duplo — executar o módulo Intent congelado e depois gerar mídia a partir das próprias saídas do modelo, em vez de a partir do histórico registrado — é a ideia transferível, mesmo que você nunca execute o Duo.

• Equipes que criam um produto de avatar ou companheiro — vale a leitura só pelo enquadramento dos 708 ms. Esse é o número que decide se uma interjeição parece uma pessoa ou um atraso, e é uma restrição de design que você pode adotar sem adotar o modelo.

• Equipes nos territórios excluídos — esperem, e tratem a conversa sobre licenciamento como o caminho crítico, em vez do orçamento de GPU.

• Quem quer uma API — isto não é isso. O cartão do modelo afirma claramente que nenhum provedor de inferência o está a servir, e não há endpoint de fornecedor.

Esse último ponto é onde um roteador de fato se encaixa — e onde não se encaixa. O OrcaRouter não hospeda o Duo-1.0-causal-base e não consegue roteá-lo: uma pilha de difusão de dois módulos de 153 GB com um relógio de chunks fixo de 708 ms não é um alvo de chat-completions, e nenhuma quantidade de roteamento muda isso. O que é roteável é o fallback baseado em turnos que a maioria das equipes entrega enquanto um experimento duplex roda atrás de uma flag — fala entra, um modelo de linguagem, fala sai. A perna de saída de fala pode ser um modelo de text-to-speech hospedado, em vez de outro processo nas mesmas duas GPUs, e fazer isso por meio de uma única API para mais de 200 modelos, com o preço de lista do provedor repassado com 0% de markup, mantém a aritmética de custos inalterada quando um fornecedor muda um preço. O failover automático pertence a essas pernas hospedadas, não à auto-hospedada: ele mantém uma demo viva quando um provedor oscila e não faz nada por uma pilha que você está executando no seu próprio hardware.

O outro uso honesto é a disciplina de avaliação. Mantenha o caminho de produção em modelos que você consegue chamar e trate o Duo-1.0-causal-base como um experimento de bancada com uma rubrica escrita — o que, dado que a única rubrica existente foi aplicada por seus próprios autores, é exatamente o que ele é.

O que mudaria o veredito?

Três coisas, em ordem crescente de quanto importariam.

Um terceiro avaliando os seis critérios em prompts que a equipe do Duo não escolheu. A rubrica já foi publicada, o que torna isso barato para alguém fazer e caro para o modelo se a responsividade de conteúdo for realmente 73,3% em casos não vistos.

Um endpoint hospedado ou uma receita de serving que não pressupõe oito GPUs. A demonstração offline com duas GPUs e a alegação de latência com oito GPUs são ambas verdadeiras, e a lacuna entre elas é onde a maioria dos leitores realmente estará.

Termos de licença que incluem os territórios excluídos. Nada na arquitetura altera essa aritmética, e nenhuma melhoria de benchmark altera também.

Até então, a descrição precisa do Duo-1.0-causal-base é esta: um pacote de pesquisa completo, sem restrições de acesso, de 153 GB, com um orçamento de latência real e uma avaliação autoavaliada, lançado como um artigo e um repositório com uma nota de notícias datada e nenhum produto por trás. Isso é mais do que um preprint — os pesos estão lá e a demo funciona — e consideravelmente menos do que um modelo em torno do qual se possa planejar um trimestre. A questão em aberto não é se o Duo consegue manter uma conversa em fatias de 708 milissegundos. É se alguém fora da equipe terá permissão para verificar.

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.