Capitulo 10: Ollama y Modelos Locales

Por: Artiko
opencodeaiollamamodelos-localesprivacidad

Capitulo 10: Ollama y Modelos Locales

< Volver al Indice del Tutorial

Ejecutar modelos localmente te da privacidad total, sin costo por token, funcionamiento offline y libertad para experimentar sin limites.

Por que Modelos Locales

Ollama (Recomendado)

Ollama es la forma mas sencilla de ejecutar modelos locales. Gestiona la descarga, configuracion y ejecucion de modelos con un solo comando.

Instalacion

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

# Verificar instalacion
ollama --version

# Iniciar el servicio (si no se inicio automaticamente)
ollama serve

Modelos Recomendados para Coding

# Descargar modelos
ollama pull qwen2.5-coder:32b
ollama pull codellama:34b
ollama pull deepseek-coder-v2
ollama pull llama3.1:70b
ModeloTamanoUso recomendado
qwen2.5-coder:32b~20GBMejor balance calidad/velocidad para codigo
codellama:34b~19GBOptimizado especificamente para codigo
deepseek-coder-v2~8GBBuena relacion calidad/tamano
llama3.1:70b~40GBUso general, requiere mucha RAM/VRAM

Configurar en OpenCode

// opencode.json
{
  "provider": "ollama",
  "model": "qwen2.5-coder:32b",
  "baseURL": "http://localhost:11434"
}

Aumentar Ventana de Contexto

Por defecto, Ollama usa una ventana de contexto limitada. Para aumentarla:

Opcion 1: Variable de entorno

export OLLAMA_NUM_CTX=32768
ollama serve

Opcion 2: Configuracion systemd (persistente)

sudo mkdir -p /etc/systemd/system/ollama.service.d/
sudo tee /etc/systemd/system/ollama.service.d/override.conf << 'EOF'
[Service]
Environment="OLLAMA_NUM_CTX=32768"
EOF

sudo systemctl daemon-reload
sudo systemctl restart ollama

Opcion 3: Modelfile personalizado

# Crear archivo Modelfile
cat > Modelfile << 'EOF'
FROM qwen2.5-coder:32b
PARAMETER num_ctx 32768
EOF

ollama create qwen-32k -f Modelfile

Listar y Gestionar Modelos

# Ver modelos descargados
ollama list

# Informacion de un modelo
ollama show qwen2.5-coder:32b

# Eliminar un modelo
ollama rm codellama:34b

# Ejecutar un modelo directamente (para probar)
ollama run qwen2.5-coder:32b

llama.cpp

Para control total sobre la inferencia. Requiere compilar desde source pero ofrece maxima flexibilidad.

Instalacion

git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp

# Compilar con soporte CUDA (NVIDIA)
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release

# Compilar sin GPU
cmake -B build
cmake --build build --config Release

Ejecutar servidor compatible con OpenAI

./build/bin/llama-server \
  -m ./models/mi-modelo.gguf \
  --host 0.0.0.0 \
  --port 8080 \
  -c 32768 \
  -ngl 99

Configurar en OpenCode

{
  "provider": {
    "type": "openai-compatible",
    "baseURL": "http://localhost:8080/v1",
    "models": ["mi-modelo"]
  }
}

LM Studio

GUI para gestionar y ejecutar modelos locales. Ideal si prefieres una interfaz grafica.

  1. Descargar desde lmstudio.ai
  2. Buscar y descargar el modelo deseado desde la interfaz
  3. Ir a la pestana “Local Server” y activar el servidor
  4. El servidor expone una API compatible con OpenAI en http://localhost:1234/v1

Configurar en OpenCode

{
  "provider": {
    "type": "openai-compatible",
    "baseURL": "http://localhost:1234/v1",
    "models": ["nombre-del-modelo"]
  }
}

Ollama Remoto

Si tienes Ollama corriendo en otra maquina (por ejemplo, un servidor con GPU potente):

{
  "provider": "ollama",
  "model": "qwen2.5-coder:32b",
  "baseURL": "http://192.168.1.100:11434"
}

Asegurate de que el puerto 11434 este accesible y que Ollama escuche en todas las interfaces:

export OLLAMA_HOST=0.0.0.0
ollama serve

Docker con GPU

NVIDIA

# docker-compose.yml
services:
  ollama:
    image: ollama/ollama
    ports:
      - "11434:11434"
    volumes:
      - ollama_data:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

volumes:
  ollama_data:
# Alternativa con docker run
docker run -d \
  --gpus all \
  -v ollama:/root/.ollama \
  -p 11434:11434 \
  --name ollama \
  ollama/ollama

Despues de iniciar el contenedor, descarga los modelos:

docker exec ollama ollama pull qwen2.5-coder:32b

Tabla Comparativa

HerramientaFacilidadRendimientoGPU SupportIdeal para
OllamaAltaBuenoNVIDIA, AMDEmpezar rapido
llama.cppBajaMaximoNVIDIA, AMD, MetalControl total
LM StudioAltaBuenoNVIDIA, AMD, MetalInterfaz grafica

Requerimientos de Hardware

La ejecucion en CPU es posible pero significativamente mas lenta que en GPU.


Siguiente: Capitulo 11: OpenCode Zen —>