Ejecutar GLM-4.7-Flash Localmente: Configuración de Ollama en Mac y Windows

Ejecutar GLM-4.7-Flash Localmente: Configuración de Ollama en Mac y Windows

Hola, soy Dora. Hace algunos días, una pequeña fricción me empujó a esto: estaba esperando constantemente a que se completaran tareas pequeñas de redacción en servidores remotos. No minutos, solo el tiempo suficiente para distraerme con el correo electrónico y perder el hilo. La semana pasada (enero de 2026), intenté ejecutar GLM-4.7-Flash localmente para ver si ahorrar esos segundos realmente me ayudaría a pensar con más claridad.

Versión corta: funcionó, pero no por las razones glamorosas. GLM-4.7-Flash se sentía más como un asistente constante que como un modelo de titular. Es lo suficientemente rápido para mantenerme en flujo, y lo suficientemente ligero para ejecutarse en una laptop sin sobrecalentarla. Compartiré qué funcionó, dónde se estancó, y la configuración que mantuvo las cosas aburridas, de una manera buena.

Requisitos de Hardware

GPU / RAM Mínima

Ejecuté GLM-4.7-Flash en tres máquinas:

  • MacBook Pro M3 Pro (CPU de 12 núcleos / GPU de 18 núcleos, 36 GB de RAM)
  • Mac mini M2 (24 GB de memoria unificada)
  • Escritorio Windows con RTX 4090 (24 GB de VRAM)

De esas pruebas, un piso práctico:

  • Solo CPU (Mac/Windows/Linux): 16 GB de memoria del sistema funcionan, 32 GB es más amable. Espera primeros tokens más lentos.
  • Apple Silicon (Metal): 16 GB de memoria unificada es utilizable con cuantización de 4-bit/5-bit y un contexto modesto (2–4K). 8 GB se sintió apretado.
  • NVIDIA: 8–12 GB de VRAM es el mínimo que intentaría para una cuantización de 4-bit. 16 GB+ es más cómodo.

GLM-4.7-Flash se siente como un modelo de tamaño medio (piensa en menos de 10–12B params). En 4-bit, generalmente buscas ~5–6 GB de memoria del dispositivo más caché KV. Si empujas contextos largos o muchos prompts paralelos, la memoria aumenta.

Especificaciones Recomendadas

Si quieres esa sensación de “siempre responsivo”:

  • Apple Silicon: M3 o más nuevo con 24–36 GB de memoria unificada: mantén el contexto en 4–8K.
  • NVIDIA: 24 GB de VRAM (p. ej., 3090/4090) te da espacio para contextos más altos y concurrencia.
  • Almacenamiento: SSD rápido: los modelos se cargan más rápido y hay menos intercambio.

Noté que el modelo deja de sentirse “rápido” cuando la presión de memoria aumenta; los page-outs o los derrames de VRAM añaden un temblor sutil que interrumpe el flujo. Un poco de espacio extra adicional ayuda mucho.


Configuración de Ollama

Usé Ollama porque mantiene las ejecuciones locales simples y consistentes entre máquinas. El contexto de versión importa aquí.

Instalar Ollama 0.14.3+

  • macOS: brew install ollama (o actualizar con brew upgrade ollama).
  • Windows: usa el instalador oficial desde el sitio de Ollama.
  • Linux: sigue el script curl desde la documentación.

Estoy en 0.14.3 a partir de esta prueba (enero de 2026). Las versiones más nuevas a veces cambian backends predeterminados o comportamiento de cuantización, así que me quedo con la versión que es estable para mí hasta que tengo una razón para saltar.

Descargar y Ejecutar GLM-4.7-Flash

Dos caminos funcionaron para mí:

  1. Si tu biblioteca de Ollama incluye una compilación oficial de GLM-4.7-Flash:

    • ollama pull glm-4.7-flash
    • ollama run glm-4.7-flash
  2. Si no aparece (esto sucedió en una máquina):

    • Crea un Modelfile que apunte a un artefacto GGUF conocido o compatible para GLM-4.7-Flash.
    • Modelfile de ejemplo (simplificado):
    • FROM ./glm-4.7-flash-q4.gguf
    • Añade plantillas de prompts solo si sabes que las necesitas: dejé lo mínimo.
    • Entonces: ollama create glm-4.7-flash-local -f Modelfile
    • Ejecuta: ollama run glm-4.7-flash-local

Notas del uso:

  • La carga inicial es más lenta ya que calienta cachés.
  • Mantengo num_ctx conservador (4K u 8K) a menos que esté resumiendo un borrador de libro. Contextos más grandes se sienten bien, pero consumen mucha memoria y no siempre ayudan con la calidad para la redacción cotidiana.
  • Si las generaciones se sienten vacilantes, intenta bajar la temperatura a 0.6–0.7 e incrementa top_p un poco: apretó las salidas para mí sin perder velocidad.

Referencias: la documentación de Ollama es sólida para banderas específicas de plataforma y backends actuales.

Rendimiento en Mac

Puntos de Referencia M4 / M3 / M2

Estos no son de calidad de laboratorio, solo ejecuciones constantes en prompts de escritura y código ligero, temperatura 0.7, contexto de 4K, cuantización de 4-bit:

  • M4 (máquina prestada, 48 GB): 60–85 tok/s una vez caliente. Primer token en ~350–500 ms.
  • M3 Pro (36 GB): 35–55 tok/s. Primer token en ~500–800 ms.
  • M2 (24 GB): 20–30 tok/s. Primer token en ~900–1200 ms.

Toma los rangos como una verificación de ambiente. Presioné algunos contextos de 8K en el M3 Pro: la velocidad bajó ~20–30% pero se mantuvo utilizable para redacción. En el M2, los contextos largos cruzaron mi línea de “se siente pegajoso”. Lo mantuve en 2–4K allí.

Optimización de Memoria

Lo que más ayudó en macOS:

  • Mantén menos pestañas de terminal ejecutando modelos. Obvio, sí, pero se me olvida.
  • Ajusta el contexto correctamente. 4K es el punto dulce para mí.
  • Usa cuantización de 4-bit cuando puedas. 5-bit se sintió similar en calidad para mi uso, pero más lento.
  • Cierra aplicaciones que consuman tiempo de GPU (editores de video, algunas pestañas del navegador con WebGL).

También noté que usar una indicación de sistema estable redujo el retrabajo. No más rápido en papel, pero menos reintentos significa mejor “velocidad percibida”. Una indicación pequeña como: “Sé conciso, usa inglés simple, sin tono de marketing.” Se ajusta a los puntos fuertes del modelo.


Windows + NVIDIA

Configuración RTX 3090 / 4090

En el 4090 (24 GB), GLM-4.7-Flash se sintió consistentemente rápido:

  • Cuantización de 4-bit, contexto de 4–8K: 120–220 tok/s después del calentamiento.
  • Primer token: ~250–400 ms.
  • Prompts paralelos: 2–3 streams antes de que viera temblor.

Un amigo lo ejecutó en un 3090 (24 GB) y vio ~15–25% menos rendimiento con la misma configuración. Si empujas más allá de contexto de 8K o mantienes muchas respuestas simultáneamente, golpearás el espacio de VRAM. Generalmente retrocedo a 4–6K y mantengo los lotes pequeños.

Configuración CUDA

Lo que importó en la práctica:

  • Driver NVIDIA reciente (una instalación limpia ayudó a una máquina que temblaba).
  • CUDA 12.x y tiempo de ejecución coincidente si sales de Ollama (vLLM/SGLang). Para Ollama en sí, no siempre necesitas un Kit completo, pero los drivers actualizados son innegociables.
  • Configuración de potencia: establece tu GPU en “Preferir máximo rendimiento.” Suena como consejo de jugador, pero detuvo la limitación de reloj durante ejecuciones largas.

Si golpeas errores de carga o caídas duras a CPU, verificaría dos veces:

  • Alineación de versión del driver con tiempo de ejecución de CUDA.
  • Si un antivirus escanea tu directorio de modelos (sucedió: fue tonto: fue lento).

Referencia: la tabla de compatibilidad driver–CUDA de NVIDIA vale la pena una verificación rápida antes de hundir una hora en depuración.

vLLM / SGLang

Probé GLM-4.7-Flash con vLLM y SGLang cuando quería más control sobre batching y endpoints de estilo servidor.

vLLM

  • Instalar: Python reciente, PyTorch compatible con CUDA, luego pip install vllm.
  • Ejecutar: python -m vllm.entrypoints.openai.api_server --model <your_glm_flash_id> --dtype auto --max-model-len 4096
  • Por qué lo usé: API compatible con OpenAI estable, rendimiento sólido para flujos de trabajo multiusuario o multipestaña.

SGLang

  • Instalar: pip install sglang
  • Ejecutar: python -m sglang.launch_server --model <your_glm_flash_id> --context-length 4096
  • Por qué lo usé: streaming de baja latencia se sintió rápido, y jugó bien con tareas pequeñas de enrutamiento.

Ambos quieren una ruta de modelo adecuada o ID de repo HF. Si GLM-4.7-Flash no está en tu índice predeterminado, necesitarás apuntar a un GGUF local o un formato de peso compatible. También: coincide con las versiones de CUDA y driver, o perseguirás errores de kernel opacos. Mantuve dtype en auto y solo forcé fp16 cuando sabía que tenía VRAM de sobra.

Para mis sesiones de escritura de usuario único, Ollama se mantuvo más simple. vLLM/SGLang tenía sentido cuando probé herramientas que necesitaban un endpoint de estilo OpenAI.

Solución de Problemas

Fallos de Carga de Modelo

Lo que vi:

  • “sin memoria” durante la carga. Solución: cambia a una cuantización más pequeña (p. ej., 4-bit), baja num_ctx, o cierra aplicaciones pesadas de GPU.
  • “sin backend compatible” en Windows. Solución: actualiza el driver de GPU: asegúrate de que no instalaste PyTorch solo de CPU si usas vLLM/SGLang: reinicia después de actualizar drivers.
  • Modelo no encontrado en Ollama. Solución: crea un Modelfile y ollama create: o descarga desde la etiqueta de repo exacta si existe.

Si un modelo silenciosamente cae a CPU, la señal es ruido del ventilador (o falta de él) más tokens/sec mucho más lento. He aprendido a verificar la utilización del dispositivo antes de asumir que el modelo “empeoró.”

Correcciones de Inferencia Lenta

Cambios pequeños que importaron más de lo que esperaba:

  • Ajusta correctamente el contexto. Reducir a la mitad el contexto a menudo acelera más que ajustar el muestreo.
  • Calienta el caché. Una ejecución corta rápida mejora la siguiente.
  • Reduce streams paralelos. La concurrencia se ve eficiente hasta que el caché KV te tropiezo.
  • Para NVIDIA: establece modo de alto rendimiento, cierra aplicaciones superpuestas, y detén codificadores de fondo.
  • En macOS: mantén el cargador conectado: algunas laptops se reducen con batería.

Una más: dejé de perseguir max tokens/sec. La métrica mejor para mí fue “primer pensamiento utilizable.” GLM-4.7-Flash me lo dio rápidamente cuando mantuve prompts enfocados y contextos razonables. Si te gusta la velocidad de GLM-4.7-Flash pero no te encanta cuidar drivers, versiones de CUDA, o peculiaridades del backend, intenta WaveSpeed - nuestra propia plataforma enfocada en inferencia estable y rápida sin la sintonización de bajo nivel. Obtienes latencia predecible sin preocuparte por archivos de modelo, formatos de cuantización, o compatibilidad de GPU.