Meta这篇语言互译大模型研究,结果对比都是「套路」
今年 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 所犯的主要错误是机器翻译评估中的一个非常常见的错误,不过我们应该承认,这项工作确实令人惊叹,而且可能为许多语言提供了更高的翻译质量。