AIHieu.comAI Hiểu
Tác tử AI, công cụ và bộ nhớ

Tìm kiếm tăng cường (RAG) giải thích đời thường: AI trả lời theo tài liệu ra sao

RAG cho AI tra đúng đoạn tài liệu liên quan rồi mới trả lời, như nhân viên mở sổ tay trước khi đáp khách. Vì sao cách này giảm bịa mà vẫn có lúc trả lời sai.

Clerk at a ward administrative office in Bac Ninh pulling a folder from a tall wooden filing shelf, other folders unlabeled, side view, hands and shoulder only, cool daylight

Tìm kiếm tăng cường, viết tắt RAG (retrieval-augmented generation), là cách cho AI trả lời dựa trên một kho tài liệu cụ thể: trước khi viết câu trả lời, hệ thống tìm vài đoạn liên quan nhất trong kho, chèn chúng vào cùng câu hỏi, rồi mô hình đọc và trả lời dựa trên đó. Giống một nhân viên mới chưa thuộc quy định công ty, nhưng biết mở đúng trang trong sổ tay ra đọc trước khi trả lời khách.

Đây là kỹ thuật nằm phía sau rất nhiều chatbot chăm sóc khách hàng, trợ lý hỏi đáp quy chế nội bộ, hay tính năng "hỏi tài liệu của bạn". Thuật ngữ này được biết đến rộng rãi từ một bài nghiên cứu năm 2020 của nhóm Patrick Lewis và cộng sự. Bài này giải thích nguyên lý bằng ví dụ đời thường; phần dựng hệ thống thuộc về các trang dành cho người lập trình.

Vì sao không đưa luôn cả kho tài liệu cho AI đọc

Câu hỏi tự nhiên đầu tiên là: nếu muốn AI trả lời theo tài liệu của mình, sao không đưa hết tài liệu vào? Lý do nằm ở cửa sổ ngữ cảnh, tức lượng chữ mô hình đọc được trong một lần. Cửa sổ này đã lớn lên nhiều qua các thế hệ mô hình, nhưng một kho tài liệu công ty với hàng nghìn trang vẫn thường vượt quá, và kể cả khi vừa, việc đọc hết mỗi lần trả lời một câu là tốn kém và chậm.

Thêm nữa, mô hình đọc một khối chữ rất dài không chú ý đều như nhau. Thông tin cần thiết nằm lẫn giữa hàng trăm trang dễ bị bỏ sót hoặc trộn với đoạn gần giống. Đưa vào đúng ba bốn đoạn liên quan thường cho câu trả lời tập trung hơn là đưa cả kho.

Cách khác là huấn luyện thêm mô hình trên tài liệu của mình. Nhưng cách này tốn kém, mỗi lần tài liệu thay đổi lại phải làm lại, và mô hình vẫn có thể nhớ sai hoặc trộn lẫn. RAG giải quyết theo hướng đơn giản hơn: giữ nguyên mô hình, chỉ thay đổi thứ mà mô hình được đọc mỗi lần trả lời. Cập nhật tài liệu trong kho là câu trả lời cập nhật theo.

RAG chạy qua những bước nào

Phần dưới mô tả một hệ thống RAG điển hình. Có hai giai đoạn: chuẩn bị kho một lần, và tra cứu mỗi khi có câu hỏi.

  1. Cắt tài liệu thành đoạn. Quy chế, sổ tay, hướng dẫn được chia thành những đoạn ngắn, mỗi đoạn vài trăm chữ, để sau này lấy ra cho gọn.
  2. Đánh dấu ý nghĩa cho từng đoạn. Mỗi đoạn được chuyển thành một dãy số đại diện cho nghĩa của nó, gọi là nhúng. Hai đoạn nói về cùng chuyện sẽ có dãy số gần nhau, dù dùng chữ khác nhau. Thuật ngữ này có bài giải thích riêng ở danh mục thuật ngữ.
  3. Khi có câu hỏi, tìm đoạn gần nghĩa nhất. Câu hỏi cũng được chuyển thành dãy số, hệ thống so và lấy ra vài đoạn gần nhất. Nhiều hệ thống kết hợp thêm tìm theo từ khoá thông thường để bắt tên riêng, mã số.
  4. Ghép đoạn vào câu hỏi. Các đoạn tìm được được đặt cạnh câu hỏi, kèm chỉ dẫn kiểu "chỉ trả lời dựa trên các đoạn sau, không có thì nói không biết".
  5. Mô hình viết câu trả lời. Mô hình đọc và trả lời, nhiều hệ thống yêu cầu nó ghi rõ lấy từ đoạn nào để người dùng kiểm.

Chú ý bước ba: mô hình ngôn ngữ chỉ thấy những gì bước tìm kiếm mang về. Nếu bước tìm lấy nhầm đoạn, mô hình giỏi tới đâu cũng trả lời sai.

Tìm theo nghĩa và tìm theo chữ: ví dụ giả định

Để thấy vì sao RAG thường dùng tìm theo nghĩa, xét một ví dụ giả định ở một trường học có sổ tay quy định cho phụ huynh.

Câu phụ huynh hỏiĐoạn trong sổ tayTìm theo chữTìm theo nghĩa
Cháu bị ốm thì xin nghỉ thế nào?Học sinh vắng mặt vì lý do sức khoẻ cần có đơn của cha mẹ gửi giáo viên chủ nhiệmKhó khớp vì không trùng chữ "ốm", "xin nghỉ"Khớp vì cùng ý nghỉ học do bệnh
Mã lớp 6A3 học phòng nào?Lớp 6A3: phòng 204 dãy BKhớp chính xác nhờ mã lớpCó thể lẫn với lớp 6A2, 6A4 vì nghĩa gần nhau
Đón con muộn có bị phạt không?Phụ huynh đón trễ sau giờ quy định vui lòng báo trước cho nhà trườngKhó khớpKhớp vì cùng chủ đề đón trễ

Bảng cho thấy mỗi cách có điểm mạnh riêng. Tìm theo nghĩa hiểu cách nói khác nhau của cùng một ý; tìm theo chữ giữ chính xác với mã số, tên riêng. Vì vậy hệ thống tốt thường dùng cả hai.

Vì sao RAG giảm bịa nhưng không hết bịa

Tìm nhầm đoạn. Câu hỏi mơ hồ hoặc tài liệu viết lủng củng khiến bước tìm lấy về đoạn gần chủ đề nhưng không trả lời đúng câu hỏi. Mô hình vẫn cố trả lời từ đoạn đó.

Thông tin bị cắt đôi. Khi chia tài liệu, một quy định có điều kiện ở đoạn này và ngoại lệ ở đoạn kế tiếp có thể bị tách rời. Mô hình chỉ thấy nửa đầu và trả lời thiếu ngoại lệ.

Tài liệu trong kho mâu thuẫn hoặc cũ. Kho chứa cả bản quy chế năm cũ lẫn năm mới thì hệ thống có thể lấy nhầm bản cũ. RAG chỉ tốt bằng kho tài liệu nó tra.

Mô hình chêm kiến thức riêng. Dù được dặn chỉ dựa vào tài liệu, mô hình vẫn có thể thêm chi tiết từ trí nhớ chung cho câu trả lời trôi chảy, và chi tiết đó không có trong tài liệu của bạn.

Không biết mà không nói không biết. Khi tài liệu không có câu trả lời, hệ thống lý tưởng nên nói thẳng. Nhiều hệ thống vẫn trả lời theo đoạn gần nhất tìm được, nghe hợp lý nhưng sai.

Kho tài liệu tốt thì câu trả lời mới tốt

Người ta hay chú ý tới mô hình mạnh hay yếu, nhưng với RAG, phần lớn chất lượng nằm ở kho tài liệu và cách chia đoạn. Những đặc điểm dưới đây khiến một kho dễ cho AI tra cứu đúng, và cũng chính là những đặc điểm khiến người tra cứu thấy dễ đọc.

  • Mỗi tài liệu có một bản hiện hành rõ ràng. Bản cũ được gỡ hoặc đánh dấu hết hiệu lực, để hệ thống không trả lời theo quy định đã bị thay.
  • Tiêu đề và đề mục nói đúng nội dung. Đoạn văn nằm dưới đề mục "Nghỉ phép năm" dễ được tìm thấy hơn đoạn nằm trong mục "Quy định khác".
  • Mỗi đoạn tự đứng được. Câu như "trường hợp trên được áp dụng như sau" mất nghĩa khi bị tách khỏi đoạn trước. Viết rõ "nhân viên thử việc được áp dụng như sau" giúp đoạn đó có nghĩa khi đứng một mình.
  • Ít bảng dạng ảnh, ít chữ trong hình. Nội dung nằm trong ảnh dễ bị bỏ qua hoặc nhận dạng sai.
  • Thuật ngữ thống nhất. Một quy chế dùng lẫn "nghỉ phép", "nghỉ năm", "phép năm" cho cùng một thứ làm cả người lẫn máy dễ lẫn.

Điều thú vị là sửa kho tài liệu cho AI dễ đọc thường cũng làm nó dễ đọc hơn với nhân viên mới. Nhiều nơi phát hiện quy chế của mình mâu thuẫn chỉ khi thấy chatbot nội bộ trả lời hai kiểu cho cùng một câu hỏi.

Gặp RAG ở đâu trong đời thường

Bạn có thể đã dùng RAG mà không biết tên. Chatbot trên trang của một hãng bảo hiểm trả lời theo điều khoản sản phẩm, trợ lý hỏi đáp quy chế trên mạng nội bộ của một công ty, tính năng tải lên tệp hướng dẫn sử dụng máy giặt rồi hỏi cách chỉnh chế độ vắt, đều thường dựa trên nguyên lý này. Chatbot có tìm kiếm web cũng là một dạng họ hàng: thay vì tra kho tài liệu riêng, nó tra Internet.

Khi dùng những chatbot kiểu này, điều đáng quan tâm là nó có cho bạn thấy đoạn tài liệu nó dựa vào không. Một câu trả lời kèm trích đoạn giúp bạn tự kiểm trong vài giây. Câu trả lời không trích gì thì bạn phải tin hoàn toàn vào hệ thống, và đó là mức tin không nên có với những việc quan trọng như điều khoản bồi thường hay quy định kỷ luật.

Nếu bạn tải tài liệu của mình lên một dịch vụ AI để hỏi, nhớ rằng tài liệu đó được lưu và xử lý ở phía dịch vụ. Hợp đồng, hồ sơ nhân sự, dữ liệu khách hàng nên được che thông tin cá nhân và bí mật kinh doanh trước, và nên đọc chính sách lưu trữ của dịch vụ đang dùng. Trang AI Bảo Mật có bài riêng về chuyện này.

RAG và cửa sổ ngữ cảnh lớn: có còn cần RAG không

Khi các mô hình đọc được ngày càng nhiều chữ trong một lần, một số người đặt câu hỏi liệu RAG có còn cần thiết. Câu trả lời ngắn là vẫn cần trong phần lớn trường hợp, vì ba lý do: kho tài liệu thật thường lớn hơn bất kỳ cửa sổ nào, đọc cả kho cho mỗi câu hỏi tốn chi phí và thời gian, và mô hình đọc khối chữ dài vẫn có xu hướng bỏ sót chi tiết ở giữa.

Ở chiều ngược lại, với tài liệu ngắn vài chục trang, đưa toàn bộ vào thường đơn giản và ít lỗi hơn dựng một hệ thống RAG, vì không có bước tìm nào để lấy nhầm. Nhiều sản phẩm tự chọn cách tuỳ độ dài tài liệu.

Giới làm sản phẩm vẫn đang thử nhiều biến thể: cho tác tử tự quyết khi nào tra, tra mấy lần, tra bằng cách nào. Đây là lĩnh vực thay đổi nhanh, nên khi đọc một sản phẩm quảng bá cách làm mới, bạn chỉ cần giữ câu hỏi gốc: nó tìm đoạn nào, có cho thấy đoạn đó không, và khi không tìm thấy thì có chịu nói không biết không.

Câu hỏi thường gặp

RAG khác gì với việc huấn luyện AI trên tài liệu của mình?

Huấn luyện thêm thay đổi bản thân mô hình, tốn công và phải làm lại khi tài liệu đổi. RAG giữ nguyên mô hình, chỉ cho nó đọc đoạn tài liệu liên quan mỗi lần trả lời. Vì thế RAG cập nhật dễ, dễ chỉ ra nguồn, và thường là lựa chọn đầu tiên cho hỏi đáp tài liệu nội bộ.

Chatbot dùng RAG có nhớ tài liệu sau khi trả lời không?

Mô hình không ghi nhớ đoạn tài liệu vào bản thân nó. Đoạn đó chỉ nằm trong cuộc trò chuyện hiện tại. Còn kho tài liệu thì vẫn được lưu ở phía hệ thống để tra lần sau. Hai chuyện này khác nhau: một là trí nhớ của mô hình, một là tủ hồ sơ bên cạnh.

Vì sao hỏi cùng một ý theo hai cách lại ra hai câu trả lời khác nhau?

Vì bước tìm kiếm phụ thuộc vào cách bạn đặt câu hỏi. Hai cách nói có thể dẫn tới hai bộ đoạn tài liệu khác nhau, và mô hình trả lời theo những gì nó được đọc. Yếu tố ngẫu nhiên khi mô hình sinh chữ cũng góp phần.

RAG có làm lộ tài liệu cho người không được xem không?

Có thể, nếu hệ thống không phân quyền. Một trợ lý tra cứu cả kho mà không kiểm người hỏi có quyền xem tài liệu nào thì có thể trích cả đoạn mật cho người không có quyền. Hệ thống tốt lọc tài liệu theo quyền người hỏi trước bước tìm kiếm.

Tài liệu dạng ảnh chụp hoặc bảng phức tạp thì RAG có đọc được không?

Tài liệu ảnh phải được chuyển thành chữ trước, bằng nhận dạng chữ, và bước này có thể sai dấu tiếng Việt hoặc lệch cột bảng. Bảng phức tạp khi bị cắt đoạn dễ mất liên kết giữa tiêu đề cột và số liệu. Chất lượng đầu vào ảnh hưởng thẳng tới câu trả lời.

Làm sao biết một chatbot có dùng RAG hay không?

Dấu hiệu thường thấy là câu trả lời kèm trích đoạn hoặc tên tài liệu nguồn, và chatbot nói không tìm thấy khi hỏi ngoài phạm vi tài liệu. Tuy vậy không phải hệ thống nào cũng công bố cách làm. Điều quan trọng hơn tên kỹ thuật là nó có cho bạn kiểm nguồn hay không.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.

hoặc
Gọi ngay 0926 138 138