MIO y modelos multimodal de transmisión de cualquier persona a cualquier persona
Type: Learn
Languages: Python (stdlib, four-modality token allocator + streaming decode loop)
Prerequisites: Phase 12 · 11 (Chameleon), Phase 6 (Speech and Audio)
Time: ~120 minutes
Objetivos de aprendizaje
- Diseñe un vocabulario compartido que albergue textos, imágenes, voz y fichas de música sin colisiones.
- Comparar SEED-Tokenizer (imágenes) y SpeechTokenizer residual-VQ (habla) en compresión + reconstrucción trade-offs.
- Explica el plan de estudios de cuatro etapas que construye a cualquier generación.
- Nombrar las tres recetas abiertas a cualquier persona y sus principales compensaciones: MIO, AnyGPT, Unified-IO 2.
El problema
Un modelo multimodal unificado es fácil de reclamar y difícil de construir a escala. La mayoría de los sistemas "de cualquier a cualquier" hasta 2024 fueron enducidos: modelo de visión → representación de texto → modelo de habla → audio. Cada espera pierde información, agrega latencia y complica el entrenamiento.
Los retos de ingeniería:
- Los tokenizers deben existir para cada modalidad, comprimir sin pérdidas - lo suficiente para la reconstrucción, y producir tokens a las tasas que el transformador puede consumir.
- Un vocabulario único debe asignar espacio para texto (32k+), imagen (16k+), habla (4k+), música (8k+).
- Los datos de formación deben cubrir cada par de entradas y salidas (texto→imagen, imagen→habla, habla→imagen, etc.) o el modelo debe componerse.
- La inferencia debe transmitir tokens de salida lo suficientemente rápido como para la latencia de conversación (<500ms tiempo-a-primero-byte de audio).
El concepto
Cuatro tokenizers para cuatro modalidades
La pila de tokenizadores de MIO:
- Texto: BPE estándar, vocabulario ~32000.
- Imagen: SEED-Tokenizer (2023) VAE cuantizado con libro de código discreto, 4096 entradas, 32x32 tokens por imagen.
- Habla: SpeechTokenizer residual-VQ (2023) codifica la forma de onda de 16 kHz en 8 libros de código jerárquicos; el primer nivel es contenido grueso, los niveles posteriores añaden prosodia e identidad del altavoz.
- Música: VQ residual similar (familia MusicGen / Encodec de Meta), 4-8 libros de código.
Cada modalidad produce tokens de números enteros. Los tokens obtienen rangos de ID desarticulados en el vocabulario compartido:
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: ~ 48k vocabulario. La entrada de inserción y la proyección de salida abarcan todo ello.
Descódigo de transmisión
La generación de voz utiliza residual-VQ. El transformador predice las fichas de voz de base (capas 0); un cuantificador residual decodificado en paralelo predice las capas posteriores. Cada token de capas 0 es aproximadamente 50 ms de audio a 16 kHz.
El patrón de transmisión:
- El usuario habla en el micrófono; el tokenizer de audio en tiempo real emite tokens de voz cada 50 ms.
- MIO consume tokens a su llegada (precarga inmediata + adelanto incremental).
- Los tokens de salida se transmiten como generados; un decodificador de voz paralelo los convierte en muestras de audio con ~50-150ms de latencia.
- Tiempo a primer byte de audio: ~300-500 ms en papel MIO, acercándose a ~250 ms de GPT-4o.
Mini-Omni (arXiv:2408.16725), GLM-4-Voice (arXiv:2412.02612), y Moshi (arXiv:2410.00037) son diseños complementarios de transmisión de voz-LLM. Moshi en particular logra 160ms de ida y vuelta en una sola GPU.
Currículo de cuatro etapas
Programa de formación del MIO:
- Estadio 1 Alineación. Corporación de pareja de modalidad a gran escala: imagen de texto, discurso de texto, música de texto. Cada pareja utiliza su propio segmento de vocabulario token. Entrena el vocabulario compartido.
- Esta etapa 2 interconectado. Documentación interconectada de múltiples modalidades (blogs con imágenes + video, podcasts con transcripciones, etc.).
- Etapa 3 mejorado con voz. Datos de audio adicionales para elevar la calidad del habla sin perder la capacidad del texto.
- Fase 4 FIS. La instrucción se ajusta a través de modalidades: VQA, subtítulos, narración, diálogo discurso a discurso.
El hecho de que no haya una etapa degrada las capacidades específicas: omitir la etapa 2 y el modelo pierde el contexto de modalidad cruzada; omitir la etapa 3 y el habla es pobre.
La cadena del pensamiento visual
MIO introduce la cadena de pensamiento visual: el modelo emite fichas de imagen intermedias como un paso de razonamiento.
- Emite
<image>fichas que renten la escena (desde la imagen de entrada o un boceto). - Emite un texto analizando el boceto.
- Emite la respuesta final.
La imagen intermedia que se hace servir de raspad. Los puntos de referencia mejoran las tareas de razonamiento espacial. La idea refleja la cadena de pensamiento para el razonamiento de texto.
Los competidores en cualquier
- AnyGPT (arXiv:2402.12226): 4 modalidades (texto, imagen, habla, música), diseño similar.
- Unified-IO 2 (arXiv:2312.17172): añade resultados de acción de visión, profundidad, normales. Más diversidad de tareas, menor escala.
- NExT-GPT (arXiv:2309.05519): LLM + decodificadores de difusión específicos de modalidad. No es un enfoque de modelo único.
- CoDi (arXiv:2305.11846): difusión composible; cualquiera a cualquiera a través de latencia compartida.
MIO es el más cercano a la señal pura de cualquier-a-algo. AnyGPT es su antepasado conceptual.
Presupuesto de la latencia
Para un producto de conversación, la latencia de cada componente importa:
- Micrófono a tokens de audio: ~ 50 ms.
- Preemplaje (tokens de audio + historial): ~ 100 ms en un modelo 8B.
- El primer token de salida: ~ 50ms.
- Descóder de voz paralelo residual-VQ + ~ 100-150 ms.
El tiempo total de audio-primero-byte: ~300ms mínimo. GPT-4o afirma ~250ms. Moshi afirma 160ms. MIO / AnyGPT están en el rango de 400-600ms por puntos de referencia públicos.
¿Por qué cualquiera a cualquiera se mantiene duro
Incluso en 2026, los modelos abiertos a cualquier modelo siguen a los cerrados en dos ejes:
- La calidad del habla. El tokenizador residual-VQ es perdedor; el habla conversacional suena robótica en comparación con las voces de la clase ElevenLabs.
- El razonamiento de modalidad cruzada. "Cantar sobre lo que ves" sigue fracasando más a menudo que las tareas de visión pura.
Estos son problemas de investigación abiertos. Qwen3-Omni (Lección 12.20) es el intento abierto más avanzado en 2025.
Usalo
code/main.py¿Qué es esto ?
- Define la asignación de vocabulario de cuatro modalidades y lo imprime.
- Envía una lista de entradas multimodal (texto, imagen, audio, música) a través del router del tokenizer.
- Simula el decodificación de transmisión para una respuesta de texto a voz con recuento de latencia.
- Computa el tiempo esperado de primer byte de audio dado en codificador, preempleo y latencias de decodificador.
Envío
Esta lección produceoutputs/skill-any-to-any-pipeline-auditor.md. Dado un producto de conversación (modalidades de entrada, modalidades de salida, objetivo de latencia), audita las opciones de diseño de la familia MIO y calcula el presupuesto de latencia.
Los ejercicios
- El producto acepta la entrada de voz y devuelve la salida de voz. ¿Cuál es el objetivo del presupuesto de latencia de extremo a extremo?
- El SpeechTokenizer residual-VQ utiliza 8 libros de código. Propón por qué es necesario decodificar los niveles residuales en paralelo (vs secuenciales) y qué ahorros de latencia trae.
- Su vocabulario tiene 32k texto + 4k imagen + 4k habla. Añadir 8k música y ~10 separadores. ¿Cuál es el costo del parámetro de matrices de embebido en dim 4096 oculto?
- ¿Qué tipo de preguntas son beneficiosas? ¿Qué tipos son perjudicados por los tokens adicionales?
- Leer Moshi (arXiv:2410.00037). Describa su técnica de "monólogo interno" y compare con la cadena de pensamiento visual de MIO.
Términos clave
| Term | What people say | What it actually means |
|---|---|---|
| Any-to-any | "Multimodal in/out" | A single model that accepts and emits text, image, speech, and music in any direction |
| Residual-VQ | "Speech tokenizer stack" | Multi-codebook tokenization where each layer adds information; base layer is content, later layers are prosody |
| SEED-Tokenizer | "Image codes" | Discrete image tokenizer with 4096-entry codebook used by MIO |
| Chain-of-visual-thought | "Visual scratchpad" | The model generates an intermediate image as a reasoning step before its final answer |
| Time-to-first-audio-byte | "TTFAB" | Latency from user voice to first audio output; <500ms for conversational feel |
| Four-stage curriculum | "Training recipe" | Alignment -> interleaved -> speech-enhanced -> SFT, in that order |
Leer más
- Wang et al. — MIO (arXiv:2409.17692)
- Zhan et al. — AnyGPT (arXiv:2402.12226)
- Lu et al. — Unified-IO 2 (arXiv:2312.17172)
- Wu et al. — NExT-GPT (arXiv:2309.05519)
- Tang et al. — CoDi (arXiv:2305.11846)
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.