LLama 3.1 技术报告分析

推荐微博张俊林写的这篇 LLama 3.1 技术报告分析,全文如下:

LLama 3 405B 模型效果已经赶上目前最好的闭源模型比如 GPT 4o 和 Claude 3.5,这算是开源界的大事,技术报告接近 100 页,信息很丰富,粗略看了一下,很有启发。这里就 LLaMA 3 的模型结构、训练过程做些解读,并对其影响、小模型如何做、合成数据等方面谈点看法。

1、LLaMA 3 模型结构

LLaMA 3 的模型结构如图 1 所示,这基本已经形成目前 Dense LLM 模型的标准结构了,绝大多数 LLM 模型结构都与此非常接近。而很多采取 MOE 结构的 LLM 模型,其变化无非是把上图的 FFN 模块里的单个 SwiGLU 模块拓展成 K 个并联的 SwiGLU 模块,形成多个专家,再加上一个路由子网络来选择目前 Token 走这么多专家里的哪几个,如此而已,基本结构也差不太多(所以不要误会,MOE 是 Transformer 的一种变体,不是独立的模型结构。很多目前的新型结构,其实是“线性 Transformer”结构的变体,目前很少有结构能逃脱 Transformer 架构的影响,都处在它的阴影下。当然我对新结构持支持态度,Transformer 被替换只是时间问题,只不过这不是当前制约大模型能力的瓶颈,改变的迫切性没那么大而已。)

之所以 LLaMA 结构基本快形成行业标准,我觉得有两个原因。原因一是侧面说明了 Transformer 结构趋于稳定,肯定很多人试过其它变体结构但是要么在效果,要么在可扩展性(Scalability),总之,某一点要比这个结构效果要差,这虽然是无依据的推导,但想来是大概率事件。

原因之二是因为目前 LLM 已形成生态,各种衍生的工具比如快速推理框架等都兼容这个结构,如果你新结构变动太大,很多流行工具不支持,就很难扩散影响力形成新的行业标准。新结构不仅仅要达成替换 Transformer 那么简单,你面对的是整个生态,再没有确切证据表明各方面都明显好于上述结构前提下,是很难替换掉 Transformer 的。从这里就看出 Meta 坚决走开源路线的高明之处了,早开源早形成影响力早成为行业标准,那么以后 LLM 的技术路线做技术选型话语权就非常大 ,其他人就比较被动。谷歌因为一心二用开源不坚决,有点错失时机。

2、LLaMA 3 的预训练过程

Llama 3 预训练包括三个主要阶段:(1) 初始预训练,(2) 长上下文预训练,以及 (3) 退火(Annealing)。总体而言,和目前一些其它开源模型的训练过程差别不大,不过技术报告公开了很多技术细节。

(1)初始预训练

就是常规的预训练阶段。

(2)长上下文预训练

在预训练的后面阶段,采用长文本数据对长序列进行训练,支持最多 128K token 的上下文窗口。这个长上下文预训练阶段使用了大约 800B 训练 token 数据。

(3)退火(annealing)

在预训练的最后 4000 万个 token 期间,线性地将学习率退火至 0,同时保持上下文长度为 128K 个 token。在这一退火阶段,调整了数据混合配比,以增加高质量数据比如数学、代码、逻辑内容的影响。最后,将若干退火期间模型 Check Point 的平均值,作为最终的预训练模型。

3、LLaMA 3 的 Post-Training

首先用人工标注数据训练 RM 模型,用来评价一个<Prompt,answer>数据的质量,然后用 RM 参与拒绝采样(Rejection Sampling),就是说对于一个人工 Prompt,用模型生成若干个回答,RM 给予质量打分,选择得分最高的保留作为 SFT 数据,其它抛掉。这样得到的 SFT 数据再加上专门增强代码、数学、逻辑能力的 SFT 数据一起,用来调整模型得到 SFT 模型。之后用人工标注数据来使用 DPO 模型调整 LLM 参数,DPO 本质上是个二分类,就是从人工标注的<Prompt,Good Answer,Bad Answer>三元数据里学习,调整模型参数鼓励模型输出 Good Answer,不输出 Bad Answer。这算完成了一个迭代轮次的 Post-Training。

上述过程会反复迭代几次,每次的流程相同,不同的地方在于拒绝采样阶段用来对给定 Prompt 产生回答的 LLM 模型,会从上一轮流程最后产生的若干不同 DPO 模型(不同超参等)里选择最好的那个在下一轮拒绝采样阶段给 Prompt 生成答案。很明显,随着迭代的增加 DPO 模型越来越好,所以拒绝采样里能选出的最佳答案质量越来越高,SFT 模型就越好,如此形成正反馈循环。

可以看出,尽管 RLHF 和 DPO 两种模式都包含 RM,但是用的地方不一样,RLHF 是把 RM 打分用在 PPO 强化学习阶段,而 LLaMA 3 则用 RM 来筛选高质量 SFT 数据。而且因为拒绝采样的回答是由 LLM 产生的,可知这里大量采用了合成数据来训练 SFT 模型。

4、LLama 3 405B 为何不用 MOE 结构?

MOE 结构会让模型效果更好吗?答案是否定的。这个在很久以前 ChatGPT 火之前就有研究结论,从对模型效果的影响来说,MOE 结构相对 Dense 模型本身并不会带来额外优势,甚至是有劣势的。MOE 的主要优势是减少训练和推理成本,付出的代价是训练不够稳定以及推理时额外付出大内存来存储膨胀的参数量。但当用户量大请求多的时候,推理成本占比会更高,此时使用 MOE 对于推理会更友好,这是为何当模型大到一定程度模型结构就会从 Dense 转向 MOE 的主要原因,是出于成本、效率而非效果角度考虑。我之前看到有些介绍说 MOE 结构效果更好,这种观点是没有事实依据的。

Llama3 405B 之所以没有采用 MOE,技术报告指出主要是考虑到 Dense 模型训练更稳定,所以选择了 Dense 结构。相比 GPT 4 的 1.8T 的 MOE 模型结构,405B 的 Dense 模型效果与之相当甚至要更好一些(当然,不排除 GTP 4 目前已经是一个蒸馏小模型的可能)。

5、LLaMA 3 模型带来的影响

前几个月关于开源和闭源大模型谁优谁劣争吵的很厉害,不同立场者各执一词,图 3 展示了开源和闭源模型随着时间能力差异曲线,可以看出两者差距随着时间是逐步减小的,而 LLaMA 3 405B 让两线出现了交点,我想这图基本可以终结“开源闭源之争”了。

LLaMA 3 405B 的开源,对于其它无论闭源还是开源模型,都有重大影响。对于闭源模型,如果其能力还赶不上 LLaMA 3,就需要向公众解释对用户收费的依据问题(除了覆盖推理成本外的费用)。对于开源模型而言,如果能力不如 LLaMA 3,就需要考虑如何作出差异化和不同特色的问题。目前看 Meta 继续开源比如 LLaMA 4 等后续更强模型的决心是比较大的(毕竟从大模型开源带来的股价上涨就能覆盖成本了,这买卖合算的),随着 LLaMA 4 的进一步开源,形势将逼迫很多原先定位为基础模型 AGI 的创业公司转向特色产品赛道。我觉得这其实是个负面作用,尤其是对开源界,即使是开源赛道也是百家争鸣比一两家独大要好,但是逐渐收敛看样子不可避免。

我觉得之后一方面要重视 LLAMA 和 Gemma 的中文化工作,让中文支持效果更好。如果这方面作出特点,完全可以实现小公司、小投入,但是拥有当前最强中文模型的能力,从能力角度看,并不弱于获得大量资金支持的专业大模型公司,而从投入角度则小的多,性价比很高。

另外一方面,在做小模型的时候,要注重用 LLaMA 405B 这种最强开源模型来蒸馏小模型的思路,这样做对小模型效果提升会非常明显,很明显这也是小投入高产出合算的买卖。

6、小模型崛起三要素

最近半年小模型在快速崛起,各种开源小模型此起彼伏,且效果也越来越好。小模型无论是训练成本、推理成本还是对于用户数据隐私保护,相比大模型都有独到的好处。唯一的问题是效果,只要 Scaling law 成立,就可以推断出小模型效果不会比超大规模模型效果好,否则就直接反证了 Scaling law 是不成立的。

所以小模型的关键点在于:在模型规模大小受限的情况下,如何通过其它技术手段来不断提升模型效果,最好的结局是小模型尺寸比最大模型小很多倍,但是效果逐步逼近最大模型的效果,两者差距越来越小。

这样美好的结局会出现么?目前看有极大可能会达成这一目标。从最近一年各种技术进展来说,我归纳下,不断提升小模型效果的三个关键因素:

第一个武器是预训练阶段增加训练数据数量和质量。要打破 Optimal Chinchilla Law,在保证质量前提下加大数据数量,这个肯定是有效的。去年早些时候有些模型就比较实在,比如 pythia 和 Llama 1,严格遵循这个法则,导致相同规模的模型效果远比不上那些大量增加数据的模型。后来大家都开始猛加数据,小模型的效果就越来越好。

第二个武器是模型蒸馏。从开源角度来看,这个武器相对较新,而且我判断用蒸馏来提升小模型效果的能力非常强大。所谓“蒸馏”,就是说在预训练阶段小模型作为 Student,大模型作为 Teacher,Teacher 告诉 Student 更多信息来提升小模型效果。

原先小模型预训练目标是根据上文 context 信息正确预测 Next Token,而蒸馏则改成 Teacher 把自己做相同上下文做 Next Token 预测的时候,把 Token 词典里每个 Token 的生成概率都输出来,形成 Next Token 的概率分布,这就是 Teacher 交给 Student 的额外附加信息,小模型从原先的预测 Next Token 改为预测 Next Token 的概率分布,要求和 Teacher 输出的分布尽量一致,这样就学到了 Teacher 的内部信息。

Gemma 2 采用模型蒸馏对于小版本模型提升非常明显。Llama 3 技术报告貌似没有看到采用这个技术,但是在宣传页里到处暗示你应该拿 405B 模型作为 Teacher 去蒸馏自己的小模型,无疑这会是很有效提升小模型能力的新武器。感觉其它模型在这里没有足够的重视,而之后这应该成为普及方案。而研究怎样的蒸馏方法是最好的会是一个重要研究领域。

第三个武器是 Annealing Data。核心思想就是在预训练的最后阶段,对高质量数据比如数学、逻辑、代码数据进行上采样,增加其影响。LLama 3 技术报告说这招对 405B 模型不怎么起作用,但是对 8B 小模型在逻辑代码能力方面有明显提升。

根据现有资料分析,我推断模型蒸馏和 Annealing Data 很可能存在一种“反规模效应”,就是说小模型的参数规模越小,上这两个技术对其正面影响越大。(推断的,没明确证据,谨慎参考)所以在研发小模型时尤其注意要引入这两项改进,三个武器并用,我觉得作出接近最强大模型能力的小模型目前看是可行的。(其实还有一个重要因素,就是 Post-Training 阶段合成数据的影响,这个对几乎所有尺寸模型都成立,所以放在后面“驱动大模型效果提升三要素”分析了,对小模型也成立)

7、合成数据进入实用化阶段

  • 在 Post-Training 阶段,合成数据目前已经产品化。尤其是其中的 SFT 阶段,目前看在朝着完全由合成数据主导的方向发展。比如 LLama 3 的 SFT 数据里有相当比例是由模型生成的合成数据,而 Gemma2 在 SFT 阶段的数据很大比例是由规模更大的模型合成的,且证明了合成数据质量不比人工标注质量差。

  • 在预训练阶段,类似 Dalle-3 和 Sora 这种由语言大模型根据图片或视频改写人写好的文字描述,也已实用化。

  • 目前合成数据的一个重点方向是在 Post-Training 阶段对数学、逻辑、代码等数据的合成,数据质量将直接极大影响模型最终效果。

  • 严格来说,目前的所谓合成数据只是“半合成数据”,比如 Sora 的<视频,人写文字描述→<视频,模型改写文字描述>,以及 Post-Training 阶段的<Prompt,人写答案>→<Prompt,模型生成答案>,都是部分人工数据、部分模型生成数据,所以称其为“半合成数据”感觉更为恰当。

  • 如果深入思考一下,你会发现合成数据其实是模型蒸馏的一种变体,算是一种特殊的模型蒸馏。(LLM 预训练预测 Next Token,其实是人类作为 Teacher,LLM 作为 student。所以 LLM 本身就是对人类知识的蒸馏。合成数据是更大的模型输出数据作为 Teacher,小点的模型作为 Student 从中学习知识,所以其实本质上是一种模型蒸馏。)

8、驱动大模型效果提升的三要素

其实从 ChatGPT 火了以后看各种大模型的技术报告,包括 LLama 系列模型在内,可以看出大模型之所以能力仍在快速提升,主要驱动力有三个:首先就是不断扩大模型和数据规模(Scaling Law)。除此外,在数据方面有两个发展趋势:一个是越来越强调数据质量的作用,各种数据筛选方法和工具越来越多,保证质量是第一位的(这个早在 Google T5 时代就能推出这个结论,目前只是进一步验证并延续这个思路而已)。第二个是不断增加数学、逻辑、代码这种能够提升大模型理性能力的数据配比比例,包括在预训练阶段(增加预训练数据此类数据比例,且在预训练后面阶段来上采样此类数据,就是说同样数据多执行几遍,以增加其对模型参数影响的权重)和 Post-Training 阶段(增加此类数据占比,Llama3 的经过 instruct 的模型比仅做预训练模型相比,各种尺寸的效果提升都很大)皆是如此。

目前看,在通用数据快被用完情况下,第三个因素会成为之后大模型进步的主导力量,包括使用数学、逻辑、代码合成数据在 Post-Training 阶段的应用,目前技术也越来越成熟,其质量和数量会是决定未来大模型效果差异的最关键因素。

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

  • 22
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员二飞

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

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

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

打赏作者

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

抵扣说明:

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

余额充值