Ollama frente a LM Studio, llama.cpp y MLX-LM en macOS

Traducción automática

Este artículo se tradujo automáticamente a partir de la versión original en inglés.

Usa Ollama para un servicio local de modelos o LM Studio para seleccionar modelos y disponer de una interfaz de escritorio. Usa llama.cpp para controlar directamente el runtime. Usa MLX-LM para generación en Python o fine-tuning en Apple Silicon. Tanto Ollama como LM Studio ofrecen APIs y funcionamiento sin interfaz gráfica. Elige según cómo cargues los modelos, los llames y examines su rendimiento.

Para una aplicación que necesite un endpoint local, prueba primero Ollama o LM Studio. Pasa a llama.cpp o MLX-LM cuando el servicio existente no ofrezca los controles que requiere tu tarea.

Registra el modelo, el runtime, los ajustes de generación y la configuración de red para poder repetir la configuración.

Tabla de recomendaciones

HerramientaFunción principalÚsala cuandoPrincipal contrapartida
OllamaServicio local gestionado y ciclo de vida de modelosQuieres rápidamente un endpoint pequeño y fácil de automatizarMenor control de bajo nivel que llama.cpp.
LM StudioDescubrimiento de modelos, SDKs, demonio y flujos de trabajo con servidores localesQuieres un único entorno de desarrollo con y sin interfaz gráficaSu abstracción sigue ocultando algunos detalles del runtime.
llama.cppInferencia con GGUF, cuantización, opciones del servidor y control de MetalNecesitas controlar el contexto, el lote, la cuantización y el comportamiento del runtimeRequiere más configuración y más opciones.
MLX-LMGeneración y fine-tuning nativos de Apple SiliconQuieres experimentar a nivel de Python en Macs con chips de la serie MEcosistema de serving más pequeño que el de Ollama o llama.cpp.

¿Cuál deberías instalar primero?

Empieza con Ollama si quieres gestionar un modelo mediante un servicio local al que pueda llamar tu aplicación. Prueba la API con los prompts y formatos de respuesta que necesita tu aplicación.

Instala primero LM Studio si quieres seleccionar y comparar modelos en una aplicación de escritorio. Sus herramientas de desarrollo incluyen SDKs de Python y TypeScript, APIs locales, structured output y un daemon sin interfaz gráfica. Comprueba la compatibilidad con tool use del modelo elegido.

Instala primero llama.cpp si necesitas ajustar directamente la longitud de contexto, el tamaño del lote, la cuantización o las opciones de Metal. Su CLI y su servidor ofrecen esos controles sin un servicio independiente de gestión de modelos.

Usa MLX-LM cuando hagas algo más que servir un modelo de chat. Encaja con experimentos de modelos nativos de Apple Silicon, conversión, fine-tuning y flujos de trabajo en Python en los que la memoria unificada forma parte del diseño.

Matriz de flujos de trabajo

Flujo de trabajoOpción predeterminadaMotivo
API local para una aplicaciónOllamaErgonomía estable para desarrolladores y amplia compatibilidad de integración.
Comparación manual de modelosLM StudioLa GUI agiliza la comparación de prompts y modelos.
Depuración del rendimientollama.cppPuedes ver y controlar los parámetros del runtime.
Serving de modelos GGUF cuantizadosllama.cpp u OllamaUsa llama.cpp para tener control y Ollama por comodidad.
Experimentos con modelos en Apple SiliconMLX-LMHerramientas de modelos nativas para Macs con chips de la serie M.
Demo para personal no técnicoLM StudioEs fácil de mostrar y ajustar de forma interactiva.
Configuración de ingeniería reproducibleCLI/API de cualquiera de las herramientas, con modelos fijadosRegistra el modelo, el runtime y los ajustes de generación para que un script pueda repetir la ejecución.

Notas sobre el hardware

La memoria unificada disponible limita el modelo, el contexto y el número de peticiones que puede ejecutar un Mac con Apple Silicon. Un modelo que cabe en un MacBook Pro de 64 GB puede resultar inutilizable en un MacBook Air de 8 GB. La cuantización reduce la memoria de los pesos, mientras que los prompts más largos aumentan la memoria de la caché de atención. Haz benchmarks con la longitud real del prompt y las peticiones simultáneas.

Prueba un modelo más pequeño que quepa sin recurrir demasiado a la memoria de intercambio antes de probar uno mayor que agote la memoria. Para programación, comprueba la gestión del contexto y la integración con herramientas en tareas reales. Para preguntas sobre documentos, comprueba si la recuperación proporciona las evidencias necesarias antes de cambiar de modelo.

Mantén la inferencia en local

Elige explícitamente el modelo local y el backend. Una API en localhost aún puede reenviar una petición a un modelo en la nube o a una integración externa. Las FAQ de Ollama documentan el modo solo local (OLLAMA_NO_CLOUD=1) y su vinculación predeterminada a la interfaz de bucle local. Mantén el servidor accesible únicamente desde tu máquina, salvo que asegures deliberadamente el acceso para otros clientes.

LM Studio puede ejecutar offline los modelos descargados; descubrir y descargar modelos requiere acceso a la red. Comprueba las funciones en la nube, los plugins, la telemetría y la aplicación que realiza las llamadas, además del servidor de modelos. Descargar un modelo y enviar un prompt privado son operaciones de red diferentes.

Qué no debes hacer

Empieza con Ollama o LM Studio y prueba si la inferencia local satisface la tarea. Usa llama.cpp o MLX-LM cuando necesites controles que el servicio no ofrezca. Ejecuta benchmarks más amplios cuando el rendimiento afecte a los requisitos del producto.

No compares modelos únicamente en una interfaz de chat si la carga real consiste en extracción estructurada, edición de código o síntesis de respuestas con RAG. Escribe un pequeño script de evaluación con prompts representativos.

Lecturas adicionales

Referencias