1.动机

2.数据集

BLOOM使用ROOTS数据集进行训练,BLOOMZ在BLOOM的基础上,继续使用xp3进行了训练。

ROOTS与xp3的多语言数据分布如下:

2.1 ROOTS

ROOTS包含了46种人类语言和13种变成语言,涵盖了huggingface中的498个数据集,总计1.6T的空间,341B的token。

数据预处理方式如下:

数据处理主要分为以下几种方式:

  • 过滤一些不是高质量的文本(比如垃圾邮件、SEO页面等),但是有意地将高质量文本定义的较为宽松,仅仅定义成为“人写的”,区别于一些自动生成的文本,不区分内容和语法。
  • 对于代码(github数据集)会去重。
  • 会使用正则删除OSCAR中涉及到个人信息的部分文本。
  • 对多种符号进行标准化。(如下图)

每种语言的数据分布,可以看到中英比例相对比较高,480G vs 260G+76G。

2.2 xp3

在T0的P3(包含2000+ prompt 和170+ 数据集)的基础上,扩充了例如翻译等任务,包含16个语言和16种任务,得到了xP3。

3.模型结构

3.1 为什么是decoder only?

本文尝试了很多种结构,最终确定decoder only是一个最优秀的llm结构。详见

https://proceedings.mlr.press/v162/wang22u.html

不过本文提到,任务型的最优结构其实是T5这类的en-decoder结构(lm的最优结构是decoder only),有点好奇为什么既然最终的结果是要做任务型,但是还在拼命地卷decoder的llm。

3.2 为什么是AliBi?

别问,问就是做过实验,优于学习和rotary。 “outperforming both”

AliBi论文:

https://arxiv.org/abs/2108.12409

不过这点存疑,挖个坑后续补吧,既然好为啥后续工作GLM和Llama都没用捏。

3.3 layer norm

他们在embedding后立刻进行了一次layer norm,可以有效的增加模型的训练稳定性。不过呢,美中不足的是这个结论是在f16(且参数小于等于104B)的情况下得到的,而在训练176B的BLOOM时,由于大家已经普遍认知f16的性能没有bf16好,前者可能会带来训练不稳定。因此BLOOM176B可能减弱了对改LN的需求。

下图为hf的BLOOM实现,可以看见embedding后立刻进行了一次LN,不过使用的是原始LN而不是Llama使用的RMSLN。

3.4 tokenizer

对tokenizer(BPE)进行了一定的分析,首先定义 fertility(生育率)为:拆分一个单词的比例。

实验表明,较高的生育率可能会影响模型对其他语言的迁移能力,最终影响多语言性能。因此将生育率限制到10%左右。

他们也在150k词表和250k词表上进行了实验,最终250k词表胜出,但是为了兼容megatron,必须是4的整数倍,因此最终词表大小为250680


整体的模型结构如下图:

4. 训练细节

混合精度训练。参数如下

  • 在训练BLOOM过程中,也尝试了更改Adam的β、权重衰减、梯度裁剪等策略,但是并没有观察到明显的性能提升。
  • 在训练BLOOMZ的过程中,xp3总计有13B的token。但是由于使用最优val set来进行保存,发现在 1-6B 时的效果就开始趋于稳定。

5.模型验证

在 SuperGLUE、机翻、摘要上进行了x-shot的验证。

5.1 SuperGLUE

分别是SuperGLUE上 0-shot和1-shot的结果。

  • T0表现出了强大的性能,但是考虑到T0是经过sft的,因此结果再对比中并不完全可信。
  • 尽管Bloom在zero下,通常会落后OPT,但是在one下,BLOOM获得了更高的提升。猜测是多语言的模型可以在长文本中或得到更多的信息。

多个尺寸的BLOOM在one-shot上,在5个测评任务上性能并不落败于OPT。

5.2 机器翻译

数据集:WMT14 en-fr en-hi Flores-101 DiaBLa

同时结束标识符是EOS或者是 \n###\n (多shot的间隔符)

在zero情况下,结果比较糟糕,原因主要是:(1) 过度生成;(2) 不能够产生正确的语言

使用了一下四种prompt构造,其中L1、L2分别为语言名称:

WMT14的结果

Flores结果,高资源语言->中资源语言的翻译结果(部分展示 oneshot)

5.3 摘要

数据集:WikiLingua

指标:ROUGE2(不过论文依然指出,ROUGE2没办法完全描述模型生成的文本质量)

5.4 代码生成

ROOTS中包含了大概11%的code数据,与GPT的训练数据集Pile的13%类似,最终性能上也相似。但是BLOOM的鲁棒性更好(高k/温度 下的表现依然稳定)。更多的分析详见: https://arxiv.org/pdf/2211.01786.pdf

5.5 HELM测评

对比了BLOOM、GPT3 davinci 、InstructGPTfavinci v2、OPT等模型,BLOOM的整体位置中等偏上。

5.6 多任务finetune

5.7 embedding

训练了SGPT-BLOOM-7B1-msmarco、SGPT-BLOOM_1.7B-nli,在Massive Text Embedding Benchmark MTEB https://arxiv.org/pdf/2210.07316.pdf 上的结果

分类: 论文

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。