Cómo ejecutar un LLM local: Comparación de Ollama, llama.cpp, LM Studio y vLLM
Existen varias formas de ejecutar un LLM de manera local. Algunas herramientas están diseñadas para facilitar la puesta en marcha, mientras que otras ofrecen mayor control o están construidas para atender a múltiples usuarios simultáneamente. La elección correcta depende de si deseas un chat local sencillo, un motor de inferencia configurable o una API de producción.
Ollama
Ollama es una de las formas más fáciles de comenzar a ejecutar modelos localmente. Instálalo, descarga un modelo y ejecútalo desde la línea de comandos. También proporciona una API local para aplicaciones y otras herramientas.
Pros:
- Instalación simple y gestión de modelos
- Flujo de trabajo fácil en la línea de comandos
- API compatible con OpenAI
- Soporte para aceleración de GPU basada en NVIDIA, AMD, Apple Silicon y Vulkan
- Los Modelfiles permiten personalizar modelos y parámetros
- Soporta solicitudes concurrentes cuando hay memoria suficiente disponible
Contras:
- Menos control a bajo nivel que llama.cpp
- Su gestión de modelos está centrada en el ecosistema de Ollama
- No es la primera opción cuando se necesita el máximo rendimiento de servicio o inferencia distribuida
Dificultad: Baja. Una buena elección si deseas poner un modelo en funcionamiento rápidamente sin lidiar con numerosos ajustes de inferencia.
llama.cpp
llama.cpp es un motor de inferencia ligero en C/C++ enfocado en ejecutar modelos de manera eficiente en una amplia variedad de hardware. Utiliza modelos GGUF y te da un control detallado sobre cómo se carga y ejecuta el modelo.
Pros:
- Control granular sobre el contexto, la descarga a GPU, el lote de procesamiento (batching), hilos, cuantización y otros ajustes de inferencia
- Amplio soporte de hardware, incluyendo CUDA, HIP, Metal, Vulkan y SYCL
- Soporta muchos niveles de cuantización, desde formatos de pocos bits hasta 8 bits
- Puede dividir modelos entre varias GPUs
- Puede usar CPU y GPU juntas cuando el modelo es más grande que la VRAM disponible
- Incluye
llama-serverpara una API compatible con OpenAI
Contras:
- Requiere más configuración que Ollama o LM Studio
- Los modelos GGUF generalmente se descargan y gestionan por separado
- Muchos ajustes útiles requieren comprender los parámetros de inferencia
Dificultad: Media. Una buena elección si deseas controlar exactamente cómo se ejecuta un modelo o quieres experimentar con el rendimiento y la cuantización.
LM Studio
LM Studio es una aplicación de escritorio para descargar, configurar y ejecutar LLMs locales. Proporciona una interfaz gráfica para encontrar modelos y gestionar elementos como la descarga a GPU y el tamaño del contexto.
Pros:
- Interfaz gráfica sencilla
- Busca y descarga modelos a través de Hugging Face
- Muestra información del modelo y de recursos antes de cargarlo
- Servidor de API compatible con OpenAI
- Puede ejecutar modelos en modo sin interfaz gráfica a través de su servidor
llmster - Soporta modelos GGUF a través de llama.cpp y modelos MLX en Apple Silicon
Contras:
- Menos control a bajo nivel que el uso directo de llama.cpp
- La aplicación de escritorio es menos adecuada para algunas implementaciones en servidor
- No está diseñado principalmente para el servicio a gran escala de múltiples usuarios
Dificultad: Baja. Una buena elección si deseas experimentar con modelos locales sin pasar mucho tiempo en la línea de comandos.
vLLM
vLLM está diseñado para servir LLMs a aplicaciones y múltiples usuarios. Su principal ventaja es el servicio eficiente con alta concurrencia, utilizando técnicas como PagedAttention, lotes de procesamiento continuos (continuous batching), caché de prefijos e inferencia distribuida.
Pros:
- Alto rendimiento (throughput) para múltiples solicitudes concurrentes
- Lotes de procesamiento continuos y gestión eficiente de la caché KV
- Servidor de API compatible con OpenAI
- Funciona directamente con muchos modelos de Hugging Face
- Soporta cuantización, incluyendo FP8, INT4, GPTQ, AWQ, GGUF y otras
- Soporta paralelismo por tensores, por pipeline, por experto y otras formas
- Diseñado para inferencia y servicio en producción
Contras:
- Configuración más complicada
- Está dirigido principalmente a entornos Linux
- Suele ser innecesario para una sola persona que ejecuta un modelo de forma interactiva
- La compatibilidad del hardware y del modelo debe verificarse antes de la implementación
Dificultad: Alta. Más adecuado para personas que implementan un servicio de inferencia en lugar de simplemente ejecutar un modelo en una computadora personal.
¿Cuál deberías elegir?
- Solo quieres ejecutar un modelo fácilmente: Ollama o LM Studio. Elige Ollama para la línea de comandos y una API simple, o LM Studio para una interfaz gráfica.
- Quieres control sobre la inferencia: llama.cpp. Te da control directo sobre la carga del modelo, la cuantización, el contexto, la descarga a GPU y otros ajustes.
- Necesitas una API local: Ollama, llama.cpp o LM Studio. Los tres proporcionan APIs compatibles con OpenAI.
- Necesitas servir a muchos usuarios: vLLM. Sus funciones de lotes de procesamiento continuos e inferencia distribuida están diseñadas para este caso de uso.
- Quieres experimentar con diferentes cuantizaciones: llama.cpp o LM Studio.
Ejecútalo en DaDesktop
Si no tienes suficiente hardware de GPU localmente, puedes ejecutar estas herramientas en un escritorio en la nube de DaDesktop. Elige una GPU con suficiente VRAM para el modelo que deseas ejecutar, inicia el escritorio e instala el software de inferencia que prefieras.
Ollama y LM Studio son útiles cuando deseas un entorno local sencillo. llama.cpp te da más control sobre el hardware y los ajustes de inferencia. vLLM es una opción cuando necesitas exponer un modelo como una API con mayor rendimiento.
Ver GPUs disponibles para comparar la VRAM y otras especificaciones.