Product Management
Đăng nhập
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Bài 5 — Chẩn đoán lỗi: retrieval vs generation và citation trung thực

Đã đọc 0/11 mục · còn khoảng 4 phút
Cách chúng tôi ghi nhận

Một mục được tính là đã đọc khi nó nằm giữa màn hình đủ lâu so với độ dài của nó (bảng và sơ đồ tính một nửa), bạn vẫn đang cuộn hoặc bấm phím, và bạn đã thấy tới cuối mục. Lướt nhanh hoặc để tab mở không được tính. Chúng tôi chỉ lưu thời gian đọc từng mục — không lưu gì khác.

Đây là kỹ năng phân biệt PM RAG giỏi với PM RAG mơ hồ: khi câu trả lời sai, biết chính xác lỗi nằm ở đâu để sửa đúng chỗ, thay vì loay hoay đổi model.

Cây chẩn đoán: retrieval hay generation?

Khi một câu trả lời sai, hãy đi theo cây quyết định:

Bước 1 — Mở context ra xem. Lấy đúng những chunk đã được đưa vào mô hình cho câu hỏi đó.

Bước 2 — Hỏi: bằng chứng đúng có trong context không?

  • Không có → Lỗi RETRIEVAL. Mô hình không hề thấy đáp án đúng. Nguyên nhân gốc ở chunking, embedding, hybrid, reranking hoặc freshness (bài 2–4). Đổi model không giúp gì.
  • Có → sang bước 3.
Bước 3 — Bằng chứng đúng đã ở trong context, nhưng câu trả lời vẫn sai. Đây là lỗi GENERATION. Các dạng:
  • Bỏ sót thông tin dù có trong context (thường do context quá dài — "lost in the middle").
  • Bịa thêm chi tiết không có trong nguồn (hallucination).
  • Hiểu sai / diễn giải sai nội dung.
  • Trộn thông tin từ nhiều chunk mâu thuẫn mà không nhận ra.
> Đây là chẩn đoán quan trọng nhất khóa học. Ghi vào tường: "Đáp án không trong context = sửa retrieval. Đáp án có trong context mà vẫn sai = sửa generation." Hai nhánh này cần hai bộ giải pháp hoàn toàn khác nhau.

Cách sửa theo từng nhánh

Nếu là lỗi retrieval

  • Xem lại chunking (cắt cụt ý?), thử kích thước khác.
  • Kiểm tra embedding/ngôn ngữ, cân nhắc hybrid cho mã/tên riêng.
  • Thêm/điều chỉnh reranker nếu chunk đúng có trong top-N nhưng xếp thấp.
  • Kiểm tra freshness: có phải tài liệu đúng chưa vào index?

Nếu là lỗi generation

  • Rút gọn context, tăng precision (bớt nhiễu) — thường hiệu quả hơn đổi model.
  • Cải thiện prompt: yêu cầu "chỉ trả lời dựa trên tài liệu, nếu không có thì nói không biết".
  • Sắp xếp chunk quan trọng lên đầu/cuối để tránh "lost in the middle".
  • Đây là nơi model mạnh hơn có thể giúp — nhưng chỉ sau khi đã loại trừ lỗi retrieval.

Ví dụ chẩn đoán

Câu hỏi: "Bảo hành sản phẩm X kéo dài bao lâu?" Đáp: "24 tháng" (đúng là 12). Bạn mở context: chunk đưa vào có ghi rõ "bảo hành 12 tháng". → Bằng chứng đúng có trong context nhưng model trả lời 24. Lỗi generation (bịa/hiểu sai). Giải pháp: siết prompt, rút gọn context, chứ không phải re-chunk.

Đổi tình huống: mở context ra thấy toàn chunk về sản phẩm Y, không có chunk nào của X. → Lỗi retrieval. Giải pháp hoàn toàn khác: sửa retrieval.

Citation trung thực — cơ chế niềm tin và chẩn đoán

Citation (trích dẫn nguồn) không phải trang trí. Nó phục vụ hai mục đích:

  • Cho người dùng kiểm chứng — tăng niềm tin, cho phép họ tự xác minh.
  • Cho đội ngũ chẩn đoán — nhìn citation là biết mô hình đã dựa vào chunk nào.

Nguyên tắc citation trung thực

  • Chỉ trích nguồn thật sự chứa thông tin được nêu, không gán bừa một nguồn cho có.
  • Câu nào không có nguồn thì không được khẳng định như sự thật; hoặc nói rõ "không tìm thấy trong tài liệu".
  • Citation phải trỏ tới nội dung còn hiệu lực (liên hệ freshness ở bài 4).
  • Cảnh giác citation "đúng hình thức nhưng sai nội dung": mô hình gắn một nguồn nghe hợp lý nhưng nguồn đó không hề nói điều đó — dạng hallucination nguy hiểm vì trông đáng tin.

Vì sao "thà nói không biết"

Một sản phẩm RAG trung thực phải biết từ chối khi không có bằng chứng. Trả lời bừa kèm citation giả còn tệ hơn im lặng, vì nó phá vỡ niềm tin và có thể gây hại (y tế, pháp lý, tài chính). Golden set của bạn (bài 2) nên có nhóm "không có đáp án" để đo đúng năng lực này.

Checklist chẩn đoán

  • [ ] Log lại context thực tế cho mỗi câu trả lời để mổ xẻ được.
  • [ ] Với mỗi câu fail, phân loại: retrieval hay generation.
  • [ ] Thống kê tỷ lệ hai loại lỗi — nó chỉ thẳng backlog ưu tiên.
  • [ ] Kiểm tra citation có trỏ đúng chunk chứa thông tin không.
  • [ ] Test nhóm câu "không có đáp án": hệ thống có dám nói "không biết" không?

Sai lầm thường gặp

  • Sửa mù không mở context. Không nhìn context thì mọi phán đoán chỉ là đoán.
  • Đổ hết cho "model ngu" trong khi đa số lỗi là retrieval.
  • Chấp nhận citation mà không kiểm nguồn có thật sự chứa thông tin.
  • Không cho phép "không biết", ép mô hình luôn phải trả lời → bịa.
  • Không thống kê tỷ lệ loại lỗi, dẫn tới ưu tiên backlog theo cảm tính.
Bài 6 sẽ ghép mọi thứ lại thành quy trình vận hành và ra quyết định sản phẩm trong tình huống thực tế.

Học xong bài này rồi? Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu, và học hết khóa thì có chứng chỉ. Lưu tiến độ của tôi