我的 AI 系统总在回答中途突然切法语,我花了超久才找到原因

Reddit r/artificial 论文

摘要

一位开发者讲述其多语言 RAG 系统因检索到的上下文含法语内容而意外切语,最终靠正则德语检测器和显式负面提示解决。

我搭了一个 RAG 系统,要根据提问语言用德语或英语回答。听起来简单,其实坑死人。源文档大部分是德语,但混着法语法律术语、拉丁短语,偶尔还有英文判例。结果 LLM 常常先用德语答,读到上下文里的法语段落,就……中途切法语。有时一句里德法混用。有次它直接整段意大利语,我至今没搞懂为啥。 我试过让 LLM 自己识别提问语言,结果不靠谱:用户只要提到一个法国法院案例名,它就判定是法语提问。 最后奏效的是个傻正则。我扫一遍提问里有没有典型德语词(der、die、das、und、ist、nicht、mit、für、datenschutz、verletzung 等)。德语特征词够多就强制德语回答,否则默认英语。没上任何高级语言检测库,纯模式匹配。 接着在 prompt 里加硬规则: "整个回答只能用 {language}。输出必须是德语或英语,严禁法语、西班牙语、意大利语等其他语言。若检索上下文含其他语言,请仅将答案翻译成 {language}。" 那句“严禁法语”居功至伟。没这条禁令,模型跑几天测试后又会滑回法语。它一看见法语法律文本就想“哦,原来要法语”。 有人也在做多语言 RAG 遇到同样问题吗?源文档的语言污染是我踩过最烦的坑,却几乎没人写过。
查看原文

相似文章

@neural_avb: https://x.com/neural_avb/status/2063907440509571354

X AI KOLs Timeline

探索递归语言模型(RLM)中一个常见的失败模式,其中自由文本子代理响应会导致问题,并提出一种使用结构化输出提高可靠性的解决方案,通过NarrativeQA中的长上下文问答示例进行说明。

语言切换触发器在语言模型中的潜在绕行路径

Hugging Face Daily Papers

本文识别了在80亿参数语言模型中语言切换后门的底层电路,其中三个词的拉丁触发器通过注意力头和正交潜在子空间将英语输出重定向为法语,最后一层的MLP将潜在信号转换为法语logits。