跨语言检索优化是什么
中英混合文档库的跨语言检索有三种做法:选用多语言 embedding(如 bge-m3 一类支持多语言的模型),把查询翻译后做双路检索再合并,或者按语言分区分别检索。评测必须覆盖「中文提问、英文文档」和「英文提问、中文文档」这类交叉组合,否则问题会被同语言评测掩盖。翻译质量直接决定英文那条路的召回,产品名与型号要求原样保留。
基本信息
| 做法一 | 使用多语言 embedding,一套索引覆盖多语言 |
|---|---|
| 做法二 | 查询翻译后双路检索,再融合结果 |
| 做法三 | 按语言分区,分别检索与合并 |
| 评测要求 | 覆盖中文问英文档、英文问中文档的交叉组合 |
| 翻译约束 | 产品名与型号原样保留,不翻译不改写 |
| 融合算法 | 倒数排名融合等,需要调权重与去重 |
典型使用场景
- 产品文档中英混杂,用户用中文提问英文手册的内容
- 技术术语用英文、说明用中文的文档库
- 多语言客服知识库统一检索入口
- 跨语言去重前先确认能不能检索到对方的文档
- 语料语言分布不均衡时,用小语种侧的补强策略
查询翻译加双路合并
查询翻译加双路合并
hits_zh = store.search(embed_zh(q), top_k=30) # 中文路
hits_en = store.search(embed_en(translate(q)), top_k=30) # 英文路
merged = rrf([hits_zh, hits_en])[:20] # 融合后截断
# 两路结果要做去重:同一文档的中英片段可能同时命中
# 翻译时保留型号与专名原样,避免英文路偏离方案对照
| 方案 | 优点 | 代价 |
|---|---|---|
| 多语言 embedding | 一套模型一个索引,运维简单 | 单语效果可能略低于专用单语模型 |
| 翻译加双路 | 可复用现有单语模型 | 翻译成本与延迟,翻译错误直接影响召回 |
| 按语言分区 | 每侧可用最优模型 | 需先判语言,跨语言问法难处理 |
| 双路加融合 | 召回更全面 | 需要调融合权重并去重 |
翻译质量直接影响英文那条路的召回:产品名与型号必须原样保留,翻译把型号改写成描述,检索立刻偏掉。
中文查询直接打英文索引时专名匹配不上:要么用多语言模型,要么走翻译双路,方案必须明确,不能含糊其辞。