¿Alguna vez ha buscado "guía de despliegue" y no ha conseguido nada, a pesar de que hay un artículo sobre "publicar a la producción"? RAG (Retrieval-Aumentated Generation) resuelve esto mediante la comprensión de significado, no sólo palabras clave. Esta serie muestra cómo surgió RAG, cómo funciona bajo el capó, y cómo construir sistemas de producción.
Navegación de la serie: Esta es la parte 1 de la serie RAG (Retrieval-Aumentated Generation):
RAG (Retrieval-Augmentated Generation) fue desarrollado para hacer que la IA sea más inteligente, dando a los LLMs acceso a información en la que no fueron entrenados. Pero esto es lo interesante: la tecnología abre oportunidades mucho más allá de los chatbots de IA. Potencia la búsqueda semántica en sitios web, recomendaciones de contenido, asistencia para escribir y gestión del conocimiento.
La doble naturaleza: RAG puede ayudar a los clientes (mejor búsqueda, respuestas exactas con citas) o explotarlos (recomendaciones manipulativas, enterrando críticas negativas, emergiendo contenido upsell). La diferencia no es la tecnología, es la intención. ¿Una búsqueda semántica que ayuda a los usuarios a encontrar lo que realmente necesitan? Genial. ¿Una que priorice lo que te hace más dinero mientras parece útil? Ese es el territorio de patrón oscuro, y es por qué entender cómo esto funciona importa.
Esta es la verdad sobre RAG: Suena intimidante. ¿Incrustaciones de vectores? ¿Modelos de transformadores? ¿Cachés de KV? Pero como todo lo demás en el software, se trata de entender cómo funciona. No es necesario saber las matemáticas detrás de las arquitecturas de transformadores más de lo que necesita entender el ensamblaje para escribir C#.
RAG en tres pasos:
El resto son detalles de la implementación.
Esta serie te muestra cómo construir sistemas RAG con código C# en funcionamiento. Sin agitar las manos. Sin suposiciones. Sólo las piezas y cómo encajan.
Lo que aprenderás en esta serie:
Más tarde, también les mostraré cómo construir sistemas RAG completos incluyendo:
Generación de aumento de la obtención: Encuentre información relevante y luego úselo.
flowchart LR
A[User Question] --> B[Retrieve Relevant Info]
B --> C[Retrieved Documents/Context]
C --> D[Generate Response]
A --> D
D --> E[Grounded, Accurate Answer]
style B stroke:#f9f,stroke-width:2px
style D stroke:#bbf,stroke-width:2px
Sin RAG: El usuario pregunta → LLM adivina de la memoria → podría alucinar
Con RAG: El usuario pregunta → Encontrar documentos relevantes → Respuestas LLM usando esos documentos → basados en la realidad
// Without RAG: Hope the LLM knows
var answer = await llm.GenerateAsync("How do I deploy Docker?");
// Risk: Might make up outdated or wrong steps
// With RAG: Give it the docs
var relevantDocs = await vectorSearch.FindSimilar("How do I deploy Docker?");
var context = string.Join("\n", relevantDocs.Select(d => d.Text));
var answer = await llm.GenerateAsync($"Context: {context}\n\nQuestion: How do I deploy Docker?");
// Result: Answer based on YOUR actual Docker deployment docs
Perspicacia clave: Separar el almacenamiento de conocimientos (búsqueda) del razonamiento (LLM). Actualizar sus documentos, la búsqueda permanece actualizada. No se necesita readiestramiento.
RAG se basa en décadas de búsqueda e investigación NLP. Comprender esta historia le ayuda a apreciar por qué RAG está diseñado de la manera en que es y qué problemas resuelve.
Búsqueda basada en palabras clave:
El problema: Estos emparejados caracteres, no significado. Busca "container orquestation" y no encontrarás "Docker Swarm" a menos que aparezcan esas palabras exactas. Podrían manejar errores tipográficos pero no semánticos.
Watson (IBM, 2011):
Modelos de comprensión lectora:
Transformadores (2017): "La atención es todo lo que necesitas"
BERT (2018):
GPT-2/3 (2019/2020):
Representaciones vectoriales densas:
BART (Facebook AI, octubre 2019):
M2M-100 (Facebook AI, octubre 2020):
Ejemplo del mundo real: Mi herramienta de traducción automática neuronal utiliza BART como un modelo de traducción alternativo cuando los servicios primarios no están disponibles, demostrando cómo estos modelos basados en transformadores se convirtieron en bloques de construcción prácticos para los sistemas de producción.
El papel seminal "Generación aumentada de recuperación para tareas NLP intensivas en conocimiento" por Patrick Lewis et al. (Facebook AI Research) introdujo formalmente RAG, construyendo directamente en BART:
Lo que combinaron:
Los resultados: Los sistemas RAG superaron modelos mucho más grandes en tareas de gran intensidad de conocimiento, siendo más eficientes y actualizados. Podría actualizar la base de conocimientos sin necesidad de readiestrar el modelo.
ChatGPT, GPT-4, y Claude hicieron RAG esencial:
Hoy (2024-2025): RAG es el estándar de facto para los sistemas de IA de producción que necesitan precisión y auditabilidad.
Antes de profundizar en los detalles técnicos (que cubriremos en la Parte 2), vamos a entender el flujo de trabajo de alto nivel.
Los sistemas RAG funcionan en tres fases distintas:
flowchart LR
A[Your Documents] --> B[Split into Chunks]
B --> C[Generate Embeddings]
C --> D[Store in Vector DB]
style C stroke:#f9f,stroke-width:2px
style D stroke:#bbf,stroke-width:2px
¿Qué sucede?
Concepto clave: Significados similares producen vectores similares, por lo que "contenedor Docker" y "plataforma de containerización" terminan juntos en el espacio vectorial.
flowchart LR
A[User Question] --> B[Generate Query Embedding]
B --> C[Search Vector DB]
C --> D[Top K Most Similar Chunks]
style B stroke:#f9f,stroke-width:2px
style C stroke:#bbf,stroke-width:2px
¿Qué sucede?
Por qué funciona: "¿Cómo puedo desplegar contenedores?" (consulta) es semánticamente similar a trozos sobre el despliegue Docker, incluso si las palabras exactas difieren.
flowchart TB
A[User Question] --> B[Build Prompt]
C[Retrieved Context] --> B
B --> D[LLM]
D --> E[Generated Answer with Citations]
style B stroke:#f9f,stroke-width:2px
style D stroke:#bbf,stroke-width:2px
¿Qué sucede?
La magia: El LLM no puede alucinar hechos que no están en el contexto. Sólo puede sintetizar y explicar lo que se proporciona.
Rastreemos una consulta a través del sistema:
El usuario pregunta: "¿Cómo uso Docker Compose?"
Paso 1 - Recuperación:
Query embedding: [0.234, -0.891, 0.567, ...]
Search vector DB for similar embeddings...
Retrieved chunks:
1. "Docker Compose is a tool for defining multi-container applications..." (similarity: 0.92)
2. "To use Docker Compose, create a docker-compose.yml file..." (similarity: 0.87)
3. "The docker-compose up command starts all services..." (similarity: 0.83)
Paso 2 - Generación:
Prompt to LLM:
"Context:
[1] Docker Compose is a tool for defining multi-container applications...
[2] To use Docker Compose, create a docker-compose.yml file...
[3] The docker-compose up command starts all services...
Question: How do I use Docker Compose?
Answer (use the context above):"
LLM Response:
"To use Docker Compose [1], start by creating a docker-compose.yml file [2] that
defines your services. Then run 'docker-compose up' to start all services [3]..."
Resultado: Respuesta exacta con citas implícitas de su documentación.
Entender cuándo usar RAG (y cuándo no) requiere compararlo con alternativas.
|--------|-----|-------------| | Actualizaciones de conocimientos Instantánea (sólo actualizar la base de conocimientos) Requiere readiestramiento | Costo Baja (almacenamiento + incrustación) Alta (tiempo de entrenamiento de la GPU) | Precisión Fundamentado en fuentes puede alucinar | Personalización Limitada a la recuperación Adaptación del modelo profundo | Explicabilidad Alto (puede citar fuentes) Bajo (caja negra) | Lo mejor para Tareas intensivas en conocimientos Adaptación de estilo/formato
Cuándo usar Fine-Tuning:
Cuándo usar RAG:
¿Puedes combinar ambos? Afinado para el estilo, RAG para los hechos.
Los LLM modernos cuentan con enormes ventanas de contexto (GPT-4: tokens de 128K, Claude: tokens de 200K).
Problemas con el contexto largo:
Cuando el contexto largo tiene sentido:
Cuando RAG tiene sentido:
Mejores prácticas: Utilice RAG para seleccionar el contenido más relevante y luego utilice un contexto largo para ese subconjunto.
Pocas instancias (dando ejemplos en el prompt) es una simple base de referencia.
Ejemplo del prompt:
Examples:
Q: What is Docker?
A: Docker is a containerization platform...
Q: How does Kubernetes work?
A: Kubernetes orchestrates containers...
Q: What is my new question?
A: [LLM generates answer]
Limitaciones:
Mejora de los GCR:
Se puede pensar en RAG como "incitación automática de pocos disparos a escala".
Puede combinar RAG con la búsqueda tradicional de texto completo usando Reciprocal Rank Fusion (RRF).
¿Por qué híbrido?
public async Task<List<SearchResult>> HybridSearchAsync(string query)
{
// Run both searches in parallel
var semanticTask = SemanticSearchAsync(query, limit: 20);
var keywordTask = KeywordSearchAsync(query, limit: 20);
await Task.WhenAll(semanticTask, keywordTask);
var semanticResults = await semanticTask;
var keywordResults = await keywordTask;
// Combine using Reciprocal Rank Fusion
return ApplyRRF(semanticResults, keywordResults);
}
private List<SearchResult> ApplyRRF(
List<SearchResult> list1,
List<SearchResult> list2,
int k = 60)
{
var scores = new Dictionary<string, double>();
// Score from first list
for (int i = 0; i < list1.Count; i++)
{
var id = list1[i].Id;
scores[id] = scores.GetValueOrDefault(id, 0) + 1.0 / (k + i + 1);
}
// Score from second list
for (int i = 0; i < list2.Count; i++)
{
var id = list2[i].Id;
scores[id] = scores.GetValueOrDefault(id, 0) + 1.0 / (k + i + 1);
}
// Merge and sort by combined score
var allResults = list1.Concat(list2)
.GroupBy(r => r.Id)
.Select(g => g.First())
.OrderByDescending(r => scores[r.Id])
.ToList();
return allResults;
}
Ahora que entiendes lo que es RAG, de dónde vino, y cómo se compara con las alternativas, he aquí por qué importa:
1. Democratización de la IA
2. Precisión práctica
3. Siempre al día
4. Privacidad y control
5. Efectivo en función de los costos
6. Aplicaciones versátiles
Hemos rastreado la evolución de RAG:
Perspectivas clave de la Parte 1:
El modelo mental de tres pasos:
Todo lo demás es optimización.
Ahora lo entiendes. ¿Qué? RAG es, ¿Por qué? importa, y donde ¿Pero cómo funciona debajo del capó?
In Parte 2: RAG Arquitectura e Interiores, nos sumergimos profundamente en los detalles técnicos:
Gasoducto RAG completo:
Internos de LLM:
Inmersiones técnicas profundas:
Continuar a la Parte 2: Arquitectura e Internos →
Después de la Parte 2, estará listo para la Parte 3, donde construimos sistemas reales, resolvemos desafíos comunes y exploraremos técnicas avanzadas como HyDE, RAG multiconsulta y compresión contextual.
Documentos Fundacionales:
Más información:
Siguiente de esta serie:
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.