RAG năm 2026: 5 sai lầm còn thấy trong production
RAG (Retrieval-Augmented Generation) là pattern phổ biến nhất để gắn LLM với dữ liệu riêng. Nhưng sau 2 năm chạy production, đa số hệ thống RAG vẫn mắc 5 sai lầm cơ bản.
1. Chunk theo ký tự thay vì theo ý nghĩa
Nhiều team vẫn dùng split(chunk_size=1000) — cắt giữa câu, giữa bảng. Mô hình nhận được chunk mất mạch logic, retrieval score cao nhưng LLM không hiểu gì.
Giải pháp: semantic chunking theo heading/section, giữ nguyên bảng, list, code block. Tool unstructured.io và LangChain RecursiveCharacterTextSplitter với separators tuỳ context gốc.
2. Top-k cố định là "cái chết thầm lặng"
k=5 cho mọi câu hỏi là lazy. Câu "công ty A doanh thu 2023?" cần 1 chunk. Câu "so sánh chiến lược A, B, C, D trong 5 năm" cần 20 chunks.
Giải pháp: adaptive retrieval — dùng LLM phân loại câu hỏi (factual/comparative/analytical) để chọn k, hoặc retrieve-then-rerank với cross-encoder.
3. Embedding 1 lần duy nhất
Code base hoặc tài liệu sản phẩm thay đổi mỗi tuần. Embedding vector database stale sau 1 tháng, RAG trả kết quả sai. Team không có CI cho embedding.
Giải pháp: cron job detect file thay đổi (git diff hoặc checksum), re-embed incremental, delete vector cũ. Versioning embedding model để rollback.
4. Không đo hiệu suất
"RAG có vẻ hoạt động" — không metrics, không benchmark. Khi model provider update, chất lượng tụt, không ai biết.
Giải pháp: RAGAs hoặc Ragas framework để đo context_precision, context_recall, answer_relevancy, faithfulness. Chạy benchmark weekly với golden dataset.
5. Bỏ qua hybrid search
Pure vector search thất bại với keyword đặc thù (tên sản phẩm, mã lỗi, SKU). BM25 vẫn là vua cho exact match.
Giải pháp: hybrid = BM25 + vector, dùng reciprocal rank fusion (RRF) để trộn score. Qdrant, Weaviate, Pinecone đều hỗ trợ.
Kết luận
RAG không phải "cắm embedding là xong". Production-grade RAG cần chunking tốt, adaptive retrieval, incremental indexing, evaluation pipeline, và hybrid search. Nếu bạn muốn học sâu về pipeline RAG từ zero → production, khoá LLM Quest Academy có level 6 dành trọn cho RAG.
🛠 Open-source: chạy RAG local (không cần API key)
Muốn thử pipeline RAG ngay trên laptop, không phụ thuộc OpenAI/Anthropic — repo này có sẵn:
👉 github.com/learningmapn/fast-local-rag
Đặc điểm:
- Embedding + LLM đều chạy local (Ollama / llama.cpp), 0 API call ra ngoài
- Vector DB nhúng sẵn (Qdrant local hoặc SQLite + sqlite-vss)
- Có sẵn semantic chunking + hybrid search BM25 + vector (đúng §1 và §5)
- CLI + REST endpoint, ingest folder rồi query thẳng
- Eval scaffold dựa trên RAGAs (đúng §4)
Phù hợp khi:
- Data nhạy cảm, không được upload cloud
- Muốn benchmark trước khi quyết định dùng managed service
- Chạy demo offline tại event / khách hàng
Clone → make ingest folder docs → make query → có ngay pipeline. Dùng làm baseline rồi tinh chỉnh từng sai lầm trong 5 mục trên.