Cuối cùng tôi đã hiểu tại sao các re-ranker lại mạnh mẽ đến vậy khi tôi nắm được sự khác biệt chính giữa bi- và cross-encoders. Tôi còn tìm ra cách kết hợp sức mạnh của chúng bằng một kiến trúc thống nhất. Để tôi giải thích: RAG là 80% truy xuất và 20% sinh. Vì vậy, nếu RAG không hoạt động, rất có thể đó là vấn đề truy xuất. Đó chính là lý do tại sao việc có kiến trúc truy xuất đúng rất quan trọng - và nó bắt đầu từ việc hiểu ba (thực ra là ba) phương pháp mã hóa này. (hãy tham khảo hình ảnh bên dưới khi bạn đọc) 1️⃣ Bi-encoders Bi-encoders (xương sống của tìm kiếm vector) xử lý truy vấn và tài liệu một cách riêng biệt. - Các embedding tài liệu được tính toán trước - Truy vấn được nhúng tại thời điểm tìm kiếm Điều này khiến bi-encoders trở nên hoàn hảo cho việc truy xuất ban đầu: - cực kỳ nhanh - hoạt động ở quy mô lớn - bỏ lỡ thông tin ngữ cảnh quan trọng 2️⃣ Cross-encoders Cross-encoders có cách tiếp cận hoàn toàn khác cho việc xếp hạng lại. Chúng xử lý truy vấn và từng tài liệu như một đơn vị duy nhất. - Kết hợp truy vấn với tài liệu ([CLS] Truy vấn [SEP] Tài liệu [SEP]) - Chạy qua mô hình cùng nhau để có sự chú ý chéo đầy đủ Điều này khiến cross-encoders lý tưởng cho giai đoạn thứ hai: - nắm bắt các mối quan hệ ngữ nghĩa để có độ chính xác tốt hơn - nhưng chậm hơn nhiều và tốn tài nguyên cho các bộ sưu tập lớn Bây giờ, nếu chúng ta có thể kết hợp những điều tốt nhất của cả hai thế giới! 3️⃣ ColBERT ColBERT kết hợp sức mạnh của cross-encoders và khả năng mở rộng của bi-encoders. - Mã hóa riêng biệt các truy vấn và tài liệu - Tạo ma trận tương tác với điểm tương đồng giữa tất cả các cặp token truy vấn-tài liệu - Lấy điểm tối đa cho mỗi token truy vấn trên các token tài liệu - Tính tổng điểm tối đa cho điểm khớp cuối cùng _____ Đó là tất cả! Nếu bạn thấy điều này hữu ích, hãy chia sẻ lại với mạng lưới của bạn. Tìm tôi → @akshay_pachaar ✔️ Để có thêm thông tin và hướng dẫn về LLMs, AI Agents và Machine Learning!
46,67K