Cómo usar inteligencia artificial generativa (LLM) en local con Docker

IA en local con Docker
Solucionex
04
Ago 25

La inteligencia artificial generativa ya no es exclusiva de grandes plataformas en la nube. En este artículo te mostramos cómo puedes ejecutar modelos de lenguaje como LLaMA 3 de Meta directamente en tu equipo, usando Docker y tu GPU NVIDIA para acelerar el procesamiento. Todo de forma segura, privada y sin coste adicional por API.

✅ ¿Por qué ejecutar modelos LLM en local?

Cada vez más organizaciones se interesan en correr modelos en sus propias máquinas por varias razones:

  • Privacidad: los datos no salen de tu infraestructura.
  • Rendimiento: procesamiento inmediato sin latencia de red.
  • Coste cero: no pagas por tokens o peticiones externas.
  • Personalización: puedes afinar modelos según tu negocio.

Con herramientas como Ollama, esto es posible en minutos.

🛠️ Requisitos previos

Para seguir esta guía, necesitas:

  • Un equipo con GPU NVIDIA compatible con CUDA
  • Docker (versión 20.10.16 o superior)
  • Sistema operativo Linux (Ubuntu o Debian)

🔧 Configuración paso a paso

1. Instalar soporte GPU para Docker

Primero, habilita el runtime NVIDIA para contenedores Docker:

# Añadir repositorio oficial
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
  sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg && \
  curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

# Instalar componentes necesarios
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

Después, reinicia Docker:

sudo systemctl restart docker

Y asegúrate de que detecta el runtime nvidia:

docker info | grep Runtimes

2. Proyecto base con Docker y Ollama

Creamos un proyecto mínimo con Docker que levanta Ollama listo para usar con GPU.

📁 Estructura
ollama-local/
├── docker-compose.yml
└── (PDF para prueba)
📦 docker-compose.yml
services:
  ollama:
    image: ollama/ollama
    ports:
      - "11434:11434"
    environment:
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=compute,utility,graphics
    gpus: all
    volumes:
      - ollama_data:/root/.ollama
    restart: unless-stopped

volumes:
  ollama_data:

3. Desplegar el entorno

Ejecuta:

docker compose up -d --build

Esto levantará Ollama con soporte para GPU NVIDIA.

Prueba que esté funcionando:

curl http://localhost:11434

4. Ejecutar un modelo LLM como LLaMA 3

Descarga y ejecuta un modelo como llama3:

docker compose exec ollama bash ollama pull llama3

Ahora ya puedes enviar peticiones por API desde la consola de tu dispositivo lanzando:

curl -X POST http://localhost:11434/api/generate \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama3",
    "prompt": "Resúmeme las ventajas de la IA local.",
    "stream": false
  }'

🧪 Prueba avanzada: resumen de documentos PDF

Vamos a hacer una prueba más compleja: desde tu dispositivo, convertiremos un PDF de ejemplo usando la herramienta pdftotext, volcando el contenido en un archivo de texto que enviaremos al prompt para generar un resumen con Ollama:

pdftotext /ejemplo.pdf /tmp/ejemplo.txt

PROMPT="$(printf "Resume el siguiente documento PDF y devuélvemelo en JSON con las variables 'title' y 'summary':" \
  "$(cat /tmp/ejemplo.txt)"

curl -s http://localhost:11434/api/generate \
  -X POST -H "Content-Type: application/json" \
  -d "$(jq -n --arg model llama3 --arg prompt "$PROMPT" --argjson stream false \
        '{model: $model, prompt: $prompt, stream: $stream}')" \
| jq -r .response | jq .

Ejemplo de salida:

{
  "title": "Documento de Ejemplo en PDF",
  "summary": "Este archivo PDF contiene contenido de prueba generado automáticamente, ideal para demostraciones, pruebas de formato o flujos de trabajo con documentos digitales."
}

🧠 ¿Qué puedes construir a partir de aquí?

  • Sistemas de gestión documental con resúmenes automáticos
  • Asistentes empresariales offline con tus propios datos
  • Chatbots internos sin depender de terceros
  • Proyectos de I+D en entornos aislados

💼 ¿Quieres ayuda para implementar IA en tu empresa?

En Solucionex somos expertos en implantar soluciones a medida: portales corporativos, aplicaciones de gestión, plataformas de datos abiertos y sistemas de integración, utilizando tecnologías como Drupal, Symfony, Laravel y más.

Acompañamos a organizaciones públicas y privadas en su transformación digital, y exploramos herramientas como Ollama o modelos de lenguaje LLM cuando pueden aportar eficiencia, automatización o mejora en la experiencia de usuario.

➡️ ¿Buscas una solución adaptada a tu organización? Escríbenos y cuéntanos tu idea.