GIẺ đặc vụ hoạt động như thế nào?
Tin tức chung·ByteByteGo Newsletter·4 lượt xem

GIẺ đặc vụ hoạt động như thế nào?

How Agentic RAG Works?

AI Summary

Bài viết bàn về "thuế vận tốc" trong phát triển AI, nơi các đội nhóm dành khoảng 25% thời gian để sửa lỗi và bảo mật code do AI tạo ra. Chi phí ẩn này cho thấy dù các công cụ AI giúp tăng tốc quá trình sinh code ban đầu, việc gỡ lỗi và kiểm tra bảo mật sau đó lại phát sinh chi phí đáng kể. Các developer cần nhận thức rằng việc code có sự hỗ trợ của AI đòi hỏi quá trình kiểm tra và tinh chỉnh cẩn thận sau khi code được tạo ra, và cần tính toán điều này vào tiến độ dự án cũng như phân bổ nguồn lực.

Trong bài viết này, chúng ta sẽ xem xét cách thức hoạt động của GIẺ đại lý, cách nó cải thiện so với GIẺ tiêu chuẩn và sự đánh đổi cần được xem xét.

Thực tế ẩn giấu của phát triển do AI thúc đẩy (Được tài trợ)

Có một khoản "thuế vận tốc" mới trong phát triển phần mềm. Khi việc áp dụng AI ngày càng tăng, nhóm của bạn không nhất thiết phải làm ít hơn - họ dành 25% thời gian trong tuần để sửa chữa và bảo mật mã được tạo bởi AI. Chi phí ẩn này tạo ra một nút thắt cổ chai xác minh làm đình trệ sự đổi mới. Sonar cung cấp khả năng phân tích đáng tin cậy, tự động cần thiết để thu hẹp khoảng cách giữa tốc độ của AI và chất lượng đạt chuẩn sản xuất.

Tìm hiểu thêm


Vấn đề chính với các hệ thống RAG tiêu chuẩn không nằm ở việc truy xuất hay tạo sinh. Vấn đề là không có gì ở giữa quyết định xem việc truy xuất có đủ tốt hay không trước khi quá trình tạo sinh diễn ra.

RAG tiêu chuẩn là một quy trình mà thông tin chảy theo một chiều, từ truy vấn đến truy xuất đến phản hồi, không có điểm kiểm tra và không có cơ hội thứ hai. Điều này hoạt động tốt cho các câu hỏi đơn giản với câu trả lời rõ ràng.

Tuy nhiên, ngay khi một truy vấn trở nên mơ hồ, hoặc câu trả lời được trải rộng trên nhiều tài liệu, hoặc truy xuất đầu tiên trả về thứ gì đó có vẻ tốt nhưng thực tế không phải vậy, RAG bắt đầu mất đi giá trị.

Agentic RAG cố gắng khắc phục vấn đề này. Nó dựa trên một câu hỏi duy nhất: điều gì sẽ xảy ra nếu hệ thống có thể tạm dừng và suy nghĩ trước khi trả lời?

Trong bài viết này, chúng ta sẽ xem xét cách agentic RAG hoạt động, cách nó cải thiện so với RAG tiêu chuẩn và những đánh đổi cần được xem xét.

Một truy vấn và một lần truy xuất

Để hiểu Agentic RAG khắc phục điều gì, chúng ta cần làm rõ cách RAG tiêu chuẩn hoạt động và những hạn chế của nó.

Một quy trình RAG tiêu chuẩn có luồng công việc đơn giản:

  • Người dùng đặt một câu hỏi.

  • Hệ thống chuyển đổi câu hỏi đó thành một biểu diễn số được gọi là embedding, nó nắm bắt ý nghĩa ngữ nghĩa của truy vấn.

  • Sau đó, nó tìm kiếm trong cơ sở dữ liệu vector, một cơ sở dữ liệu được tối ưu hóa để tìm nội dung có ý nghĩa tương tự, và truy xuất các đoạn văn bản khớp nhất.

  • Các đoạn văn bản đó được chuyển đến một mô hình ngôn ngữ lớn cùng với câu hỏi ban đầu, và LLM tạo ra câu trả lời dựa trên ngữ cảnh được truy xuất.

Xem sơ đồ bên dưới:

Sơ đồ dưới đây cho thấy các embedding thường trông như thế nào:

Điều này hoạt động cực kỳ tốt cho các câu hỏi trực tiếp và rõ ràng đối với cơ sở kiến thức được tổ chức tốt. Hãy nghĩ đến các câu hỏi như "Chính sách hoàn trả của chúng tôi là gì?" Một kho tài liệu sạch sẽ gần như luôn nhận được câu trả lời chắc chắn.

Đây là cách luồng truy vấn điển hình:

Các vấn đề phát sinh khi các truy vấn trở nên phức tạp hơn. Dưới đây là một vài kịch bản:

  • Truy vấn không rõ ràng: Khi người dùng hỏi "Tôi nên xử lý thuế như thế nào?", họ có thể có ý nói về thuế thu nhập cá nhân, thuế doanh nghiệp hay tình trạng miễn thuế cho một tổ chức phi lợi nhuận. RAG tiêu chuẩn không thể làm rõ hoặc viết lại. Nó lấy truy vấn như hiện tại, truy xuất bất cứ thứ gì có điểm tương đồng cao nhất và hy vọng vào điều tốt nhất.

  • Bằng chứng phân tán: Đôi khi câu trả lời nằm rải rác trên nhiều tài liệu. Một nhân viên hỏi "Chính sách làm việc từ xa đối với nhà thầu là gì?" cần thông tin từ cả chính sách làm việc từ xa và thỏa thuận nhà thầu. RAG tiêu chuẩn thường truy xuất từ một nhóm các đoạn văn và không có khái niệm kiểm tra nguồn thứ hai nếu nguồn đầu tiên thiếu sót.

  • Sự tự tin sai lầm: Quá trình truy xuất trả về một cái gì đó có vẻ liên quan dựa trên điểm số tương đồng, nhưng thực sự không trả lời được câu hỏi. Có thể nó đúng về chủ đề, nhưng lại từ một phiên bản lỗi thời của tài liệu. Hệ thống không có cơ chế để phân biệt giữa "liên quan" và "thực sự đúng". Nó sẽ tạo ra một phản hồi tự tin trong cả hai trường hợp.

Ba chế độ lỗi này có chung nguyên nhân gốc rễ. Hệ thống không phản ánh những gì nó đã truy xuất. Nó không thể tự hỏi liệu kết quả có đủ tốt hay không.


Các công ty AI không cào dữ liệu Google (Tài trợ)

Họ đang sử dụng SerpApi: API Tìm kiếm Web tiêu chuẩn ngành, chia sẻ quyền truy cập vào các công cụ tìm kiếm với một API đơn giản. Được tin dùng bởi Uber, NVIDIA và nhiều hơn nữa. Bắt đầu với 250 tín dụng miễn phí/tháng.

Dùng thử Miễn phí


Từ Pipeline đến Vòng lặp Điều khiển

Agentic RAG thay thế pipeline tuyến tính đó bằng một vòng lặp bằng cách đưa các khả năng của tác tử AI vào cuộc.

Cốt lõi, một tác tử AI là một hệ thống phần mềm có thể nhận biết môi trường của nó, đưa ra quyết định và thực hiện hành động để đạt được các mục tiêu cụ thể với mức độ độc lập nhất định. Từ "tác tử" là chìa khóa ở đây. Giống như một đại lý du lịch hành động thay mặt chúng ta để tìm chuyến bay và thương lượng các giao dịch, một tác tử AI hành động thay mặt người dùng hoặc hệ thống để hoàn thành nhiệm vụ mà không cần hướng dẫn liên tục cho từng bước.

Xem sơ đồ dưới đây minh họa khái niệm về tác tử AI:

Trong Agentic RAG, thay vì truy xuất rồi mới sinh văn bản, quy trình trở thành: truy xuất, đánh giá kết quả, quyết định xem có nên trả lời hay thử lại, và nếu cần, truy xuất theo cách khác.

Xem sơ đồ bên dưới:

Thuật ngữ “agentic” có vẻ giống như một chiêu trò tiếp thị, nhưng trong ngữ cảnh này, một agent (tác nhân) là một LLM được trao khả năng đưa ra quyết định và sử dụng các công cụ. Hãy coi nó như một LLM mà thay vì chỉ tạo văn bản, nó còn có thể chọn hành động như chạy tìm kiếm, truy vấn cơ sở dữ liệu, gọi API, hoặc quyết định rằng nó cần thêm thông tin trước khi phản hồi.

Điều này mang lại cho hệ thống ba khả năng mà RAG tiêu chuẩn thiếu.

  • Sử dụng và định tuyến công cụ: Agent có thể quyết định nguồn kiến thức nào cần truy vấn dựa trên câu hỏi. Một câu hỏi về tài chính có thể đi đến cơ sở dữ liệu SQL. Một câu hỏi về chính sách có thể đi đến kho tài liệu. Một câu hỏi về sản phẩm có thể cần cả hai. Nói tóm lại, một hệ thống agentic sẽ chọn đúng nơi, hoặc tìm kiếm ở nhiều nơi.

  • Tinh chỉnh truy vấn: Trước khi tìm kiếm, agent có thể viết lại một truy vấn không rõ ràng thành một thứ gì đó cụ thể hơn. Sau khi tìm kiếm, nếu kết quả có vẻ yếu, nó có thể định dạng lại và thử lại. Agent hoạt động trên truy vấn cả trước và sau khi truy xuất.

  • Tự đánh giá: Sau khi nhận được kết quả, agent sẽ kiểm tra chúng bằng cách đặt các câu hỏi như “Kết quả này có liên quan không?” hoặc “Nó có đầy đủ không?” hoặc “Nó có mâu thuẫn với thông tin khác không?” Nếu câu trả lời cho bất kỳ câu hỏi nào trong số này là không, agent có thể thử lại với một truy vấn khác, một nguồn khác, hoặc cả hai. Điều này trực tiếp giải quyết “vấn đề một lần” (one-shot problem).

Xem sơ đồ dưới đây minh họa cách tiếp cận Agentic RAG ở mức độ cao:

Tuy nhiên, sẽ là sai lầm nếu coi Agentic RAG là một công tắc bật/tắt đơn thuần. Ở dạng đơn giản nhất, nó giống như một bộ định tuyến quyết định truy vấn một trong hai hoặc ba cơ sở kiến thức. Đó đã là một cải tiến đáng kể so với RAG tiêu chuẩn cho môi trường đa nguồn.

Tiến xa hơn trong thang đo này, bạn sẽ có các hệ thống như ReAct (viết tắt của Reasoning + Acting), một framework mà tác nhân xen kẽ giữa việc suy luận về những gì nó biết và thực hiện các hành động để tìm hiểu thêm, chạy nhiều bước truy xuất với quá trình đánh giá giữa mỗi bước.

Xem sơ đồ bên dưới:

Ở phía cuối cùng là các hệ thống đa tác nhân (multi-agent systems) nơi các tác nhân chuyên biệt cộng tác, được điều phối bởi một người điều phối (orchestrator).

Tinh chỉnh, Định tuyến và Tự sửa lỗi Truy vấn

Vòng lặp điều khiển là một mô hình tư duy hữu ích. Tuy nhiên, nó có thể được hiểu rõ hơn khi được ánh xạ trở lại các chế độ lỗi từ trước đó.

  • Sự mơ hồ được giải quyết bằng cách tinh chỉnh truy vấn: Câu hỏi "Làm thế nào để tôi xử lý thuế?" sẽ đi qua tác nhân trước tiên. Tác nhân có thể phân rã nó thành các câu hỏi phụ dựa trên ngữ cảnh, hoặc viết lại thành một cái gì đó cụ thể hơn trước khi bất kỳ quá trình truy xuất nào diễn ra. Nếu lần truy xuất đầu tiên trả về kết quả về thuế thu nhập cá nhân nhưng ngữ cảnh cho thấy người dùng đang hỏi về thuế doanh nghiệp, tác nhân có thể tinh chỉnh và tìm kiếm lại.

  • Bằng chứng phân tán được giải quyết bằng cách định tuyến: Câu hỏi về chính sách làm việc từ xa cho nhà thầu bây giờ đi qua một tác nhân nhận ra rằng nó cần hai nguồn. Nó định tuyến truy vấn đến kho lưu trữ tài liệu chính sách nhân sự, truy xuất những gì nó tìm thấy, sau đó định tuyến đến các thỏa thuận với nhà thầu, truy xuất từ đó và tổng hợp cả hai bộ kết quả trước khi tạo ra câu trả lời.

  • Sự tự tin sai lầm được giải quyết bằng cách tự đánh giá: Tác nhân truy xuất một đoạn có vẻ liên quan nhưng lại đến từ một tài liệu được cập nhật lần cuối cách đây hai năm. Bước đánh giá đã gắn cờ điều này. Có lẽ tác nhân sau đó tìm kiếm một phiên bản gần đây hơn, hoặc nó tìm kiếm một nguồn khác hoàn toàn, hoặc nó bao gồm một lời cảnh báo trong phản hồi của mình. Hệ thống không còn mù quáng tin tưởng vào điểm tương đồng nữa.

Ba khả năng này tương ứng trực tiếp với ba chế độ lỗi.

Agentic RAG được thiết kế đặc biệt để giải quyết những thiếu sót mà RAG tiêu chuẩn với cách tiếp cận "một lần" của nó không đáp ứng được. Có những khả năng bổ sung của tác nhân ngoài ba khả năng này, như bộ nhớ và bộ nhớ đệm ngữ nghĩa, cho phép hệ thống giữ lại ngữ cảnh trong nhiều truy vấn trong một cuộc trò chuyện.

Sự đánh đổi

Mọi thứ trên có thể làm cho Agentic RAG nghe có vẻ như một bản nâng cấp thẳng tiến so với RAG tiêu chuẩn. Tuy nhiên, mỗi lần lặp lại của vòng lặp đó đều có chi phí, và những chi phí đó có thể đủ đáng kể để nhiều hệ thống không nên sử dụng nó. Dưới đây là một vài cân nhắc cần có:

  • Độ trễ: Mỗi lần lặp lại vòng lặp có nghĩa là một lệnh gọi LLM khác, một lần truy xuất khác, một lần đánh giá khác. Một truy vấn RAG tiêu chuẩn có thể mất 1-2 giây. Một truy vấn agentic với ba hoặc bốn vòng lặp có thể mất 10 giây hoặc hơn. Đối với các ứng dụng trò chuyện thời gian thực, điều đó thường là không thể chấp nhận được.

  • Chi phí: Mỗi quyết định của tác nhân tiêu tốn token. Một hệ thống xử lý hàng nghìn truy vấn mỗi ngày có thể thấy chi phí nhân lên gấp 3-10 lần so với RAG tiêu chuẩn. Ngay cả khi 80% các truy vấn đó là tra cứu FAQ đơn giản, thì đó vẫn là một số tiền lớn chi cho suy luận không cần thiết.

  • Gỡ lỗi và khả năng dự đoán: RAG tiêu chuẩn tương đối xác định. Tuy nhiên, Agentic RAG lại mang đến sự biến đổi vì tác nhân có thể đưa ra các quyết định khác nhau dựa trên những gì nó tìm thấy ở mỗi bước. Điều này làm cho việc tái tạo sự cố trở nên khó khăn hơn, khó viết bài kiểm tra hơn và khó giải thích cho các bên liên quan tại sao cùng một câu hỏi lại đưa ra các câu trả lời khác nhau trong các tình huống khác nhau.

Nghịch lý người đánh giá: Bước tự đánh giá sử dụng một LLM để phán xét xem việc truy xuất có đủ tốt hay không. Khả năng tự sửa lỗi của hệ thống chỉ tốt bằng khả năng đánh giá sự liên quan của LLM. Một bộ đánh giá yếu có thể từ chối các kết quả hoàn toàn tốt và gửi hệ thống vào một cuộc truy lùng vô vọng, hoặc chấp nhận các kết quả kém và vẫn tạo ra câu trả lời tồi. Về cơ bản, chúng ta đang tin tưởng một lệnh gọi LLM để giám sát một lệnh gọi khác.

  • Đánh giá quá mức: Đôi khi vòng lặp tác tử thông minh hơn mức cần thiết. Nó có thể loại bỏ thông tin truy xuất hữu ích trong bước đánh giá, tiếp tục tìm kiếm thứ gì đó "tốt hơn" và kết thúc với câu trả lời tệ hơn là nếu nó chỉ chấp nhận kết quả đầu tiên.

  • Không có điều gì trong số này có nghĩa là không nên sử dụng Agentic RAG. Điều đó có nghĩa là quyết định sử dụng nó nên là một quyết định kỹ thuật chứ không phải là lựa chọn mặc định.

    Các tra cứu dữ kiện trực tiếp trên một cơ sở tri thức sạch và đơn nguồn không cần vòng lặp suy luận. Các mẫu truy vấn khối lượng lớn, độ phức tạp thấp, nơi độ trễ và chi phí quan trọng hơn việc xử lý các trường hợp ngoại lệ cũng vậy. Nếu hầu hết các lỗi trong hệ thống RAG hiện có đến từ các vấn đề về chất lượng truy xuất như phân đoạn kém hoặc dữ liệu lỗi thời, việc khắc phục chúng sẽ mang lại nhiều lợi ích hơn là thêm một lớp tác tử.

    Kết luận

    Mô hình tư duy cốt lõi cho Agentic RAG rất đơn giản.

    Agentic RAG biến việc truy xuất từ một quy trình một lần thành một vòng lặp với các điểm quyết định. Các điểm quyết định đó là toàn bộ giá trị gia tăng.

    Khi đánh giá hoặc xây dựng hệ thống RAG, ba câu hỏi có thể giúp làm rõ vấn đề:

    • Hệ thống có đang truy xuất từ nguồn phù hợp không?

    • Nó có thể đánh giá xem những gì nó đã truy xuất có đủ tốt hay không?

    • Nó có khả năng thử lại nếu không đạt yêu cầu không?

    Nếu câu trả lời cho tất cả ba câu hỏi là "không" và các truy vấn phức tạp, đó là tín hiệu để xem xét cách tiếp cận tác tử. Nếu các truy vấn đơn giản và cơ sở tri thức sạch, RAG tiêu chuẩn có lẽ là lựa chọn phù hợp.

    Việc chuyển từ quy trình sang vòng lặp cũng không chỉ riêng với RAG. Nó phản ánh một mô hình rộng lớn hơn về cách các hệ thống AI đang phát triển, di chuyển từ các quy trình cứng nhắc sang các hệ thống có vòng lặp phản hồi và khả năng ra quyết định.

    Tài liệu tham khảo:

    Tác giả: ByteByteGo

    #substack#newsletter