LM Studio: LLMs locales con interfaz gráfica

Guía práctica de LM Studio: instalación, descarga y gestión de modelos, configuración de context length y GPU offload, servidor local con API compatible OpenAI, y CLI lms

¿Alguna vez has querido probar el último modelo de lenguaje que ha salido, como un Llama 3.1 o un Qwen, pero te has encontrado con una pared de terminales, compilaciones de C++ y errores de dependencias? Si te gusta la potencia de correr modelos en tu propio hardware pero no siempre quieres pelearte con la línea de comandos, necesitas una herramienta que te facilite la vida. Ahí es donde entra LM Studio.

LM Studio es una aplicación de escritorio (Windows, macOS y Linux) diseñada para descargar, gestionar y ejecutar LLMs localmente desde una interfaz gráfica intuitiva. Si llama.cpp es el motor de combustión y la línea de comandos es el manual de taller, LM Studio es el asiento del conductor: buscas un modelo, lo descargas con un clic y chateas con él sin tocar una sola terminal.

Por debajo utiliza los mismos motores que ya conoces —llama.cpp para modelos GGUF y Apple MLX en Apple Silicon— pero añade una capa visual para descubrir modelos, ajustar parámetros y levantar un servidor con una API totalmente compatible con OpenAI. Esta guía es dedicada y práctica; si lo que buscas es comparar diferentes frameworks entre sí, te recomiendo revisar Ecosistema de Modelos Locales.

¿LM Studio u Ollama?

Ollama es CLI-first y encaja mejor en automatización y despliegues. LM Studio brilla en el uso interactivo: explorar modelos, probar prompts y ajustar parámetros visualmente. Ambos exponen una API compatible con OpenAI.

🧭 Flujo de trabajo

Para que no te pierdas, este es el camino que seguirás desde que buscas un modelo hasta que lo integras en tu código:

Diagrama Mermaid

📦 Instalación

Empezar es tan sencillo como descargar el instalador desde la web oficial y seguir el asistente:

# Página oficial de descargas
# https://lmstudio.ai/download
  • Windows: instalador .exe (requiere Windows 10/11, preferible con soporte AVX2).
  • macOS: .dmg para Apple Silicon (M1/M2/M3/M4) — aprovecha MLX y la memoria unificada.
  • Linux: AppImage (x64 con AVX2).

Requisito de CPU

LM Studio necesita instrucciones AVX2 en x86. En equipos antiguos sin AVX2 no arrancará; en ese caso usa llama.cpp compilado a medida.

🔍 Descubrir y descargar modelos

En la pestaña Discover (🔍) puedes buscar modelos por nombre (p. ej. Llama 3.1, Qwen2.5, Phi-4). LM Studio te listará todas las variantes disponibles en GGUF (y MLX en Mac) con distintos niveles de cuantización.

Para evitar errores de memoria, presta atención a la recomendación que te dará el software según tu hardware:

Etiqueta Significado
Full GPU Offload Possible El modelo cabe entero en tu GPU/VRAM
Partial GPU Offload Possible Cabe parcialmente; el resto irá a CPU/RAM
Likely too large Excede tu memoria; evítalo o baja de cuantización

Qué cuantización elegir

Como en llama.cpp, Q4_K_M es el equilibrio recomendado. Sube a Q5/Q6/Q8 si te sobra memoria; baja a Q3 solo si un modelo no te entra.

💬 Cargar un modelo y chatear

Una vez descargado, hablar con la IA es cuestión de tres pasos:

  1. Ve a la pestaña Chat (💬).
  2. En el selector superior, elige el modelo descargado: LM Studio lo carga en memoria.
  3. Escribe tu prompt y comienza la conversación.

Antes de empezar a chatear, puedes usar el panel de configuración para tunear la experiencia.

⚙️ Configuración de parámetros

Parámetros de carga (load-time)

Estos parámetros definen cómo se reserva la memoria de tu sistema al arrancar el modelo:

Parámetro Descripción
Context Length Tokens de contexto que «recuerda» el modelo. Más contexto = más RAM/VRAM
GPU Offload Cuántas capas se descargan a la GPU (equivale a -ngl de llama.cpp)
CPU Threads Hilos de CPU para la inferencia
Evaluation Batch Size Tokens procesados por lote al ingerir el prompt
Keep Model in Memory Mantiene el modelo cargado aunque no se use
Flash Attention Reduce el uso de memoria del contexto (experimental)

GPU Offload al máximo

Sube el deslizador de GPU Offload todo lo que permita tu VRAM (etiqueta «max»). Si al cargar hay errores de memoria, redúcelo un poco. Las capas no descargadas corren en CPU.

Parámetros de inferencia (sampling)

Aquí es donde controlas la «personalidad» de la respuesta. Puedes ajustar Temperature, Top P, Top K, Repeat Penalty y Max Tokens de forma individual o guardar combinaciones útiles como presets reutilizables.

🌐 Servidor local con API compatible OpenAI

Esta es quizás la función más potente para desarrolladores. La pestaña Developer (o Local Server) levanta un servidor HTTP con endpoints compatibles con la API de OpenAI. Es la forma perfecta de conectar tus propios scripts o apps a un modelo que vive en tu máquina.

  1. Abre la pestaña Developer.
  2. Selecciona el modelo a servir y pulsa Start Server (puerto por defecto 1234).

Llamar al endpoint de chat con curl

Si quieres probar rápidamente desde la terminal, puedes usar curl:

curl http://localhost:1234/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "local-model",
    "messages": [
      {"role": "system", "content": "Eres un asistente DevOps conciso."},
      {"role": "user", "content": "Dame un comando para ver los pods de un namespace"}
    ],
    "temperature": 0.7
  }'

Con el SDK de OpenAI en Python

Si estás programando, puedes usar la librería oficial de OpenAI sin cambiar casi nada de tu código:

from openai import OpenAI

# base_url apunta al servidor local de LM Studio; la api_key es un placeholder
client = OpenAI(base_url="http://localhost:1234/v1", api_key="lm-studio")

resp = client.chat.completions.create(
    model="local-model",
    messages=[{"role": "user", "content": "Explica qué es un Deployment en Kubernetes"}],
)
print(resp.choices[0].message.content)

Los endpoints disponibles son: /v1/chat/completions, /v1/completions, /v1/embeddings y /v1/models.

Compatibilidad drop-in

Igual que llama-server de llama.cpp, cualquier herramienta que hable con la API de OpenAI funciona cambiando solo base_url. Cambiar el puerto: 1234 es el valor por defecto de LM Studio.

🖥️ CLI lms: automatización desde terminal

Si te gusta el control total, LM Studio incluye lms, una herramienta de línea de comandos para scripting y CI. Primero, debes activarla:

# Registra el comando lms en el PATH (una sola vez)
npx lmstudio install-cli

Una vez instalada, puedes gestionar todo desde tu terminal:

# Listar modelos descargados
lms ls

# Cargar un modelo en memoria con contexto y GPU al máximo
lms load llama-3.1-8b-instruct --context-length 8192 --gpu max

# Descargar (unload) el modelo de la memoria
lms unload --all

# Arrancar el servidor local vía CLI
lms server start --port 1234

Interactivo para explorar, CLI para automatizar

Usa la interfaz gráfica para descubrir y probar; usa lms cuando quieras reproducir la configuración en scripts o pipelines.

🎯 Casos de uso e integración

¿Para qué querrías usar esto en el día a día? Aquí tienes algunas ideas:

  • Prototipado y evaluación de prompts sin coste ni fugas de datos a la nube.
  • Backend local para IDEs: apunta extensiones como Continue al servidor http://localhost:1234/v1.
  • RAG local: usa el endpoint /v1/embeddings con un modelo de embeddings para indexar documentos privados.
  • Demos offline: lleva la app y los modelos en un portátil, sin conexión.

Ten en cuenta que para despliegues automatizados en servidores o Kubernetes, Ollama o llama.cpp suelen encajar mejor por su naturaleza headless.

🔗 Recursos adicionales

Suscríbete al blog por correo electrónico

Introduce tu correo electrónico para suscribirte a este blog y recibir avisos de nuevas entradas.

Deja un comentario