论文链接:https://arxiv.org/pdf/2205.01068v2.pdf

代码链接:https://github.com/facebookresearch/metaseq

 

导读

五一小长假刚刚过去,大家似乎都还沉浸在来之不易的假期氛围之中无法自拔。尽管如此,有关Meta AI“背刺”OpenAI的消息仍然铺天盖地席卷而来。近期,Meta AI开放了一个“重达”1750亿参数的大语言模型OPT-175B,不仅参数比GPT-3的3750亿更少,效果还完全不输GPT-3。OPT全称Open Pre-trained Transformer Language Models,即“开放的预训练Transformer语言模型”,是一系列仅包含解码器的预训练Transformer模型,它包含了125M到175B的模型参数。为了更好促进大规模预训练模型的研发,作者们对完整模型、训练代码、部署代码全部开放,并在实验中证实OPT仅需要16块V100就能跑起来,在14个NLP任务均超越了此前提出的若干模型。

图片来源: 量子位

 

贡献

通过在大量文本数据上进行训练,大规模语言模型在文本生成和小样本/零样本学习领域展现出了惊人的能力。尽管诸多研究者可以通过付费API利用已有的一些大规模语言预训练模型,但完整的模型访问权限仍仅限于少数资源丰富的实验室。这一问题限制了大部分研究人员探索这些大规模预训练模型如何运行、为何有效的原因,阻碍了大规模预训练模型鲁棒性、偏置等问题的研究推进。

本文旨在提供Open Pre-trained Transformer Language Models,一个完全开放的预训练Transformer语言模型。OPT模型在性能上达到了已有模型GPT-3的性能,在参数上取得了一定的优化,同时也对数据收集、模型训练方面的方法进行了探索和展示。本文将开源125M到30B不等的OPT系列模型,并对OPT-175B模型进行完全开放。

 

方法

表1展示了8个OPT模型的结构设计,其参数范围从1.25亿到1750亿个。为了提高透明度和降低训练不稳定性的风险,OPT的模型设计和超参数选择主要遵循已有研究[2],但批处理大小(batch size)将会出现变化,从而获得更高的计算效率。

 

训练策略

本文使用Megatron-LM codebase的设定对权重进行初始化,即使用均值为0、标准差为0.006的正态分布进行初始赋值。对于输出层,其标准差将会通过如下公式进行缩放:

其中L表示模型中的层数。对于模型中所有层的偏置项,其初始化赋值均为0,且其非线性激活层为ReLU层,序列长度固定为2048。

AdamW优化器将被用于参数优化,其内部参数分别设置为0.9,0.95,0.1.学习率通过线性方式进行调整。对于表1中的不同模型,batch size分别从0.5M到4M不等。

 

预训练数据集

OPT模型主要在英语文本上进行预训练,这些文本大多来自于RoBERTa、The Pile、PushShift.io Reddit数据集。

在预训练之前,作者通过MinhashLSH计算Jaccard相似性并过滤掉相似性大于0.95的重复数据。根据实验结果,The Pile数据集中包含了较多重复数据,因此仅使用其中的CommonCrawl, DM Mathematics, Project Gutenberg, HackerNews, OpenSubtitles, OpenWebText2, USPTO, Wikipedia子集。

所有文本数据均使用GPT-2 byte level BPE tokenizer进行离散化,最终所有预训练数据集提供了约180千亿token。

 

训练效率

作者在992块80GB的A100显卡上训练OPT-175B模型,并使用Fully Sharded Data Parallel、Megatron-LM Tensor Parallelism并行训练机制。每块显卡的使用效率均可达到147 TFLOP。

 

训练过程

在训练OPT-175B时,作者在计算集群中遇到了大量的硬件故障。总的来说,硬件故障导致了至少35次手动重启和在2个月内超过100台主机的循环。在手动重启期间,暂停训练运行,并进行了一系列诊断测试来检测有问题的节点。有问题的节点将被封锁,并从最后一个保存的检查点恢复训练。考虑到循环运行的主机数量和手动重启次数之间的差异,最终检测到了由于硬件故障导致的70余次自动重启。

在OPT的训练过程中,损失函数的收敛也是一个问题。当损失函数发散时,作者均会降低学习率并从较早的检查点重新开始训练。图1显示了为使损失函数收敛而进行的学习率调整情况,图2展示训练阶段中验证集上的性能变化趋势。

作者还进行了一些其他的实验变化来优化损失差异的收敛。包括:应用普通的SGD(优化过程很快到达瓶颈,因此重新使用AdamW);重置动态损失标量(这有助于环节损失函数的部分发散情况);切换到新版本的megatron(提高了吞吐量)。

 

实验

本文应用了与GPT-3一直的训练策略,并在16个标准NLP任务上进行了对比,这些任务上均使用已有研究中的默认配置:HellaSwag, StoryCloze,PIQA, ARC Easy and Challenge, OpenBookQA, WinoGrad, Wino Grande, SuperGLUE。

作者首先给出了零样本学习设定下14个任务的实验展示,结果表明,无论是零样本学习(zero-shot)还是多样本学习(Multi-shot),OPT在这些任务上的平均精度都与GPT-3相差不大。其中虚线为GPT,实线为OPT:

在对话任务中,采用无监督学习的方法训练OPT-175B,效果和监督学习训练的几类模型相近:

仇恨言论检测任务上的效果,更是完全超过Davinci版本的GPT-3模型:

在CrowSPairs数据集上,作者对比了OPT在语句偏置衡量任务上的性能:

OPT同样也在StereoSet数据集的典型偏置衡量(stereotypical bias)任务上取得了优越的性能:

最后,作者展示了OPT在 RealToxicityPrompts、Dialogue Safety Evaluations任务上的性能对比情况:

内容中包含的图片若涉及版权问题,请及时与我们联系删除