生产环境中的本地化,处理的往往是彼此割裂的段落和字符串。CI/CD 流水线会与上一版本做 diff,只重译发生变化的部分——可能是一条 UI 文案、一个 tooltip,或是一个被修改过的段落。每次请求送到 LLM 面前时,都是孤立的——没有所在页面,没有文档的完整上下文,也没有任何信号告诉模型,这段文本究竟属于欧盟法律条文,还是营销文案。如果在推理阶段不注入领域上下文,那么每一次孤立请求,都是一次术语漂移的机会。
检索增强本地化(RAL) 正是通过在推理阶段为每个翻译请求补充术语表、品牌语调规则和 locale 专属指令,来补上这道缺口——其底层逻辑与 检索增强生成(RAG) 背后的 retrieve-inject 模式一致。在一项覆盖五家 LLM 提供商和五种欧洲语言的受控评测中,RAL 将术语错误减少了 16.6–44.6%。
关键发现:
- 在测试的全部五家 LLM 提供商中,RAL 都将术语错误减少了 16.6–44.6%
- 整体质量评分(GEMBA-DA)无法识别这些差异。分数差值仅为 0.0007–0.0178,而 MQM 却统计出少了数千个错误
- 术语基线表现越弱的模型,收益越大:Mistral(-44.6%)和 Deepseek(-42.1%)显著高于 Anthropic(-24.4%)和 Google(-16.6%)
- 葡萄牙语的单语种提升最大,法语最小——领域术语与训练数据偏离越远,RAL 的效果越明显
孤立带来的问题#
生产本地化的处理单元很小:一个段落、一条字符串、一次 diff。很少超过 200 个词,通常不到 50 个词。一个 JSON locale 文件里,是一组组独立的 key,每个 key 对应一个短语或句子。一个 CMS 页面由多个内容块组成,而每个内容块都是独立翻译的。
当模型在一段孤立的英文段落里遇到 “provider” 时,它必须自己判断:葡萄牙语里该译成 “fornecedor”(常见说法),还是 “prestador”(欧盟法律中的正式术语)?如果没有领域上下文,它通常会选前者。把这种情况扩展到每个 locale 中的每一个领域术语,术语漂移就会成为默认结果。
我们的目标,就是精确量化这道缺口到底有多大——以及在推理阶段注入术语表上下文,是否真的能把它补上。
第一次尝试,什么都没测出来#
我们最初的实验为每个语言对使用了 37 个术语表术语,并按文章级别评分——每篇文章(200–700 词)作为一个整体评估。结果是:GEMBA-DA——WMT23 的获胜整体质量提示——对 raw 和 configured 都给出了 0.952。MQM 错误标注则为每篇译文都打出了 0.985–0.999 的分数。没有信号,没有差异。按这些指标看,原始输出与术语表增强输出完全一样。
我们差一点就发布了一个零结果。后来,我们开始追问为什么。
问题有两个。第一,37 个术语表术语太少——很多测试段落根本没有命中任何术语表条目,因此配置后的引擎没有优势。第二,按文章级评分会在数学上把质量差异压缩成噪声。MQM 分数按 1 - penalty / wordCount 计算。一个 500 词文章中的单个重大术语错误:1 - 5/500 = 0.99。同样的错误如果出现在 50 词段落中:1 - 5/50 = 0.90。错误是一样的,分数却不是。到了文章级,所有真实的质量差异都会在 0.98 以上被抹平。
这不只是我们这项研究的测量问题。所有按页面或文章级别评估的翻译基准测试,都会遇到同样的问题。错误明明存在,指标却看不见。
我们换了一种看法#
在第二轮迭代中,我们做了四项调整。
第一,我们将每个语言对的术语表从 37 个扩展到 72 个术语——这些术语提取自一组训练文章,与用于评测的测试集分开。第二,我们改为按段落级(50–200 词)评分,以贴近真实生产翻译的实际单元。第三,我们在 MQM 评分提示中加入了人工参考译文,让评审能够直接对照术语。第四,我们将评审数量从 6 个减到 4 个。Deepseek 和 QWEN 每段只标出 1–3 个错误,而更严格的评审会标出 5–15 个——它们过于宽松,无法提供有效信号。
信号立刻出现了。
研究设计#
数据集。 我们希望选用术语密度最高的文本类型,在高要求条件下对术语表注入进行压力测试。欧盟《人工智能法案》(Regulation 2024/1689)正合适:这是一类正式监管文本,几乎每个段落都包含带有特定官方译法的术语。EUR-Lex 发布了五种目标语言的官方人工译文,因此我们可以逐段对照 ground truth 评分。共 15 篇文章,从英语翻译为德语、法语、西班牙语、葡萄牙语和意大利语。
引擎。 每家提供商都在两种本地化引擎配置下接受测试:raw 引擎(只有 LLM 本身——无术语表、无检索,只依赖训练知识翻译)和 RAL 增强引擎(同一模型,在推理阶段应用领域术语表、品牌语调档案和 locale 专属指令)。总计 10 个引擎,所有 RAL 增强引擎共享同一套配置。
| 提供商 | 模型 | Raw 引擎 | RAL 引擎 |
|---|---|---|---|
| Anthropic | claude-opus-4.6 | 仅模型 | 术语表 + 品牌语调 + 指令 |
| OpenAI | gpt-5.4 | 仅模型 | 术语表 + 品牌语调 + 指令 |
| gemini-3.1-pro-preview | 仅模型 | 术语表 + 品牌语调 + 指令 | |
| Mistral | mistral-large-2512 | 仅模型 | 术语表 + 品牌语调 + 指令 |
| Deepseek | deepseek-v3.2 | 仅模型 | 术语表 + 品牌语调 + 指令 |
QWEN 最初也被纳入,但最终从结果集中移除——它的翻译既慢又不稳定,这也是它不适合作为评审模型的原因。
RAL 配置。 每个增强引擎都包含每个语言对 72 个术语表术语(70 个自定义译法 + 2 个不可翻译项)、一份品牌语调档案(正式的欧盟监管文体),以及 13 条 locale 专属指令。术语表术语提取自一组训练文章,与用于评测的测试集严格分离。示例条目:EN “provider” → PT “prestador”(不是 “fornecedor”);EN “high-risk AI system” → PT “sistema de IA de risco elevado”(不是 “sistema de IA de alto risco”)。在推理阶段,系统只会检索并传递与当前段落匹配的术语——术语表规模不会挤占上下文窗口。所有引擎都在 Lingo.dev 上配置为有状态的本地化引擎——持久上下文会应用到每一次请求中。
评分。 每个译文段落都由 4 个 LLM 评审打分,并取平均值以平滑单个评审的偏差。每位评审都会为所有提供商的输出打分,而不只是自己的输出:
| 评审 | 模型 |
|---|---|
| Anthropic | claude-sonnet-4.6 |
| OpenAI | gpt-4.1 |
| gemini-2.5-flash | |
| Mistral | mistral-large-2512 |
GEMBA-MQM。 MQM(Multidimensional Quality Metrics,多维质量指标)是翻译质量评估的标准框架——通常由受过训练的人工标注员执行。GEMBA-MQM 是 WMT23 的获胜评测方法,它用 LLM 替代人工标注员,同时沿用相同的 MQM 协议:评审读取译文,标出每一个错误,并为每个错误指定类别和严重程度。
错误类别包括:准确性、流畅性、风格、术语。严重程度权重遵循官方 MQM 标准:轻微 = 1,重大 = 5,严重 = 25。
每段的 MQM 分数:max(0, 1 - weighted penalty / word count)。一段 50 词文本如果有一个重大术语错误,得分为 1 - 5/50 = 0.90。完美段落得分为 1.0。结果表中的错误计数,是针对某一提供商和某一 locale,将全部 4 位评审和所有段落的结果汇总而成。
相较标准 GEMBA-MQM 提示,我们做了一项改动:加入人工参考译文。GEMBA-MQM 在设计上是 reference-free 的——评审在看不到“正确答案”的情况下评估质量。之所以加入参考译文,是因为 EUR-Lex 发布了欧盟《人工智能法案》在五种目标语言中的官方译文,为评审提供了可直接对照术语的 ground truth。
GEMBA-DA。 使用 GEMBA-DA prompt 得出的 0–1 整体质量分数(同样是 WMT23 的获胜方法)。与 MQM 不同,它只给出一个单一分数,不附带错误标注。我们将它作为 sanity check——正如结果所示,它无法识别术语层面的差异。
由于打分过于宽松(每段 1–3 个错误,而更严格的评审通常为 5–15 个),Deepseek 被排除在评审面板之外。对 4 位评审取平均可以平滑个体偏差,而且在每位评审内部,raw 相比 RAL 的相对改善趋势都保持一致。
样本量。 每家提供商共有 535 个成对段落观测值(107 个段落 × 5 个 locale)。总计超过 42,000 次独立质量判断(535 个段落 × 5 家提供商 × 2 种配置 × 每项 8 个评分)。
术语错误减少 16.6–44.6%#
| 提供商 | Raw 错误数 | RAL 错误数 | 降幅 |
|---|---|---|---|
| Mistral | 3,336 | 1,847 | -44.6% |
| Deepseek | 3,672 | 2,127 | -42.1% |
| OpenAI | 2,276 | 1,508 | -33.7% |
| Anthropic | 1,559 | 1,179 | -24.4% |
| 1,901 | 1,586 | -16.6% |
MQM 统计的术语错误数,覆盖 15 篇文章、5 个 locale 和 4 位评审。
提升幅度与基线表现呈反向关系。Mistral 和 Deepseek——raw 错误数最高——分别减少了 42.1–44.6%。Anthropic 和 Google——其训练数据中本就覆盖了更多欧盟法律术语——增益较小。规律很清晰:RAL 补的是模型原本不知道的那部分。
与此同时,GEMBA-DA——这一整体评分——在所有提供商中给出的 raw 与 RAL 差值只有 0.0007–0.0178。同一批被 MQM 标记为多出 16.6–44.6% 术语错误的译文,却拿到了几乎相同的整体分数。这就是测量缺口:无论在哪种粒度下,整体式评估都无法识别术语层面的质量差异。
与此同时,总错误数(MQM 的所有类别)在全部五家提供商中也呈现出较小但一致的下降:
| 提供商 | 原始总计 | RAL 总计 | 变化 |
|---|---|---|---|
| Deepseek | 10,423 | 9,014 | -13.5% |
| Mistral | 8,846 | 7,812 | -11.7% |
| OpenAI | 7,563 | 7,155 | -5.4% |
| 7,793 | 7,545 | -3.2% | |
| Anthropic | 6,232 | 6,039 | -3.1% |
术语错误降幅(16.6–44.6%)与总错误降幅(3.1–13.5%)之间之所以存在明显差距,很大程度上是风格因素造成的。只要文本偏离了 LLM 评审器训练数据中的表达偏好,它们往往就会判定为“别扭”,哪怕这种偏离其实更接近官方参考译文——这正是一个已知局限:自我偏好偏差。术语和准确性都可以参照参考译文来衡量;而风格并没有这样的锚点,更多取决于评审器自己对“自然表达”的主观判断。
统计显著性#
我们按提供方分别检验了术语错误的下降情况,采用配对 Wilcoxon 符号秩检验(单侧检验,并对五个提供方进行 Holm-Bonferroni 校正)。每段的术语错误数先汇总四位评审器的结果,再按段落进行配对比较(相同源文、相同评审器、原始输出 vs RAL)。
| 提供方 | 配对段落数 | 每段平均降幅 | 95% 置信区间 | Cohen's d | p 值(校正后) |
|---|---|---|---|---|---|
| Mistral | 532 | 2.80 | [2.42, 3.21] | 0.60 | < 0.001 |
| Deepseek | 526 | 2.94 | [2.45, 3.44] | 0.50 | < 0.001 |
| OpenAI | 535 | 1.44 | [1.12, 1.77] | 0.37 | < 0.001 |
| Anthropic | 533 | 0.71 | [0.50, 0.93] | 0.28 | < 0.001 |
| 533 | 0.59 | [0.34, 0.85] | 0.20 | < 0.001 |
五个提供方的术语错误下降都达到了统计显著性(经 Holm-Bonferroni 多重比较校正后,p < 0.001),且 95% 置信区间均未跨越 0。效应量从中等偏大(Mistral,d = 0.60)到较小(Google,d = 0.20)不等——这与一个清晰规律一致:术语覆盖基线越低的模型,从 RAL 中获得的收益越大。
RAL 最能发挥作用的地方#
在所有提供方中,葡萄牙语的术语改进幅度最大。原因在于,葡萄牙语法律术语与日常葡萄牙语差异明显,而葡语中的欧盟法律术语在 LLM 训练数据中覆盖不足。法语的提升则最小,因为法语法律术语在训练语料中本就有较高代表性。
案例研究:OpenAI 葡萄牙语
OpenAI 的原始输出在将《欧盟人工智能法案》译成葡萄牙语时,71 次使用“alto risco”(即口语里的“高风险”),39 次使用“fornecedores”,36 次使用“fornecedor”。而 EUR-Lex 官方译文采用的是“risco elevado”和“prestadores”。引入 RAL 后,OpenAI 葡萄牙语的术语错误从 648 降到 266——减少了 59%。
这一规律具有普遍性:某个 locale 的领域术语越偏离 LLM 的训练分布,RAL 带来的收益就越明显。
背后的机制#
其生效机制其实很直接。在推理阶段,系统会先将输入文本拆分为 n-gram 短语并进行嵌入,然后在术语表的向量索引中做余弦相似度搜索,找出匹配术语。匹配到的术语会与源文本一起注入 LLM 的上下文窗口。模型并不是在“猜”该用“fornecedor”还是“prestador”——它是在上下文里直接看到了正确映射,并据此生成。其结构与 RAG 完全一致:嵌入、检索、注入、生成。
按原始质量排名的提供方#
不使用 RAL 时——仅看模型原始输出:
| 排名 | 提供方 | MQM 平均分 |
|---|---|---|
| 1 | Anthropic | 0.955 |
| 2 | OpenAI | 0.942 |
| 3 | 0.938 | |
| 4 | Mistral | 0.915 |
| 5 | Deepseek | 0.883 |
Anthropic 与 Deepseek 之间 0.072 的差距,大致相当于每 100 词段落多出 3–4 个错误。RAL 缩小了这一差距:启用 RAL 的 Mistral(平均 0.940)已经接近 Google 的原始质量(0.938)。一个单 token 成本仅为其一小部分、再配上 72 个术语的模型,就能在没有术语表支持的情况下,达到更昂贵模型的术语准确性水平。
这对生产环境意味着什么#
原始 LLM 输出与可直接上线的本地化质量之间的差距,本质上是上下文问题——而且会不断叠加。十次发布都不使用 RAL,产品里就可能同时存在三种不同、但都错误的“provider”译法。
RAL 打破了这种局面。术语表是持久生效的——不管变了什么,它都会应用到每一次请求中。我们研究中让错误减少 16.6–44.6% 的那份 72 词术语表,并不是一次性的优化,而是在产品整个生命周期内,覆盖每一次翻译请求的一致性层。
对于正在交付 LLM 翻译的团队,我们有两个结论。第一,整体质量评分捕捉不到术语层面的问题。GEMBA-DA——WMT23 的冠军方法——对原始译文和经 RAL 增强后的译文打分差距仅为 0.0007–0.0178;但 MQM 统计显示,术语错误减少了 16.6–44.6%。如果你只在页面层级用一个总分来评估,就看不到全貌。
第二,解决方案比问题本身看起来要简单得多。在推理阶段注入领域术语表后,我们测试的每一家提供方,术语错误都出现了下降。翻译表现最好的模型(Anthropic,MQM 0.955)依然还能继续提升;而基线错误率最高的模型(Deepseek,MQM 0.883)则提升最多。
对本地化来说,RAL 之于本地化,正如 RAG 之于生成:它是连接模型与生产环境的工程层。

