Modelos de Lenguaje (LLMs)
¿Qué es un LLM?
Un Large Language Model (Modelo de Lenguaje Grande) es un sistema entrenado con miles de millones de textos que predice cuál es la siguiente palabra (token) más probable dado un contexto.
No “entiende” español. No “razona” como humanos. Es un motor de predicción de tokens absurdamente sofisticado.
Pero ese motor de predicción, cuando se escala a cientos de miles de millones de parámetros, produce comportamientos que parecen inteligencia: razonar, crear, corregir, traducir, programar.
Conceptos clave
Tokens
Un token es la unidad mínima que procesa el modelo. En español, ~1 token ≈ 1-2 caracteres.
"Hola mundo" → ["Ho", "la", " mun", "do"] → 4 tokensContext Window (Ventana de Contexto)
Es la cantidad de tokens que el modelo puede “recordar” en una sola conversación. Si exceeds este límite, el modelo olvida los mensajes anteriores.
[!IMPORTANT] La context window NO es lo mismo que la longitud de salida. Un modelo con 128K de contexto puede “leer” un libro, pero su respuesta individual sigue siendo limitada.
Temperature
Controla la aleatoriedad de las respuestas:
| Valor | Comportamiento | Uso ideal |
|---|---|---|
| 0.0 | Siempre la misma respuesta | Código, datos factuales |
| 0.3 | Mayormente determinista | Análisis, resúmenes |
| 0.7 | Balanceado | Conversación general |
| 1.0 | Creativo | Escritura creativa, brainstorming |
| 1.5+ | Caótico | Experimentación (poco práctico) |
Top-p (Nucleus Sampling)
Alternativa a temperature: en lugar de ajustar la aleatoriedad global, limita el conjunto de tokens candidatos. Un top_p=0.9 significa que el modelo solo considera tokens que cubren el 90% de la probabilidad acumulada.
System Prompt
Instrucción que define el comportamiento del modelo para toda la conversación. Va antes de los mensajes del usuario.
System: Eres un experto en Python que responde en español, con ejemplos de código.User: ¿Cómo ordenar una lista?Assistant: [responde según el system prompt]Los modelos principales (2025)
| Modelo | Empresa | Context Window | Gratis? | Multimodal | Mejor para |
|---|---|---|---|---|---|
| GPT-4o | OpenAI | 128K | Limitado (ChatGPT Free) | Sí (texto, imagen, audio) | General, código, análisis |
| GPT-4o-mini | OpenAI | 128K | Sí (ChatGPT Free) | Sí | Tareas rápidas y ligeras |
| Gemini 2.5 Pro | 1M+ | Sí (AI Studio) | Sí (texto, imagen, video, audio) | Documentos largos, análisis | |
| Gemini 2.0 Flash | 1M+ | Sí | Sí | Rápido, barato, bueno | |
| Claude Sonnet 4 | Anthropic | 200K | Sí (claude.ai Free) | Sí (texto, imagen) | Escritura, código, análisis |
| DeepSeek V3 | DeepSeek | 128K | Sí (deepseek.com) | Texto principalmente | Razónamiento, código |
| DeepSeek R1 | DeepSeek | 128K | Sí | Texto | Razónamiento con cadena de pensamiento |
| Llama 4 | Meta | 128K-10M | Sí (varios hosts) | Dependiendo versión | Open source, customizable |
| Grok 3 | xAI | 128K+ | Sí (x.com) | Sí | General, humor |
| Mistral Large | Mistral | 128K | Parcial | Sí | Europeo, compliance |
[!NOTE] Los modelos gratuitos cambian frecuentemente. Esta tabla refleja las condições a mediados de 2025. Verifica siempre en el sitio oficial.
Cómo se entrenan (resumen simplificado)
-
Pre-entrenamiento: Se le dan terabytes de texto de internet. Aprende a predecir el siguiente token. Costo: millones de dólares en GPU.
-
Fine-tuning supervisado (SFT): Se le muestran ejemplos de “pregunta → buena respuesta”. Aprende el formato de diálogo.
-
RLHF (Reinforcement Learning from Human Feedback): Humanos califican respuestas. El modelo aprende a preferir respuestas útiles, seguras y honestas.
Pre-entrenamiento (trillones de tokens) → SFT (miles de ejemplos calidad) → RLHF (miles de comparaciones humanas) → Modelo finalRAG: Dándole memoria a los LLMs
RAG (Retrieval-Augmented Generation) es la técnica de buscar información relevante en una base de datos antes de generar una respuesta.
Sin RAG: Pregunta → LLM → Respuesta (puede ser alucinada)Con RAG: Pregunta → [Buscar documentos relevantes] → LLM + Documentos → Respuesta fundamentadaEjemplo con código:
# RAG simple con LangChainfrom langchain.vectorstores import Chromafrom langchain.embeddings import OpenAIEmbeddings
# 1. Indexar documentosvectorstore = Chroma.from_documents(docs, OpenAIEmbeddings())
# 2. Buscar contexto relevantecontext = vectorstore.similarity_search("¿Cuál es la política de devoluciones?")
# 3. Pasar al LLM junto con la preguntaanswer = llm.predict(f"Contexto: {context}\nPregunta: ¿Cuál es la política de devoluciones?")Fine-tuning vs Prompt Engineering vs RAG
| Necesitas… | Usa… | Costo | Esfuerzo |
|---|---|---|---|
| Cambiar el comportamiento | Prompt Engineering | $0 | Minutos |
| Contexto específico y actualizado | RAG | Bajo | Horas |
| Estilo o dominio muy especializado | Fine-tuning | Alto | Días |
[!TIP] Siempre empieza con prompt engineering. El 80% de los problemas se resuelven con mejores prompts, no con más tecnología.
Servir un LLM: APIs y alternativas
APIs (pago por token)
# OpenAIcurl https://api.openai.com/v1/chat/completions \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"Hola"}]}'
# OpenRouter (agrega acceso a 300+ modelos)curl https://openrouter.ai/api/v1/chat/completions \ -H "Authorization: Bearer $OPENROUTER_API_KEY" \ -d '{"model":"google/gemini-2.0-flash-exp:free","messages":[{"role":"user","content":"Hola"}]}'Local (gratis, pero necesitas GPU)
- Ollama:
ollama run llama3— método más simple - LM Studio: Interfaz gráfica para descargar y correr modelos
- llama.cpp: Compilación optimizada para CPU consumer
En el siguiente capítulo aprenderemos prompt engineering, la habilidad más importante para sacar provecho de cualquier LLM.