今年 7 月初,Meta AI 发布了一个新的翻译模型,名为 No Language Left behind (NLLB),我们可以将其直译为「一个语言都不能少」。
顾名思义,NLLB 可以支持 200 + 语言之间任意互译,Meta AI 还把它开源了。平时你都没见到的语言如卢干达语、乌尔都语等它都能翻译。
- 论文地址:https://research.facebook.com/publications/no-language-left-behind/
- 开源地址:https://github.com/facebookresearch/fairseq/tree/nllb
不过,近日这项研究遭到了质疑,有人认为 Meta AI 在 NLLB 中提出的许多主张是没有根据的,具有误导性,并且评估结果有严重的缺陷。此外,质疑者还表示根据 Meta AI 的评估方法,很容易获得比他们报告更高的数字。
质疑者为自然语言处理研究科学家 Benjamin Marie,他精通翻译技术。他质疑的内容可概括为 Meta AI 将 spBLEU 和 BLEU 放在一起进行比较。
对于这项质疑,有研究者表示:spBLEU 是一个合理的度量标准,前提是文本没有空格(泰语等)。但是比较 spBLEU 和 BLEU 绝对是不正确的。
网友 Arle Lommel 在回复 Benjamin Marie 时表示:这是一个很棒的观点。这也教会我,对于机器学习的研究,要非常谨慎地对待缺乏证实的研究。你在这里的发现确实表明,当人们只引用分数而不控制它们的产生方式时,问题会变得很复杂。
论文作者之一 Vedanuj Goswami 表示:「我们 100% 同意作者的观点,即你不能将 BLEU 分数与不同的 tokenizer 比较。但作者的主要论点是,我们论文中的大多数结果是不可比较的是不成立的。
在我们的论文中,表 30 和表 31 使用相同的 tokenizer 进行 spBLEU 评估(FLORES-101 spm tokenizer),专门用于可比性。我们不使用 FLORES-200 spm tokenizer。我们在表 30 的标题和第 8.3.1 节中对此进行了详细说明。同样,表 35、36、37、38 都使用可比较的指标 / tokenizer 进行适当比较。我们对论文进行了更新
总的来说,目前的机器翻译评价方法还不完善,不同的论文采用了不同的方法。」
下面我们介绍 Benjamin Marie 质疑的具体内容:
评估方法有缺陷
首先让我们做一个简单的类比:
Paul 有 25 个香蕉,Bill 有 30 个西红柿。你会说 Bill 比 Paul 多 5 个香蕉吗?
BLEU 好比香蕉,spBLEU 好比西红柿。将 Paul 替换为 Previous work,将 Bill 替换为 NLLB。我们现在可以写下这样的内容:
之前的工作在 25 BLEU 下执行,NLLB 在 30 spBLEU 下执行。
你会说 NLLB 比以前的工作好 5 个 BLEU 点吗?
有了上面的类比,下面介绍的内容可能就会更容易理解。
此前,Meta AI 发布了一篇论文,对 NLLB 进行了全面解释和评估。在论文摘要中,他们声称模型相对于之前 SOTA 方法实现了 44% 的 BLEU 提升。换句话说,NLLB 会比以往研究结果更好。
关于 BLEU,在机器翻译研究史上很少见到 BLEU 比以前的 SOTA 技术提高 44%。所以论文中这简单的一句话,代表了科学进步。有些媒体直接报道了这一说法,并且没有经过进一步的验证,就将 Meta AI 定位在语言机器翻译的最高点。
如果 Meta AI 选择发布如此大的技术研究,他们就应该提供非常可靠的科学证据。否则,在没有任何证据的情况下,Meta AI 声称自己做得比别人好,这只会破坏其他研究机构已经做过和正在做的非常艰苦的工作。
Marie 为了解释 NLLB 的错误问题,他尝试证明 Meta AI 是如何被它自己的结果误导的。Marie 使用 NLLB 中的简单示例和自己找到的类似示例,证明当使用 NLLB 有缺陷的评估方法时其实很容易超越 SOTA 的水平。最后,Marie 指出并具体解释他们评估中的主要错误。
Meta AI 将其模型和 20 多个以前的研究数据进行比较后得出结论,NLLB 明显优于以前的研究。为了使如此多的比较具有可行性,他们依赖于机器翻译评估的自动评估指标,这些指标主要是 BLEU 和 spBLEU。
BLEU 在机器翻译中极受欢迎,尽管其存在着缺陷。
例如,我们想用谷歌翻译将以下来自 FLORES101 的数据集的法语文本翻译成英语。如果你会说法语,你会注意到,这是一个质量很差的翻译:语法错误、术语不一致、读起来不自然。事实上,由于数据集是从英语创建的,因此 Meta AI 在翻译成英语时只评估机器翻译。
我们可以通过计算谷歌翻译中有多少 token 也在这个参考翻译中,将其与参考翻译进行比较。在这里定义一个 token 是由一个空格分隔的字符序列。橘色突出显示了上面谷歌翻译中出现在下面参考翻译中的所有 token 序列。
仅考虑到所有匹配的 token,可以计算出 BLEU 分数为 50.8 BLEU。仅仅这个分数是没有任何意义,只有与另一个 BLEU 分数相比,它才有意义。
这里需要理解的关键点是,分数是基于 token 计算的,这在大多数机器翻译研究中会被忽视。使用 SacreBLEU 计算 BLEU 分数,SacreBLEU 执行自己的内部 tokenization,基本上只在标点符号之前添加空格。这是计算 BLEU 分数最可靠和可重复的方法之一。而 Meta AI 使用的是 spBLEU。
那么 spBLEU 是什么?它是 BLEU,但使用了不同的 tokenization。它将谷歌翻译和参考翻译的 token 化如下。
与 spBLEU 相关的 token 通过将单词分解成更小的片段来生成 token(附加到 token 的▁ 在这里并不重要,请尝试忽略它)。使用 spBLEU token 化的直接后果是,我们最终得到的翻译和参考都有更多的 token。由于有更多的 token,我们可以期望谷歌翻译从参考中匹配更多的 token。然后分数会增长。事实上,这里的的 spBLEU 分数是 54.8。
我们不禁会问比上面使用 SacreBLEU 内部 tokenization 计算的 BLEU 分数高 4 分?那么翻译是不是越来越好了?
显然没有,翻译保持不变。比较 BLEU 和 spBLEU 根本没有意义。BLEU 和 spBLEU 以不同的方式处理谷歌翻译和参考翻译,而且仅用于评估目的。它们实际上是不同的指标。如果它们是相同的指标,我们就不必对它们进行不同的命名。正如我们在机器翻译研究社区经常读到和听到的那样,使用不同甚至几乎相似的 token 计算的 BLEU 分数来比较翻译质量并不是公平的,甚至是不公平的。如果你希望你的研究具有科学可信度,你只需要使用完全相同的 tokenization 一致地计算你的 BLEU 分数。
Meta AI 声称 NLLB 比之前的研究好得多,因为他们始终可以获得比之前公布的 BLEU 分数更好的 spBLEU 分数,事实相反。因为对于给定的翻译,让 spBLEU 分数低于 BLEU 分数是一项极其困难的任务。更让人无法理解的是,如果他们的目标是获得最高分数,为什么不直接使用 chrBLEU 指标。
例如在谷歌翻译和参考翻译中,每个字符都会成为一个 token 换句话说,在字符之间添加了空格)。
然后我们计算 chrBLEU 值为 75.5,比 spBLEU 高 20.7 点。根据 NLLB 的评估,这将是一个重大的改进,这将是机器翻译的新高点,而原来的谷歌翻译保持不变。
论文中的错误示例
现在,让我们来看看 NLLB 评估的具体示例。
Meta AI 声称,通过将其数字与之前发布的数字进行比较,发现其表现优于之前的工作。在本文中,从表 30、31、32、35、36、37 和 38 中得出结论,这些结论与以前的工作进行了比较。
将从表 32 开始。这是最具说明性的例子之一,因为它存在着各种不同类型的错误。
从表中可得,除 NLLB-200 列外,所有数字均直接复制自之前发表的论文 IndicBART 和 IndicTrans。为了便于阅读,Meta AI 用粗体标出了每种语言的最高分数,粗体列表示相应的系统是最好的。
表中为 spBLEU for all,这具有误导性。实际上,all 的意思是只有 NLLB-200,因为 IndicBART 和 IndicTrans 使用的不是 spBLEU,而是 BLEU。然而比较后发现,NLLB 的 spBLEU 分数高于之前工作的 BLEU 分数。但这是否意味着 NLLB 更好?这就好比 30 个西红柿比 25 个香蕉好吗?
在解释结果的文本中,我们可以看到:
例如(c)谷歌翻译,(d)微软翻译。NLLB-200 在大多数方向上显著优于所有模型。NLLB-200 的训练数据集包括 25 种印度语言,几乎是(a)和(b)所涵盖语言的两倍。性能的提高可以归因于更多的多语言传输,以及印度语系挖掘和反译数据质量的提高。
换句话说,NLLB 的番茄比之前的研究中的香蕉多。所以 NLLB 有更多的香蕉。
spBLEU 分数高于 BLEU 分数,因为它们是在更小的而且不同的 token 上计算的。然而,NLLB 的翻译更好吗?我们根本无法回答。更糟糕的是,IndicBART 和 IndicTrans 也不具有可比性,因为它们都使用了两种不同的 token 方法。
上面列出的大多数表格都有类似的问题,或多或少都有错误。
如果你看一下 IndicBART 和 IndicTrans 发表的论文来检查这些数字,你会发现还有其他问题。表 32 中的(a、b)列全部交换,IndicBART 数字是 indicatrans 中的数字,反之亦然。
如果你看表 30,问题就更大了。
不过表 30 在论文中更新了,Benjamin Marie 表示非常感谢 Vedanuj 更新了文章。表 30 确实提到了 tokenizer 是相同的。我承认我的错误。
如表 32 所示,Meta AI 声称 NLLB 优于以前的 DeltaLM 和 Deepnet,同时比较了使用不同计算方法得出的 BLEU 分数。这里的新内容是,他们还将 NLLB 与自己以前的研究 M2M-100 进行了比较,也使用 spBLEU 进行了评估。那么这个比较有意义吗?没有。即使他们都使用 spBLEU,但实际上他们使用了不同的 tokenizer,这使比较变得失去可能性。他们在脚注 28 中作出以下声明:
「我们的分析表明,当在 FLORES-101 语言上进行测量时,FLORES-200 的 SPM-200 和 FLORES-101 的 SPM-100 模型之间存在微小差异。SPM-200 的主要优点是它涵盖 200 多种语言。」
微小的差异也是差异。在这种情况下,这些差异很重要,因为我们在做科学研究。
与他们在 M2M-100 上的工作相比,NLLB 的一个进步是向模型和数据集添加了更多的语言。它包括 tokenization 模型。从技术上讲,如果向这个 tokenizer 添加更多具有不同书写系统的语言,同时保持词汇表的大小不变,那么将机械地获得具有较小 token 的词汇表。正如在上面看到的,使用较小的 token 可能会获得更好的分数。让我们验证一下。
如下图所示:
此 tokenization 生成 95 个 token,而 NLLB 生成 97 个 token。这只是一个微妙的区别,如果使用 M2M-100 tokenization 计算 spBLEU,则得分为 53.8,比 NLLB tokenization 低 1 分。根据机器翻译研究文献,通常 1 分的差异足以声称系统明显更好。正如预期的那样,NLLB 将产生比 M2M-100 更高的分数。
下一张表是本文的最后一张表:表 31。
同样,我们也有上文提到的相同的问题:
1. M2M-100 和 NLLB 使用两种不同的 tokenization 进行评分,因此无法进行比较。2. MMTAfrica 似乎在他们的论文中使用了 M2M-100 tokenization。它可以与 M2M-100 相比,但不能与 NLLB 相比。
文中还有一些问题,在这就不一一介绍了。在 NLLB 中,Meta AI 所犯的主要错误是机器翻译评估中的一个非常常见的错误,不过我们应该承认,这项工作确实令人惊叹,而且可能为许多语言提供了更高的翻译质量。
原文链接:https://medium.com/@bnjmn_marie/science-left-behind-ca0a58231c20