Skip to content

Instantly share code, notes, and snippets.

@madkoding
Last active April 24, 2026 16:49
Show Gist options
  • Select an option

  • Save madkoding/1f37847812140a2e646194475f10c885 to your computer and use it in GitHub Desktop.

Select an option

Save madkoding/1f37847812140a2e646194475f10c885 to your computer and use it in GitHub Desktop.
Instalar Unsloth en linux

Instalación de Unsloth Studio en Linux

Guía paso a paso para instalar y ejecutar Unsloth Studio en Linux.

Requisitos Previos

  • GPU NVIDIA con driver CUDA
  • Linux con pacman/dnf/apt (este guide usa Arch/pacman)

Instalación

1. Instalar cmake (si no lo tenés)

# Arch Linux
sudo pacman -S cmake
# Debian/Ubuntu
sudo apt install cmake
# Fedora
sudo dnf install cmake

2. Descargar e instalar Unsloth

curl -fsSL https://unsloth.ai/install.sh | sh

3. Ejecutar por primera vez

/root/.unsloth/studio/unsloth_studio/bin/unsloth studio -H 0.0.0.0 -p 8888

Accedé en: http://localhost:8888 El password inicial está en:

cat /root/.unsloth/studio/auth/.bootstrap_password

Configurar como servicio systemd (opcional)

1. Crear el servicio

sudo tee /etc/systemd/system/unsloth.service > /dev/null << 'EOF'
[Unit]
Description=Unsloth Studio
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/root
ExecStart=/root/.unsloth/studio/unsloth_studio/bin/unsloth studio -H 0.0.0.0 -p 8888
Restart=on-failure
Environment=PATH=/root/.unsloth/studio/unsloth_studio/bin:/usr/local/bin:/usr/bin:/bin
Environment=PYTHONPATH=/root/.unsloth/studio/unsloth_studio
[Install]
WantedBy=multi-user.target
EOF

2. Habilitar e iniciar

sudo systemctl daemon-reload
sudo systemctl enable unsloth
sudo systemctl start unsloth

Comandos útiles

# Ver estado
sudo systemctl status unsloth
# Parar
sudo systemctl stop unsloth
# Iniciar
sudo systemctl start unsloth
# Reiniciar
sudo systemctl restart unsloth

Notas

  • Unsloth Studio usa CUDA 13.x por defecto
  • Si usás Qwen y obtenés salidas extrañas, verificá la versión de CUDA
  • Podés cambiar a CUDA 12.x si es necesario

API REST

Unsloth Studio expone una API que podés usar desde cualquier cliente HTTP.

Endpoints base

BASE_URL=http://localhost:8888

Health check

curl ${BASE_URL}/api/health

Listar modelos disponibles

curl ${BASE_URL}/api/models/list

Chat (inferência)

curl -X POST ${BASE_URL}/api/inference/chat \
  -H "Content-Type: application/json" \
  -d '{
    "model": "unsloth/Qwen3-4B-GGUF",
    "messages": [
      {"role": "user", "content": "Hola! cómo estás?"}
    ],
    "max_tokens": 256
  }'

Streaming chat

curl -X POST ${BASE_URL}/api/inference/chat \
  -H "Content-Type: application/json" \
  -d '{
    "model": "unsloth/Qwen3-4B-GGUF",
    "messages": [
      {"role": "user", "content": "Hola! cómo estás?"}
    ],
    "max_tokens": 256,
    "stream": true
  }'

Usar con Python

import requests
url = "http://localhost:8888/api/inference/chat"
payload = {
    "model": "unsloth/Qwen3-4B-GGUF",
    "messages": [{"role": "user", "content": "Hola!"}],
    "max_tokens": 256
}
response = requests.post(url, json=payload)
print(response.json())

Usar con Ollama (compatibilidad)

Si preferís usar el cliente de Ollama, podés configurar Unsloth como endpoint:

# En tu app, apuntá a:
export OLLAMA_BASE_URL=http://localhost:8888/api

Configurar en OpenCode

Para usar la API de Unsloth como endpoint de LLM en OpenCode:

Variable de entorno

export OPENCODE_LLM_API_BASE=http://localhost:8888/api
export OPENCODE_LLM_MODEL=unsloth/Qwen3-4B-GGUF

O en config

Si tu proyecto tiene AGENTS.md, agregá:

### LLM Configuration
- **API Base URL**: `http://localhost:8888/api`
- **Model**: `unsloth/Qwen3-4B-GGUF` (o `unsloth/Qwen3.5-8B-GGUF`)

Ejemplo de request completo

curl -X POST http://localhost:8888/api/inference/chat \
  -H "Content-Type: application/json" \
  -d '{
    "model": "unsloth/Qwen3-4B-GGUF",
    "messages": [
      {"role": "system", "content": "You are a helpful coding assistant."},
      {"role": "user", "content": "Write a hello world in Python"}
    ],
    "max_tokens": 512,
    "temperature": 0.7
  }'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment