RAG (Retrieval-Augmented Generation) – Giải mã vấn đề LLM không trả lời được câu hỏi suy luận tổng quát

Bạn đang muốn tạo một con bot hỏi đáp về các phòng ban của công ty, dữ liệu của bạn thì khá đầy đủ, tuy nhiên khi hỏi câu hỏi tổng quát như “Công ty đó có bao nhiêu phòng ban”, nó lại không trả lời được. Vấn đề này rất phổ biến với RAG, đặc biệt khi câu hỏi yêu cầu suy luận. Hãy cùng Click Digital tìm hiểu và giải quyết vấn đề này nhé!

RAG hoạt động như thế nào?

RAG (Retrieval-Augmented Generation) là một kỹ thuật kết hợp lấy thông tin (Retrieval) và tạo văn bản (Generation) để trả lời câu hỏi. Nó hoạt động dựa trên việc:

  1. Nhúng câu hỏi (Embedding) thành một vector.
  2. Tìm kiếm các văn bản (Retrieval) tương tự trong cơ sở dữ liệu dựa trên độ tương đồng của vector.
  3. Sử dụng mô hình ngôn ngữ (Generation) để tạo ra câu trả lời dựa trên thông tin đã lấy được.

Tại sao RAG của bạn không trả lời được câu hỏi tổng quát?

Bạn có thể thấy rằng, RAG không phải là một giải pháp vạn năng. Nó rất hiệu quả trong việc trả lời các câu hỏi có thông tin rõ ràng, cụ thể trong dữ liệu. Nhưng đối với các câu hỏi tổng quát yêu cầu suy luận, RAG sẽ gặp khó khăn vì nó không thể hiểu được ngữ cảnh và mối liên hệ giữa các phần thông tin trong dữ liệu.

Giống như khi bạn hỏi một người bạn “Công ty có bao nhiêu phòng ban?”, họ sẽ phải:

  1. Tìm hiểu tên các phòng ban trong công ty.
  2. Đếm xem có bao nhiêu phòng ban.

Con bot của bạn cũng cần thực hiện hai bước tương tự, đúng không? RAG chỉ thực hiện bước lấy thông tin (Retrieval) mà chưa thực hiện bước suy luận (Reasoning) và hành động (Acting) để đếm các phòng ban.

Làm sao để giải quyết vấn đề này?

Hãy cùng điểm qua một số phương pháp để giải quyết vấn đề này:

1. Tăng số lượng chunk trong RAG

Điều này có thể giúp con bot của bạn lấy được nhiều thông tin hơn, nhưng cũng có thể gây quá tải cho mô hình ngôn ngữ. Bạn có thể thử tăng dần số lượng chunk và theo dõi hiệu quả của nó.

2. Tạo thêm dữ liệu tổng quát

Bạn có thể bổ sung vào dữ liệu của mình những thông tin tổng quát như “Công ty này gồm có xxx phòng ban chi tiết như sau:…”. Việc này sẽ giúp RAG dễ dàng tìm kiếm các văn bản liên quan hơn.

3. Sử dụng kỹ thuật Reasoning và Acting

Để giúp RAG xử lý các câu hỏi cần suy luận, bạn có thể tìm hiểu thêm về kỹ thuật Reasoning và Acting. Paper “ReAct: Synergizing Reasoning and Acting in Language Models” là một ví dụ điển hình về việc áp dụng kỹ thuật này.

4. Sử dụng LangGraph

LangGraph là một công cụ hỗ trợ Reasoning và Acting cho RAG, bạn có thể tìm hiểu thêm tại https://microsoft.github.io/graphrag/

5. Thêm keyword vào câu hỏi

Bạn có thể thử thêm keyword vào câu hỏi của mình, ví dụ: “Công ty đó có bao nhiêu phòng ban làm chức năng gì đó?”. Điều này sẽ giúp RAG dễ dàng tìm kiếm các văn bản liên quan hơn.

6. Chỉnh lại prompt của RAG

Bạn có thể thử thêm keyword vào câu hỏi hoặc sửa lại cách nhúng câu hỏi. Hãy thử nghiệm các cách thức khác nhau để tìm ra cách thức phù hợp nhất.

Một số lưu ý khi sử dụng RAG

  • RAG thường không hoạt động tốt với các câu hỏi yêu cầu suy luận phức tạp.
  • Việc tạo dữ liệu cho RAG có thể tốn thời gian và công sức.
  • Bạn cần lựa chọn kỹ thuật phù hợp với nhu cầu sử dụng của mình.

Kết luận

RAG là một công cụ hữu ích trong việc trả lời các câu hỏi có thông tin rõ ràng, cụ thể. Tuy nhiên, nó không phải là một giải pháp vạn năng. Để giải quyết vấn đề của bạn, bạn cần tìm hiểu thêm về Reasoning và Acting trong RAG và lựa chọn kỹ thuật phù hợp với nhu cầu của mình.

Hãy thử áp dụng các phương pháp trên và chia sẻ kết quả với Click Digital nhé!

[++++]

Rate this post

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *