LightRAG es un proyecto de investigación de la Universidad de Hong Kong (HKU) que reinventa la generación aumentada por recuperación (RAG) utilizando grafos de conocimiento. Aceptado en EMNLP 2025, reemplaza el enfoque tradicional de almacén de vectores planos con una arquitectura basada en grafos que extrae entidades y sus relaciones de los documentos, permitiendo una comprensión contextual dramáticamente mejor para aplicaciones LLM.
Mientras que los sistemas RAG convencionales recuperan fragmentos de documentos aislados por similitud de embeddings, LightRAG construye un grafo de conocimiento estructurado a partir de tus documentos – las entidades se convierten en nodos, las relaciones en aristas. Cuando llega una consulta, realiza recuperación de doble nivel a través de este grafo: recuperación de bajo nivel para respuestas factuales específicas, recuperación de alto nivel para resúmenes temáticos más amplios. El resultado es una recuperación que entiende no solo qué palabras aparecen juntas, sino cómo los conceptos están realmente conectados.
El proyecto ha atraído una atención significativa de la comunidad de código abierto no solo por su enfoque novedoso, sino por ser práctico. El código es ligero, bien documentado e incluye características como actualizaciones incrementales (sin reconstrucción completa al añadir nuevos documentos), visualización interactiva de grafos y soporte para múltiples backends (OpenAI, Ollama, Hugging Face).
Repositorio: github.com/HKUDS/LightRAG
Cómo Funciona la Recuperación Basada en Grafos de LightRAG?
El RAG tradicional codifica documentos como vectores planos y recupera fragmentos por similitud de coseno – un proceso fundamentalmente limitado porque no tiene comprensión de cómo se relacionan los fragmentos entre sí. LightRAG resuelve esto construyendo un grafo de conocimiento durante la fase de indexación.
graph TD
A[Documentos de Entrada] --> B[Extracción de Entidades]
A --> C[Extracción de Relaciones]
B --> D[Construcción del Grafo de Conocimiento]
C --> D
D --> E[Detección de Comunidades]
D --> F[Embeddings de Entidades]
D --> G[Embeddings de Relaciones]
E --> H[Recuperación de Alto Nivel\nResúmenes]
F --> I[Recuperación de Bajo Nivel\nHechos Específicos]
G --> I
H --> J[Respuesta Agregada]
I --> J
J --> K[Respuesta del LLM]El pipeline funciona en tres fases:
- Construcción del Grafo: Los documentos se procesan para extraer entidades (personas, empresas, conceptos) y sus relaciones. Estos forman un grafo dirigido almacenado como datos estructurados.
- Detección de Comunidades: El grafo se particiona en comunidades de entidades relacionadas mediante agrupamiento jerárquico. Cada comunidad genera un embedding de resumen para recuperación de alto nivel.
- Recuperación de Doble Nivel: Las consultas se comparan tanto con embeddings a nivel de entidad como de comunidad, luego el contexto del grafo recuperado se alimenta al LLM para generar la respuesta.
Ventajas de la Recuperación de Doble Nivel
| Tipo de Consulta | RAG Tradicional | LightRAG Doble Nivel |
|---|---|---|
| “Qué adquirió Apple en 2020?” | Busca fragmentos que mencionan “Apple”, “2020” y “adquisición” | Recuperación de bajo nivel: sigue directamente la arista [Apple] --adquirió--> [Startup X] |
| “Cuál es la estrategia de adquisición de Apple?” | Dispersa entre fragmentos no relacionados | Recuperación de alto nivel: devuelve el resumen comunitario de todo el clúster “adquisiciones de Apple” |
| “Cómo se compara la estrategia de IA de Apple con la de Google?” | Difícil conectar grupos de fragmentos separados | Atraviesa ambos clústeres y devuelve contexto de grafo combinado |
| “Explica la línea temporal del desarrollo de chips de Apple” | Puede perder conexiones cronológicas | Recuperación de bajo nivel sigue aristas temporales |
Especificaciones Clave
| Característica | Descripción | Estado |
|---|---|---|
| Construcción de Grafos | Extracción de entidades y relaciones | Estable |
| Recuperación de Doble Nivel | Consultas de bajo nivel y alto nivel | Estable |
| Actualizaciones Incrementales | Fusionar nuevos documentos sin reconstrucción | Estable |
| Visualización de Grafos | Explorador interactivo entidad-relación | Estable |
| Múltiples Backends | OpenAI, Ollama, Hugging Face, API personalizada | Soportado |
| Acceso API | Python SDK + API RESTful | Estable |
Cómo Funcionan las Actualizaciones Incrementales?
flowchart LR
A[Nuevo Documento] --> B[Extraer Entidades\ny Relaciones]
B --> C{Existen entidades\nen el grafo?}
C -->|Sí| D[Añadir nuevas\nrelaciones y aristas]
C -->|No| E[Crear nuevos\nnodos de entidad]
D --> F[Actualizar detección\nde comunidades]
E --> F
F --> G[Recalcular\nembeddings afectados]
G --> H[Actualizar índices\nde recuperación]
H --> I[Listo para consultas]Backends Soportados
| Backend | Caso de Uso | Configuración |
|---|---|---|
| OpenAI (GPT-4o, GPT-4o-mini) | Despliegues en producción con LLM cloud | LIGHTRAG_LLM_BACKEND=openai |
| Ollama | Despliegues locales/privados | LIGHTRAG_LLM_BACKEND=ollama |
| Hugging Face | Modelos personalizados del HF hub | LIGHTRAG_LLM_BACKEND=huggingface |
| Endpoint Personalizado | Proxies empresariales o APIs auto-alojadas | LIGHTRAG_LLM_BACKEND=custom |
Instalación y Uso
pip install lightrag-hku
from lightrag import LightRAG, QueryMode
rag = LightRAG(workspace_dir="./my_knowledge_base")
rag.insert("Apple adquirió la startup X en 2020 para expandir sus capacidades de IA.")
rag.insert("Google lanzó su modelo Gemini en 2023, compitiendo con GPT-4.")
answer = rag.query("Cuál es la estrategia de adquisición de Apple?",
mode=QueryMode.HYBRID)
fact = rag.query("Qué adquirió Apple en 2020?",
mode=QueryMode.LOCAL)
FAQ
Qué es LightRAG y en qué se diferencia del RAG tradicional? LightRAG es un proyecto de investigación de EMNLP 2025 de HKU que reemplaza la recuperación plana con un enfoque de grafo de conocimiento, permitiendo recuperación de doble nivel.
Cómo funciona la recuperación de doble nivel? Opera en dos granularidades: bajo nivel para relaciones de entidades específicas y alto nivel para resúmenes más amplios, seleccionando automáticamente el nivel apropiado según la consulta.
Soporta actualizaciones incrementales? Sí, mediante reconstrucción parcial del grafo. Los nuevos documentos se fusionan sin reconstrucción completa.
Qué capacidades de visualización ofrece? Visualizaciones interactivas con entidades como nodos y relaciones como aristas, codificadas por colores por clúster comunitario.
Qué backends soporta? OpenAI, Ollama, Hugging Face y endpoints personalizados, con API de Python y RESTful.
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!