Phase 12 - Lesson 16

MIO e Modelos Multimodais de Streaming Any-to-Any

O GPT-4o entrega um produto que a maioria dos modelos abertos não consegue replicar: um agente que ouve voz, vê vídeo e responde por voz em tempo real. A resposta do ecossistema aberto no final de 2024 foi o MIO (Wang et al., setembro de 2024). O MIO tokeniza texto, imagem, fala e música, treina um transformer causal sobre as sequências intercaladas e gera qualquer modalidade a partir de qualquer modalidade. O AnyGPT (Zhan et al., fevereiro de 2024) foi a prova de conceito; o MIO é o ganho de escala (scale-up); o Unified-IO 2 (Allen AI, dezembro de 2023) é o primo com ancoragem (grounding) de visão e ação. Esta lição aborda o padrão any-to-any — quatro tokenizadores, um transformer e decodificação amigável para streaming.

Tipo: Aprender Idiomas: Python (stdlib, alocador de tokens de quatro modalidades + loop de decodificação em streaming) Pré-requisitos: Fase 12 · 11 (Chameleon), Fase 6 (Speech and Audio) Tempo: ~120 minutos

Objetivos de Aprendizado

  • Projetar um vocabulário compartilhado que hospede tokens de texto, imagem, fala e música sem colisões.
  • Comparar o SEED-Tokenizer (imagens) e o SpeechTokenizer residual-VQ (fala) em termos de compensações (trade-offs) entre compressão e reconstrução.
  • Explicar o currículo de quatro estágios que constrói a geração any-to-any.
  • Nomear as três receitas abertas de any-to-any e suas principais compensações: MIO, AnyGPT, Unified-IO 2.

O Problema

Um modelo multimodal unificado é fácil de prometer e difícil de construir em escala. A maioria dos sistemas "any-to-any" até 2024 funcionava em pipeline: modelo de visão → representação de texto → modelo de fala → áudio. Cada etapa perde informação, adiciona latência e complica o treinamento. O vídeo de demonstração do GPT-4o mostrou uma alternativa de modelo único com resposta em menos de um segundo; os sistemas abertos ficaram meses atrás.

Os desafios de engenharia:

  • Devem existir tokenizadores para cada modalidade, que comprimam de forma suficientemente sem perdas para reconstrução e produzam tokens em taxas que o transformer possa consumir.
  • Um único vocabulário deve alocar espaço para texto (32k+), imagem (16k+), fala (4k+) e música (8k+). No mínimo, mais de quarenta mil entradas.
  • Os dados de treinamento devem cobrir cada par de entrada-saída (texto→imagem, imagem→fala, fala→imagem, etc.) ou o modelo deve ser capaz de compor.
  • A inferência deve transmitir tokens de saída em streaming rápido o suficiente para latência de conversação (<500ms de tempo para o primeiro byte de áudio/time-to-first-audio-byte).

O Conceito

Quatro tokenizadores para quatro modalidades

A pilha de tokenizadores do MIO:

  • Texto: BPE padrão, vocabulário de ~32000.
  • Imagem: SEED-Tokenizer (2023) — VAE quantizado com dicionário de códigos (codebook) discreto, 4096 entradas, 32x32 tokens por imagem.
  • Fala: SpeechTokenizer residual-VQ (2023) — codifica forma de onda de 16kHz em 8 dicionários de códigos hierárquicos; o primeiro nível é o conteúdo bruto, os níveis posteriores adicionam prosódia e identidade do locutor.
  • Música: residual-VQ semelhante (família MusicGen / Encodec da Meta), 4-8 dicionários de códigos.

Cada modalidade produz tokens inteiros. Os tokens recebem intervalos de IDs disjuntos no vocabulário compartilhado:

text:   0..31999
image:  32000..36095  (4096 image tokens)
speech: 36096..40191  (4096 speech base tokens, plus residual layers)
music:  40192..48383  (8192 music tokens)
sep:    48384..48390  (<image>, <speech>, <music>, </...>, etc.)

Total: vocabulário de ~48k. O embedding de entrada e a projeção de saída abrangem todo ele.

Decodificação em streaming

A geração de fala usa residual-VQ. O transformer prevê os tokens de fala base (camada 0); um quantizador residual decodificado em paralelo prevê as camadas subsequentes. Cada token da camada 0 representa aproximadamente 50ms de áudio a 16kHz.

O padrão de streaming:

  1. O usuário fala no microfone; o tokenizador de áudio em tempo real emite tokens de fala a cada 50ms.
  2. O MIO consome os tokens conforme eles chegam (preenchimento de prompt/prefill + passagem direta/forward incremental).
  3. Os tokens de saída são transmitidos em tempo real conforme são gerados; um decodificador de fala paralelo os converte em amostras de áudio com latência de ~50-150ms.
  4. Tempo para o primeiro byte de áudio: ~300-500ms no artigo do MIO, aproximando-se dos ~250ms do GPT-4o.

Mini-Omni (arXiv:2408.16725), GLM-4-Voice (arXiv:2412.02612) e Moshi (arXiv:2410.00037) são designs complementares de LLM de fala em streaming. O Moshi, em particular, alcança 160ms de ida e volta (round-trip) em uma única GPU.

Currículo de quatro estágios

Currículo de treinamento do MIO:

  1. Estágio 1 — alinhamento. Corpora de pares de modalidades em larga escala: texto-imagem, texto-fala, texto-música. Cada par usa seu próprio segmento de vocabulário de tokens. Treina o vocabulário compartilhado.
  2. Estágio 2 — intercalado. Documentos intercalados de múltiplas modalidades (blogs com imagens + vídeo, podcasts com transcrições, etc.). Treina o contexto entre modalidades (cross-modality).
  3. Estágio 3 — aprimorado por fala. Dados de áudio extras para elevar a qualidade da fala sem perder a capacidade de texto.
  4. Estágio 4 — SFT. Ajuste fino de instruções (instruction tuning) entre modalidades: VQA, legendagem, narração, diálogo fala-para-fala (speech-to-speech).

Pular um estágio degrada capacidades específicas: pule o estágio 2 e o modelo perde o contexto de cruzamento de modalidades; pule o estágio 3 e a fala fica ruim.

Cadeia de pensamento visual (Chain-of-visual-thought)

O MIO introduz a cadeia de pensamento visual (chain-of-visual-thought): o modelo emite tokens de imagem intermediários como uma etapa de raciocínio. Para "o gato está subindo em uma árvore?", o modelo:

  1. Emite tokens <image> renderizando a cena (a partir da imagem de entrada ou de um esboço).
  2. Emite texto analisando o esboço.
  3. Emite a resposta final.

A imagem intermediária renderizada serve como um rascunho (scratchpad). Os benchmarks melhoram em tarefas de raciocínio espacial. A ideia espelha a cadeia de pensamento (chain-of-thought) para raciocínio em texto.

Concorrentes em any-to-any

  • AnyGPT (arXiv:2402.12226): 4 modalidades (texto, imagem, fala, música), design semelhante.
  • Unified-IO 2 (arXiv:2312.17172): adiciona saídas de ação de visão, profundidade, normais. Mais diversidade de tarefas, menor escala.
  • NExT-GPT (arXiv:2309.05519): LLM + decodificadores de difusão específicos para cada modalidade. Não é uma abordagem de modelo único.
  • CoDi (arXiv:2305.11846): difusão combinável; any-to-any via espaço latente compartilhado.

O MIO é o mais próximo de um any-to-any de token puro. O AnyGPT é seu ancestral conceitual.

Orçamento de latência

Para um produto de conversação, a latência de cada componente importa:

  • Do microfone aos tokens de áudio: ~50ms.
  • Prefill (tokens de áudio + histórico): ~100ms em um modelo 8B.
  • Primeiro token de saída: ~50ms.
  • Residual-VQ paralelo + decodificador de fala: ~100-150ms.

Tempo total para o primeiro byte de áudio (TTFAB): mínimo de ~300ms. O GPT-4o afirma ~250ms. O Moshi afirma 160ms. MIO/AnyGPT estão na faixa de 400-600ms de acordo com os benchmarks públicos.

Por que o any-to-any continua difícil

Mesmo em 2026, os modelos abertos de any-to-any ficam atrás dos fechados em dois eixos:

  • Qualidade da fala. O tokenizador residual-VQ apresenta perdas (lossy); a fala conversacional soa robótica em comparação com vozes da classe do ElevenLabs.
  • Raciocínio entre modalidades. Pedir ao modelo para "cantar sobre o que você vê" ainda falha com mais frequência do que tarefas de visão pura.

Estes são problemas de pesquisa em aberto. O Qwen3-Omni (Lição 12.20) é a tentativa aberta mais avançada em 2025.

Use-o

code/main.py:

  • Define a alocação de vocabulário de quatro modalidades e a imprime.
  • Encaminha uma lista de entradas multimodais (texto, imagem, clipe de áudio, música) pelo roteador de tokenizadores.
  • Simula a decodificação em streaming para uma resposta de conversão de texto em fala (TTS) com contagem de latência.
  • Computa o tempo esperado para o primeiro byte de áudio, dadas as latências do codificador, prefill e decodificador.

Envie-o

Esta lição produz outputs/skill-any-to-any-pipeline-auditor.md. Dada uma especificação de produto de conversação (modalidades de entrada, modalidades de saída, meta de latência), ela audita as escolhas de design da família MIO e calcula o orçamento de latência.

Exercícios

  1. Seu produto aceita entrada de fala e retorna saída de fala. Qual é a meta de orçamento de latência de ponta a ponta? Liste os componentes que consomem tempo.

  2. O SpeechTokenizer residual-VQ usa 8 dicionários de códigos (codebooks). Proponha por que a decodificação em paralelo dos níveis residuais é necessária (vs. sequencial) e quais economias de latência ela traz.

  3. Seu vocabulário tem 32k de texto + 4k de imagem + 4k de fala. Adicione 8k de música e ~10 separadores. Qual é o custo de parâmetros da matriz de embeddings com dimensão oculta de 4096?

  4. A cadeia de pensamento visual (chain-of-visual-thought) emite uma imagem intermediária. Que tipos de perguntas são beneficiadas? Que tipos são prejudicadas pelos tokens extras?

  5. Leia o Moshi (arXiv:2410.00037). Descreva sua técnica de "monólogo interno" (inner monologue) e compare-a com a cadeia de pensamento visual do MIO.

Termos-Chave

Termo O que as pessoas dizem O que realmente significa
Any-to-any "Entrada/saída multimodal" Um único modelo que aceita e emite texto, imagem, fala e música em qualquer direção
Residual-VQ "Pilha de tokenizadores de fala" Tokenização de múltiplos dicionários de códigos (multi-codebook) onde cada camada adiciona informação; a camada base é o conteúdo, as camadas posteriores são a prosódia
SEED-Tokenizer "Códigos de imagem" Tokenizador de imagem discreto com dicionário de códigos de 4096 entradas usado pelo MIO
Chain-of-visual-thought "Rascunho visual" O modelo gera uma imagem intermediária como uma etapa de raciocínio antes de sua resposta final
Time-to-first-audio-byte "TTFAB" Latência da voz do usuário até a primeira saída de áudio; <500ms para sensação de conversação
Currículo de quatro estágios "Receita de treinamento" Alinhamento -> intercalado -> aprimorado por fala -> SFT, nessa ordem

Leitura Adicional

0 lifetime access. Curriculum based on AI Engineering from Scratch by Rohit Ghumare (MIT, used under attribution).