翻译

KAERIS 翻译了此页面,并通过回译检查了每一行。尚未经过母语人士审阅。 英文原文

回译检查能捕捉到错误吗?我们进行了测量。

我们在一个包含已知答案的数据集上运行了真实的流水线,并公布了数字、方法和局限性。这是一个我们自己运行的小型、受控基准测试,而不是现场研究。

结果

测量内容结果样本
捕获的语义错误28 个中的 28 个 (100%)我们自己编写的明显失真
误报40 个中的 0 个 (0%)正确翻译,但措辞大改
捕获的丢失占位符3 个中的 3 个在 80 个翻译中实际丢失的占位符

这些数字来自使用 DeepSeek V3 作为翻译器和 Gemini 2.5 Flash 作为评估器的运行。该服务现在使用 Gemini 2.5 Flash-Lite 进行翻译,因此它们测量的是检查本身,而不是今天的翻译器。

检查内容

在翻译完每个字符串后,KAERIS 会运行三个检查,两个是确定性的,一个是基于模型的:

  • 占位符完整性一个正则表达式级别的检查,确保源文本中的每个 {name}、%s、%(count)s 和 ICU 复数形式在翻译后得以保留。这是一个事实,而不是判断。
  • 标签和标记完整性针对内联标记(<b>、<a>、<0> 和自闭合标签)进行相同的确定性检查,因此在标签丢失或顺序错乱时,可以在发布前被捕获。
  • 语义漂移(评估器)每个翻译都会由一个不同的模型独立地回译成您的语言,然后由一个评估器将原文与回译文本进行比较,并标记出真实的语义更改:否定词翻转、错误数字、相反的操作。

正向翻译和回译由不同的模型完成,因此没有模型检查自己的输出。

我们如何测试

测试 A:占位符和标签完整性(端到端,真实模型)

我们选取了 20 个真实场景的 UI 字符串,其中混合了多种占位符样式(Rails %{name}、Python %(name)s、printf %.2f/%02d、.NET {0}、HTML <b>、i18next <0>、ICU 复数形式),用当时生产环境的免费模型(DeepSeek V3;自 2026 年 8 月 1 日起所有套餐(含免费套餐)使用 GPT-4o-mini,自 2026 年 8 月 5 日起使用 Gemini 2.5 Flash-Lite,该模型是在同一流水线中测量候选模型后选定的)翻译成四种书写系统不同的语言(德语、俄语、日语和阿拉伯语)。共 80 个翻译。然后我们对模型的真实输出运行了确定性检查。

结果:模型在 80 条译文中有 3 条丢失了占位符(约 4%)。检查标出了全部 3 条:它只计数占位符,不做猜测。

测试 B:失真评估器(已知真实情况)

我们编写了 28 个明显改变语义的回译(丢失否定词、错误数字、相反的操作、必需变为可选等)和 40 个保持语义但措辞大改的回译(这是误报的难点)。评估器(Gemini 2.5 Flash,独立于正向翻译模型)在没有标签的情况下看到了它们。

  • 召回率:28/28 (100%)所有植入的语义错误都被标记出来,并附有准确的原因(“丢失否定词”、“错误数字”、“相反的含义”)。
  • 误报率:0/40 (0%)没有一个正确改写的释义被标记出来。

基准测试还修复了什么

运行此测试暴露了我们自己流水线中的一个真实错误:在大批量处理时,评估器调用可能会超出其超时限制,并且由于是静默失败,不会返回任何标记,从而在大型文件中悄悄地低报错误。我们现在将评估器调用拆分成小的子批次并进行重试,因此无论文件大小如何,验证都保持可靠。该修复已随此页面一起发布。

局限

这些数字没有覆盖的内容:

  • 这是一个小型、受控的数据集(148 个案例),而不是实时流量的样本。
  • 这 28 个失真代表了明显的语义变化。细微的漂移,例如语气的变化或情态动词的软化,更为困难,这里的 100% 并不意味着对所有情况都是 100%。
  • 我们编写了测试用例,因此真实情况是已知的。这是对评估器的公平测试,而不是对翻译质量的现场研究。
  • 一个正向翻译模型(DeepSeek V3,当时是免费模型)和一个评估模型(Gemini 2.5 Flash);失真数据集以英语为中心。

检查给出的每个标记都是可核实的事实(丢失的占位符、被反转的否定),而不是置信度分数。翻译模型越好,标记越少,但检查不会因此变弱。