如何让 RAG 支持跨语言查询(如中文问题检索英文文档)?
跨语言检索是 RAG 系统的常见需求,特别是跨国企业知识库——中文问题检索英文文档,或者反过来。
核心思路有三种:多语言嵌入模型、查询翻译、混合策略。我之前做过一个跨国企业的知识库项目,三种方案都试过,各有优劣。
方案一:多语言嵌入模型(推荐)
这是最优雅的方案——用一个支持多语言的嵌入模型,把不同语言的文本映射到同一个向量空间。
推荐模型:
- BGE-M3(BAAI):开源,支持 100+ 语言,跨语言检索效果好,我们在项目中用的就是这个
- BCEmbedding(网易有道):专门为中英双语优化,跨语言检索 SOTA
- Gemini Embedding 2:闭源 API,跨语言检索评分 0.997,效果最好但成本高
原理:这些模型在训练时用了大量平行语料(翻译对),强制不同语言中语义相同的句子在向量空间中靠近。比如"人工智能"和"Artificial Intelligence"会被映射到相近的位置。
实战代码:
fromBCEmbeddingimportEmbeddingModel