RAG: cómo un LLM puede consultar cualquier base de conocimiento en tiempo real
RAG permite a un modelo responder sobre información que no existe en su entrenamiento. Explicamos cómo funciona y por qué es clave en ciberseguridad.
Imagina que tienes un modelo de lenguaje entrenado en 2024 y necesitas que responda sobre una vulnerabilidad descubierta ayer. ¿Qué haces? Reentrenar el modelo cuesta millones y tarda semanas. La respuesta es mucho más sencilla: RAG.
RAG (Retrieval-Augmented Generation) es la técnica que permite a un LLM responder preguntas sobre información que no existe en sus datos de entrenamiento. En lugar de modificar los pesos del modelo, se le proporciona el contexto relevante en el momento de la consulta.
Cómo funciona paso a paso
1. Indexación (offline): el sistema divide tus documentos en chunks (fragmentos). Cada chunk se convierte en un vector numérico de alta dimensión mediante un modelo de embeddings. Esos vectores se almacenan en una base vectorial.
2. Consulta (online): cuando el usuario hace una pregunta, esta también se convierte en embedding. El sistema busca en la base vectorial los chunks más cercanos (similitud coseno) al vector de la pregunta.
3. Generación aumentada: los chunks más relevantes se insertan en el prompt como contexto. El LLM genera la respuesta usando tanto su conocimiento interno como la información recuperada.
Ejemplo práctico con código:
# Corpus de documentos de seguridad
docs = [
'CVE-2025-1234: Buffer overflow en SSH. Parche disponible.',
'Phishing mediante emails que suplantan entidades financieras.',
'WAF: filtro a nivel aplicación que filtra tráfico malicioso.',
]
# Pregunta del analista
query = '¿Qué hacer ante el CVE en SSH?'
# El embedding del CVE tendrá mayor similitud
retrieved = retrieve(docs, query, top_k=1)
# retrieved = ['CVE-2025-1234: Buffer overflow en SSH...']
prompt = f'Contexto: {retrieved}\nPregunta: {query}'
answer = llm.generate(prompt) # Respuesta con datos actualizados
RAG en ciberseguridad: por qué importa
Las bases de conocimiento de amenazas cambian cada hora. Un SOC puede conectar su SIEM a un sistema RAG que consulten los analistas en lenguaje natural. El modelo no necesita saber cuál es la última amenaza: la recupera del contexto.
Aplicaciones reales: asistentes de análisis de logs en lenguaje natural que consultan repositorios de IOCs actualizados. Chatbots de documentación técnica que acceden a CVEs y advisories. Generación de informes de pentesting que citan automáticamente resultados de escaneos.
RAG vs. Fine-tuning: fine-tuning ajusta los pesos del modelo; RAG no toca el modelo, solo le da contexto. Para datos que cambian frecuentemente, RAG es la opción correcta. Fine-tuning se reserva para cambios de estilo o comportamiento profundo.
En resumen, RAG es la pieza que conecta los LLMs con el mundo real: información actualizada, dominio privado, fuentes externas. Sin ella, un modelo es un snapshot estático. Con ella, es un sistema vivo que consulta cualquier base de conocimiento bajo demanda.