Como os he contado en muchos post anteriores es bastente sencillo usar IA local, el problema es que el método por defecto (ollama) no es todo lo óptimo que cabría esperar para equipos que andan más limitados de VRAM y recursos. Por eso, e intentando exprimir un poco más la GPU que tengamos vamos a ir a las fuentes de los LLM y a ejecutarlos de la manera más óptima posible. Vamos a instalar llama.cpp y vamos a ver cómo usarlo desde opencode con algunos modelos interesantes para programar (aunque nada impide que uséis otros para otras cosas).

Lo primero que vamos a hacer es descargarnos el repositorio https://github.com/TheTom/llama-cpp-turboquant que, además de llama.cpp está preparado para un método de quantización dinámica de google (ya me lo agradeceréis). Las instrucciones para compilarlo no son del todo triviales, pero os las reproduzco aquí para unar nvidia con CUDA:
git clone git@github.com:TheTom/llama-cpp-turboquant.git
cd llama-cpp-turboquant
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release
Es posible que no tengáis instalado CUDA Toolkit, que es necesario para poder terminar la compilación adecuadamente, eso se nota si ves un error como

Así que, vamos a la página de nvidia y nos instalamos el correspondiente a nuestra plataforma. En mi caso se traducía en estas instrucciones:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-13-2
sudo apt-get install -y cuda-drivers
Tengo que advertir que esto puede llevar bastante tiempo y puede dar algún error que habrá que solucionar con paciencia (si es que nos queda). En mi caso dio un error sobreescribiendo archivos y tuve que arreglarlo con esto:
apt-get -o Dpkg::Options::="--force-overwrite" install -f
Si tuviste que instalar el cuda toolkit tendrás que añadir en el .rc esto (.bashrc o .zshrc)
export PATH=$PATH:$HOME/.cargo/bin:/usr/local/cuda/bin
export CUDACXX=/usr/local/cuda/bin/nvcc
Una vez con todo en su sitio ya podemos compilar completamente el sistema y nos generará todos los binarios necesarios (ojo, que va a tardar muchos minutos – o incluso horas- dependiendo de vuestro sistema, no os desesperéis)
Una vez compilado, lo siguiente es bajarse un modelo que pueda ejecutar llama. Para eso hay que visitar https://huggingface.co/ y buscar algún modelo bueno en formato GGUF, por ejemplo https://huggingface.co/jgebbeken/gemma-4-coder-gguf/resolve/main/gemma-4-E4b-it.Q4_K_M.gguf?download=true (gemma-4-coder), que es un modelo relativamente pequeño y nos servirá para probar llama.cpp, primero lo descargamos en el directorio models y después:
./build/bin/llama-cli -m models/gemma-4-E4b-it.Q4_K_M.gguf -c 2048 -fa on --cache-type-v turbo3

Una cosa interesante cuando sales del cliente es que te indica el uso de memoria (en este caso os muestro lo que sale en una 3080 de 10Gb con este modelo

Si hemos llegado a este punto ya estamos listos para utilizar llama.ccp para hacer cosas más interesantes. Para ello primero tendremos que lanzar el servidor, esto se hace con el comando:
./build/bin/llama-server --models-dir ./models

Podemos acceder a http://127.0.0.1:8080 y ver un chat donde podremos interactuar con cualquiera de los modelos seleccionandolo (lo que hará que se cargue en memoria), pero lo más interesante es utilizarlo con otro agente. Por ejemplo opencode, ya vimos como usar ollama con opencode, ahora podemos hacer algo similar para añadir el modelo. Básicamente consiste en editar el archivo opencode.jsonc y poner esto (uso los valores del modelo que nos hemos bajado)
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"llamacpp": {
"npm": "@ai-sdk/openai-compatible",
"options": {
"baseURL": "http://localhost:8080/v1"
},
"models": {
"gemma-4-E4b-it.Q4_K_M.gguf": {
"name": "gemma-4 (local)"
}
}
}
}
}
Y después de arrancar opencode ya podremos seleccionar ese modelo con /models

Y trabajar normalmente con nuestro agente… Ya solo queda experimentar y ver qué modelo cabe en vuestra VRAM.













