
SmolLM2 y modelos sub-3B: Fine-Tuning para Edge y Móvil
Los modelos sub-3B de parámetros corren en teléfonos, Raspberry Pis y pestañas del navegador. Así es cómo ajustar SmolLM2, Phi-3.5 Mini y Qwen 2.5 0.5B para despliegue en el edge donde cada megabyte cuenta.
Hay una clase de modelos que la mayoría de los desarrolladores pasan por alto. Son demasiado pequeños para aparecer en tablas de clasificación. No pueden escribir ensayos ni resolver ecuaciones diferenciales. No tienen miles de millones de parámetros ni billones de tokens de entrenamiento.
Pero corren en un teléfono. Corren en una pestaña del navegador. Corren en una Raspberry Pi de $45. Corren en un microcontrolador. Y cuando los ajustas para una tarea específica, hacen esa tarea lo suficientemente bien para enviarla en una aplicación de producción.
Los modelos sub-3B de parámetros — modelos con menos de 3 mil millones de parámetros — son la base práctica para funciones de IA que funcionan sin servidor, sin conexión a internet y sin costos de API por solicitud. Son lo que hace que "IA en todas partes" sea realmente posible, no como un eslogan de marketing sino como software desplegado en hardware real.
Esta guía cubre el panorama de modelos sub-3B en 2026, cómo ajustar estos modelos diminutos efectivamente y cómo desplegarlos en todo, desde un iPhone hasta una Raspberry Pi o una pestaña del navegador.
El panorama de modelos sub-3B
Esto es lo que hay disponible en el extremo pequeño de la escala de parámetros:
| Modelo | Parámetros | Tamaño (Q4_K_M) | Datos de Entrenamiento | Fortaleza Clave |
|---|---|---|---|---|
| SmolLM2 135M | 135M | 85 MB | 2T tokens | Modelo utilizable más pequeño |
| SmolLM2 360M | 360M | 220 MB | 2T tokens | Especialista en clasificación |
| SmolLM2 1.7B | 1.7B | 1.0 GB | 2T tokens | Mejor modelo sub-2B |
| Qwen 2.5 0.5B | 500M | 350 MB | 18T tokens | Multilingue a escala diminuta |
| Qwen 2.5 1.5B | 1.5B | 900 MB | 18T tokens | Equilibrio calidad/tamaño |
| Qwen 2.5 3B | 3B | 1.9 GB | 18T tokens | Tope del rango sub-3B |
| Gemma 3 1B | 1B | 700 MB | - | 1B eficiente de Google |
| Phi-3.5 Mini | 3.8B | 2.3 GB | 3.3T tokens | Mejor razonador a esta escala |
SmolLM2, desarrollado por Hugging Face, merece atención especial. El modelo 1.7B fue diseñado específicamente para despliegue en el edge — usa una arquitectura eficiente con embeddings compartidos, atención de consulta agrupada y un vocabulario compacto de 49K. El resultado es un modelo que rinde por encima de su peso en tareas enfocadas.
Phi-3.5 Mini con 3.8B está técnicamente por encima del corte de 3B, pero se incluye porque cabe en objetivos de despliegue similares y es el modelo de razonamiento más fuerte a esta escala.
Qué pueden y no pueden hacer los modelos sub-3B
Lo que manejan bien
Clasificación de etiqueta única. Dada una entrada, asignarla a una de N categorías. Después del fine-tuning con 200-500 ejemplos, los modelos sub-3B alcanzan 88-95% de precisión en tareas de clasificación con hasta 15 categorías. Esto cubre detección de intención, análisis de sentimiento, categorización de temas, filtrado de spam y moderación de contenido.
Extracción de entidades nombradas. Extraer campos específicos del texto: nombres, fechas, montos, direcciones de email, IDs de producto. Los modelos de 1.5-3B alcanzan 85-92% de precisión a nivel de campo en tareas de extracción después del fine-tuning. Los modelos sub-1B son utilizables (78-85%) pero bajan en entradas complejas o ambiguas.
Generación de texto corto. Generar 1-3 oraciones en respuesta a una entrada. Sugerencias de autocompletado, recomendaciones de campos de formulario, resúmenes cortos, texto plantilla. Mantén las salidas por debajo de 50 tokens para calidad confiable.
Detección de intención. Entender qué quiere el usuario de una entrada corta. "¿Cuál es mi saldo?" se mapea a check_balance. "Quiero cancelar" se mapea a cancellation. Los modelos sub-3B son excelentes en esto — es coincidencia de patrones, que es lo que hacen mejor.
Decisiones binarias. Sí/no, válido/inválido, spam/no-spam, apropiado/inapropiado. Incluso el SmolLM2 de 135M maneja clasificación binaria con 90%+ de precisión después del fine-tuning.
Lo que no pueden hacer
Razonamiento multi-paso. Si la tarea requiere encadenar 3+ pasos lógicos, la precisión cae por debajo de umbrales útiles. Un modelo 1.7B puede manejar "¿Es este email spam?" (un paso). No puede manejar confiablemente "Lee este contrato, identifica todas las obligaciones, verifica cada una contra nuestra política de cumplimiento y señala violaciones" (cuatro pasos).
Generación de texto largo. Al generar más de 100-150 tokens, la calidad se degrada. El modelo empieza a repetirse, pierde coherencia o se desvía del tema. Si necesitas párrafos de texto generado, usa un modelo 7B+.
Salida estructurada compleja. Objetos JSON simples (3-5 campos) funcionan bien. ¿JSON anidado con arrays, campos condicionales y esquemas complejos? La tasa de error sube más allá del 15-20% en modelos sub-3B. Mantén tus esquemas de salida planos y simples.
Preguntas y respuestas de conocimiento general. Estos modelos no tienen suficientes parámetros para almacenar conocimiento amplio del mundo. Pueden responder preguntas sobre tu dominio específico (después del fine-tuning) pero no preguntas abiertas sobre temas arbitrarios.
Conversación multi-turno. Los modelos sub-3B pierden contexto rápidamente en diálogos multi-turno. Funcionan para patrones de solicitud/respuesta de un solo turno, no chatbots.
Estrategias de Fine-Tuning para Modelos Diminutos
Ajustar modelos sub-3B es diferente de ajustar modelos 7B+. El menor conteo de parámetros significa menos capacidad para absorber nuevo conocimiento, así que necesitas ser más deliberado sobre qué y cómo entrenas.
Calidad de Datos sobre Cantidad
Con 7B+ parámetros, puedes salirte con datos de entrenamiento ruidosos — el modelo tiene suficiente capacidad para aprender la señal a pesar del ruido. Con sub-3B, el ruido mata el rendimiento.
Objetivo: 200-500 ejemplos de alta calidad. Cada ejemplo debería ser:
- Inequívoco — la salida correcta es claramente la respuesta correcta
- Representativo — cubre la distribución de entradas que verás en producción
- Limpio — sin errores tipográficos en la salida, formato consistente, sin contradicciones
Para los modelos más pequeños (135M-500M), 200 ejemplos es a menudo el punto óptimo. Más de 500 no ayuda mucho y puede llevar a sobreajuste. Para modelos 1.5B-3B, 300-500 ejemplos da los mejores resultados.
Ejemplos agresivos:
Así se ve un dataset de entrenamiento limpio para clasificación de intención con SmolLM2 1.7B:
{"instruction": "intent", "input": "Check my balance", "output": "balance_inquiry"}
{"instruction": "intent", "input": "I need to transfer $500 to savings", "output": "transfer"}
{"instruction": "intent", "input": "What's the interest rate on my CD?", "output": "product_info"}
{"instruction": "intent", "input": "Cancel my credit card", "output": "cancellation"}
{"instruction": "intent", "input": "I didn't make this purchase", "output": "fraud_report"}
Nota: instrucciones cortas, entradas realistas, salidas de un solo token. Cada token innecesario en los datos de entrenamiento es capacidad desperdiciada en un modelo diminuto.
Configuración de Entrenamiento
| Parámetro | Sub-1B | 1B-2B | 2B-3B |
|---|---|---|---|
| Rango LoRA | 8 | 16 | 16-32 |
| Tasa de aprendizaje | 3e-4 | 2e-4 | 2e-4 |
| Épocas | 8-10 | 6-8 | 5-6 |
| Tamaño de lote | 16 | 8 | 4-8 |
| Long. máx. de secuencia | 256 | 512 | 512-1024 |
| Ratio de calentamiento | 0.1 | 0.1 | 0.05 |
Diferencias clave respecto al entrenamiento 7B+:
- Más épocas. Los modelos pequeños necesitan más pasadas sobre los datos para aprender patrones. Donde un modelo 7B podría converger en 3 épocas, un modelo 1.7B necesita 6-8.
- Menor rango LoRA. El modelo base tiene menos parámetros, así que el adaptador debería ser proporcionalmente más pequeño. Rango 8 es suficiente para modelos sub-1B; rango 16 para 1-3B.
- Menor longitud máxima de secuencia. Los modelos sub-3B se despliegan para tareas de entrada corta. Establece la longitud máxima para que coincida con tu distribución real de datos. 256 tokens es suficiente para clasificación y detección de intención. 512 para extracción. No lo pongas en 2048 "por si acaso" — desperdicia cómputo de entrenamiento.
- Mayor tasa de aprendizaje. Los modelos pequeños pueden tolerar tasas de aprendizaje ligeramente más altas porque hay menos parámetros para desestabilizar.
Requisitos de VRAM para Entrenamiento
| Modelo | VRAM QLoRA | Tiempo de Entrenamiento (500 ejemplos) |
|---|---|---|
| SmolLM2 135M | 2 GB | 4 minutos |
| SmolLM2 360M | 3 GB | 6 minutos |
| SmolLM2 1.7B | 4 GB | 12 minutos |
| Qwen 2.5 0.5B | 3 GB | 5 minutos |
| Qwen 2.5 1.5B | 4 GB | 10 minutos |
| Qwen 2.5 3B | 6 GB | 18 minutos |
| Gemma 3 1B | 3.5 GB | 8 minutos |
| Phi-3.5 Mini 3.8B | 6 GB | 20 minutos |
Puedes ajustar los modelos más pequeños en una RTX 3050 (4 GB VRAM) o un MacBook M1 con 8 GB de memoria unificada. El entrenamiento se completa en minutos, no horas. Esto hace la iteración rápida práctica — puedes ajustar, probar, modificar tus datos y reentrenar 10 veces en una tarde.
Cuantización GGUF para Huella Mínima
Para despliegue en el edge, el tamaño del archivo GGUF es tu restricción principal. Así afecta cada nivel de cuantización al SmolLM2 1.7B:
| Cuantización | Tamaño de Archivo | RAM Requerida | Pérdida de Calidad | Mejor Para |
|---|---|---|---|---|
| Q4_0 | 0.9 GB | 1.3 GB | 4-5% | Huella mínima absoluta |
| Q4_K_M | 1.0 GB | 1.4 GB | 2-3% | Despliegue móvil por defecto |
| Q5_K_M | 1.1 GB | 1.5 GB | 1-2% | Tareas sensibles a calidad |
| Q8_0 | 1.7 GB | 2.1 GB | Menos del 0.5% | Apps de escritorio, laptops |
| FP16 | 3.4 GB | 3.8 GB | 0% (línea base) | Desarrollo/pruebas |
Para el SmolLM2 135M en Q4_0: 85 MB de tamaño de archivo, 150 MB de RAM. Eso es lo suficientemente pequeño para incluir en una app móvil sin que los usuarios noten el tamaño de descarga. Cabe en la caché de la mayoría de los navegadores web modernos.
Para el Qwen 2.5 0.5B en Q4_0: 350 MB de tamaño de archivo, 500 MB de RAM. Aún lo suficientemente pequeño para móvil pero demasiado grande para despliegue cómodo en navegador a menos que el usuario espere una descarga.
Comparación de Tamaño de Archivo entre Modelos (Q4_K_M)
| Modelo | Tamaño GGUF | Con Overhead de App | Categoría de Descarga |
|---|---|---|---|
| SmolLM2 135M | 85 MB | ~100 MB | Como una biblioteca de fotos |
| SmolLM2 360M | 220 MB | ~240 MB | Como un video corto |
| Qwen 2.5 0.5B | 350 MB | ~370 MB | Como una actualización de juego |
| SmolLM2 1.7B | 1.0 GB | ~1.1 GB | Como un juego pequeño |
| Qwen 2.5 1.5B | 900 MB | ~1.0 GB | Como un juego pequeño |
| Qwen 2.5 3B | 1.9 GB | ~2.1 GB | Como un juego mediano |
Objetivos de Despliegue
iOS (Core ML o llama.cpp)
Cualquier iPhone desde el 12 en adelante (4 GB RAM) puede correr SmolLM2 1.7B en Q4_K_M. iPhones más antiguos (3 GB RAM) pueden correr las variantes 360M o 135M.
Rendimiento en iPhone 15 Pro:
| Modelo | Tokens/seg | Latencia de Clasificación | Uso de RAM |
|---|---|---|---|
| SmolLM2 135M (Q4_0) | 85 t/s | 15ms | 150 MB |
| SmolLM2 360M (Q4_0) | 62 t/s | 22ms | 280 MB |
| SmolLM2 1.7B (Q4_K_M) | 35 t/s | 48ms | 1.4 GB |
| Qwen 2.5 0.5B (Q4_K_M) | 58 t/s | 24ms | 500 MB |
| Qwen 2.5 1.5B (Q4_K_M) | 38 t/s | 42ms | 1.0 GB |
Para funciones de UI en tiempo real (autocompletado, validación de entrada, detección de intención), la latencia sub-50ms significa que la respuesta de IA aparece antes de que el usuario termine de escribir.
Android (NNAPI o llama.cpp)
Los dispositivos Android modernos (6+ GB RAM) manejan todos los modelos sub-3B cómodamente. Los dispositivos de presupuesto (4 GB RAM) deberían quedarse con modelos sub-1B.
Rendimiento en Pixel 8 Pro:
| Modelo | Tokens/seg | Latencia de Clasificación |
|---|---|---|
| SmolLM2 135M (Q4_0) | 68 t/s | 19ms |
| SmolLM2 1.7B (Q4_K_M) | 26 t/s | 62ms |
| Qwen 2.5 0.5B (Q4_K_M) | 45 t/s | 30ms |
Navegador (WebLLM / Transformers.js)
WebLLM usa WebGPU para inferencia acelerada por hardware en el navegador. Transformers.js usa WebAssembly (WASM) como alternativa cuando WebGPU no está disponible.
Rendimiento en Chrome en MacBook Air M2:
| Modelo | Motor | Tokens/seg | Tiempo de Primera Carga |
|---|---|---|---|
| SmolLM2 135M | WebLLM | 52 t/s | 0.8s |
| SmolLM2 360M | WebLLM | 38 t/s | 1.5s |
| SmolLM2 1.7B | WebLLM | 18 t/s | 4.2s |
| SmolLM2 135M | Transformers.js | 22 t/s | 1.2s |
| SmolLM2 1.7B | Transformers.js | 6 t/s | 6.8s |
WebLLM es 2-3 veces más rápido que Transformers.js pero requiere soporte de WebGPU (Chrome 113+, Edge 113+). Para despliegue en navegador, el SmolLM2 135M o 360M vía WebLLM es la opción más práctica — carga rápida, inferencia rápida, memoria mínima.
Raspberry Pi (llama.cpp)
| Modelo | Dispositivo | Cuantización | Tokens/seg | RAM Usada |
|---|---|---|---|---|
| SmolLM2 135M | Pi 5 (8GB) | Q4_0 | 42 t/s | 200 MB |
| SmolLM2 1.7B | Pi 5 (8GB) | Q4_K_M | 8.5 t/s | 1.5 GB |
| SmolLM2 1.7B | Pi 5 (4GB) | Q4_0 | 7.2 t/s | 1.3 GB |
| SmolLM2 1.7B | Pi 4 (8GB) | Q4_0 | 3.1 t/s | 1.3 GB |
| Qwen 2.5 0.5B | Pi 5 (8GB) | Q4_K_M | 22 t/s | 550 MB |
| Qwen 2.5 0.5B | Pi 4 (4GB) | Q4_0 | 9.8 t/s | 400 MB |
La Raspberry Pi 5 corre SmolLM2 1.7B a una velocidad utilizable para procesamiento por lotes o aplicaciones tolerantes a latencia. Para clasificación en tiempo real en una Pi, usa el SmolLM2 135M o 360M, o el Qwen 0.5B — todos entregan respuestas sub-100ms.
Casos de Uso Reales
Validación de Formularios Offline (SmolLM2 360M)
Una empresa de servicios públicos desplegó SmolLM2 360M en tabletas de técnicos para validación offline de lecturas de medidores. El modelo verifica si las lecturas ingresadas están dentro de rangos esperados, señala posibles errores de lectura y sugiere correcciones — todo sin conectividad. Ajustado con 250 ejemplos. Precisión: 93% de tasa de captura para lecturas anómalas. Tamaño del modelo: 220 MB. Impacto en batería: insignificante.
Clasificación de Intención en Dispositivo (Qwen 2.5 0.5B)
Una app de retail usa Qwen 2.5 0.5B para clasificar mensajes de clientes en 8 intenciones (estado de pedido, devoluciones, preguntas sobre productos, etc.) directamente en el teléfono. Los mensajes se clasifican antes de enviarse al servidor, permitiendo respuestas locales instantáneas para consultas comunes y enrutamiento adecuado para las complejas. Ajustado con 400 ejemplos en inglés y español. Precisión: 91%. Latencia: 24ms en iPhone 15.
Procesamiento de Texto con Privacidad Primero (SmolLM2 1.7B)
Una app de journaling de salud mental usa SmolLM2 1.7B para categorizar entradas de diario por estado de ánimo, identificar temas recurrentes y sugerir reflexiones — todo en el dispositivo. Ningún texto del diario sale del teléfono. Ajustado con 300 ejemplos. El modelo corre en Q4_K_M en iOS, usando 1.4 GB de RAM. Los usuarios reportan que las funciones de IA se sienten "instantáneas" porque no hay spinner de carga ni retardo de red.
Autocompletado en Navegador (SmolLM2 135M)
Una empresa de herramientas para desarrolladores corre SmolLM2 135M en el navegador vía WebLLM para proporcionar sugerencias de autocompletado para su DSL de configuración. El modelo fue ajustado con 200 ejemplos de fragmentos de configuración parciales a completos. Con 85 MB, carga en menos de un segundo. Las sugerencias aparecen en 15ms — más rápido de lo que el usuario puede percibir. Sin servidor, sin API key, sin costos de uso.
Detección de Anomalías IoT (Qwen 2.5 0.5B)
Un sistema de monitoreo de fábrica corre Qwen 2.5 0.5B en gateways Raspberry Pi 4. Cada gateway procesa datos de sensores de 8 máquinas, clasificando cada lectura como normal/advertencia/crítica. Ajustado con 500 ejemplos de datos de sensores. El modelo procesa lecturas a 10 lecturas/segundo por gateway. A $45 por gateway (hardware Pi) y 400 MB de uso de RAM, es dramáticamente más barato que enviar todos los datos de sensores a la nube para procesamiento.
Eligiendo Tu Modelo
| Si Necesitas | Elige | Por Qué |
|---|---|---|
| Huella más pequeña posible | SmolLM2 135M | 85 MB en Q4_0, corre en todas partes |
| Mejor calidad bajo 1B params | Qwen 2.5 0.5B | 18T tokens de entrenamiento, multilingue |
| Mejor calidad bajo 2B params | SmolLM2 1.7B | Arquitectura optimizada para edge |
| Mejor calidad bajo 4B params | Phi-3.5 Mini (3.8B) | Mejor razonamiento a esta escala |
| Soporte multilingue | Qwen 2.5 (0.5B/1.5B/3B) | 29 idiomas, mejor fuera del inglés |
| Despliegue en navegador | SmolLM2 135M/360M | Carga rápida, memoria mínima |
| Raspberry Pi | SmolLM2 1.7B o Qwen 0.5B | Ambos corren bien en Pi 5 |
El principio general: empieza con el modelo más pequeño que podría funcionar para tu tarea. Ajústalo, pruébalo y solo sube de tamaño si la precisión es insuficiente. Muchos desarrolladores se sorprenden al encontrar que un modelo 360M, correctamente ajustado, maneja su tarea con 90%+ de precisión.
Ship AI that runs on your users' devices.
Ertas early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.
Lecturas adicionales
- Edge AI e Inferencia Local en 2026 — Guía completa del panorama de despliegue de IA en el edge, desde hardware hasta frameworks.
- Miniaturización de Hardware de IA y Fine-Tuning — Cómo el hardware que se encoge está habilitando el despliegue de IA en nuevos factores de forma.
- Optimización de Despliegue de Adaptadores LoRA en Edge — Técnicas para minimizar el tamaño del adaptador LoRA y maximizar el rendimiento en dispositivo.
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.
Keep reading

Fine-Tuning Gemma 3: Google's Lightweight Model for On-Device Deployment
Gemma 3 is optimized for on-device inference — phones, tablets, edge hardware. Here's how to fine-tune it for mobile AI features and IoT applications that run without a server.

Fine-Tuning for Structured Output: Beyond JSON Mode to Guaranteed Schemas
JSON mode gets you valid JSON. Fine-tuning gets you guaranteed schema compliance — every field, every type, every time. Here's how to train models that output exactly the structure your app expects.

Fine-Tuning Phi-4: Microsoft's Best Small Model for Enterprise Tasks
Phi-4 14B outperforms GPT-4 on math benchmarks while running 15x faster on local hardware. Here's how to fine-tune it for classification, extraction, and structured output tasks.