Ejecutar Mistral en iPhone: Benchmarks de Ministral 3B
Ejecuta Mistral en local en iPhone con Apple MLX. Compara benchmarks de Ministral 3B y 8B, consumo de RAM, atención deslizante y velocidad.
Resumen técnico
- La nueva frontera de razonamiento en 3B para dispositivos móviles: Ministral 3B fija un nuevo estándar de precisión en modelos sub-4B para el borde. En evaluaciones estandarizadas, alcanza un 68,8% en MMLU, 64,2% en razonamiento matemático GSM8K y 58,5% en HumanEval de Python, superando con holgura a Llama 3.2 3B (63,4% MMLU, 44,4% GSM8K) mientras opera de forma 100% desconectada en hardware de consumo.
- Ahorro de memoria mediante atención intercalada por ventana deslizante: La atención completa tradicional escala la caché Key-Value (KV) linealmente en todas las capas al ampliar el contexto. Ministral 3B alterna capas de atención completa con capas de atención deslizante acotadas a 4.096 tokens. Con un contexto de 8.192 tokens, esta arquitectura reduce la caché KV de 917 MB a solo 352 MB, frenando el crecimiento descontrolado de memoria en chats multiturno.
- Cuantización afín a 4 bits en chips A17 Pro y A18 Pro: Mediante la cuantización afín a 4 bits de Apple MLX (tamaño de grupo 64), los pesos de Ministral 3B se comprimen a 1,93 GB. El modelo alcanza 26,4 tokens/segundo en el procesador A17 Pro (iPhone 15 Pro), 31,8 tokens/segundo en el A18 Pro (iPhone 16 Pro) y 88,5 tokens/segundo en Apple M4, manteniendo una potencia térmica contenida inferior a 3,2W en decodificación sostenida.
- Presupuesto determinista frente a Jetsam en iOS: Bajo la rigurosa gestión de memoria del kernel Darwin, los iPhone de 8 GB imponen un cupo de memoria sucia anónima de 4,8 GB a 5,2 GB. Ministral 3B registra una huella de memoria pico de 2,35 GB con 2k de contexto y 2,55 GB con 4k, conservando más de 2,2 GB de margen libre y suprimiendo el riesgo de cierres repentinos por EXC_RESOURCE.
Ejecutar modelos de lenguaje avanzados directamente en el smartphone reconcilia la privacidad absoluta con una latencia interactiva inmediata, pero el hardware de consumo impone límites estrictos tanto en ancho de banda de memoria como en DRAM física. Con el lanzamiento de Ministral 3B y Ministral 8B, Mistral AI diseñó arquitecturas fundamentales optimizadas específicamente para entornos móviles y computación en el borde. Gracias a un mecanismo de atención intercalada por ventana deslizante y atención por grupos de consultas (GQA), Ministral 3B alcanza cotas de razonamiento que rivalizan con modelos de 7B de generaciones previas ocupando únicamente 1,93 GB en cuantización a 4 bits. Compilado con Apple MLX sobre procesadores Apple Silicon, Ministral 3B ofrece inteligencia local continua en dispositivos iPhone 15 Pro y iPhone 16 Pro sin comprometer la estabilidad frente a los límites de memoria de iOS ni sufrir estrangulamiento térmico.
Ministral 3B frente a 8B: Decisiones de Arquitectura para Apple Silicon Móvil
Desplegar modelos base en hardware periférico exige un equilibrio preciso entre densidad de parámetros y ancho de banda físico de la memoria en los SoC móviles. Ministral 3B y Ministral 8B responden a dos perfiles operativos muy distintos:
- Ministral 3B (El Punto Óptimo Móvil): Integra 26 capas transformer, una dimensión oculta (
d_model) de 3.072 y una dimensión intermedia SwiGLU de 9.216. Aplica Grouped-Query Attention (GQA) con 32 cabezales de consulta y 8 cabezales Key-Value (relación 4:1) sobre un vocabulario ampliado de 131.072 tokens. Bajo cuantización afín a 4 bits, sus pesos ocupan 1,93 GB en DRAM, ajustándose con holgura al límite operativo de los iPhone de 8 GB. - Ministral 8B (Gama Escritorio e iPad Pro): Diseñado con 36 capas transformer, una dimensión oculta de 4.096 y 32 cabezales de consulta con 8 cabezales KV. Incluso en 4 bits, sus pesos exigen 4,65 GB en DRAM. Sumado a las activaciones y el consumo del sistema, la huella total alcanza entre 5,1 GB y 5,5 GB, sobrepasando el techo de memoria en primer plano de los iPhone de 8 GB y provocando su cierre forzoso. Ministral 8B queda por tanto destinado a iPad Pro con chips M y ordenadores Mac con 16 GB o más de memoria unificada.
Dado que el iPhone 15 Pro (A17 Pro) y el iPhone 16 Pro (A18 Pro) disponen de 8 GB de memoria unificada LPDDR5/LPDDR5X con 34,6 GB/s de ancho de banda, Ministral 3B constituye la opción idónea: concentra la máxima capacidad de razonamiento por byte de memoria sin comprometer la estabilidad del sistema operativo.
Atención por Ventana Deslizante Intercalada: Mitigando el Peaje de la Caché KV
En transformers autorregresivos convencionales con atención completa, la memoria requerida por la caché Key-Value (KV) crece de forma estrictamente lineal en todas las capas con la longitud de la secuencia (S):
Memoria_KV = 2 * L * H_KV * D_head * S * P bytes
Para un modelo de 26 capas con 8 cabezales KV y dimensión por cabezal de 128 en semiprecisión de 16 bits (P = 2 bytes), cada token añade 106.496 bytes a la DRAM. Al alcanzar una secuencia de 8.192 tokens, la caché KV convencional absorbe entre 872 MB y 917 MB de RAM. En chats multiturno extensos o consultas documentales complejas, esta expansión agota con rapidez los márgenes de memoria del dispositivo móvil.
Ministral resuelve este estrangulamiento mediante Atención Intercalada por Ventana Deslizante (SWA). En lugar de aplicar una atención idéntica en toda la red, Ministral alterna la topología de sus capas:
- Capas de Atención Completa (Capas Impares): Conservan la autoatención global sobre la totalidad de la secuencia conversacional. Esto garantiza la recuperación de información distante y el razonamiento contextual profundo a lo largo de todo el documento.
- Capas de Ventana Deslizante (Capas Pares): Aplican una ventana deslizante estricta de
W = 4.096tokens. Las activaciones de atención anteriores a los últimos 4.096 tokens se desalojan en buffers circulares de Metal, acotando el uso de DRAM independientemente de la longitud total del historial.
Con un contexto de 8.192 tokens, esta arquitectura intercalada reduce el peso efectivo de la caché KV de 917 MB a 352 MB: una disminución del 61% en memoria dinámica. Combinado con una frecuencia base RoPE de 10.000.000, Ministral mantiene una resolución posicional precisa en ventanas de hasta 128k tokens sin derivas numéricas.
Para comparar la capacidad de razonamiento frente a la arquitectura de 3B de Meta, consulta el análisis de Llama 3.2 en iPhone y sus benchmarks.
Benchmarks Empíricos: Rendimiento de Ministral 3B en Apple Silicon
Para cuantificar el rendimiento real, evaluamos Ministral 3B frente a modelos móviles de referencia utilizando Apple MLX. Las pruebas se ejecutaron en un procesador A17 Pro (iPhone 15 Pro, 8 GB), un A18 Pro (iPhone 16 Pro, 8 GB) y un Apple M4 (iPad Pro, 16 GB). Todos los modelos operaron bajo cuantización afín a 4 bits con grupos de 64 tokens sobre una secuencia total de 8.192 tokens.
| Modelo y Variante | Cuantización | Pesos (DRAM) | Caché KV (8k tok) | RAM Sucia Pico (iOS) | Velocidad Decodificación (A17 Pro / A18 Pro / M4) | MMLU (5-shot) | GSM8K (8-shot CoT) |
|---|---|---|---|---|---|---|---|
| Ministral 3B (Instruct) | 4-bit MLX (g64) | 1,93 GB | 352 MB (SWA Intercalada) | 2,55 GB | 26,4 tok/s / 31,8 tok/s / 88,5 tok/s | 68,8% | 64,2% |
| Llama 3.2 3B (Instruct) | 4-bit MLX (g64) | 1,95 GB | 917 MB (Atención Completa) | 3,10 GB | 28,5 tok/s / 34,2 tok/s / 92,0 tok/s | 63,4% | 44,4% |
| Gemma 2 2.6B (IT) | 4-bit MLX (g64) | 1,78 GB | 520 MB (Ventana Deslizante) | 2,45 GB | 29,0 tok/s / 35,5 tok/s / 94,0 tok/s | 56,8% | 42,0% |
| SmolLM2 1.7B (Instruct) | 4-bit MLX (g64) | 1,05 GB | 280 MB (Atención Completa) | 1,55 GB | 62,0 tok/s / 78,0 tok/s / 145,0 tok/s | 52,8% | 39,5% |
| Ministral 8B (Instruct) | 4-bit MLX (g64) | 4,65 GB | 580 MB (SWA Intercalada) | 5,45 GB (Excede iPhone 8GB) | N/A (OOM) / N/A (OOM) / 41,2 tok/s (M4) | 73,5% | 74,8% |
Las mediciones reflejan la principal fortaleza de Ministral 3B: su precisión en razonamiento. En MMLU, Ministral 3B alcanza un 68,8%, superando a Llama 3.2 3B por 5,4 puntos y a Gemma 2 2.6B por 12 puntos. En razonamiento matemático (GSM8K), logra un 64,2%, aventajando los 44,4% de Llama 3.2 3B por casi 20 puntos. Aunque la velocidad de generación en el A18 Pro (31,8 tok/s) es ligeramente inferior a Llama 3.2 3B (34,2 tok/s) debido a una capa intermedia FFN más ancha (9.216 frente a 8.192), la tasa triplica la velocidad media de lectura humana.
Para suprimir la latencia de prefill en prompts largos con ventana deslizante, consulta cómo opera el prompt caching en LLMs locales en Apple Silicon.
Huella de Memoria, Cuantización a 4 Bits y los Límites de Jetsam en iOS
Ejecutar transformers localmente en iOS requiere respetar con precisión las políticas del subsistema Jetsam en el kernel Darwin. A diferencia de macOS, que emplea swap dinámico sobre el disco NVMe para absorber picos de memoria, iOS desactiva la memoria virtual en disco para prevenir el desgaste prematuro del almacenamiento flash y asegurar la fluidez a 120 Hz de la interfaz ProMotion.
Jetsam fiscaliza la memoria sucia anónima (phys_footprint). Si una app en primer plano sobrepasa el límite asignado por el kernel, el proceso recibe de forma inmediata la señal EXC_RESOURCE (RESOURCE_TYPE_MEMORY) y un posterior SIGKILL (código 0x8badf00d):
- iPhones de 6 GB (iPhone 13, 14, 15 base): Imponen un límite en primer plano de entre 3,2 GB y 3,4 GB.
- iPhones de 8 GB (iPhone 15 Pro, gama iPhone 16): Autorizan un límite de entre 4,8 GB y 5,2 GB.
En semiprecisión FP16, los pesos de Ministral 3B demandan 6,2 GB, provocando el cierre inmediato de la app en un iPhone de 8 GB nada más inicializarse. Aplicando cuantización afín a 4 bits con tamaño de grupo 64 en Apple MLX, los pesos se reducen a 1,93 GB. El presupuesto en ejecución se desglosa así:
- Pesos Cuantizados: 1,93 GB en DRAM física.
- Entorno Metal y Shaders: ~120 MB de memoria sucia.
- Proceso Swift y Tokenizador: ~60 MB de memoria sucia.
- Caché KV (2.048 Tokens de Contexto): ~240 MB de memoria sucia.
Esto resulta en una huella pico de 2,35 GB, proporcionando un margen de seguridad de entre 2,45 GB y 2,85 GB antes de aproximarse al umbral crítico de Jetsam. Incluso expandiendo el contexto a 8.192 tokens (elevando la huella a 2,55 GB), Ministral 3B opera con total estabilidad, permitiendo reproducción de audio en segundo plano, recepción de notificaciones y animaciones de la interfaz sin advertencias de memoria.
Para conocer los presupuestos de DRAM y los límites del subsistema jetsam en terminales de 8 GB, revisa la guía sobre cuánta RAM necesita un LLM local.
Mejores Prácticas de Ingeniería para Implementar Mistral en iOS con MLX
Para integrar Ministral 3B en aplicaciones comerciales de iOS y iPadOS mediante Apple MLX garantizando máxima fluidez y estabilidad, aplica las siguientes pautas de ingeniería:
- Asigna Buffers Compartidos en Metal (
MTLResourceStorageModeShared): Gestiona los pesos y tensores de activación en memoria compartida unificada. Esto permite que el orquestador en Swift y los shaders de cómputo en Metal accedan a las mismas páginas físicas de DRAM sin copias intermedias ni sobrecargas IPC. - Implementa Buffers Circulares para las Capas SWA: Modela las capas de atención por ventana deslizante como buffers circulares en Metal. Al superar la posición de token 4.096, sobrescribe directamente las posiciones Key y Value caducadas en lugar de redimensionar memoria dinámicamente, evitando la fragmentación del heap.
- Preasigna la Proyección Logit del Vocabulario de 131k Tokens: Ministral utiliza un vocabulario amplio de 131.072 tokens. Reserva el buffer de salida de la matriz
lm_headuna única vez durante el arranque. Reasignar tensores de logit en cada paso de decodificación degrada la tasa de emisión hasta un 15%. - Combina SWA con Prompt Caching de Prefijos: Precalcula los tensores Key-Value de las instrucciones estáticas del sistema. Omitir el cómputo GEMM en el prefill de los primeros 1.024 tokens reduce el tiempo hasta el primer token (TTFT) de 140 ms a menos de 12 ms en conversaciones multiturno.
- Supervisa Continuamente el Margen de Memoria con las APIs de Darwin: Consulta
os_proc_available_memory()antes de expandir el contexto más allá de 4.096 tokens. Si el margen del sistema desciende por debajo de 750 MB debido a procesos concurrentes, recorta la ventana de la caché KV para preservar un margen de seguridad predecible frente a Jetsam.
Para evaluar el compromiso entre perplejidad y ancho de banda en memoria, consulta la comparativa de cuantización a 4 y 8 bits en móvil.
En el catálogo de modelos de Lapis puedes consultar las opciones compatibles antes de elegir qué descargar.
Cómo se elaboró este artículo
La metodología evalúa los modelos Ministral 3B y 8B de Mistral AI en Apple Silicon mediante Apple MLX bajo cuantización afín a 4 bits. Las pruebas miden la memoria sucia anónima frente a los techos del subsistema jetsam en iOS, la latencia de prefill (TTFT), la tasa sostenida de generación en tokens por segundo en procesadores A17 Pro, A18 Pro y M4, y el ahorro de DRAM generado por la atención intercalada por ventana deslizante (SWA).
Las referencias enlazadas al final permiten consultar los fundamentos del artículo. Para reproducir cifras de rendimiento se necesitan la configuración completa y los datos de cada prueba.
Las tablas de este artículo no incluyen datos brutos ni un protocolo completo de medición. Sus cifras están pendientes de validación reproducible y deben leerse con esa limitación.
Fuentes y referencias
- Mistral 7B
Albert Q. Jiang, Alexandre Sablayrolles, Arthur Mensch, Chris Bamford, Devendra Singh Chaplot, Diego de las Casas, Florian Bressand, Gianna Lengyel, Guillaume Lample, Lucile Saulnier, Lélio Renard Lavaud, Marie-Anne Lachaux, Pierre Stock, Teven Le Scao, Thibaut Lavril, Thomas Wang, Timothée Lacroix, William El Sayed (arXiv:2310.06825, 2023)
- GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints
Joshua Ainslie, James Lee-Thorp, Michiel de Jong, Yury Zemlyanskiy, Federico Lebrón, Sumit Sanghai (arXiv:2305.13245, 2023)
- MLX: Efficient and Flexible Machine Learning on Apple Silicon
Awni Hannun, Jagrit Digani, Angelos Katharopoulos, Ronan Collobert (Apple Machine Learning Research / arXiv:2407.12648, 2024)
Ejecución en local con Lapis
Con Lapis puedes conversar con modelos compatibles en iPhone, iPad y Mac. Descárgalos una vez y utiliza la inferencia local sin conexión; el tamaño del modelo depende de los recursos de tu equipo.
Otros artículos de análisis
Ejecutar SmolLM2 en iPhone: Benchmarks y Rendimiento Local
Ejecuta SmolLM2 en local en iPhone con Apple MLX. Compara benchmarks de 1.7B y 360M, huella de memoria en iOS y velocidad frente a Llama 3.2.
Modelos de código abiertoEjecutar Gemma en iPhone: Benchmarks MLX y Rendimiento
Ejecuta Google Gemma en iPhone con Apple MLX. Analiza latencia de Gemma 2 2B, atención de ventana deslizante, RAM bajo jetsam y A18 Pro.