跨语言知识库:用户用中文问、资料全是英文的,检索怎么打通
我们有批技术资料是纯英文的(供应商给的原版手册,没人翻),但用的人全说中文,张口就是"这个传感器的供电电压范围是多少"。一开始的检索基本废——中文query和英文文档,向量空间对不上,召回惨不忍睹。后来折腾通了,把几条路子和最后的选择讲清楚。
为啥直接检索会废
你以为多语言embedding模型能自动对齐中英?理想很丰满。实测里"供电电压"和"supply voltage",靠通用多语言模型的embedding,相似度并没高到能稳定召回的程度。专业术语尤其明显——领域词在多语言模型里对齐得很松。结果就是该命中的英文段落,排名靠后,捞不上来。
试过的三条路
路子一:把英文资料全翻成中文再入库。 最直觉。效果也确实好,中文问中文匹,召回稳。但缺点扎心——翻译有成本,而且术语翻译一旦不准(机翻把"register"翻成"注册"而不是"寄存器"),整段语义就歪了,召回反而被带跑。资料一更新还得重翻。我们资料量大,否了。
路子二:把用户的中文问题翻成英文再去检索。 反过来。query短,翻译成本低,术语出错概率也小。我现在主用这条:用户问"供电电压范围",先过一道翻译变成"supply voltage range",再拿英文去检索英文库,同语言匹配,召回立马上来。检索到英文段落后,生成答案时再让模型用中文回给用户。
路子三:直接上跨语言能力强的embedding。 理论最干净,一步到位。但对术语密集的专业库,我实测召回还是不如"先翻query"那条稳。可能通用模型没见够这个领域的中英对照。先搁置了。
最后落的方案:query翻译 + 原文检索 + 中文生成
链路是这样:
中文问题 → 翻成英文query → 检索英文知识库
→ 命中英文段落 → 模型用中文+英文原文出答案
末尾我特意保留:答案给中文结论,但把依据的英文原文片段也附上。因为是技术资料,工程师反而想看英文原文核对术语,纯中文他们不放心。
一个没绕过去的坑
query翻译这步,遇到中英夹杂的提问会抽风。有人问"这个MCU的IDLE模式功耗多少"——里面MCU、IDLE本来就是英文,翻译模型有时会画蛇添足把它们再"翻"一遍,反而搞乱。我现在的土办法是:提示翻译那步"保留已是英文的术语原样",缓解了大半,但偶尔还漏。
落地用的那个零代码配智能体的工具,翻译节点、检索节点、生成节点串起来就是拖拽,我主要调提示词和保留原文的逻辑,没写检索胶水代码。
模型这层说一句:翻译、检索后的生成全要大模型,我用讯飞的模型即服务(MaaS,现成API),不用自建多语言模型和算力,接上就调。
—
跨语言知识库你们是翻文档还是翻query?有没有人用双路索引(中英各存一份)的?我担心存两份维护成本高,没敢上,评论区聊聊。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)