Hybrid search (tìm kiếm lai) là cách chạy song song tìm kiếm theo từ khóa, thường dùng thuật toán BM25, và tìm kiếm ngữ nghĩa bằng vector embedding, rồi trộn hai danh sách kết quả thành một. Tìm từ khóa bắt chính xác mã sản phẩm, số điều luật, tên riêng; tìm ngữ nghĩa hiểu câu hỏi diễn đạt khác chữ trong tài liệu. Kết hợp lại, hệ thống RAG và tìm kiếm nội bộ ít bỏ sót hơn so với dùng riêng một cách. Phần lớn vector database và công cụ tìm kiếm phổ biến hiện có hỗ trợ hybrid search.
Hybrid search là gì và giải quyết vấn đề gì
Hybrid search là phương pháp tìm kiếm kết hợp hai cách tiếp cận khác nhau về bản chất: tìm theo chữ và tìm theo nghĩa. Mục tiêu là lấy điểm mạnh của bên này bù điểm yếu của bên kia.
Hãy xem hai câu hỏi gửi tới chatbot của một công ty phân phối linh kiện máy tính:
- ‘Ổ SSD mã NV2-1TB còn bảo hành bao lâu’ : câu hỏi chứa mã sản phẩm. Tìm ngữ nghĩa có thể trả về tài liệu bảo hành của mã SSD khác vì về nghĩa chúng gần như giống nhau. Tìm từ khóa bắt đúng chuỗi ‘NV2-1TB’.
- ‘Máy tính khởi động mãi không lên thì làm sao’ : tài liệu viết ‘xử lý lỗi không boot được Windows’. Không có từ nào trùng đáng kể, tìm từ khóa trượt. Tìm ngữ nghĩa hiểu hai câu cùng ý.
Một hệ thống chỉ dùng một cách sẽ thất bại ở một trong hai loại câu hỏi. Người dùng thật lại hỏi lẫn lộn cả hai kiểu, nên hybrid search thường cho kết quả ổn định hơn.
Tìm từ khóa và tìm ngữ nghĩa khác nhau thế nào
Hiểu rõ từng phương pháp giúp bạn biết khi nào nên tăng trọng số cho bên nào.
| Tiêu chí | Từ khóa (BM25) | Ngữ nghĩa (vector) |
|---|---|---|
| Nguyên lý | Đếm từ trùng, ưu tiên từ hiếm | So sánh khoảng cách giữa các vector ý nghĩa |
| Mã số, tên riêng, viết tắt | Rất tốt | Không ổn định |
| Câu hỏi diễn đạt khác chữ | Kém | Tốt |
| Lỗi chính tả, không dấu | Kém nếu không xử lý thêm | Chịu được ở mức vừa phải |
| Giải thích vì sao khớp | Dễ, chỉ ra từ trùng | Khó giải thích |
| Chi phí lập chỉ mục | Thấp | Cần tạo embedding cho mọi đoạn |
Cách trộn kết quả trong hybrid search
Khó khăn chính của hybrid search là hai phương pháp cho điểm theo thang hoàn toàn khác nhau. Điểm BM25 có thể là 12,4 trong khi độ tương đồng vector là 0,82. Không thể cộng thẳng. Có hai cách trộn phổ biến.
Reciprocal Rank Fusion (RRF)
RRF bỏ qua điểm số, chỉ dùng thứ hạng. Mỗi tài liệu nhận điểm dựa trên vị trí của nó trong từng danh sách, tài liệu xếp cao ở cả hai danh sách sẽ lên đầu. Ưu điểm là đơn giản, ít phải tinh chỉnh, nên rất nhiều hệ thống chọn làm mặc định.
Trộn điểm có trọng số
Chuẩn hóa điểm của hai bên về cùng thang, rồi cộng với trọng số, ví dụ 0,3 cho từ khóa và 0,7 cho ngữ nghĩa. Cách này cho phép điều chỉnh theo loại dữ liệu nhưng cần thử nghiệm để chọn trọng số.
- Kho tài liệu nhiều mã sản phẩm, số hợp đồng: tăng trọng số từ khóa.
- Kho hướng dẫn, quy trình viết bằng lời tự nhiên: tăng trọng số ngữ nghĩa.
Sau bước trộn, nhiều hệ thống còn đưa top kết quả qua reranker để chấm lại lần cuối. Hybrid search lo việc không bỏ sót, reranker lo việc xếp đúng thứ tự.
Lưu ý riêng khi tìm kiếm tiếng Việt
Tiếng Việt có một số đặc điểm khiến tìm từ khóa phức tạp hơn tiếng Anh.
- Từ ghép nhiều âm tiết: ‘máy tính xách tay’ là một khái niệm gồm bốn âm tiết. Bộ tách từ mặc định có thể tách theo khoảng trắng, làm giảm độ chính xác. Một số công cụ có bộ phân tích tiếng Việt hoặc hỗ trợ tìm theo cụm từ.
- Có dấu và không dấu: người dùng gõ ‘bao hanh’ thay cho ‘bảo hành’. Cân nhắc lập chỉ mục thêm phiên bản không dấu.
- Viết tắt: ‘HĐ’, ‘NV’, ‘KH’, ‘BHXH’. Nên có danh sách từ đồng nghĩa và viết tắt phổ biến trong công ty.
- Từ địa phương, cách gọi khác nhau: ‘máy lạnh’ và ‘điều hòa’, ‘bảo trì’ và ‘bảo dưỡng’. Phần này tìm ngữ nghĩa xử lý tốt hơn.
Chính vì những điểm này, với dữ liệu tiếng Việt, hybrid search thường đáng giá hơn so với chỉ dựa vào một phương pháp. Bên ngữ nghĩa bù cho đồng nghĩa và cách diễn đạt, bên từ khóa bù cho mã số và tên riêng.
Công cụ nào hỗ trợ hybrid search
Tại thời điểm viết, nhiều nền tảng phổ biến đã hỗ trợ hybrid search ở mức sẵn có hoặc qua cấu hình. Tính năng thay đổi theo phiên bản, nên kiểm tra tài liệu chính thức trước khi chọn.
- Elasticsearch và OpenSearch: vốn mạnh về tìm từ khóa, đã bổ sung tìm vector và cơ chế trộn kết quả.
- Vector database như Qdrant, Weaviate, Milvus: hỗ trợ vector thưa (sparse) hoặc BM25 bên cạnh vector đặc.
- PostgreSQL: kết hợp tìm toàn văn có sẵn với tiện ích pgvector, phù hợp khi công ty đã dùng PostgreSQL.
- Nền tảng RAG không cần code: một số nền tảng như Dify cho chọn chế độ tìm kiếm lai trong phần cài đặt kho tri thức.
Chọn theo hạ tầng sẵn có
Với doanh nghiệp nhỏ, nên chọn công cụ gần với hệ thống đang chạy. Nếu website và phần mềm nội bộ đã dùng PostgreSQL, thêm pgvector đơn giản hơn dựng thêm một hệ thống mới. Nếu chỉ cần chatbot tài liệu, dùng tính năng có sẵn của nền tảng RAG là đủ.
Các bước triển khai hybrid search cho chatbot nội bộ
Chuẩn bị
- Kho tài liệu đã được chunking và có metadata.
- Bộ câu hỏi kiểm thử gồm cả hai loại: câu có mã số, tên riêng và câu diễn đạt tự nhiên.
Các bước
- Đo nền: chạy bộ câu hỏi với tìm vector hiện tại, ghi tỷ lệ tìm đúng cho từng nhóm câu hỏi.
- Bật chỉ mục từ khóa: cấu hình BM25 hoặc tìm toàn văn, xử lý tiếng Việt và phiên bản không dấu nếu cần.
- Chọn cách trộn: bắt đầu với RRF vì ít tham số.
- Chạy lại bộ câu hỏi: so sánh từng nhóm. Kỳ vọng nhóm câu có mã số cải thiện rõ, nhóm câu tự nhiên không giảm.
- Tinh chỉnh: nếu cần, chuyển sang trộn có trọng số và thử vài tỷ lệ.
- Thêm reranker nếu thứ tự còn kém.
Kiểm tra kết quả
Xem log thực tế sau 1–2 tuần: tỷ lệ câu chatbot trả lời ‘không tìm thấy’ có giảm không, câu hỏi về mã sản phẩm có còn bị trả nhầm không.
Khi nào chưa cần hybrid search
Hybrid search thêm một chỉ mục và thêm bước xử lý. Bạn có thể chưa cần nếu:
- Kho tài liệu rất nhỏ: vài chục trang, có thể đưa thẳng vào ngữ cảnh hoặc tìm vector là đủ.
- Câu hỏi gần như không có mã số, tên riêng: ví dụ chatbot tư vấn chung về chính sách chăm sóc khách hàng.
- Dữ liệu có cấu trúc đã nằm trong phần mềm: câu hỏi về tồn kho theo mã sản phẩm nên truy vấn trực tiếp cơ sở dữ liệu qua function calling, không cần tìm trong văn bản.
- Vấn đề thật nằm ở dữ liệu nguồn: nếu tài liệu thiếu hoặc lỗi thời, đổi cách tìm kiếm không giúp được.
Ngược lại, hybrid search gần như nên có khi kho tài liệu chứa nhiều mã sản phẩm, model máy, số hiệu văn bản, tên khách hàng, hoặc khi người dùng thường gõ không dấu và viết tắt. Đó là tình huống rất phổ biến ở cửa hàng linh kiện, công ty phân phối và bộ phận kỹ thuật.
Khi lập bộ câu hỏi kiểm thử, hãy tách riêng nhóm câu chứa mã số và tên riêng. Hybrid search thường cải thiện mạnh nhất ở nhóm này, nếu gộp chung bạn có thể không nhìn thấy khác biệt.
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
Hybrid search có chậm hơn tìm vector không?
Có thêm một bước tìm và một bước trộn, nhưng tìm từ khóa vốn rất nhanh nên độ trễ thêm thường nhỏ so với thời gian mô hình ngôn ngữ sinh câu trả lời.
BM25 là gì?
BM25 là thuật toán xếp hạng tìm kiếm theo từ khóa, chấm điểm tài liệu dựa trên số lần xuất hiện của từ trong câu hỏi, có ưu tiên từ hiếm và điều chỉnh theo độ dài tài liệu.
Hybrid search có thay thế reranker không?
Không. Hybrid search giúp lấy được nhiều ứng viên đúng hơn, còn reranker sắp xếp lại các ứng viên đó cho chính xác. Hai kỹ thuật thường dùng cùng nhau.
Website WordPress có dùng hybrid search được không?
Có thể qua plugin tìm kiếm kết hợp dịch vụ vector hoặc công cụ tìm kiếm bên ngoài. Mức độ hỗ trợ phụ thuộc plugin, nên thử trên bản sao website trước.
Có cần xử lý tiếng Việt riêng cho hybrid search không?
Nên có. Tách từ phù hợp, lập chỉ mục bản không dấu và danh sách viết tắt giúp phần tìm từ khóa hoạt động tốt hơn với cách người Việt gõ.
RRF là gì?
Reciprocal Rank Fusion là cách trộn nhiều danh sách kết quả dựa trên thứ hạng thay vì điểm số, giúp kết hợp kết quả từ khóa và ngữ nghĩa mà không cần chuẩn hóa điểm.
Bài viết liên quan
- Tìm kiếm ngữ nghĩa (semantic search) là gì? Ứng dụng cho doanh nghiệp
- 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
- Vector database là gì? Nền tảng cho AI đọc tài liệu nội bộ
- Reranker là gì? Tăng độ chính xác tìm kiếm cho RAG
- Chunking là gì? Cách chia tài liệu cho RAG trả lời chính xác
- AI tìm kiếm là gì? AI Overview, AI Mode thay đổi cách tìm thông tin ra sao
- Xây kho tri thức (knowledge base) cho AI trả lời nội bộ