- Gemma 4 usa una arquitectura de mixture-of-experts que activa solo parte de sus parámetros, lo que permite inferencia de alto rendimiento incluso en hardware modesto
- LM Studio 0.4.0 introduce el nuevo Headless CLI (llmster), con el que es posible descargar, cargar modelos, chatear y ejecutar un servidor API sin la app de escritorio
- Mediante una API compatible con OpenAI y Anthropic, se puede ofrecer Gemma 4 como servidor local y usar Claude Code como asistente de código completamente offline
- Con ajustes finos de hardware como longitud de contexto, offloading a GPU y solicitudes en paralelo, se puede optimizar el rendimiento y la eficiencia de memoria
- La inferencia local basada en modelos MoE permite revisiones de código rápidas y pruebas de prompts sin costo de API, y está emergiendo como una tecnología clave para construir entornos de IA offline para desarrolladores
Ejecutar Google Gemma 4 localmente — integración del nuevo Headless CLI de LM Studio con Claude Code
-
Por qué ejecutar en local
- Las API de IA en la nube tienen limitaciones de costo, límites de velocidad, privacidad y latencia de red
- Para tareas iterativas rápidas como revisión de código, redacción de borradores y pruebas de prompts, ejecutar modelos localmente es más conveniente
- La ejecución local ofrece ventajas como costo de API cero, sin transferencia de datos al exterior y disponibilidad permanente
-
Gemma 4** usa una arquitectura mixture-of-experts (MoE) en la que, dentro de un modelo de 26B, solo se activan 4B parámetros**, lo que permite alto rendimiento incluso en hardware modesto
- En una MacBook M4 Pro (48GB) registró una velocidad de 51 tokens por segundo, aunque dentro de Claude Code se vuelve algo más lento
-
Familia de modelos Gemma 4
- Google publicó 4 familias de modelos de Gemma 4, optimizadas para distintos tipos de hardware
- La serie E (E2B, E4B) usa Per-Layer Embeddings y soporta entrada de audio (reconocimiento de voz y traducción)
- El modelo dense de 31B alcanza 85.2% en MMLU Pro y 89.2% en AIME 2026
- El modelo 26B-A4B activa solo 8 de 128 expertos (3.8B parámetros), por lo que opera con calidad de nivel 10B a costo de nivel 4B
- Con 82.6% en MMLU Pro, 88.3% en AIME y Elo 1441, se acerca al modelo dense de 31B y compite con modelos de más de 400B
- Soporta contexto de 256K, entrada visual, llamadas a funciones y configuración del modo de razonamiento, por lo que resulta adecuado para inferencia local
-
Cambios principales en LM Studio 0.4.0
-
Con la introducción de llmster como motor de inferencia independiente, ahora puede ejecutarse completamente desde CLI sin la app de escritorio
- Con la CLI
lmsse puede descargar modelos, cargarlos, chatear y levantar el servidor - Funciones principales:
- llmster daemon: carga modelos y gestiona la inferencia en segundo plano
- Procesamiento de solicitudes en paralelo: maneja múltiples solicitudes simultáneamente con continuous batching
- Stateful REST API: mantiene el historial de conversación mediante el endpoint
/v1/chat - Integración MCP: soporte local para Model Context Protocol
- Con la CLI
-
-
Instalación y descarga del modelo
- Comando de instalación:
curl -fsSL https://lmstudio.ai/install.sh | bash - Iniciar el daemon:
lms daemon up - Actualizar runtime:
lms runtime update llama.cpp,lms runtime update mlx - Descargar el modelo Gemma 4 26B:
lms get google/gemma-4-26b-a4b - La cuantización predeterminada es Q4_K_M (17.99GB)
- Después de la descarga, cargarlo con
lms load google/gemma-4-26b-a4b
- Comando de instalación:
-
Gestión de modelos locales
- Ver la lista de modelos instalados:
lms ls - La salida de ejemplo incluye Gemma 4, Qwen 3.5, GLM 4.7 Flash y varios modelos MoE
- Los modelos MoE permiten inferencia eficiente porque usan solo una parte de los parámetros activos
- Ver la lista de modelos instalados:
-
Ejecución del chat y rendimiento
- Iniciar conversación:
lms chat google/gemma-4-26b-a4b --stats - Ejemplo de salida:
Tokens/Second: 51.35 Time to First Token: 1.551s - Con 51 tok/sec y 1.5 s de respuesta inicial, la velocidad es suficiente para uso interactivo
- Iniciar conversación:
-
Estado del modelo y memoria
- Ver modelos cargados:
lms ps - Ejemplo: uso de 17.99GB de memoria, contexto de 48K, 2 solicitudes en paralelo y TTL de 1 hora
- Elementos principales visibles en la salida JSON (
lms ps --json | jq):"architecture": "gemma4""quantization": {"name": "Q4_K_M", "bits": 4}"vision": true,"trainedForToolUse": true"maxContextLength": 262144,"parallel": 2
- Ver modelos cargados:
-
Estimación de memoria según la longitud de contexto
- La opción
--estimate-onlypermite predecir los requisitos de memoria - El modelo base requiere alrededor de 17.6GiB, y cada vez que el contexto se duplica aumenta entre 3 y 4GiB
- Con un contexto de 48K se necesitan unos 21GiB, y con 256K unos 37.48GiB
- Ejemplo de comando:
lms load google/gemma-4-26b-a4b --estimate-only --context-length 48000 - La relación lineal entre longitud de contexto y memoria es útil para planificar capacidad
- La opción
-
Ajuste de carga según el hardware
-
Longitud de contexto
- Debe configurarse dentro del límite de memoria disponible, descontando el uso del sistema operativo (4~6GB)
- Ejemplo:
lms load google/gemma-4-26b-a4b --context-length 128000
-
Offloading a GPU
- Apple Silicon usa arquitectura de memoria unificada, por lo que puede aprovechar toda la GPU con
--gpu=1.0 - En sistemas NVIDIA, puede dividirse según el límite de VRAM con valores como
--gpu=0.5
- Apple Silicon usa arquitectura de memoria unificada, por lo que puede aprovechar toda la GPU con
-
Solicitudes en paralelo
- Permite manejar varias solicitudes al mismo tiempo con continuous batching
- En la GUI se configura con Max Concurrent Predictions (predeterminado: 4)
- En el caso de Gemma 4, en un sistema de 48GB son adecuados 48K de contexto y 2 solicitudes en paralelo
-
Descarga automática por TTL
- Con
--ttl 1800se libera automáticamente tras 30 minutos de inactividad - El valor predeterminado es 1 hora, y puede desactivarse con 0 o -1
- Con
-
Guardar valores predeterminados por modelo
- En la app de escritorio, desde My Models → icono de configuración, se pueden guardar por defecto GPU, contexto y Flash Attention
-
Decodificación especulativa (Speculative Decoding)
- En modelos MoE es ineficiente, por lo que se recomienda desactivarla en Gemma 4
- En pruebas con Mixtral, mejoró 39% en tareas de código, pero empeoró 54% en tareas matemáticas
-
Flash Attention
- Ayuda a soportar contextos largos al reducir la memoria del caché KV
- Al activarlo en Apple Silicon, aporta ahorro de memoria
-
-
App de escritorio de LM Studio
- La GUI permite visualizar estado del servidor, carga de modelos, endpoints API y flujo de logs
- Incluye el protocolo Anthropic (
POST /v1/messages) - La función de visión permite analizar imágenes
- Ejemplo: al analizar una imagen de Timezone Scheduler, generó 504 tokens a 54.51 tok/sec
- Resultados del monitoreo del sistema:
- Uso de memoria 46.69GB/48GB, swap 27.49GB
- GPU al 90%, CPU a 91°C, GPU a 92°C
- Consumo de energía 23.56W (CPU 11.06W, GPU 13.32W)
- La arquitectura de memoria unificada evita la copia de datos entre CPU y GPU
-
Ofrecer el modelo como servidor API
- Iniciar el servidor:
lms server start - API compatible con OpenAI:
http://localhost:1234/v1 - Endpoint compatible con Anthropic:
POST /v1/messages - Cambiar puerto:
--port 8080 - Con carga JIT del modelo, se carga automáticamente al recibir solicitudes y se descarga al vencer el TTL
- Flujo de logs en tiempo real:
lms log stream --source model --stats - También se puede acceder desde otros dispositivos de la red y soporta autenticación con token API
- Iniciar el servidor:
-
Integración con Claude Code
- Mediante el endpoint compatible con Anthropic, Claude Code puede ejecutarse con un modelo local
- Agregar la función
claude-lma~/.zshrc:export ANTHROPIC_BASE_URL=http://localhost:1234 export ANTHROPIC_MODEL="gemma-4-26b-a4b" ... claude "$@" - Todas las llamadas de modelos de Claude Code (Opus, Sonnet, Haiku) se redirigen a Gemma 4
- Se configura un entorno solo local con 48K de contexto y límite de salida de 8K tokens
- Al ejecutar
claude-lm, se puede usar un asistente de código totalmente offline - Aunque es más lento que la nube, resulta adecuado para revisión de código, cambios pequeños y trabajo exploratorio
-
Lecciones principales
- Los modelos MoE son clave para la inferencia local: Gemma 4 26B-A4B ofrece calidad de nivel 10B a costo de nivel 4B
- El daemon headless permite un flujo de trabajo completamente basado en CLI
- La longitud de contexto es la principal variable del uso de memoria
--estimate-onlyayuda a evitar OOM- El endpoint compatible con Anthropic permite ejecutar Claude Code localmente y completamente offline
-
Limitaciones
lms chatno muestra directamente el nombre del modelo- El contexto predeterminado de 48K es conservador, y conviene ampliarlo si hay margen de memoria
- La ejecución local de Claude Code no reemplaza por completo la API de Anthropic, y tiene limitaciones para trabajos grandes
- En sistemas de 48GB puede haber presión de memoria y uso de swap; se recomiendan 64GB o más
-
Siguientes pasos
- Se planean pruebas comparativas con Qwen 3.5 35B, GLM 4.7 Flash y Nemotron 3 Nano
- Resumen del procedimiento:
curl -fsSL https://lmstudio.ai/install.sh | bash lms daemon up lms get google/gemma-4-26b-a4b lms chat google/gemma-4-26b-a4b --stats - Para integrar Claude Code: agregar la función
claude-lmy luego ejecutarclaude-lm - Puede usarse para construir flujos de trabajo locales de IA e integrarlos en webapps y entornos para desarrolladores
1 comentarios
Comentarios de Hacker News
Se puede usar directamente llama.cpp server para ejecutar un LLM localmente y aprovecharlo desde Claude Code u otros agentes CLI
Se resumió una guía completa de configuración en la que se probaron LLM abiertos recientes como Gemma4 en una MacBook M1 Max 64GB
El modelo 26BA4B fue el más interesante en ese hardware y mostró una velocidad de generación de tokens (40 tok/s) casi el doble de rápida que Qwen3.5 35BA3B
Sin embargo, el resultado en el benchmark tau2 fue menor que el de las variantes de Qwen (68% vs 81%), así que se espera que no sea adecuado para tareas complejas centradas en herramientas
Yo uso mlx_vlm y vMLX, pero en Claude Code me aparece un error 400 Bad Request
Quisiera saber si en llama-server no hubo ese problema
Siento que los modelos locales ya pasaron de ser simplemente “posibles” a entrar en una etapa en la que se pueden usar cómodamente
En especial, el flujo de LM Studio sin interfaz me pareció impresionante. Permite usar inferencia local en herramientas reales
Estoy desarrollando un agente de programación CLI de código abierto llamado cloclo, que soporta varios backends como LM Studio, Ollama, vLLM, Jan y llama.cpp
Los modelos locales se están acercando a una combinación ideal: uso diario personal y barato, y modelos en la nube para tareas de alto rendimiento
El punto clave aquí no es tanto Gemma 4 en sí, sino que el harness y el modelo quedaron completamente separados
Claude Code, OpenCode, Pi y Codex funcionan con cualquier backend
Es decir, los agentes de programación se están volviendo una capa generalizada, y el foco de la competencia se está moviendo hacia la calidad y el costo del modelo
Eso es bueno para los usuarios y una amenaza para las empresas que dependían del harness
Por ejemplo, en el artículo “Improving 15 LLMs at Coding in One Afternoon” también se decía que con solo cambiar el harness hubo una gran mejora
Se puede ejecutar fácilmente con el comando
ollama launch claude --model gemma4:26bNemotron, glm y qwen 3.5 funcionan bien, pero solo gemma daba problemas
Parece que este enfoque también podría ser útil para la automatización de pruebas de software web
Selenium o Puppeteer tienden a romperse fácilmente cuando cambia un poco el diseño web
En cambio, modelos como estos podrían adaptarse a los cambios y permitir pruebas más flexibles
En especial, parece que incluso los modelos pequeños serían suficientes
MoE en realidad no ahorra (V)RAM
Todos los pesos deben residir en memoria, y solo se usa una parte en cada inferencia
Por eso mejora el tok/s, pero el uso de VRAM sigue igual
Esta visualización me ayudó a entenderlo
Por ejemplo, se puede ejecutar un MoE de 35B parámetros con una combinación de GPU de 12GB VRAM + 16GB RAM
Se pueden cargar e intercambiar solo las partes necesarias desde RAM, disco o red
MoE reduce la cantidad de datos que hay que intercambiar en la siguiente etapa de inferencia
Estoy usando Claude Code como la interfaz principal para tareas repetitivas de un pipeline de datos
En particular, para estandarizar divulgaciones regulatorias del gobierno (XBRL) y exponerlas por REST y MCP
MCP es la parte interesante: en vez de invocar directamente al cliente, se definen herramientas de forma declarativa y el modelo decide cuándo llamarlas
Por ejemplo, una consulta como “comparar la tendencia de apalancamiento de esta empresa durante 10 años con el promedio del sector” se descompone automáticamente en la secuencia adecuada de llamadas a herramientas
Sin embargo, en el uso conversacional de MCP, la latencia se vuelve mucho más sensible
Una respuesta en 2 segundos está bien en un script, pero rompe el flujo de conversación
Así que almacené en caché las tablas más usadas en memoria y logré respuestas por debajo de 100 ms
Me pregunto si otras personas también han experimentado este tipo de umbral de latencia
En implementaciones simples, puede gastar decenas de miles de tokens más para la misma funcionalidad
Está el texto explicativo de Anthropic, aunque es un material algo viejo
Más allá de eso, las cadenas de varios pasos se vuelven lentas y el modelo agrega razonamiento innecesario, inflando el contexto
Además del caché, también me resultó efectiva la estrategia de reducir la cantidad de idas y vueltas haciendo que se devuelvan varios datos a la vez
Comparten cómo configurar Gemma 4 26B en macOS como inferencia local para Claude Code
En adelante, quizá los principales laboratorios de IA operen LLM locales en paralelo para reducir la carga de la nube y procesar en la nube solo los cálculos pesados
Me da curiosidad qué tan bien funciona el modelo Gemma 4 en tareas de programación con agentes y cuál fue la impresión real al usarlo