Chia sẻ bởi Nate Herk
Trong kỷ nguyên AI, các mô hình ngôn ngữ lớn (LLM) đã chứng tỏ khả năng vượt trội trong việc hiểu và tạo văn bản. Tuy nhiên, chúng thường bị giới hạn bởi khối kiến thức đã được huấn luyện trước đó. Kỹ thuật Retrieval-Augmented Generation (RAG) ra đời như một cầu nối mạnh mẽ, cho phép LLM "tra cứu" thông tin từ các nguồn kiến thức bên ngoài (như tài liệu nội bộ, cơ sở dữ liệu) để đưa ra câu trả lời chính xác và phù hợp với ngữ cảnh hơn.
Tuy nhiên, một hệ thống RAG cơ bản vẫn có thể chưa tối ưu. Dựa trên quy trình làm việc trong tệp RAG_Reranking.json, chúng ta thấy rằng việc truy vấn đơn thuần có thể trả về các kết quả không hoàn toàn liên quan. May mắn thay, quy trình này cũng giới thiệu hai công cụ mạnh mẽ để nâng cấp trí thông minh của RAG agent lên một tầm cao mới: Reranker và Metadata.
Bài viết này sẽ phân tích chi tiết quy trình làm việc RAG được xây dựng bằng n8n, cho thấy RAG hoạt động như thế nào, tại sao Reranker lại quan trọng trong việc tinh chỉnh kết quả và cách tận dụng Metadata để định hướng quá trình tìm kiếm một cách hiệu quả.
Hiểu Sâu Về RAG (Retrieval-Augmented Generation) Qua Một Ví Dụ Thực Tế
Để nắm vững cơ chế hoạt động của RAG, hãy cùng phân tích quy trình xử lý tài liệu Rules_of_Golf_Simplified.pdf trong workflow n8n được cung cấp.
RAG Hoạt Động Như Thế Nào?
Về cơ bản, RAG cho phép một LLM trả lời các câu hỏi bằng cách tìm kiếm thông tin từ một nguồn kiến thức bên ngoài (trong trường hợp này là cơ sở dữ liệu vector Supabase) và sử dụng thông tin đó để tạo ra câu trả lời. Quy trình này diễn ra theo các bước chính sau:
-
Chuẩn bị Dữ liệu (Indexing/Vectorization):
- Tải và Trích xuất Dữ liệu: Workflow bắt đầu bằng việc tải tệp
Rules_of_Golf_Simplified.pdf
từ Google Drive và trích xuất toàn bộ nội dung văn bản của nó. - Chia nhỏ và Gắn Metadata: Thay vì chia tài liệu thành các đoạn ngẫu nhiên, một node
Code
tùy chỉnh được sử dụng để thực hiện một bước xử lý thông minh. Nó chia toàn bộ văn bản thành các mục riêng biệt cho mỗi luật chơi golf (Rule 1, Rule 2, v.v.). Quan trọng hơn, trong quá trình này, nó đồng thời trích xuất và gán các metadata quan trọng cho mỗi đoạn, bao gồmruleNumber
(số thứ tự của luật) vàruleTitle
(tiêu đề của luật). - Tạo Embedding và Lưu trữ: Mỗi đoạn văn bản (chunk) sau đó được chuyển đổi thành các vector số học bằng mô hình embedding của OpenAI. Các vector này, cùng với metadata đã được gán, được tải lên và lưu trữ trong một cơ sở dữ liệu vector của Supabase.
- Tải và Trích xuất Dữ liệu: Workflow bắt đầu bằng việc tải tệp
-
Truy vấn và Tìm kiếm (Retrieval):
- Nhận câu hỏi: Quy trình được kích hoạt khi người dùng gửi một câu hỏi qua giao diện chat.
- Tìm kiếm tương đồng: Câu hỏi của người dùng được chuyển thành vector. Hệ thống sau đó tìm kiếm trong Supabase để lấy ra 20 chunk có nội dung tương đồng nhất về mặt ngữ nghĩa với câu hỏi.
-
Tổng hợp Câu trả lời (Generation):
- Đưa vào LLM: Các chunk được truy xuất cùng với câu hỏi gốc của người dùng được đưa vào một RAG Agent, sử dụng mô hình
GPT 4.1-mini
. - Tạo phản hồi: LLM sử dụng thông tin từ các chunk để tạo ra câu trả lời cuối cùng, đảm bảo câu trả lời dựa trên tài liệu về luật golf đã được cung cấp.
- Đưa vào LLM: Các chunk được truy xuất cùng với câu hỏi gốc của người dùng được đưa vào một RAG Agent, sử dụng mô hình
Mặc dù quy trình trên rất mạnh mẽ, việc chỉ dựa vào tìm kiếm tương đồng ban đầu có thể tạo ra "nhiễu" và chưa phải là tối ưu nhất.
Giải Pháp Đột Phá: Sức Mạnh Của Reranker
Hãy tưởng tượng bạn yêu cầu một người tìm cho bạn 20 tài liệu liên quan nhất. Reranker giống như một chuyên gia thứ hai, người sẽ xem lại 20 tài liệu đó và sắp xếp chúng lại một lần nữa để đưa những tài liệu chính xác nhất lên đầu.
Reranker: Lớp Lọc Thông Minh Sau Truy Vấn
Trong workflow n8n, node Supabase Vector Store
được cấu hình với tùy chọn useReranker: true
. Tùy chọn này kết nối nó với một node Reranker Cohere
.
Cơ chế hoạt động:
- Đầu vào: Sau khi Supabase truy xuất 20 chunk ban đầu, các chunk này cùng với câu hỏi của người dùng được gửi đến Reranker của Cohere.
- Đánh giá lại: Reranker thực hiện một phân tích sâu hơn về mối quan hệ ngữ nghĩa giữa câu hỏi và từng chunk. Nó tính toán một điểm số liên quan mới, chính xác hơn so với điểm tương đồng vector ban đầu.
- Sắp xếp lại và Tinh lọc: Dựa trên điểm số mới, Reranker sắp xếp lại danh sách 20 chunk, đẩy những kết quả thực sự phù hợp nhất lên đầu.
- Đầu ra: Một danh sách các chunk đã được tinh lọc và sắp xếp lại với chất lượng cao hơn được gửi đến LLM để tạo câu trả lời.
Việc thêm bước rerank giúp tăng độ chính xác một cách đáng kể, loại bỏ các thông tin nhiễu và đảm bảo LLM nhận được ngữ cảnh tốt nhất để tạo ra câu trả lời chất lượng.
Tận Dụng Metadata Để Truy Vấn Chính Xác Hơn
Ngoài Reranker, workflow này còn trình bày một kỹ thuật nâng cao khác: sử dụng Metadata để lọc kết quả tìm kiếm.
Lọc Thông Minh Với Metadata
Workflow cho thấy một cách tiếp cận hai tầng tinh vi để trả lời các câu hỏi cụ thể hơn.
-
Trích xuất Metadata từ Câu hỏi:
MộtMetadata Agent
chuyên biệt được thiết lập. Nhiệm vụ duy nhất của nó là phân tích câu hỏi của người dùng và trích xuất một thông tin metadata cụ thể: số thứ tự của luật chơi. Ví dụ, nếu người dùng hỏi "Luật số 15 nói về điều gì?", agent này sẽ chỉ trả về số "15". -
Lọc trước khi Tìm kiếm (Pre-filtering):
Số "15" được trích xuất sau đó được sử dụng làm bộ lọc trong một nodeSupabase Vector Store
khác. Điều này có nghĩa là, trước khi thực hiện tìm kiếm tương đồng vector, hệ thống sẽ yêu cầu Supabase: "Chỉ tìm kiếm trong số các tài liệu có metadataruleNumber
bằng 15".
Cách tiếp cận này cực kỳ hiệu quả. Nó thu hẹp đáng kể phạm vi tìm kiếm, đảm bảo rằng tất cả các kết quả trả về đều thuộc về đúng luật mà người dùng quan tâm, giúp loại bỏ hoàn toàn các kết quả không liên quan. Đáng chú ý, ngay cả sau khi lọc bằng metadata, workflow vẫn tiếp tục sử dụng một Reranker thứ hai để sắp xếp các chunk trong phạm vi luật đó, đảm bảo độ chính xác tối đa.
Kết Luận
Để khai thác tối đa tiềm năng của Retrieval-Augmented Generation, việc vượt ra ngoài các phương pháp truy vấn cơ bản là rất quan trọng. Như đã được minh họa trong workflow n8n, Reranker và Metadata là hai yếu tố then chốt để nâng cấp RAG agent.
- Metadata cho phép lọc thông minh và truy vấn có mục tiêu, đảm bảo quá trình tìm kiếm diễn ra trong một không gian ngữ cảnh phù hợp.
- Reranker hoạt động như một lớp tinh chỉnh cuối cùng, đảm bảo rằng chỉ những thông tin liên quan và chính xác nhất mới được đưa đến LLM để tạo ra câu trả lời.
Bằng cách kết hợp các kỹ thuật này, bạn có thể xây dựng các hệ thống AI không chỉ đáng tin cậy hơn mà còn mang lại trải nghiệm người dùng vượt trội. Đã đến lúc chúng ta xây dựng những RAG agent thực sự "hiểu" và cung cấp thông tin như một chuyên gia.