← 返回首页

如果知识库文件都是中文,用户用英文提问,怎么检索到答案?或者怎么优化让检索效果更好?

核心痛点:向量库存中文文本,用户输入英文 Query,中英文语义空间割裂,直接向量相似度匹配几乎失效,召回不到相关文档。
整体分基础可行方案进阶优化方案工程落地调优三层。

一、最简基础方案(低成本、快速上线)

核心思路:把英文提问翻译成中文,用译文去检索中文知识库,流程:英文 Query → 机器翻译 (英→中) → 中文向量检索知识库。

1. 标准执行链路

  1. 用户输入英文问题:How to refund the order
  2. 调用翻译 API / 本地翻译模型,转为中文:订单如何退款
  3. 对翻译后的中文文本做向量化(和知识库文本使用同一个中文 Embedding 模型,关键!)
  4. 向量库做相似度检索,召回中文文档
  5. 可选:检索到中文结果后,再翻译成英文返回给用户

2. 优缺点

  • 优点:改动最小,不用重新处理全部知识库,只改 Query 预处理逻辑;兼容现有检索架构
  • 缺点:翻译误差会丢失语义;长复杂英文问句翻译失真;多轮反问、口语化英文容易译偏;只靠单条翻译 Query 召回,召回覆盖不足

3. 基础优化点(零成本)

  1. Query 清洗:去除停用词、符号、大小写、无意义语气词
  2. 扩充同义 Query 英文原句 + 翻译中文 两条向量同时检索,合并召回结果,提升覆盖; 例:向量检索同时传入 How to refund the order(不使用,仅辅助)、订单如何退款(主检索向量)
  3. 翻译兜底策略:短 Query 用轻量翻译,长文本用大模型翻译,减少语义丢失

二、进阶最优方案(检索效果大幅提升,生产推荐)

方案 A:双语向量统一空间(最优,精度最高)

核心逻辑

不用分开中英文向量,使用跨语言 Embedding 模型(m3e-multilingual、bge-m3、e5-multilingual、sentence-transformers 多语言系列)
  1. 入库阶段:中文知识库文本,直接用多语言 Embedding生成向量存入向量库(不用中文单语模型)
  2. 查询阶段:用户英文提问,直接丢给同一个多语言模型生成向量检索,无需翻译 模型天然对齐中英语义:相同语义的英文问句、中文文档向量距离很近,不存在翻译损耗。

优势

  1. 消除翻译带来的语义失真,复杂专业术语、行业场景匹配更强
  2. 链路更短:英文 Query 直接向量化检索,少一次翻译调用,降低延迟
  3. 同时兼容中文、英文、混合中英提问,一套模型全覆盖

代价

原有知识库向量需要全部重新向量化入库;多语言 Embedding 算力 / 内存消耗略高于单语言中文模型

方案 B:多路召回融合(折中方案,不用重刷全量知识库)

不想重构建向量库时,多路召回合并打分,兼顾覆盖与精度,三路并行检索:
  1. 召回 1(翻译链路):英文 Query 翻译中文 + 原有中文 Embedding 检索
  2. 召回 2(关键词双语匹配):英文关键词翻译中文关键词,做全文关键词 / 倒排索引检索(BM25)
  3. 召回 3(跨语言小模型补充召回):抽取知识库高频业务术语中英对照词典,做精确匹配兜底
三路召回结果去重、加权打分排序,解决单一路召回漏文档问题。

BM25 关键词补充非常关键

纯向量容易丢失专有名词,建议维护中英术语词典: 知识库内所有专业词汇、产品名、流程名词,手动维护中英映射; 英文 Query 分词提取名词,匹配词典翻译成中文关键词,走全文检索,召回向量漏匹配的文档。

三、高阶优化手段(行业知识库 / 企业知识库专用)

1. 知识库预处理阶段优化(治本)

  1. 给中文文档补充英文摘要 / 英文关键词 入库时用大模型为每一篇中文知识库生成:英文标题、英文核心关键词、简短英文摘要,和原文绑定存入数据库; 检索时:英文 Query 向量同时匹配「文档中文向量」+「文档内置英文摘要向量」两路召回,双向对齐。
  2. 构建领域双语词表 行业专属术语(金融、电商、设备运维)通用翻译容易出错,人工整理中英对照词库,翻译 Query 时优先替换专业词汇,修正机器翻译偏差。
  3. 文档分段精细化入库 长文档切割小 chunk(200-500 字),每段独立向量,避免长文本向量语义稀释,英文提问更容易匹配到局部相关段落。

2. Query 侧增强(大模型扩写,提升召回)

使用大模型对英文提问做语义扩充,生成多条同义英文问句,再统一检索: 示例原句:I can't receive the verification code 扩写多条同义句:
  • Why didn't I get the SMS verification code
  • The verification message failed to send
  • No verification code received after submitting form 全部翻译为中文 / 直接多语言向量化,多路检索,大幅提升召回覆盖率。

3. 重排序(Rerank)修正匹配误差

多路召回一堆候选文档后,增加跨语言重排模型(bge-reranker-multilingual、cross-encoder 多语言): 输入:英文用户问题 + 中文候选文档片段 模型打分,过滤语义不匹配、翻译偏差带来的虚假召回,大幅提升最终答案准确度。

4. 混合检索架构(工业界标准)

多路召回(向量检索+BM25关键词) + 多语言重排序
  1. 粗召回:快速捞出 Top50 相关文档
  2. 精排:跨语言 rerank 模型筛选 Top3-5 最匹配文档
  3. 大模型摘要:用匹配到的中文文档生成英文回答返回用户

四、两种主流技术路线对比选型

方案
改造成本
检索精度
延迟
适用场景
英文翻译中文 + 单语中文向量
中等
中等
存量知识库庞大,无法全量重刷向量、低并发业务
多语言 Embedding 统一向量库
中高
最高
新搭建知识库、可重新向量化、对准确度要求高
多路召回融合(翻译向量 + BM25 双语关键词)
偏高
存量库不想重构,兼顾召回覆盖

五、避坑关键要点

  1. Embedding 模型必须统一 绝对不能:知识库用中文单语 BGE,Query 用多语言模型,语义空间完全割裂,检索失效。要么全库换多语言模型,要么 Query 翻译后用原中文模型。
  2. 不要只依赖纯向量检索 专有名词、冷僻术语向量匹配弱,必须搭配双语关键词 BM25 检索兜底。
  3. 翻译会引入偏差 口语化、反问、否定句式英文翻译容易反转语义(如 I don't want to cancel 误译为 “我想要取消”),大模型扩写 + rerank 可以缓解。
  4. 中英混合提问兼容 多语言 Embedding 天然支持中英夹杂问句;翻译方案需先拆分中英文分别处理再合并。

六、最简落地步骤(快速落地版)

  1. 短期(1 天上线) 新增 Query 预处理逻辑:英文提问调用翻译转中文,使用现有中文 Embedding 检索,搭配中英术语词典做关键词 BM25 补充召回。
  2. 中期(迭代优化) 接入多语言 rerank 重排结果;大模型扩充英文同义问句提升召回。
  3. 长期(效果最优) 全量知识库使用多语言 Embedding 重新向量化入库,移除翻译中间步骤,实现英文直接检索中文知识库。

七、补充:返回英文答案处理

检索拿到中文知识库内容后,交给 LLM 做两件事:
  1. 根据英文用户问题,从中文文档抽取相关信息
  2. 输出通顺英文回答,避免直接机翻导致生硬,同时过滤无关内容。