Bỏ qua đến nội dung

Truy xuất lai: vector + keyword + metadata

Kỹ thuật truy xuất lai bền vững: kết hợp tín hiệu vector, lexical, metadata và thời gian cho RAG website.

retrieval • hybrid • search • rag

Retrieval một phương thức thất bại ở các edge case: dense vector bỏ sót token và ID hiếm; lexical thuần bỏ sót diễn đạt lại và tương đồng ngữ nghĩa. Retrieval lai hợp nhất các tín hiệu bổ sung - ngữ nghĩa dense, lexical sparse, metadata có cấu trúc, freshness theo thời gian - để tạo tập ứng viên ổn định, precision cao. Bài này trình bày kiến trúc, chuẩn hóa, fusion scoring, xử lý lỗi và đánh giá.

Động lực

Kịch bản lỗi:

  • Tên riêng hoặc mã SKU bị mô hình dense bỏ sót.
  • Query về thay đổi giá kéo snapshot cũ thiếu temporal boost.
  • Câu hỏi tự nhiên dài bị hệ sparse-only đặt trọng số quá nhiều vào stopwords.
  • False positive vector trên trang quá rộng về ngữ nghĩa, như marketing fluff, thiếu neo lexical.

Hybrid giảm rủi ro bằng cách bắt các chiều bằng chứng trực giao.

Lớp thành phần

Luồng khuyến nghị:

  1. Query Embedding -> ANN search (k_vec)
  2. Lexical Search (BM25 / SPLADE / Elasticsearch) (k_lex)
  3. Union -> Score Normalization (scale theo nguồn)
  4. Metadata Filter Pass (locale, access_tier, page_type)
  5. Điều chỉnh diversity và freshness
  6. Cross/Mono Re-Ranker tùy chọn
  7. Final Truncation (top K)

Giữ điểm thô trước fusion để kiểm toán.

Chuẩn hóa query

Các bước:

  • Unicode normalize NFKC
  • Chuyển lowercase, giữ snapshot casing cho định dạng câu trả lời nếu cần
  • Tokenize và giữ stopwords, vì semantic embeddings có thể tận dụng ngữ cảnh
  • Synonym / Alias Expansion: thêm token thay thế cho ánh xạ codename sản phẩm nội bộ, không đưa vào prompt mô hình và chỉ dùng cho sparse retrieval
  • Numeric & Version Extraction: bắt mẫu X.Y.Z để scoring lexical có mục tiêu

Bộ lọc metadata và thuộc tính

Bộ lọc áp dụng sau union ứng viên ban đầu giúp giảm mất recall. Trường thường gặp: locale, access_tier, page_type, product_area, updated_bucket. Thực thi bộ lọc bảo mật như tenant hoặc tier TRƯỚC scoring fusion để ngăn rò rỉ ảnh hưởng re-ranking. Cung cấp debug mode trả về tập filtered_out để kiểm tra.

Chiến lược re-ranking

Dùng cross-encoder nhẹ, ví dụ mô hình distilled, trên N đầu (10-20). Nếu độ trễ vượt budget, degrade: bỏ re-rank HOẶC giảm số ứng viên trong khi tăng trọng số lexical. Theo dõi re_rank_delta = MRR_post - MRR_pre để biện minh chi phí. Cache kết quả re-rank cho union set giống nhau trong TTL ngắn.

Freshness và tín hiệu thời gian

Tính freshness_weight = exp(-lambda * age_days) với lambda tinh chỉnh theo loại nội dung, cao hơn cho pricing và thấp hơn cho API ổn định. Kết hợp: final_score = w_sem * sem_score + w_lex * lex_score + w_fresh * freshness_weight + w_meta * meta_priors. Chuẩn hóa từng thành phần trước, bằng z-score hoặc min-max, để tránh một thành phần thống trị.

Chế độ lỗi

LỗiNguyên nhânGiảm thiểu
Thiên lệch phổ biếnTrọng số lexical tf-idf quá caoGiới hạn đóng góp của tần suất thuật ngữ
Kết quả cũFreshness weight tinh chỉnh saiHiệu chỉnh lại lambda bằng evaluation set
Rò rỉ localeÁp dụng filter muộnDi chuyển bộ lọc bảo mật lên sớm hơn
Drift ngữ nghĩaNâng cấp mô hình embeddingDual-index và so sánh A/B trước rollout
Nhiễu over-fusionKích thước union không giới hạnGiới hạn union, diversity pruning

Khung đánh giá

Thí nghiệm:

  • Ablation: đo Recall@k và MRR cho vector only, lexical only, hybrid không rerank và full.
  • Fusion Weight Tuning: grid search trọng số bằng validation gold set.
  • Latency Budget: theo dõi mean + P95 retrieval latency theo từng cấu hình.
  • Drift: giám sát thay đổi tương đối hằng tuần của recall cho query head và tail.

Duy trì manifest đánh giá với hash cấu hình.

Vòng tối ưu hóa

Chu kỳ:

  1. Log retrieval traces (query, ứng viên, điểm, source_tag).
  2. Xác định mis-hit, như faithfulness downstream thấp hoặc số trích dẫn thấp, rồi phân loại root cause: thiếu ứng viên lexical, false positive ngữ nghĩa, nội dung cũ.
  3. Điều chỉnh trọng số hoặc threshold; chạy suite offline.
  4. Canary trọng số fusion mới sau feature flag.
  5. Promote khi cải thiện có ý nghĩa thống kê.

Ý chính

  • Retrieval lai là hệ thống nhiều núm chỉnh: instrument liên tục.
  • Áp dụng bộ lọc bảo mật và truy cập sớm; tránh rò rỉ vào scoring.
  • Re-ranking phải biện minh độ trễ bằng tăng MRR hoặc Recall đo được.
  • Temporal decay ngăn trang cũ nhưng quyền lực cao thống trị.
  • Xử lý thay đổi fusion như mã: version, evaluate, roll forward hoặc rollback.