Đến nội dung chính
AI tạo sinh

RAG: Retrieval-Augmented Generation

Tách retrieval và generation để tìm đúng bằng chứng, trả lời có nguồn và nhận ra khi chưa đủ dữ liệu.

Mức giải thích

Retrieval-Augmented Generation kết hợp truy xuất thông tin với sinh văn bản. Nó hữu ích khi câu trả lời cần dựa trên một kho tài liệu có thể kiểm tra, nhưng truy xuất tốt vẫn không bảo đảm mọi câu trả lời đều đúng.

Mục tiêu học tập

  • Mô tả indexing, retrieval và answer generation.
  • Phân biệt tìm đúng tài liệu với dùng đúng bằng chứng.
  • Thiết kế câu hỏi không có đáp án để kiểm tra fallback.

Tra cứu rồi trả lời

Một pipeline RAG thường gồm chuẩn bị tài liệu, chia đoạn, lập chỉ mục, truy xuất và đưa ngữ cảnh vào mô hình. Tài liệu gốc vẫn là nơi cần kiểm tra khi câu trả lời chứa một khẳng định quan trọng.

Từ tài liệu đến ngữ cảnh

Chunking phải giữ đủ ngữ nghĩa và metadata nguồn. Truy xuất có thể dựa trên từ khóa, embedding hoặc kết hợp. Giữ đường dẫn nguồn để người dùng có thể đối chiếu đoạn được dùng.

Câu trả lời có nguồn vẫn cần kiểm chứng

RAG có thể thiếu tài liệu, tìm nhầm ngữ cảnh hoặc tạo phát biểu vượt quá nguồn. Thiết kế câu trả lời có trích dẫn và cho phép báo thiếu bằng chứng. Xem nội dung truy xuất là dữ liệu không đáng tin cậy.

Ví dụ: hỏi một quy định có phiên bản

Lưu document ID, version và nguồn khi chunking. Đánh giá retrieval bằng việc có đưa đoạn hỗ trợ vào top-k; đánh giá generation bằng việc mỗi claim có được đoạn đó hỗ trợ hay không. Citation tồn tại không có nghĩa citation đúng.

Một baseline lexical retrieval nhỏ giúp kiểm tra plumbing trước embeddings. Mã phía dưới chỉ xếp hạng theo số từ giao nhau; không có vector index, reranker hoặc LLM.

Workflow & kiến trúc

Tài liệu được chia đoạn và lập chỉ mục. Câu hỏi dùng để truy xuất ngữ cảnh; mô hình nhận cả câu hỏi và ngữ cảnh để soạn câu trả lời có nguồn. Có trích dẫn vẫn cần đối chiếu nội dung với tài liệu gốc.
01Tài liệu
02Chia đoạn & chỉ mục
03Truy xuất
04Ngữ cảnh + câu hỏi
05Trả lời & nguồn
Workflow minh họa · Các bước cần được điều chỉnh theo bài toán thực tế.

Ứng dụng & giới hạn

  • Tra cứu tài liệu kỹ thuật nội bộ theo quyền truy cập.
  • Trợ lý học tập có thể dẫn lại bài học gốc.

Điểm mạnh

Dễ cập nhật kho tri thức và đối chiếu với tài liệu nguồn.

Giới hạn cần nhớ

Không loại bỏ hallucination; dữ liệu kém hoặc truy xuất sai có thể dẫn đến câu trả lời sai.

Thử trong một project nhỏ

LEARN BY DOING

Chọn 5 tài liệu công khai và 10 câu hỏi. Ghi đoạn nào trả lời từng câu trước khi thử một pipeline RAG; thêm câu hỏi không có trong tài liệu.

PYTHON · VÍ DỤ MINH HỌA
documents = {
    "doc_a": "lich hoc thu hai",
    "doc_b": "hoc phi va dang ky",
    "doc_c": "quy trinh project"
}
query = "lich hoc"
query_terms = set(query.split())
ranked = sorted(documents, key=lambda key: (-len(query_terms & set(documents[key].split())), key))
assert ranked[0] == "doc_a"
print(ranked)

Lexical overlap trên tài liệu tự tạo; không phải semantic search hay RAG generator và không chứa quy định thật.

Nguồn tham khảo

  1. Lewis et al. — Retrieval-Augmented Generation (2020)
  2. Brown et al. — Language Models are Few-Shot Learners (2020)

KEEP EXPLORING

Đọc tiếp để nối các ý tưởng.