Product Management
Đăng nhập
ESC

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

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

Bài 1 — RAG là gì và vì sao Agent Q&A nội bộ cần nó

Đã đọc 0/8 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.

Hãy tưởng tượng phòng Nhân sự nhận cùng một câu hỏi mỗi tuần: "Công ty cho nghỉ phép năm bao nhiêu ngày?", "Quy trình xin công tác phí thế nào?". Câu trả lời nằm trong sổ tay nhân viên 80 trang, vài file Google Docs và một kênh Slack cũ. Một Agent Q&A nội bộ là trợ lý trả lời những câu này ngay lập tức, dựa trên đúng tài liệu công ty — không bịa.

Vì sao không dùng thẳng ChatGPT?

Mô hình ngôn ngữ (LLM) chỉ biết dữ liệu công khai lúc huấn luyện. Nó không biết chính sách riêng của công ty bạn, và khi bị hỏi sẽ bịa (hallucinate) một câu nghe rất thuyết phục nhưng sai. Với câu hỏi nội bộ, sai một con số (ví dụ "12 ngày phép" thay vì "14") là rủi ro thật.

RAG (Retrieval-Augmented Generation) giải quyết đúng vấn đề này: trước khi trả lời, hệ thống tìm (retrieve) những đoạn tài liệu liên quan rồi đưa vào prompt cho LLM đọc và trả lời dựa trên đó. LLM không cần "nhớ", nó chỉ cần đọc và tổng hợp từ nguồn bạn cung cấp.

Khung tư duy: 4 bước của một truy vấn RAG

  • Ingest (nạp) — một lần: cắt tài liệu thành đoạn nhỏ (chunk), tạo embedding, lưu vào vector store.
  • Retrieve (truy hồi) — mỗi câu hỏi: chuyển câu hỏi thành embedding, tìm các chunk gần nghĩa nhất.
  • Augment (bổ sung ngữ cảnh) — nhét các chunk tìm được vào prompt kèm câu hỏi.
  • Generate (sinh) — LLM trả lời chỉ dựa trên ngữ cảnh, kèm trích dẫn nguồn.

Ví dụ cụ thể

Câu hỏi: "Nhân viên thử việc có được thưởng Tết không?"

  • Retrieve tìm ra chunk từ file chinh-sach-luong-thuong.pdf, trang 5: "Nhân viên thử việc được hưởng thưởng Tết theo tỷ lệ ngày làm việc thực tế."
  • Generate trả lời: "Có. Nhân viên thử việc được thưởng Tết theo tỷ lệ ngày công thực tế (Nguồn: Chính sách lương thưởng, tr.5)."
Câu trả lời đúng, có nguồn, kiểm chứng được. Đó là mục tiêu của cả khóa.

Pseudocode luồng cơ bản

def answer(question):
    q_vec = embed(question)                     # bước 2
    chunks = vector_store.search(q_vec, k=5)     # top-5 đoạn gần nghĩa
    context = format_with_sources(chunks)        # bước 3
    prompt = f"""Chỉ trả lời dựa trên ngữ cảnh dưới đây.
Nếu không có thông tin, nói 'Tôi không tìm thấy'.

Ngữ cảnh:
{context}

Câu hỏi: {question}"""
    return llm.generate(prompt)                  # bước 4

Khi nào RAG là lựa chọn đúng?

  • Tài liệu thay đổi thường xuyên (chính sách, giá, tồn kho) — RAG cập nhật bằng cách nạp lại dữ liệu, không cần huấn luyện lại.
  • Cần trích dẫn nguồn để người dùng tin và kiểm chứng.
  • Dữ liệu nhạy cảm/nội bộ, không thể gửi để fine-tune mô hình bên ngoài.
RAG không phải giải pháp khi bạn cần mô hình học một kỹ năng/văn phong mới (đó là fine-tune), hay khi câu hỏi cần suy luận nhiều bước trên toàn bộ tài liệu (cần kỹ thuật khác).

Checklist trước khi bắt đầu dự án

  • [ ] Đã xác định nhóm câu hỏi thực tế người dùng hay hỏi (thu 20-30 câu mẫu).
  • [ ] Đã liệt kê nguồn tài liệu và ai là chủ sở hữu (owner) từng nguồn.
  • [ ] Đã thống nhất tiêu chí đúng: trả lời phải có trích dẫn, được phép nói "không biết".
  • [ ] Đã cân nhắc quyền truy cập — ai được thấy tài liệu nào.

Sai lầm thường gặp

  • Kỳ vọng RAG tự sửa tài liệu sai. RAG chỉ giỏi bằng tài liệu bạn đưa vào; "rác vào, rác ra".
  • Bỏ qua bước trích dẫn. Không có nguồn thì người dùng không thể tin, và bạn không debug được câu trả lời sai.
  • Nhầm RAG với fine-tune. Nhồi tài liệu để fine-tune vừa tốn kém vừa khó cập nhật; đa số bài toán Q&A nội bộ chỉ cần RAG.
  • Không cho phép agent nói 'không biết'. Ép trả lời mọi câu là công thức tạo ra bịa đặt.
Bài sau, chúng ta chuẩn bị và làm sạch nguồn tài liệu — nền móng quyết định 80% chất lượng.

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