# MiMo-V2-Flash

> MiMo-V2-Flash es un **modelo de lenguaje de mezcla de expertos de 309 mil millones de parámetros** que activa 15B parámetros por token. Construido con decodificación especulativa avanzada (EAGLE/MTP), ofrece **más de 150 tokens/segundo** en 8×H100 mientras mantiene un rendimiento de nivel vanguardia. Lanzado bajo **licencia MIT**, representa la vanguardia de la inferencia eficiente a gran escala.

## De un vistazo

* **Tamaño del modelo**: 309B total / 15B parámetros activos (MoE)
* **Licencia**: MIT (comercial totalmente permitida)
* **Contexto**: 32K tokens
* **Rendimiento**: Estado del arte en benchmarks de razonamiento
* **VRAM**: \~320GB FP16 (mínimo 4×A100 80GB)
* **Velocidad**: 150+ tok/s en 8×H100 con decodificación especulativa

## ¿Por qué MiMo-V2-Flash?

**Velocidad revolucionaria**: MiMo-V2-Flash logra velocidades de inferencia sin precedentes gracias a EAGLE (Algoritmo de Extrapolación para Mayor Eficiencia de modelos de Lenguaje) y MTP (Predicción Multi-Token). Mientras los modelos tradicionales generan un token a la vez, MiMo-V2 predice y valida múltiples tokens en paralelo.

**Escala preparada para producción**: Con 309B de parámetros, MiMo-V2-Flash compite con los modelos de vanguardia más grandes mientras sigue siendo desplegable en configuraciones de hardware realistas. Los 15B parámetros activos garantizan una inferencia eficiente a pesar del enorme recuento de parámetros.

**Arquitectura avanzada**: Más allá del MoE estándar, MiMo-V2-Flash incorpora la decodificación especulativa de forma nativa en la arquitectura del modelo. Esto no es una optimización posterior al entrenamiento: está integrada en la base, permitiendo aceleraciones garantizadas.

**Calidad empresarial**: Licencia MIT sin restricciones de uso. Despliega a escala, ajusta (fine-tune) o integra en productos comerciales sin preocupaciones de licencia.

## Recomendaciones de GPU

| Configuración   | VRAM  | Rendimiento    | Coste diario\* |
| --------------- | ----- | -------------- | -------------- |
| **4×A100 80GB** | 320GB | \~80 tok/s     | \~$16.00       |
| **8×A100 40GB** | 320GB | \~70 tok/s     | \~$28.00       |
| **2×H100**      | 160GB | \~90 tok/s     | \~$12.00       |
| **8×H100**      | 640GB | **150+ tok/s** | \~$48.00       |
| 4×H200          | 564GB | \~120 tok/s    | \~$32.00       |

**Mejor relación calidad-precio**: 4×A100 80GB ofrece un excelente rendimiento por dólar. **Rendimiento máximo**: 8×H100 desbloquea todo el potencial de la decodificación especulativa.

\*Precios estimados del marketplace de Clore.ai

## Despliegue con SGLang (Recomendado)

SGLang proporciona el mejor soporte para las características de decodificación especulativa de MiMo-V2-Flash:

### Instalar SGLang

```bash
pip install "sglang[all]>=0.3.0"
# o la última
pip install git+https://github.com/sgl-project/sglang.git
```

### Configuración multi-GPU con MTP

```bash
python -m sglang.launch_server \
  --model-path mimo-ai/MiMo-V2-Flash \
  --tp-size 8 \
  --enable-mtp \
  --mtp-max-draft-tokens 8 \
  --mtp-acceptance-rate 0.8 \
  --mem-fraction-static 0.85 \
  --dtype float16 \
  --context-length 32768 \
  --served-model-name mimo-v2-flash
```

### Consultar con la API de OpenAI

```python
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:30000/v1", 
    api_key="EMPTY"
)

response = client.chat.completions.create(
    model="mimo-v2-flash",
    messages=[
        {"role": "system", "content": "You are an expert AI researcher."},
        {"role": "user", "content": "Explain the EAGLE speculative decoding algorithm and why it enables faster inference"}
    ],
    max_tokens=1024,
    temperature=0.7,
    stream=True  # Recomendado para la mejor latencia
)

for chunk in response:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end='', flush=True)
```

## Desplegar con vLLM

vLLM también soporta MiMo-V2-Flash con decodificación especulativa:

```bash
pip install vllm>=0.6.0

vllm serve mimo-ai/MiMo-V2-Flash \
  --tensor-parallel-size 8 \
  --speculative-model mimo-ai/MiMo-V2-Flash-Draft \
  --speculative-max-model-len 32768 \
  --speculative-draft-tensor-parallel-size 2 \
  --use-v2-block-manager \
  --dtype float16 \
  --served-model-name mimo-v2-flash \
  --trust-remote-code
```

## Plantilla Docker

```dockerfile
FROM nvidia/cuda:12.1-devel-ubuntu22.04

# Instalar dependencias
RUN apt-get update && \
    apt-get install -y python3.10 python3-pip git && \
    rm -rf /var/lib/apt/lists/*

# Instalar SGLang con soporte MTP
RUN pip install "sglang[all]>=0.3.0" transformers

# Establecer variables de entorno
ENV PYTHONUNBUFFERED=1
ENV CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7

# Pre-descargar el modelo (opcional, ahorra tiempo de arranque)
# RUN python3 -c "from transformers import AutoModel; AutoModel.from_pretrained('mimo-ai/MiMo-V2-Flash', trust_remote_code=True)"

EXPOSE 30000

CMD ["python", "-m", "sglang.launch_server", \
     "--model-path", "mimo-ai/MiMo-V2-Flash", \
     "--host", "0.0.0.0", \
     "--port", "30000", \
     "--tp-size", "8", \
     "--enable-mtp", \
     "--mtp-max-draft-tokens", "8", \
     "--dtype", "float16"]
```

Ejecutar con todas las GPUs:

```bash
docker build -t mimo-v2-flash .
docker run --gpus all -p 30000:30000 \
  --shm-size=64g \
  --ulimit memlock=-1 \
  --ulimit stack=67108864 \
  mimo-v2-flash
```

## Configuración avanzada

### Optimización de la decodificación especulativa

Ajusta finamente los parámetros especulativos según tu carga de trabajo:

```bash
# Para generación de código (mayor tasa de aceptación)
python -m sglang.launch_server \
  --model-path mimo-ai/MiMo-V2-Flash \
  --tp-size 8 \
  --enable-mtp \
  --mtp-max-draft-tokens 12 \
  --mtp-acceptance-rate 0.9 \
  --temperature 0.1

# Para escritura creativa (menor tasa de aceptación)
python -m sglang.launch_server \
  --model-path mimo-ai/MiMo-V2-Flash \
  --tp-size 8 \
  --enable-mtp \
  --mtp-max-draft-tokens 6 \
  --mtp-acceptance-rate 0.7 \
  --temperature 0.8
```

### Optimización de memoria

Para configuraciones con memoria limitada:

```bash
# Reducir uso de memoria (más lento pero cabe en 4×A100)
python -m sglang.launch_server \
  --model-path mimo-ai/MiMo-V2-Flash \
  --tp-size 4 \
  --mem-fraction-static 0.75 \
  --context-length 16384 \
  --dtype float16 \
  --disable-cuda-graph  # Ahorra VRAM
```

## Ejemplo de benchmarking

Prueba la ventaja de velocidad de MiMo-V2-Flash:

```python
import time
from openai import OpenAI

client = OpenAI(base_url="http://localhost:30000/v1", api_key="EMPTY")

def benchmark_generation():
    start_time = time.time()
    
    response = client.chat.completions.create(
        model="mimo-v2-flash",
        messages=[
            {"role": "user", "content": "Write a detailed explanation of quantum computing in exactly 500 words"}
        ],
        max_tokens=600,
        temperature=0.1,
        stream=False
    )
    
    end_time = time.time()
    content = response.choices[0].message.content
    
    tokens = len(content.split())  # Estimación aproximada de tokens
    duration = end_time - start_time
    tokens_per_second = tokens / duration
    
    print(f"Generated {tokens} tokens in {duration:.2f}s")
    print(f"Speed: {tokens_per_second:.1f} tokens/second")
    
    return tokens_per_second

# Ejecutar benchmark
speed = benchmark_generation()
print(f"\nMiMo-V2-Flash achieved {speed:.1f} tok/s")
```

## Consejos para usuarios de Clore.ai

* **Multi-GPU esencial**: MiMo-V2-Flash requiere como mínimo 4×A100 80GB. El despliegue en una sola GPU no es factible.
* **Ventaja NVLink**: Elige hosts de Clore.ai con NVLink entre GPUs para una comunicación multi-GPU óptima.
* **Requisitos de RAM**: Asegura 256GB+ de RAM del sistema para un funcionamiento fluido con 8 GPUs.
* **Ajuste especulativo**: Ajusta `mtp-max-draft-tokens` según tu caso de uso — mayor para tareas repetitivas, menor para trabajos creativos.
* **Longitud de contexto**: 32K de contexto es óptimo. Contextos más largos reducen la efectividad de la decodificación especulativa.

## Solución de problemas

| Problema                             | Solución                                                                                       |
| ------------------------------------ | ---------------------------------------------------------------------------------------------- |
| `OutOfMemoryError` al iniciar        | Reducir `mem-fraction-static` o `tp-size`                                                      |
| Comunicación inter-GPU lenta         | Verificar NVLink: `nvidia-ml-py3` o `nvidia-smi topo -m`                                       |
| MTP no acelera                       | Comprobar `mtp-acceptance-rate` — valores demasiado altos desactivan la especulación           |
| Tiempo de espera al cargar el modelo | Pre-descargar: `huggingface-cli download mimo-ai/MiMo-V2-Flash`                                |
| Aceptación pobre de tokens           | Verificar la configuración de temperatura — temperaturas muy bajas/altas reducen la aceptación |

## Comparación de rendimiento

| Modelo            | Tamaño   | Velocidad (8×H100) | Calidad |
| ----------------- | -------- | ------------------ | ------- |
| GPT-4 Turbo       | \~1.7T   | \~15-25 tok/s      | ★★★★★   |
| Claude Sonnet 3.5 | \~200B   | \~25-35 tok/s      | ★★★★★   |
| **MiMo-V2-Flash** | **309B** | **150+ tok/s**     | ★★★★☆   |
| Llama 3.1 405B    | 405B     | \~30-45 tok/s      | ★★★★☆   |

MiMo-V2-Flash logra una aceleración de 3-5x sobre modelos comparables mientras mantiene una calidad competitiva.

## Recursos

* [MiMo-V2-Flash en Hugging Face](https://huggingface.co/mimo-ai/MiMo-V2-Flash)
* [Artículo EAGLE](https://arxiv.org/abs/2401.15077)
* [Documentación de SGLang](https://sgl-project.github.io/start/install.html)
* [Predicción Multi-Token](https://arxiv.org/abs/2404.19737)
* [Guía de decodificación especulativa](https://huggingface.co/blog/assisted-generation)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-es/modelos-de-lenguaje/mimo-v2-flash.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
