0%

论文阅读[精读]-Llama 2: Open Foundation and Fine-Tuned Chat Models(上)

从影响力上,他是你应该第二个知道的大模型(第一个是GPT),前两天刚被人用C重写了一遍;从评测结果上,其效果超过ChatGPT-0301

笔记比较长,因为我在讲解时把正文和附录揉在一起,力求讲清楚所有技术细节和创新点。

除了safety的部分,我确实不懂这个方向……

从论文里可以看到三个小细节:

首先在大小写上,作者把这个模型叫做"Llama 2",但是在1代时描述是LLaMA,现在的开源社区都是用"LLaMA"来称呼,不知道后面大家会不会改

其次,这个作者团队延续了一代里的Meta,但是GenAI又是什么东西?

GenAI其实也是Meta的部门,是小扎专门为生成式AI成立的研究所,这篇论文可以看做他们打响影响力的开山之作。

最后,LLaMA一代里的元老已经没了,这是被优化掉了?

仔细看,他们还在附录里,但作者列表直接查无此人,这就是大公司内部的斗争吗……

ChrisMarra,ChayaNayak,JacquelinePan,GeorgeOrlin,EdwardDowling,EstebanArcaute,Philom- ena Lobo, Eleonora Presani, and Logan Kerr, who provided helpful product and technical organiza- tion support.

作者一共训练了7B, 13B,34B, 70B四个版本的LLaMA2,其中34B因为一些安全性问题暂时没有发布,其他的模型都是商业许可,填申请就能下载

预训练阶段

所有版本的模型都训练了2T的token量

tokenizer和一代一样,都是vocab_size=32k的BPE模型。数字单独用token,然后不能解码的UTF-8一个byte一个

值得一提的是,这次dataset不开源了,屠龙者终成恶龙?

作者在两个超算平台上训练,用了大概2000GPU,训练了3.3M A100-80GB hour的训练量完成了训练……

llama 1 loss llama 2 loss

另外,对比一代和二代的训练loss

  • 大概可以发现在训练相同的token 1.4T时,两者的loss是差不多的,这大概说明预训练数据的难度也差不多?
  • 以及2代在训练的时候尖峰少了很多,大概是代码做了优化,或者小扎自己搭的超算平台真有独到之处?

从loss曲线上来看,其实训了2T token之后模型仍然没有表现出收敛的趋势,但是提前停止了训练,

If you have money, you can continue……

作者没有纰漏预训练数据集大概多大,不过Llama1应该是训了一个epoch,只有Book和Wiki数据训了两个epoch。

另外,之前有个GPT4黑客爆料说用13Ttoken的数据集训了1个epoch,花了66 million $。不知道Llama 2花了多少钱

sequence_length

把sequence-length提升到了4k。

值得一题的是,最近的新方法可以把2k的LLM通过finetune基本无伤拓展到16k、32k量级,参考笔记: ROPE长度内插延拓

作者通过150B token训练量的对比实验,发现训练4k length带来了更好的效果

group-attention

作者在34B和70B的模型上使用了group-attention技术。这个技术是指,正常的attention要在每个head分别用不同K Q V矩阵把hidden state的某个部分做变换。为了节省参数,可以然后K V变换阵共享参数,作者使用的版本是8个Q阵对应一组K V阵的参数

作者通过相同的实验,发现GQA确实不咋影响效果

MHA是multi-head attention就是原始版本,很好理解。但是表格里面的MQA又是什么东西?

其实MQA是group attention的一种特殊情况,就是所有head的key value是相同的,区别只有Q

GQA: Training generalized multi-query transformer models from multi-head checkpoints

预训练评测

接下来,作者评测了预训练模型的效果

首先作者和一些开源的模型做了比较

这里面可以看出,Llama 2比Llama 1好很多

  • 在数学能力上,小模型的数学能力基本翻了好几倍。
  • 在代码能力上,70B模型暴增7个点

基本可以认为,在任何场景下,Llama 2都是现在最强的开源模型

接下来,作者还和闭源模型做了比较

这次发现,LLama 2的基础能力基本上是最差的……好消息是,和GPT-3.5差不多?

除了代码能力(humanEval),看起来Llama2的代码能力确实不行

这里面的GPT-3.5的效果,应该用的是GPT4技术报告里的结果,对应的模型是text-davinci-003。如果和001 002比,可能Llama 2要更强一点

另外,GPT4这个GSM8K直接干到92也太猛了……

其实作者做的每一个数值,都是一堆实验的,比如上面说的数学能力,就是下面这两个数学题数据集的平均数

其中这个"MATH",就是之前我们讲 Let’s-Verify-Step-by-Step时使用的那个测试数据集

当时打到了78%

如果只想了解预训练的细节,那么到这里就足够了,下篇我将会重点讲解RLHF的部分,也是占据篇幅最多的部分