Instalación y uso de LM Studio en Linux

LM Studio es una aplicación de escritorio que permite descargar, ejecutar y experimentar con modelos de lenguaje (LLMs) de forma local, sin depender de servicios en la nube ni enviar datos a terceros. Soporta modelos en formato GGUF (llama.cpp) y también expone un servidor local compatible con la API de OpenAI, lo que permite usarlo como backend para nuestras propias aplicaciones.

En este artículo vemos cómo instalarlo en Linux, cómo dejarlo listo para lanzar desde el escritorio y cómo empezar a usarlo, tanto desde el chat como desde su servidor local.

Ejecutar IA en local: valoración y limitaciones

Antes de entrar en la instalación, merece la pena parar un momento en qué supone realmente ejecutar un LLM en local frente a usar un servicio en la nube (ChatGPT, Claude, Gemini…), porque no son alternativas equivalentes, sino herramientas con usos distintos.

A favor de la ejecución local:

  • Privacidad real: nada sale de la máquina. Para documentos internos, código propietario o datos sensibles, es la única opción sin depender de la política de retención de un tercero.
  • Coste marginal cero: una vez descargado el modelo, cada consulta es gratis, sin límites de tokens ni facturación por uso.
  • Funciona sin conexión y no depende de que el servicio de turno esté disponible.
  • Control total sobre el modelo exacto, la versión y los parámetros de inferencia.

Las limitaciones, sin embargo, son igual de reales:

  • Calidad por debajo de los modelos de frontera: un modelo de 7-14B cuantizado, por bueno que sea, no razona ni redacta al nivel de un GPT-4/GPT-5, Claude o Gemini de gama alta. La brecha se nota sobre todo en tareas de razonamiento largo, matemáticas o código complejo.
  • Hardware como cuello de botella: sin GPU con VRAM suficiente, la inferencia en CPU es lenta (pocos tokens/segundo), y los modelos grandes simplemente no entran en memoria.
  • La cuantización tiene coste: bajar a Q4 para que el modelo quepa en memoria implica perder precisión respecto al modelo original en f16.
  • Ventanas de contexto más ajustadas que las que ofrecen las APIs en la nube, salvo que se disponga de mucha VRAM.

Sobre LM Studio en concreto: es, de largo, la forma más cómoda de entrar en este mundo sin tocar la terminal más que lo justo. La interfaz gráfica, el buscador de modelos integrado y el servidor local compatible con OpenAI hacen que probar un LLM local sea tan sencillo como instalar cualquier aplicación de escritorio. Como pega, al ser software propietario (no es open source, a diferencia de llama.cpp u Ollama) no permite tanta personalización a bajo nivel ni auditar el código. Para prototipar, aprender y para casos de uso donde la privacidad pesa más que exprimir el último punto de rendimiento, cumple de sobra. Para producción a gran escala, herramientas como vLLM u Ollama con scripting propio siguen siendo la opción más flexible.

Descarga e instalación (AppImage)

La distribución para Linux se ofrece como AppImage, un formato portable que no requiere instalación en el sistema. Se descarga desde lmstudio.ai y solo hay que darle permisos de ejecución:

cd ~/Descargas
chmod +x LM-Studio-*.AppImage
./LM-Studio-*.AppImage

Al arrancar por primera vez, LM Studio crea su configuración y sus modelos descargados en el directorio personal del usuario:

  • ~/.lmstudio — modelos descargados, extensiones y datos de la aplicación
  • ~/.config/LM Studio — preferencias de la aplicación (Electron)

Crear un acceso directo en el escritorio

Como el AppImage no se integra solo con el menú de aplicaciones, conviene crear manualmente un archivo .desktop. Podemos guardarlo en ~/Escritorio o en ~/.local/share/applications si queremos que aparezca también en el menú:

[Desktop Entry]
Name=LM Studio
Exec=/ruta/a/LM-Studio-x.x.x-x64.AppImage
Icon=/ruta/a/icono-lm-studio.png
Terminal=false
Type=Application
Categories=Development;Utility;

Le damos permisos de ejecución y, en entornos Cinnamon/GNOME, lo marcamos como confiable para que el sistema lo trate como un lanzador legítimo y no como un simple archivo de texto:

chmod +x "LM Studio.desktop"
gio set "LM Studio.desktop" metadata::trusted true

El campo Icon admite una ruta absoluta a un PNG, lo que es útil si queremos sustituir el icono genérico del AppImage por el icono oficial de la aplicación.

Descargar un modelo

Desde la pestaña de búsqueda (icono de lupa) podemos buscar modelos por nombre —por ejemplo Llama, Mistral, Qwen o Phi— y elegir la cuantización (Q4, Q5, Q8…) según la RAM/VRAM disponible. Como referencia orientativa:

  • Modelos de 7-8B en Q4_K_M: entre 4 y 5 GB, funcionan bien con 8-16 GB de RAM
  • Modelos de 13-14B: recomendable 16 GB de RAM o más
  • Con GPU NVIDIA o AMD compatible, LM Studio puede descargar capas del modelo en VRAM para acelerar la inferencia

Una vez descargado, se selecciona desde el desplegable superior de la pestaña de chat para cargarlo en memoria.

Uso del chat

La pestaña de chat funciona como cualquier interfaz conversacional: se escribe el mensaje y el modelo responde usando la GPU/CPU local. Desde el panel derecho se pueden ajustar parámetros habituales como:

  • Temperature: aleatoriedad de la respuesta
  • Context Length: tamaño de la ventana de contexto
  • GPU Offload: número de capas del modelo delegadas a la GPU

Servidor local compatible con la API de OpenAI

Desde la pestaña Developer (o Local Server en versiones anteriores) se puede levantar un servidor HTTP local que expone el modelo cargado con el mismo formato que la API de OpenAI. Esto permite reutilizar cualquier cliente o librería ya preparada para esa API, apuntando simplemente a la URL local:

curl http://localhost:1234/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "modelo-cargado",
    "messages": [{"role": "user", "content": "Hola, ¿qué eres?"}]
  }'

Con Python, usando el SDK oficial de OpenAI, basta con cambiar la base_url:

from openai import OpenAI

client = OpenAI(base_url="http://localhost:1234/v1", api_key="no-hace-falta")

respuesta = client.chat.completions.create(
    model="modelo-cargado",
    messages=[{"role": "user", "content": "Hola, ¿qué eres?"}]
)

print(respuesta.choices[0].message.content)

Conclusión

LM Studio resuelve de forma muy sencilla el arranque con modelos de lenguaje locales en Linux: sin compilar nada, sin depender de una cuenta en la nube y con una interfaz que sirve tanto para probar modelos manualmente como para integrarlos en nuestro propio código a través de su servidor local. Es un buen punto de partida antes de dar el salto a herramientas más orientadas a producción como llama.cpp o vLLM.

Referencias