近期 NLP 界的大语言模型 (Large LM) 引领了一波研究热潮 。有关大语言模型介绍的博文众多、此处推荐一下 Stanford 为此专门设计的一门课程(仅开源了讲义)。
Stanford CS324 - Large Language Modelsstanford-cs324.github.io/winter2022/
大语言模型当然也影响到了机器翻译领域。近一个月里 arxiv 上挂出了多篇相关的论文,而去年一年类似的工作基本都是在 WMT 比赛后作为参赛报告提交的。由此也可以窥见大语言模型对机器翻译的冲击。
这几篇论文展示的一些结果很有启发,尤其是本次 Google 发表的论文很有在未来改变机器翻译训练范式的潜质——尽管笔者认为论文的实验分析存在一些瑕疵,我也赞同论文标题对他们在 few-shot 机器翻译上效果的形容:unreasonable。
接下来笔者将针对论文进行简单介绍及评价。
The unreasonable effectiveness of few-shot learning for machine translation
机构:Google AI
链接:https://arxiv.org/pdf/2302.01398.pdf
本文的效果非常惊艳。作者声称只使用 decoder-only 的模型(类似PaLM) [https://ai.googleblog.com/2022/04/pathways-language-model-palm-scaling-to.html] 、中量级的单语数据做训练,再在infer时加上五组双语对,就能让 few-shot 机器翻译的结果追平甚至超过 WMT’21 竞赛的优胜模型。
训练方法
作者使用了深度为 32 层、宽度为 4096 hidden+16384 的 FFW 大型 decoder-only Transformer 就在 100M 级别的单语语料上进行训练、模型参数量在 8B 左右。各语种的数据量见下表
作者使用的单语语料数量级并不算大
由于采用了decoder-only的架构,作者使用了UL2的训练方法[https://arxiv.org/abs/2205.05131]。简言之,这种方法和 BERT 的 mask recover 自监督预训练很相似,只是添加了更多种类的噪音,并要求模型恢复被加噪音的token。
在 infer 阶段,作者给定了如下的 prompt 模板来让模型生成翻译结果,其中是从 dev set 中随机挑选的 5 个双语句子。还需要提及的是 MBR[https://arxiv.org/abs/2111.09388] 作为解码搜索算法而非 beam search。
prompt 模板中规中矩
如此简单的步骤就完成了模型训练和 infer 的设置。
实验效果
作者主要是和 WMT‘21 的前三模型以及自家的 LM 大模型 PaLM 做对比,所用的指标主要是自家的 BLEURT。
下表为大语种翻译的效果。一个有趣的点是三语训练的模型效果甚至比双语的还要好——这一点其实和以往多语言训练的经验有些不同(语种越多、大语种的效果往往越差)。
两个大语种的翻译上,作者的模型追平或超过了往期冠军、甚至战胜了自家的 Google Translate 在线服务。
下表为小语种冰岛语的翻译效果。因为冰岛语较少,作者实际上是先在英、德单语上预训练,再在冰岛语单语上训练的(作者声称这种方法并不影响最终效果、只是为了训练启动更快)。有趣的一点是同为大模型的 PaLM 在小语种上效果很差,而本文的方法反而不错。
小语种的翻译上不及往期冠军,但远超自家的大语言模型、比肩 Google Translate
此外论文还秀了一些术语翻译、风格化翻译的效果。这里仅介绍一个实验:作者使用了 IWSLT’22 的相关任务数据集(口语化翻译和书面语化翻译)。prompt 模板中填入的 dev set 被证实可以很好地控制翻译风格:
UMD 是当期冠军。作者的 few-shot 展示了与之匹敌的效果
笔者简评
笔者首先要指出的是,论文的评测可能存在一些问题, 值得我们谨慎对待 :
- 评估指标的问题:作者引用同组内的研究
[https://arxiv.org/abs/2211.09102]
, 声称 BLEU 这种 n-gram 的指标不能良好地衡量大型 LM 生成的结果,而优先使用了 BLEURT。然而,BLEURT 也有许多缺陷:一是 BLEURT 比较对翻译流畅度的偏好高于准确度,而大语言模型擅长生成好句子、同时 few-shot 模型在翻译时经常有漏译的问题,作者们选用 BLEURT 有刻意扬长避短的嫌疑;二是 BLEURT 指标和本文模型的训练语料都来自 Google 自家 household 的语料库,这也许会造成评测上的不准确(见下文笔者的经验谈*)。
作者在附录中低调地报告了 BLEU 结果,比 SOTA 差 10 个点左右
- 数据泄漏问题: WMT 测试集的领域非常单一、集中在新闻。在 WMT 比赛中官方发布的训练集一般是前一年的新闻语料,而测试集是最近发布的新闻,由此避免数据泄漏。而本文用到的是网络爬取的语料等,如果其中有和测试集类似的新闻报道,很有可能模型。尽管作者做了 training set 和 test set 间 token-level 的重叠度分析,但一方面作者用的指标相对宽松、需要有 15 个 token 相同才视为重叠——即便如此重叠度在1%的水平;另一方面,正如作者认为 BLEU 这种 token-level 的指标不精确一样,token-level 的重叠度一样不能很好地衡量领域相似度,词不相似但领域相似的训练数据一样能带来在测试集上的过拟合。
训练集和测试集的 overlap 衡量。测试集句子有 15 个 token 与训练集某句相同时,记为一次 overlap
- Scaling 的问题: neural scaling law 及一些大模型的讨论工作展示了大语料+大模型能大幅提升 NLP 效果。作为 Google 的研究团队,作者们肯定不缺乏数据,然而论文只探索了 100M 级别的训练效果。我们应当思考,论文的方法在更大数据下的性能是否也会按照 scaling law 那样增长?笔者认为作者们有做加数据的实验,但可能性能的提升效果不如预期。
*笔者在工作中也经常比较各大公司的翻译效果。在几家竞品翻译人工评估结果相似的情况下,BLEURT 最偏好 Google Translate 的结果,有可能是两者用了相同的训练数据。
*按照之前笔者参与 WMT 比赛的经验,有一个常见的竞赛的 trick 是在往期的 dev set 上做微量精调[https://aclanthology.org/W19-5341.pdf], 此法可以小幅度提升 BLEU 值( 1-3 BLEU),这是因为 WMT 对 dev/test set 的译文风格有着较强的一致性控制。笔者按照本文的方法测量了往期 en-de 的 dev/test set 的 15 token 重合度,都不超过 0.3%,侧面说明作者的 overlap 指标有缺陷。此外,德语、冰岛语作为屈折语,同个单词的词形变化非常地丰富,不清楚作者算 overlap 时有没有对单词做 stemming。
但即便论文实验上有缺陷、行文也多少有些 overclaim,笔者认为这篇论文足够惊艳。
其一,作者的这一套方法几乎不依赖双语数据、对单语数据的要求也很少,唯一的门槛在于模型较大 (8 B)。然而在可见的未来,大语言模型作为大势所趋,这个量级的模型的部署和训练也会越来越容易、也会有更多类似 BLOOM 的开源。即便作者的方法不能完全打败传统双语训练的模型,也极大地降低了机器翻译模型的门槛,尤其是数据门槛。
其二,作者的方法对于小语种翻译模型的训练范式(尤其是无监督机器翻译)可以说是降维打击。
其三,则是告诉我们大规模语言模型还有很多神奇性质。之前的 seq2seq 范式下,单语 pretrain +双语 few-shot 的效果并不好,很多时候得要用 Back-translation 等才能达到合格的水平。而本文通过把模型加大就直接解决了该类问题。Large LM 的潜力比我们预想的强。
此外还有一小点:风格化翻译、术语翻译、特定领域是上一代机器翻译没有很好解决的问题,本篇论文给了一些 prompt 上的经验参考,可以说是给了一种低开销的 prompt 方案(考虑到近期 NLP 社区也都在用 prompt 和 context learning 的方法来做这些任务了,没有这篇论文,这类问题的技术路径也是大体确定的)