Không đủ. Bảng xếp hạng công khai đo trên tập dữ liệu chung, tiếng Anh là chính, và các model đứng đầu đôi khi đã được tối ưu cho chính các tập đó. Dữ liệu của bạn có thuật ngữ riêng, viết tắt nội bộ và tiếng Việt — thứ hạng chung không nói được gì.
Quy trình tự đo, làm được trong một buổi:
1. Dựng bộ eval nhỏ: 50-100 cặp (câu hỏi thật, đoạn văn chứa câu trả lời). Lấy câu hỏi từ log tìm kiếm hoặc ticket support, không tự nghĩ ra.
2. Index cùng một corpus bằng từng model ứng viên, giữ nguyên chunking để chỉ một biến thay đổi.
3. Đo recall@k (k = 5, 10) và MRR: chunk vàng có nằm trong top-k không, ở hạng mấy.
4. Ghi thêm ràng buộc vận hành: số chiều vector (ảnh hưởng chi phí lưu trữ), độ dài đầu vào tối đa, độ trễ, giá mỗi triệu token, có bản self-host không.
recall_at_5 = sum(
gold_id in [h.id for h in index.search(embed(q), top_k=5)]
for q, gold_id in eval_set
) / len(eval_set)Hai lưu ý: model đắt hơn không mặc nhiên tốt hơn cho domain hẹp, và đổi embedding model là đổi cả không gian vector — bắt buộc reindex toàn bộ, nên hãy chốt lựa chọn trước khi kho tài liệu lớn lên.