Tăng độ chính xác RAG bằng Reranker: Thử nghiệm Cohere Rerank vs BGE-Reranker-v2
Tại sao Vector Search Top-K vẫn lấy nhầm tài liệu rác? Các mô hình Bi-Encoder dùng để tạo vector embedding phải nén toàn bộ ngữ nghĩa của cả đoạn văn thành một dãy số ví dụ 1536 chiều. Quá trình nén …
☰ Mục lục bài viết (4 phần) Mở / Đóng mục lục
Tại sao Vector Search Top-K vẫn lấy nhầm tài liệu rác?#
Các mô hình Bi-Encoder (dùng để tạo vector embedding) phải nén toàn bộ ngữ nghĩa của cả đoạn văn thành một dãy số (ví dụ 1536 chiều). Quá trình nén này làm mất đi sự tương tác chi tiết giữa từng từ trong câu hỏi và tài liệu.
Đây là lý do kỹ thuật Cross-Encoder (Reranker) ra đời: Reranker không tạo vector, mà nhận vào trực tiếp cả cặp (Câu hỏi, Đoạn văn) và chấm điểm mức độ liên quan với độ chính xác cao hơn rất nhiều.
Kiến trúc RAG 2 giai đoạn (Two-stage Retrieval)#
- Stage 1 (Retrieval nhanh): Dùng Vector Search hoặc Hybrid Search để lấy ra Top 25 tài liệu tiềm năng (mất khoảng 15ms).
- Stage 2 (Reranking sâu): Dùng Reranker chấm điểm lại 25 tài liệu này và chỉ lấy Top 4 tài liệu có điểm số cao nhất gửi cho LLM.
import cohere
co = cohere.Client("YOUR_API_KEY")
# 25 tài liệu thô lấy từ Qdrant
docs = [hit.payload["text"] for hit in qdrant_results]
# Rerank lại với Cohere Rerank 3.5
response = co.rerank(
model="rerank-v3.5",
query="Cách cấu hình connection pool trong PostgreSQL?",
documents=docs,
top_n=4
)
for r in response.results:
print(f"Index: {r.index}, Relevance Score: {r.relevance_score:.4f}")
So sánh Cohere Rerank vs BGE-Reranker-v2 (Chạy Local)#
- Cohere Rerank: Độ chuẩn xác rất cao, hiểu tiếng Việt khá tốt, gọi qua API tiện lợi, độ trễ khoảng 120ms.
- BGE-Reranker-v2-m3: Mô hình mã nguồn mở chạy local bằng GPU, hỗ trợ đa ngữ xuất sắc, latency chỉ 35ms trên RTX 4090, không mất phí API.
Góc thảo luận#
Anh em đã bổ sung bước Reranker vào pipeline RAG của mình chưa? Sự khác biệt về chất lượng câu trả lời sau khi có Rerank có đủ bù lại độ trễ thêm vào không?
Xem thêm nội dung liên quan:
Thảo luận
1 phản hồi
Tham gia thảo luận
Bài liên quan trong #AI & Trợ lý lập trình
-
Lập trình viên có bị thay thế bởi AI không? 5 kỹ năng bắt buộc phải nâng cấp trong 2 năm tới
Hoàng Nam (Tech Lead) · 💬 1 -
Áp dụng Model Context Protocol (MCP) của Anthropic để kết nối AI với Postgres và Docker
Hoàng Nam (Tech Lead) · 💬 1 -
So sánh mô hình Embedding đa ngữ: OpenAI text-embedding-3 vs BGE-M3 vs Cohere
Minh Trí (AI Engineer) · 💬 1 -
Xây dựng Voice AI Agent thời gian thực với WebRTC và Whisper Live: Độ trễ dưới 500ms
Lan Anh (Senior Frontend) · 💬 1 -
Cấu hình Rate Limiting ở tầng Nginx và API Gateway: Chống DDOS Layer 7 hiệu quả
Đức Huy (DevOps Specialist) · 💬 1