Reranker là mô hình chấm lại mức độ liên quan giữa câu hỏi và từng đoạn tài liệu ứng viên, rồi sắp xếp lại thứ tự trước khi đưa vào mô hình ngôn ngữ. Trong RAG, bước tìm kiếm đầu (vector hoặc từ khóa) lấy nhanh khoảng 20–100 đoạn, reranker đọc kỹ từng cặp câu hỏi và đoạn văn để chọn ra 3–8 đoạn sát nhất. Nhờ vậy câu trả lời chính xác hơn, ít bị nhiễu. Đổi lại, reranker thêm độ trễ và chi phí tính toán, nên cần cân bằng số ứng viên đưa vào.
Reranker là gì và nằm ở đâu trong hệ thống RAG
Reranker (mô hình xếp hạng lại) là một bước lọc thứ hai trong quy trình tìm kiếm. Hệ thống RAG điển hình có bốn bước: nhận câu hỏi, tìm đoạn tài liệu liên quan, chọn ngữ cảnh, sinh câu trả lời. Reranker nằm giữa bước tìm và bước chọn.
Hình dung như tuyển dụng: bước tìm kiếm đầu là lọc hồ sơ nhanh theo từ khóa, lấy 50 hồ sơ. Reranker là vòng phỏng vấn, xem kỹ từng ứng viên để chọn 5 người phù hợp nhất. Vòng đầu cần nhanh và rộng, vòng sau cần kỹ và chính xác.
Vì sao bước tìm kiếm đầu chưa đủ
Tìm kiếm bằng embedding so sánh vector của câu hỏi và vector của đoạn văn đã tính sẵn. Cách này rất nhanh vì không cần đọc lại văn bản, nhưng vector là bản nén ý nghĩa nên mất chi tiết. Câu hỏi ‘được nghỉ phép bao nhiêu ngày khi kết hôn’ có thể kéo về đoạn nói chung về nghỉ phép năm, vì về nghĩa chúng gần nhau. Reranker đọc cả câu hỏi lẫn đoạn văn cùng lúc nên phân biệt được chi tiết ‘kết hôn’.
Reranker hoạt động như thế nào
Phần lớn reranker hiện nay dựa trên kiến trúc cross-encoder. Khác với embedding (bi-encoder) mã hóa câu hỏi và đoạn văn riêng rẽ, cross-encoder đưa cả hai vào mô hình cùng lúc và trả về một điểm liên quan.
- Bước tìm kiếm đầu trả về danh sách ứng viên, ví dụ 40 đoạn.
- Reranker ghép câu hỏi với từng đoạn thành 40 cặp.
- Mỗi cặp được chấm điểm, ví dụ từ 0 đến 1.
- Danh sách được sắp xếp lại theo điểm mới.
- Hệ thống lấy top 5 hoặc lọc theo ngưỡng điểm, đưa vào prompt cho mô hình ngôn ngữ.
Vì phải chấm từng cặp, reranker chậm hơn nhiều so với tìm vector. Đó là lý do không dùng reranker cho toàn bộ kho tài liệu mà chỉ cho tập ứng viên nhỏ.
Các dạng reranker
- Mô hình mã nguồn mở: có thể tự chạy trên máy chủ, nhiều mô hình hỗ trợ đa ngôn ngữ gồm tiếng Việt.
- Dịch vụ API: một số nhà cung cấp có endpoint rerank, có gói miễn phí/trả phí.
- Dùng LLM làm reranker: nhờ mô hình ngôn ngữ chấm điểm, linh hoạt nhưng tốn token và chậm hơn.
So sánh embedding, reranker và LLM chấm điểm
Ba cách đánh giá mức liên quan này thường được dùng phối hợp theo tầng.
| Phương pháp | Tốc độ | Độ chính xác | Vai trò phù hợp |
|---|---|---|---|
| Embedding (bi-encoder) | Rất nhanh, quét được hàng triệu đoạn | Khá, mất chi tiết | Tìm ứng viên ban đầu |
| Reranker (cross-encoder) | Trung bình, vài chục đến vài trăm đoạn | Cao | Lọc lại top ứng viên |
| LLM chấm điểm | Chậm, tốn token | Cao, giải thích được lý do | Đánh giá offline hoặc kho nhỏ |
| Tìm từ khóa BM25 | Rất nhanh | Tốt với mã số, tên riêng | Kết hợp với embedding trong hybrid search |
Dấu hiệu chatbot của bạn cần thêm reranker
Không phải hệ thống RAG nào cũng cần reranker ngay. Hãy xem log và kiểm tra các dấu hiệu sau:
- Đoạn đúng có trong top 20 nhưng không nằm trong top 5: đây là dấu hiệu rõ nhất. Reranker giải quyết đúng vấn đề này.
- Câu trả lời trộn thông tin của nhiều chính sách: ví dụ chatbot nhân sự trả lời số ngày nghỉ của nhân viên thử việc bằng quy định cho nhân viên chính thức.
- Kho tài liệu có nhiều đoạn na ná nhau: nhiều phiên bản quy trình, nhiều mẫu hợp đồng gần giống nhau, hướng dẫn sử dụng cho các model sản phẩm khác nhau chút ít.
- Bạn phải nhét quá nhiều đoạn vào prompt: đưa 15–20 đoạn để ‘chắc ăn’ làm tăng chi phí và khiến mô hình dễ lẫn.
Ngược lại, nếu đoạn đúng thậm chí không có trong top 50, reranker không cứu được. Vấn đề nằm ở chunking, embedding hoặc dữ liệu nguồn. Khi đó hãy xem lại cách chia tài liệu hoặc thêm tìm kiếm từ khóa.
Ví dụ thực tế
Một cửa hàng điện máy có 300 file hướng dẫn cho nhiều model máy lạnh. Khách hỏi lỗi E4 của model cụ thể, tìm vector trả về đoạn lỗi E4 của model khác. Reranker đọc kỹ mã model trong câu hỏi giúp đẩy đúng đoạn lên đầu.
Cách thêm reranker vào hệ thống RAG
Chuẩn bị
- Bộ câu hỏi kiểm thử 50–100 câu, mỗi câu ghi rõ đoạn tài liệu đúng.
- Số liệu hiện tại: đoạn đúng nằm ở vị trí nào trong kết quả tìm kiếm.
Các bước
- Tăng số ứng viên ở bước đầu: từ 5 lên khoảng 30–50 để đoạn đúng có cơ hội lọt vào.
- Chọn reranker: ưu tiên mô hình hỗ trợ đa ngôn ngữ, thử với câu hỏi tiếng Việt thật của bạn.
- Gắn vào pipeline: nhiều framework như LangChain, LlamaIndex, Dify, Flowise có sẵn bước rerank, chỉ cần cấu hình.
- Đặt top-k sau rerank: thường 3–8 đoạn, tùy độ dài đoạn và context window.
- Cân nhắc ngưỡng điểm: nếu tất cả đoạn đều điểm thấp, cho chatbot trả lời ‘không tìm thấy trong tài liệu’ thay vì cố trả lời.
Kiểm tra kết quả
Chạy lại bộ câu hỏi, đo tỷ lệ đoạn đúng nằm trong top 3 trước và sau khi thêm reranker, đồng thời đo độ trễ trung bình. Chỉ giữ reranker nếu độ chính xác tăng rõ mà độ trễ vẫn chấp nhận được với người dùng.
Lỗi thường gặp khi dùng reranker
- Đưa quá nhiều ứng viên: rerank 300 đoạn cho mỗi câu hỏi làm chatbot phản hồi chậm vài giây, người dùng bỏ đi. Bắt đầu với 30–50.
- Đoạn văn quá dài: nhiều reranker có giới hạn độ dài đầu vào, phần vượt quá bị cắt mất. Kết hợp với chunking hợp lý.
- Dùng reranker chỉ tối ưu tiếng Anh: điểm số với câu tiếng Việt có thể kém ổn định. Luôn thử trên dữ liệu thật.
- Bỏ qua siêu dữ liệu: nếu câu hỏi về chi nhánh Hà Nội, lọc theo trường chi nhánh trước khi tìm kiếm hiệu quả hơn nhiều so với trông chờ reranker.
- Không đo trước khi thêm: thiếu số liệu nền thì không biết reranker có thực sự cải thiện hay chỉ làm chậm hệ thống.
- Chạy reranker trên CPU yếu: với lượng truy cập đồng thời lớn, cần GPU hoặc dùng dịch vụ API để giữ độ trễ thấp.
Chạy reranker cục bộ cần phần cứng thế nào
Nếu dữ liệu nhạy cảm và bạn muốn mọi thứ chạy trong mạng nội bộ, reranker có thể chạy cùng máy chủ với mô hình embedding. Mô hình reranker phổ biến thường nhỏ hơn nhiều so với LLM, cỡ vài trăm triệu tham số.
- Vài người dùng, kho nhỏ: chạy trên CPU đời mới thường chấp nhận được, mỗi lượt rerank vài chục đoạn mất cỡ dưới một giây đến vài giây tùy cấu hình và độ dài đoạn.
- Nhiều người dùng đồng thời: GPU vài GB VRAM giúp giảm độ trễ đáng kể. Có thể dùng chung GPU với mô hình embedding.
- Kết hợp LLM cục bộ: cần tính tổng VRAM cho LLM, embedding và reranker, cộng phần dư cho ngữ cảnh.
Các con số này chỉ là ước lượng, phụ thuộc mô hình cụ thể, độ dài đoạn và phần mềm phục vụ. Hãy thử tải thật trước khi chốt cấu hình máy chủ.
Đo trước, thêm sau: ghi lại vị trí đoạn đúng trong kết quả tìm kiếm với 50 câu hỏi thật. Nếu đoạn đúng thường nằm ở vị trí 6–30, reranker gần như chắc chắn đáng thêm.
Muốn đưa AI vào công việc của doanh nghiệp? PCTech tư vấn, đánh giá mức sẵn sàng AI và triển khai chatbot, AI agent, tự động hóa cho doanh nghiệp.
10 câu hỏi, 2 phút, nhận mức độ và việc nên làm tiếp theo. Dùng thử ngay
Câu hỏi thường gặp
Reranker khác embedding thế nào?
Embedding mã hóa câu hỏi và đoạn văn riêng rẽ thành vector để so sánh nhanh. Reranker đọc cả hai cùng lúc nên chính xác hơn nhưng chậm hơn, vì vậy chỉ dùng cho tập ứng viên nhỏ.
Có bắt buộc phải dùng reranker cho RAG không?
Không bắt buộc. Với kho tài liệu nhỏ, ít đoạn trùng ý, RAG không có reranker vẫn có thể tốt. Reranker hữu ích khi đoạn đúng hay bị xếp sau các đoạn tương tự.
Reranker có hỗ trợ tiếng Việt không?
Nhiều reranker đa ngôn ngữ hỗ trợ tiếng Việt ở mức chấp nhận được. Chất lượng khác nhau giữa các mô hình nên cần thử với câu hỏi thật của doanh nghiệp.
Reranker làm chatbot chậm hơn bao nhiêu?
Tùy số ứng viên, độ dài đoạn và phần cứng. Với vài chục đoạn trên GPU hoặc dịch vụ API, thời gian thêm thường nhỏ; trên CPU yếu và nhiều ứng viên thì có thể chậm rõ rệt.
Có thể dùng ChatGPT hay Claude làm reranker không?
Có thể yêu cầu mô hình ngôn ngữ chấm điểm mức liên quan, nhưng tốn token và chậm hơn reranker chuyên dụng. Cách này hợp cho đánh giá offline hơn là chạy mỗi câu hỏi.
Reranker có giúp giảm chi phí API không?
Có thể. Khi lọc chính xác hơn, bạn chỉ cần đưa ít đoạn vào prompt, giảm token đầu vào cho mô hình ngôn ngữ lớn.
Bài viết liên quan
- RAG là gì? Cho AI đọc tài liệu nội bộ
- Embedding là gì? Cách AI hiểu nghĩa của văn bản
- Hybrid search là gì? Kết hợp tìm từ khóa và tìm ngữ nghĩa
- Chunking là gì? Cách chia tài liệu cho RAG trả lời chính xác
- Tìm kiếm ngữ nghĩa (semantic search) là gì? Ứng dụng cho doanh nghiệp
- Vector database là gì? Nền tảng cho AI đọc tài liệu nội bộ
- GraphRAG là gì? RAG kết hợp đồ thị tri thức cho câu hỏi phức tạp
- Evals là gì? Đánh giá chất lượng ứng dụng AI