【论文浅尝】Pre-training Small Base LMs with Fewer Tokens

文章介绍了一种名为Inheritune的方法,通过从大型基础语言模型中提取并微调小规模模型,实现在少量预训练数据上保持或提高性能。实验显示,即使使用较少的参数和层,Inheritune衍生的模型在多个任务上表现优秀且收敛迅速。
摘要由CSDN通过智能技术生成

研究内容

本文研究了一种从现有的大型基础语言模型(LM)开始开发小型基础语言模型(LM)的简单方法的有效性:首先从较大的LM继承一些转换块,然后在非常小的原始预训练数据的子集(0.1%)上训练这个较小的模型。

主要贡献

1、本文引入了一种叫做Inheritune的预训练技术。该方法包括训练从较大的参考LM中提取的小尺寸目标模型。我们使用OpenLLaMA-3B作为参考模型,并使用少量的变压器块(层)来获得大小为1.5B的目标模型。随后在1B的训练数据上对目标模型进行8次epoch的进一步训练。

2、如果我们使用完整的预训练数据,可以提取更小的目标模型。我们对GPT2-large和GPT2-medium进行了对照实验。利用Inheritune,我们发现对于GPT2-large,我们可以保留50%的层和45%的参数,而对于GPT2medium,我们可以保留33%的层和28%的参数,而不会影响验证损失。有趣的是,我们还观察到,使用Inheritune导出的这些较小的模型显示出较低的验证损失,而它们的相同大小的对应部件从头开始训练,训练步骤是训练步骤的两倍。此外,使用Inheritune派生的这些较小的模型显示出与较大的模型相似的收敛模式。

Method: Inheritune

我们有一个参考模型M_{ref},其中包括了K层,首先,初始化目标模型M_{tgt},其中M_{tgt}的前n层继承M_{ref}的前n层,M_{tgt}的权值为{\theta _{0}\theta _{1},…,\theta _{n-1}}。预测头和token嵌入也继承自M_{ref}。然后,我们使用训练数据D_{train}随机选择的0.1%(1B)子集{D}'_{train}来训练我们的的M_{tgt}

结果:

Comparison to baseline models available publicly:

上图所示,我们使用Inheritune开发的1.5B模型在10个单独任务中有7个表现出色。与参考语言模型相比,它的得分达到90%或更高,参考语言模型的大小是它的两倍,并且使用1000倍以上的数据进行训练;此外,它优于其他两个类似大小的基础LMs(使用50-300倍以上的数据进行训练)。

Comparison with a pruning technique ShearedLLaMA:(ShearedLLaMA采用了剪枝技术)

文中指出,我们的方法归纳为了初始化方法,其中存在这一些不同:

a)修剪并不总是需要再培训,而任何基于初始化的配方都需要训练。

b)通常,修剪技术坚持“训练大,然后压缩”范式,这需要从更大的模型开始,而Inheritune是一种训练配方,它从头开始预训练模型,利用比随机更好的初始化。

c)有针对性的结构修剪是一种精心设计的技术,基于一些权重更新标准,因此它需要大量的计算来执行,剪切需要8个gpu, 0.4个令牌和3k个步骤来进行修剪。

在与Sheared LLaMA-1.3B相比,Inheritune的得分有竞争力。

Inheritune scales accross different model sizes(对不同n值进行选择)

N = {4,6,8,10,13,16,18,20}

 正如预期的那样,我们看到一条正倾斜的趋势线。

Additional analysis with larger reference LMs and 50B data

这里文中扩展到了更大的参考模型和更多的数据,采用OpenLLaMA-7B和LLaMA2-7B作为参考模型并且使用预训练数据的50B子集(即5%)。

 如上图所示,我们观察到随着数据的增加,MMLU (5-shot)的总体评分有明显的提高。此外,使用更大的参考模型使用Inheritune开发的1.5B(或1.6B模型)在使用50B非重复数据子集时显示出更大的改进。

我们观察到对于所有其他9个数据集的平均值,它的性能在5个epoch达到峰值,然后恶化。一些先前的工作表明下游任务的数据缩放并不总是线性的 。

 Exploratory Analysis of Inheritune in the presence of full pre-training data

 本节中不仅拥有更大的参考基础模型M_{ref},而且还拥有用于训练M_{ref}的整个数据集,来研究制作的较小的基本LM是否可以匹配较大的参考LM的性能。

本节采用了小于十亿大小的参考模型GPT2-large,和GPT2-medium和9Btoken的OpenWebText作为数据集。

 实验流程:

(1)我们首先将这个数据集分成一个训练集D_{train}和一个较小的验证子集D_{val}

(2)然后,我们在整个训练集D_{train}上训练完整的36层GPT-2大型模型,进行一定数量的训练步长(T),并评估其在D_{val}上的验证损失,我们称之为基准值损失。

(3)然后,我们将Inheritune v2应用于以下输入:作为输入的参考模型是(现在训练的)36层模型,较小的模型的预期层数为n = 18,数据集是完整的D_{train},基准值损失和训练步数与上面步骤2中使用的参考模型相同,我们评估了该模型的验证损失。

(4)如果步骤3中我们的模型的验证损失比步骤2中的参考模型的验证损失更大,我们重新执行步骤3,并且将n的值增加2。也就是说,我们逐渐为继承模型探索更大的尺寸,直到我们在验证损失方面与原始参考模型达到相同。

 上表说明从GPT2家族中提取具有几个层的较小的目标LM,而不会损失验证损失中的性能。此外,我们还表明,通过Inheritune使用更大的参考LM制作的目标LM在两个相关的下游任务上表现出相当的0-shot性能。

 从上图可以看出,用Inheritune训练了100K步的目标模型,优于以两倍的训练步数(200k)从头开始预训练的相同大小的模型,尽管我们的LM与参考模型相比较小,但收敛速度与它们一样快。

我们训练了4个新的GPT2-medium 16层变体模型,同时用从头开始训练的24层GPT2-medium的权重初始化变压器块的不同部分。我们初始化变压器块:

1)注意力((键、查询、值和投影)和层模权值(attn w/ layernorm),

2)没有层模的注意力和mlp权值(attn+mlp w/o layernorm),

3)有层模的mlp权值(mlp w/ layernorm),

4)没有剩余连接的Inheritune,Inheritune初始化,继承了layernorm (attn+mlp w/ layernorm)的注意权和mlp权。 

我们观察到,用注意力和mlp权重训练的模型与层规范初始化无关。因此,初始化注意力和mlp权重具有明显的优势,并且在收敛速度和最终验证损失方面产生非常相似的改进。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是饿梦啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值