Capitulo 10: Ollama y Modelos Locales
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
- Privacidad: tu codigo nunca sale de tu maquina
- Sin costo por token: una vez descargado el modelo, el uso es gratuito
- Offline: funciona sin conexion a internet
- Experimentacion: prueba diferentes modelos sin preocuparte por costos
- Cumplimiento: algunas empresas requieren que los datos no salgan de su infraestructura
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
| Modelo | Tamano | Uso recomendado |
|---|---|---|
qwen2.5-coder:32b | ~20GB | Mejor balance calidad/velocidad para codigo |
codellama:34b | ~19GB | Optimizado especificamente para codigo |
deepseek-coder-v2 | ~8GB | Buena relacion calidad/tamano |
llama3.1:70b | ~40GB | Uso 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.
- Descargar desde lmstudio.ai
- Buscar y descargar el modelo deseado desde la interfaz
- Ir a la pestana “Local Server” y activar el servidor
- 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
| Herramienta | Facilidad | Rendimiento | GPU Support | Ideal para |
|---|---|---|---|---|
| Ollama | Alta | Bueno | NVIDIA, AMD | Empezar rapido |
| llama.cpp | Baja | Maximo | NVIDIA, AMD, Metal | Control total |
| LM Studio | Alta | Bueno | NVIDIA, AMD, Metal | Interfaz grafica |
Requerimientos de Hardware
- Modelos 7B: 8GB RAM/VRAM minimo
- Modelos 13-14B: 16GB RAM/VRAM recomendado
- Modelos 32-34B: 24GB+ VRAM (o 64GB RAM en CPU)
- Modelos 70B: 48GB+ VRAM (o 128GB RAM en CPU)
La ejecucion en CPU es posible pero significativamente mas lenta que en GPU.
Siguiente: Capitulo 11: OpenCode Zen —>