
Taxonomy Lỗi RAG: 3 Tầng, Không Phải 1 Nguyên Nhân
Một câu trả lời sai của RAG có thể bắt nguồn từ retrieval, representation, hoặc generation - và mỗi tầng cần một cách sửa hoàn toàn khác nhau. Sửa nhầm tầng là lãng phí, không phải lỗi vặt.
Thuộc chuỗi bài: RAG Pipeline: 5 Quyết Định Định Hình Chất Lượng Câu Trả Lời
Khi một hệ thống RAG trả lời sai, phản xạ gần như luôn là sửa model — viết lại prompt, đổi sang model lớn hơn, thêm chỉ dẫn. Phản xạ đó thường nhắm sai tầng. Một câu trả lời sai có thể bắt nguồn từ retrieval, từ cách context được biểu diễn cho model, hoặc từ chính generation — và mỗi nguyên nhân gốc trong ba nhóm đó cần một cách sửa hoàn toàn khác nhau.
Sơ Đồ 3 Tầng Lỗi Trong Pipeline RAG
Vì Sao "Model Trả Lời Sai" Không Phải Là Một Chẩn Đoán
Paper nền tảng của Barnett et al. về failure point trong RAG nêu tên 7 cách khác nhau mà một hệ thống RAG có thể thất bại: Missing Content, Missed Top-Ranked Document, Not in Context, Not Extracted, Wrong Format, Incorrect Specificity, và Incomplete. Bài viết được trích dẫn rộng rãi của Wenqi Glantz mở rộng danh sách này thành 12 pain point, bao phủ cùng phạm vi nhưng chi tiết hơn về mặt vận hành. Giá trị của việc đặt tên riêng từng lỗi không nằm ở học thuật — một câu trả lời sai trông giống hệt nhau với người dùng dù nguyên nhân là lỗi nào trong 7 lỗi đó, nhưng cách sửa cho mỗi lỗi lại nằm ở một phần khác nhau của pipeline.
Ba Tầng, Ba Nhóm Lỗi Khác Nhau
Cách phân nhóm thực chiến của Snorkel AI gom các failure point trên vào 3 tầng pipeline, và cách phân nhóm đó là cách nhanh nhất để phân loại một câu trả lời tệ. Lỗi retrieval nghĩa là tài liệu đúng chưa bao giờ lọt vào tập ứng viên — hoặc nó không tồn tại trong corpus (Missing Content), hoặc tồn tại nhưng không được xếp hạng đủ cao (Missed Top-Ranked Document). Lỗi representation nghĩa là retrieval đã làm đúng việc, nhưng thông tin không "sống sót" trên đường từ chunk được lấy về đến context có thể dùng được — bị tách khỏi chi tiết cần thiết xung quanh (Not in Context) hoặc có mặt nhưng bị model bỏ sót (Not Extracted). Lỗi generation nghĩa là model có mọi thứ cần thiết nhưng vẫn tạo ra câu trả lời sai hình dạng (Wrong Format, Incorrect Specificity, Incomplete).
Soi 3 Lỗi Cùng Trông Giống Nhau, Khác Tầng Gốc
Chính sách hoàn tiền cho gói Enterprise là gì?
Corpus chỉ có tài liệu chính sách hoàn tiền cho gói Free và Pro — không có tài liệu nào nói về Enterprise. Retriever vẫn trả về chunk 'gần giống nhất' (chính sách gói Pro) vì similarity score không bao giờ bằng 0.
Gói Enterprise được hoàn tiền trong 30 ngày đầu. (sai — đây là chính sách của gói Pro, không tồn tại tài liệu Enterprise nào)
Đây là lỗi 'Missing Content' của Barnett et al. — thông tin cần thiết không tồn tại trong corpus. Không phải lỗi retriever chọn sai chunk, mà là chunk đúng chưa từng được viết ra. Vấn đề nằm ở nguồn dữ liệu, không nằm ở embedding hay prompt.
→ Bổ sung tài liệu còn thiếu vào corpus, không phải chỉnh retriever hay prompt
Cùng Một Triệu Chứng, Ba Nguyên Nhân Gốc Khác Nhau
Bộ soi lỗi ở trên cho thấy vì sao taxonomy này quan trọng trong thực tế: một câu trả lời mơ hồ hoặc thiếu sót có thể đến từ một tài liệu chưa từng được viết ra, một sự thật bị chôn vùi trong context dài mà model lướt qua, hoặc một model đã có đúng con số nhưng chọn không nêu ra. Cả ba trường hợp đều trông như "câu trả lời chưa đủ tốt" nhìn từ bên ngoài. Chẩn đoán sai nhóm lỗi đang gặp nghĩa là sửa sai tầng — viết lại prompt không giúp ích gì cho một tài liệu không tồn tại, và thêm tài liệu vào corpus không giúp ích gì cho một model đã có sẵn câu trả lời nhưng diễn đạt mơ hồ.
Tầng Nào Thực Sự Gây Lỗi Nhiều Nhất
Lỗi RAG Phân Bố Theo Tầng Pipeline
Tầng pipeline → mức độ phổ biến quan sát được → mức độ dễ nhận ra khi debug
Tài liệu cần thiết không tồn tại, hoặc tồn tại nhưng không lọt vào top-k — nhóm lỗi được nhắc đến nhiều nhất trong các phân tích thực chiến.
Chunk đúng được lấy về nhưng thông tin bị tách khỏi ngữ cảnh cần thiết, hoặc bị bỏ sót khi model xử lý context dài.
Model có đủ dữ liệu đúng nhưng trình bày sai — đây là nhóm lỗi dễ nhìn thấy nhất (vì nó nằm ngay trong câu trả lời cuối) nên hay bị nghi ngờ đầu tiên, dù không phải nhóm phổ biến nhất.
Vì generation là tầng cuối cùng — nơi lỗi thực sự 'lộ ra' trong câu trả lời — đội ngũ thường prompt-engineer generation trước, trong khi phần lớn lỗibắt nguồn từ retrieval/representation phía trên
Đây là một xếp hạng định tính tổng hợp từ quan sát ngành (Barnett et al., Snorkel AI blog, Wenqi Glantz) về nhóm lỗi nào được nhắc đến/gặp nhiều nhất trong phân tích thực chiến — không phải một con số tần suất đo được từ một dataset benchmark cụ thể. Không có nghiên cứu nào công bố tỷ lệ % chính xác cho từng tầng; dùng thứ tự này để định hướng nơi debug trước, không dùng như một con số thống kê chính xác cho hệ thống của riêng bạn.
Vì Sao Thứ Hạng Này Không Phải Một Đảm Bảo Cho Hệ Thống Của Bạn
Thứ tự ở trên phản ánh nhóm lỗi nào được báo cáo nhiều nhất trên tổng thể các phân tích sự cố RAG — không phải một quy luật áp dụng giống hệt cho mọi pipeline. Một đội xây RAG trên một corpus nội bộ hẹp và được chọn lọc kỹ có thể đã loại bỏ phần lớn lỗi retrieval đơn giản vì gần như không có chỗ để một tài liệu bị thiếu, khiến nút thắt thực sự của họ dịch chuyển sang representation hoặc generation thay vào đó. Dùng thứ hạng này để quyết định nên nhìn vào đâu trước khi bạn chưa có dữ liệu lỗi của riêng mình — không dùng nó như một lý do để bỏ qua việc kiểm tra một tầng chỉ vì nó ít phổ biến hơn trên bình diện toàn ngành.
Xây Dựng Error Analysis Xoay Quanh 3 Tầng
Giá trị thực tiễn của taxonomy này nằm ở cách bạn phân loại lỗi, không chỉ ở cách đặt tên chúng. Khi review một loạt câu trả lời tệ, hãy xếp mỗi câu vào retrieval, representation, hoặc generation trước khi quyết định cách sửa — đây là bước phân loại chỉ mất năm phút nhưng ngăn được sai lầm phổ biến hơn nhiều: tinh chỉnh lặp đi lặp lại cùng một tầng (thường là generation, vì nó dễ thấy nhất) trong khi nút thắt thực sự nằm ở phía trên chưa được động tới. Một đợt tăng đột biến lỗi ở một tầng cụ thể trên nhiều câu hỏi cũng là tín hiệu đáng theo dõi riêng, vì nó thường chỉ ra một khoảng trống mang tính hệ thống (thiếu hẳn một nhóm tài liệu, hoặc context window liên tục quá dài) chứ không phải một sự cố đơn lẻ.
Những Sai Lầm Thường Gặp Khi Chẩn Đoán Failure Mode
Các lỗi lặp lại: coi mọi câu trả lời sai là vấn đề generation và tinh chỉnh prompt trước tiên, trong khi cách sửa thực sự nằm ở tầng phía trên; không phân biệt "tài liệu không tồn tại" với "tài liệu tồn tại nhưng không được xếp hạng đủ cao," hai trường hợp này cần cách sửa retrieval hoàn toàn khác nhau (thêm nội dung so với tinh chỉnh retriever); mặc định rằng một chunk được retrieve đúng đảm bảo câu trả lời đúng, trong khi lỗi representation vẫn có thể nuốt mất thông tin đúng trước khi nó đến được generation; và bỏ qua hoàn toàn bước phân loại theo tầng, khiến không thể biết một cách sửa có thực sự chạm vào nguyên nhân gốc hay chỉ thay đổi triệu chứng bên ngoài.