
Knowledge Graph và GraphRAG: Tìm kiếm tri thức có cấu trúc cho AI
Knowledge Graph và GraphRAG đang thay đổi cách hệ thống AI truy xuất và xử lý thông tin. Bằng cách biểu diễn tri thức dưới dạng đồ thị thay vì văn bản thuần túy, GraphRAG cho phép AI hiểu mối quan hệ giữa các thực thể, cung cấp câu trả lời chính xác và có ngữ cảnh hơn so với RAG truyền thống.
Knowledge Graph là gì
Knowledge Graph (đồ thị tri thức) là một cách biểu diễn tri thức sử dụng node (thực thể) và edge (mối quan hệ) để kết nối thông tin. Khác với cơ sở dữ liệu quan hệ, Knowledge Graph:
- Linh hoạt schema: Có thể thêm thực thể và quan hệ mới bất cứ lúc nào
- Semantic richness: Mối quan hệ mang ý nghĩa (ví dụ: “Apple foundedBy SteveJobs” thay vì chỉ foreign key)
- Truy vấn graph traversal: Tìm đường đi giữa các thực thể, khám phá knowledge ẩn
Ví dụ thực tế: Google Knowledge Graph, Wikidata, và các knowledge graph nội bộ của Facebook, Amazon.
RAG truyền thống vs GraphRAG
Hạn chế của RAG vector-based
RAG (Retrieval-Augmented Generation) truyền thống dùng embedding vector để tìm kiếm document tương tự. Vấn đề:
- Chunk-based: Văn bản bị cắt nhỏ, mất ngữ cảnh toàn cục
- Không hiểu mối quan hệ: Không biết “Apple” là công ty, trái cây, hay hãng đĩa
- Khó multi-hop reasoning: Không thể suy luận qua nhiều bước (A liên quan B, B liên quan C → A liên quan C)
GraphRAG giải quyết thế nào
GraphRAG kết hợp Knowledge Graph với LLM:
- Indexing: LLM trích xuất entities và relationships từ document, xây dựng Knowledge Graph
- Community detection: Phát hiện các cộng đồng (clusters) liên quan trong graph
- Summarization: Tóm tắt từng community thành “community report”
- Query-time: Dựa trên câu hỏi, chọn community reports liên quan, feed vào LLM
Kiến trúc GraphRAG (Microsoft Research)
Phương pháp GraphRAG nổi bật từ Microsoft Research (2024) bao gồm 4 giai đoạn:
| Giai đoạn | Mô tả |
|---|---|
| 1. Source Documents → Text Units | Chia document thành chunks có overlap |
| 2. Text Units → Element Instances | LLM trích xuất entities, relationships, claims |
| 3. Element Instances → Element Summaries | Gom nhóm và tóm tắt entities/relationships trùng lặp |
| 4. Graph Construction → Community Detection | Xây đồ thị, dùng Leiden algorithm tìm communities |
| 5. Community Reports | LLM tạo summary cho mỗi community |
| 6. Query Answering | Map query → community reports → LLM generate answer |
Ưu điểm của GraphRAG
- Global understanding: Hiểu toàn bộ dataset, không chỉ local chunks
- Multi-hop reasoning: Trả lời câu hỏi phức tạp yêu cầu kết nối nhiều thực thể
- Explainability: Có thể trace lại entities/relationships dẫn đến câu trả lời
- Scalability: Community reports giảm token cần thiết cho queries lớn
Công cụ và Framework phổ biến
- Microsoft GraphRAG: github.com/microsoft/graphrag – Implementation chính thức
- LlamaIndex Knowledge Graph: llamaIndex knowledge graph
- LangChain Graph Index: langchain knowledge graph
- Neo4j + LLM: Graph database phổ biến nhất cho production
- FalkorDB: Graph DB tối ưu cho LLM workloads
Khi nào nên dùng GraphRAG
GraphRAG phù hợp khi:
- Dataset lớn, phức tạp với nhiều mối quan hệ ẩn (legal docs, scientific papers, codebases)
- Cần trả lời câu hỏi “tại sao” và “như thế nào” đòi hỏi reasoning
- Cần audit trail và giải thích cho câu trả lời (compliance, y tế, tài chính)
- Multi-hop queries: “Ai là CEO của công ty mà cổ phần được niêm yết trên sàn giao dịch NYSE?”
RAG vector-based vẫn đủ cho:
- QA đơn giản trên FAQ, tài liệu hướng dẫn
- Dataset nhỏ, ít mối quan hệ phức tạp
- Yêu cầu latency cực thấp, chi phí thấp
Triển khai GraphRAG thực tế
- Chuẩn bị dữ liệu: PDF, HTML, markdown → clean text
- Entity extraction: Dùng LLM (GPT-4, Claude, local LLM) trích xuất entities/relationships
- Graph construction: Lưu vào Neo4j, FalkorDB, hoặc in-memory
- Community detection: Leiden/Louvain algorithm
- Query pipeline: Query → embedding → community search → LLM answer
Thách thức và hạn chế
- Chi phí LLM calls: Entity extraction và community summarization tốn nhiều token
- Indexing time: Xây dựng graph chậm hơn vector indexing
- Entity resolution: Khó hợp nhất entities trùng lặp (Apple Inc. vs Apple Computer)
- Graph maintenance: Cập nhật knowledge graph khi dữ liệu thay đổi
Xu hướng tương lai
GraphRAG đang phát triển theo hướng:
- Dynamic Knowledge Graphs: Cập nhật real-time khi dữ liệu thay đổi
- Multi-modal GraphRAG: Kết hợp text, image, video trong cùng graph
- Agentic GraphRAG: AI agent tự duyệt graph để tìm câu trả lời
- Federated Knowledge Graphs: Kết nối các knowledge graph riêng biệt
Với khả năng reasoning vượt trội, GraphRAG đang trở thành chuẩn mực mới cho các ứng dụng AI cần hiểu sâu và chính xác tri thức doanh nghiệp.
So sánh chi phí: GraphRAG vs Vector RAG
Khi đánh giá việc áp dụng GraphRAG, cần cân nhắc chi phí so với lợi ích:
| Yếu tố | Vector RAG | GraphRAG |
|---|---|---|
| Indexing cost (token) | Thấp (chỉ embedding) | Cao (entity extraction + summarization) |
| Query cost | Thấp | Trung bình (community report retrieval) |
| Accuracy (multi-hop) | Thấp | Cao |
| Maintenance | Dễ (re-embed) | Phức tạp (graph update) |
Với dataset nhỏ (< 100 docs) hoặc QA đơn giản, Vector RAG thường đủ. Với dataset lớn, phức tạp và yêu cầu reasoning sâu, GraphRAG xứng đáng đầu tư.
Best practices khi triển khai GraphRAG
- Chọn LLM phù hợp: GPT-4o cho production, Llama 3.1 70B cho self-hosted
- Tune extraction prompts: Customize prompt cho domain cụ thể (legal, medical, code)
- Community size: Điều chỉnh resolution parameter trong Leiden algorithm để cân bằng granularity vs coverage
- Hybrid approach: Kết hợp vector search + graph traversal cho kết quả tốt nhất
- Evaluation metrics: Dùng recall@k, MRR, và human evaluation thay vì chỉ embedding similarity


