Reranker
Reranker chấm điểm lại danh sách rút gọn của hệ thống truy xuất bằng một model chậm hơn nhưng chính xác hơn, chẳng hạn cross-encoder, trước khi trả kết quả cho người dùng hoặc LLM.
Reranker là model nhận danh sách ngắn các ứng viên từ bộ truy xuất giai đoạn đầu có tốc độ cao, chấm điểm từng ứng viên so với truy vấn kỹ hơn rồi sắp xếp lại danh sách. Công cụ tìm kiếm, pipeline tạo sinh tăng cường truy xuất (RAG) và hệ thống đề xuất sử dụng mô hình này vì các model đánh giá độ liên quan chính xác nhất quá chậm để chạy trên hàng triệu tài liệu, nhưng đủ nhanh cho vài chục đến vài trăm kết quả hàng đầu. Trong tìm kiếm văn bản, reranker tiêu chuẩn là cross-encoder, một transformer đọc đồng thời truy vấn và một ứng viên rồi xuất ra một điểm liên quan duy nhất. Nogueira và Cho (2019) đã tinh chỉnh BERT theo cách này và dẫn đầu bảng xếp hạng MS MARCO passage ranking với MRR@10 cao hơn 27% theo giá trị tương đối so với kết quả tốt nhất trước đó.
Cơ chế truy xuất rồi sắp xếp lại#
Giai đoạn đầu ưu tiên recall: đối sánh từ khóa bằng BM25, tìm kiếm vector trên các embedding được tính trước, hoặc kết hợp cả hai, sẽ lấy ra vài trăm ứng viên tiềm năng từ toàn bộ tập dữ liệu chỉ trong vài mili giây. Reranker ưu tiên precision: reranker chạy model đầy đủ cho từng cặp truy vấn-ứng viên, rồi chỉ gửi một vài kết quả hàng đầu cho người dùng hoặc vào cửa sổ ngữ cảnh của LLM. Giải pháp VisualAISearch của Ultralytics là một bộ truy xuất giai đoạn đầu thuộc loại này: giải pháp tạo embedding cho thư mục ảnh bằng CLIP ViT-B/32, xếp hạng ảnh theo độ tương đồng cosine với truy vấn văn bản và mặc định trả về tối đa 30 kết quả khớp có độ tương đồng trên ngưỡng 0.1.
Cross-encoder và bi-encoder#
Bi-encoder, thường được dùng làm bộ truy xuất, tạo embedding riêng cho truy vấn và từng tài liệu, vì vậy có thể tính vector tài liệu một lần rồi lưu trong cơ sở dữ liệu vector. Tính độc lập đó cũng là giới hạn: vector tài liệu được cố định trước khi biết truy vấn. Cross-encoder nối truy vấn và tài liệu thành một đầu vào, để self-attention có thể so sánh mọi từ trong truy vấn với mọi từ trong tài liệu; đổi lại, hệ thống phải chạy forward pass đầy đủ cho mỗi cặp tại thời điểm truy vấn. ColBERT nằm giữa hai phương pháp này, lưu một vector cho mỗi token tài liệu và đối sánh token truy vấn với các vector đó bằng tương tác trễ. Lớp CrossEncoder của Sentence Transformers chạy reranker như ms-marco-MiniLM-L6-v2, được huấn luyện trên các truy vấn tìm kiếm MS MARCO:
from sentence_transformers import CrossEncoder
query = "When was the transformer architecture introduced?"
# Shortlist returned by a fast first-stage retriever, in its original order
candidates = [
"Transformer models such as GPT and BERT are widely used in natural language processing.",
"An electrical transformer changes the voltage of an alternating current.",
"Convolutional neural networks became popular after AlexNet won ImageNet in 2012.",
"The transformer was introduced in the 2017 paper Attention Is All You Need.",
]
# The cross-encoder reads the query and each candidate together and scores their relevance
reranker = CrossEncoder("cross-encoder/ms-marco-MiniLM-L6-v2")
ranked = reranker.rank(query, candidates)
for hit in ranked:
print(f"{hit['score']:6.2f} {candidates[hit['corpus_id']]}")Đoạn văn trả lời câu hỏi được chuyển từ vị trí cuối lên đầu với điểm số 6.97, cao hơn nhiều so với ứng viên tiếp theo ở mức -4.48. Câu về máy biến áp điện có chung từ khóa quan trọng với truy vấn nhưng đạt điểm -5.29.
Các loại reranker#
- Cross-encoder: Transformer nhỏ gọn được tinh chỉnh trên các nhãn về độ liên quan, chẳng hạn các model MS MARCO MiniLM và họ bge-reranker của BAAI; các model này cũng được cung cấp dưới dạng API reranking được lưu trữ.
- Reranker LLM: Một mô hình ngôn ngữ lớn (LLM) được gợi ý để chấm điểm ứng viên hoặc sắp xếp toàn bộ danh sách cùng lúc. RankGPT cho thấy ChatGPT và GPT-4 có thể sắp xếp lại các đoạn văn bằng cách xuất ra danh sách đã sắp xếp, đồng thời chưng cất thứ hạng của ChatGPT thành một reranker chuyên dụng nhỏ gọn.
- Model learning-to-rank: Hệ thống đề xuất và thương mại điện tử sắp xếp lại ứng viên bằng các model như cây tăng cường gradient trên những đặc trưng như lịch sử nhấp chuột, giá và độ mới; các model này được huấn luyện bằng mục tiêu xếp hạng như LambdaMART, có trong LightGBM và XGBoost.
Reranker và các khái niệm liên quan#
- Tìm kiếm ngữ nghĩa: Tìm kiếm theo ý nghĩa, thường sử dụng bộ truy xuất bi-encoder. Reranker là giai đoạn thứ hai tùy chọn được bổ sung sau bộ truy xuất.
- Tìm kiếm lai: Kết hợp danh sách kết quả từ tìm kiếm từ khóa và tìm kiếm vector, thường bằng phương pháp hợp nhất thứ hạng nghịch đảo, kết hợp thứ hạng mà không đọc lại nội dung. Reranker thường xử lý danh sách đã hợp nhất.
- Chưng cất tri thức: Huấn luyện một bộ truy xuất nhanh bắt chước điểm số của reranker chậm, chuyển một phần chất lượng sắp xếp lại vào giai đoạn đầu.
- Bộ phát hiện đối tượng hai giai đoạn: Áp dụng mô hình tương tự cho ảnh: giai đoạn đề xuất vùng gợi ý các bounding box ứng viên, còn giai đoạn thứ hai chấm điểm lại và tinh chỉnh từng box trước khi non-maximum suppression (NMS) loại bỏ các box trùng lặp chồng lấn.










