ollama llm ia local-ai open-source

Ollama: ejecuta modelos de IA localmente en tu máquina

Pablo Alcalde García

¿Qué pasaría si pudieras ejecutar un modelo de lenguaje tan potente como Llama 3 o Mistral directamente en tu ordenador, sin enviar ningún dato a servidores externos y sin pagar ni un céntimo por cada token? Con Ollama, esto es posible hoy mismo. En esta guía te enseño todo lo que necesitas saber para empezar a usar modelos de IA localmente.

Qué es Ollama

Ollama es una herramienta open-source que permite descargar y ejecutar LLMs en tu propia máquina de forma extremadamente sencilla. Su propuesta de valor principal es eliminar toda la fricción técnica que históricamente hacía difícil ejecutar modelos localmente: compilación desde cero, gestión de dependencias CUDA, configuración de entornos…

Con Ollama, descargar y usar un modelo es tan simple como:

ollama run llama3.2

Y ya está. El modelo se descarga, se carga en memoria y puedes empezar a chatear con él.

Por qué usar Ollama en lugar de APIs cloud

Las razones principales para optar por Ollama sobre las APIs de OpenAI, Anthropic o Google son:

  • Privacidad total: los datos nunca abandonan tu máquina. Fundamental para proyectos con datos sensibles.
  • Sin coste por uso: una vez descargado el modelo, no hay coste por llamada ni por token.
  • Sin dependencia de internet: funciona completamente offline.
  • Personalización: puedes hacer fine-tuning de modelos y crear versiones personalizadas.
  • Sin rate limits: puedes hacer todas las peticiones que tu hardware permita.

La contrapartida evidente es el hardware necesario y que los modelos locales suelen tener una capacidad inferior a los modelos más grandes en la nube.

Instalación

Linux y macOS

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

El script detecta automáticamente tu sistema operativo y arquitectura. En macOS también puedes descargarlo como aplicación desde ollama.com.

Windows

Descarga el instalador desde la página oficial. Ollama para Windows instala también un servicio en segundo plano que gestiona los modelos.

Verificar la instalación

ollama --version

Si todo fue bien, verás algo como ollama version 0.4.x.

Requisitos de hardware

Este es el punto más importante. Los LLMs son modelos grandes que necesitan memoria para cargarse. La regla general:

Tamaño del modeloRAM necesariaEjemplo
1B - 3B parámetros2 - 4 GBLlama 3.2 1B
7B parámetros6 - 8 GBMistral 7B
13B parámetros10 - 16 GBLlama 2 13B
34B parámetros20 - 32 GBCodeLlama 34B
70B parámetros40 - 64 GBLlama 3 70B

Si tienes GPU compatible, Ollama la detecta automáticamente y el rendimiento mejora notablemente. Con CPU el modelo funciona pero es más lento.

Modelos disponibles

El catálogo de modelos disponibles en Ollama es amplio y crece constantemente. Puedes ver todos en ollama.com/library.

Modelos de propósito general

Llama 3.2 (Meta): uno de los modelos más potentes disponibles en open-source. La versión de 3B es perfecta para máquinas con poca RAM, mientras que la de 70B rivaliza con modelos comerciales.

ollama pull llama3.2        # 3B parámetros
ollama pull llama3.2:11b    # 11B parámetros

Mistral (Mistral AI): excelente relación calidad/tamaño. El modelo de 7B es sorprendentemente capaz para su tamaño y funciona bien en máquinas con 8GB de RAM.

ollama pull mistral

Gemma 2 (Google): modelos de calidad con distintos tamaños: 2B, 9B y 27B.

ollama pull gemma2
ollama pull gemma2:27b

Phi-4 (Microsoft): modelos pequeños pero muy eficientes para tareas de razonamiento.

ollama pull phi4

Modelos especializados para código

CodeLlama (Meta): basado en Llama, entrenado específicamente para generar y analizar código.

ollama pull codellama
ollama pull codellama:34b  # Más potente, necesita más RAM

DeepSeek Coder: uno de los mejores modelos para código, especialmente para Python, JavaScript y TypeScript.

ollama pull deepseek-coder

Qwen2.5-Coder: otra excelente opción para programación, con soporte para más de 40 lenguajes.

ollama pull qwen2.5-coder

Modelos multimodales (visión)

LLaVA: puede analizar imágenes además de texto.

ollama pull llava

Comandos esenciales

Gestión de modelos

# Descargar un modelo sin ejecutarlo
ollama pull mistral

# Listar modelos descargados
ollama list

# Eliminar un modelo
ollama rm mistral

# Ver información detallada de un modelo
ollama show mistral

# Copiar un modelo localmente
ollama cp mistral mi-mistral-personalizado

Ejecutar modelos

# Iniciar un chat interactivo
ollama run llama3.2

# Pasar un prompt directamente (sin modo interactivo)
echo "¿Cuál es la capital de España?" | ollama run mistral

# Ejecutar con un fichero de contexto
ollama run codellama < mi_codigo.py

El servidor de Ollama

Ollama incluye un servidor HTTP que expone una API compatible con la de OpenAI. Por defecto está en http://localhost:11434.

# Iniciar el servidor (normalmente ya está corriendo como servicio)
ollama serve

# Listar modelos disponibles vía API
curl http://localhost:11434/api/tags

# Hacer una petición de generación
curl http://localhost:11434/api/generate \
  -d '{"model": "llama3.2", "prompt": "Hola, ¿cómo estás?"}'

Integración en proyectos

Con Python (compatible con OpenAI)

La API de Ollama es compatible con la de OpenAI, lo que significa que puedes usar el SDK oficial de OpenAI apuntando a tu servidor local:

from openai import OpenAI

# Apunta al servidor local de Ollama
client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama"  # Cualquier valor sirve, no se valida
)

response = client.chat.completions.create(
    model="llama3.2",
    messages=[
        {"role": "system", "content": "Eres un asistente de programación."},
        {"role": "user", "content": "Explícame qué es un decorador en Python."}
    ]
)

print(response.choices[0].message.content)

Con el cliente nativo de Ollama

import ollama

# Chat simple
response = ollama.chat(
    model='llama3.2',
    messages=[{'role': 'user', 'content': '¿Qué es Docker?'}]
)
print(response['message']['content'])

# Streaming
for chunk in ollama.chat(
    model='mistral',
    messages=[{'role': 'user', 'content': 'Escribe un script de Python para leer un CSV.'}],
    stream=True
):
    print(chunk['message']['content'], end='', flush=True)

Con JavaScript / TypeScript

const response = await fetch('http://localhost:11434/api/chat', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    model: 'llama3.2',
    messages: [
      { role: 'user', content: '¿Cuánto es 2 + 2?' }
    ],
    stream: false
  })
});

const data = await response.json();
console.log(data.message.content);

Integración con LangChain

from langchain_ollama import ChatOllama
from langchain_core.messages import HumanMessage

llm = ChatOllama(model="llama3.2", temperature=0)

response = llm.invoke([HumanMessage(content="¿Qué es el patrón MVC?")])
print(response.content)

Crear modelos personalizados con Modelfile

Una de las funcionalidades más potentes de Ollama es la capacidad de crear modelos personalizados usando un Modelfile, que funciona de forma similar a un Dockerfile.

# Modelfile para un asistente especializado en Python
FROM llama3.2

# Configurar el system prompt
SYSTEM """
Eres un experto en Python con 10 años de experiencia. 
Siempre proporciona ejemplos de código prácticos y sigue las 
mejores prácticas de PEP 8. Explica el código paso a paso.
Responde siempre en español.
"""

# Ajustar parámetros
PARAMETER temperature 0.3
PARAMETER top_p 0.9
PARAMETER num_ctx 4096
# Crear el modelo personalizado
ollama create asistente-python -f ./Modelfile

# Usarlo
ollama run asistente-python

Ollama vs APIs cloud: cuándo usar cada uno

CriterioOllamaAPI Cloud
PrivacidadExcelenteDepende del proveedor
CosteSolo hardwarePor token
LatenciaDepende del hardwareGeneralmente baja
Calidad del modeloBuena para tamaños razonablesLos mejores modelos
MantenimientoRequiere actualización manualAutomático
EscalabilidadLimitada por hardwarePrácticamente ilimitada
Disponibilidad offlineNo

Usa Ollama cuando:

  • Trabajas con datos sensibles (médicos, legales, financieros).
  • Quieres experimentar sin preocuparte por el coste.
  • Necesitas trabajar sin internet.
  • Vas a hacer muchas peticiones en un entorno controlado.

Usa APIs cloud cuando:

  • Necesitas la máxima calidad posible.
  • Vas a producción con tráfico variable.
  • No quieres gestionar infraestructura.
  • Necesitas las últimas capacidades (visión avanzada, razonamiento complejo).

Conclusión

Ollama ha democratizado el acceso a los LLMs de una forma que hace solo dos años era impensable para un desarrollador individual. Con un simple comando puedes tener un modelo de lenguaje potente corriendo en tu máquina, sin costes, sin suscripciones y con privacidad total.

Para proyectos donde la privacidad importa, para experimentación y aprendizaje, o para entornos sin conexión, Ollama es simplemente imbatible. Para producción con requisitos de calidad máxima o escala, las APIs cloud siguen siendo la opción más sensata. Lo ideal es conocer ambas opciones y elegir según el contexto.

En el próximo post hablaremos de cómo sacar el máximo partido a cualquier LLM mediante técnicas avanzadas de prompt engineering.

¿Te ha gustado este artículo?

Si tienes preguntas o quieres discutir sobre estos temas, no dudes en contactarme.

Contáctame
Escríbeme por WhatsApp