【AI大模型】近100页的LLaMA 3技术报告:模型结构及影响解析

2024-09-03 12:12

本文主要是介绍【AI大模型】近100页的LLaMA 3技术报告:模型结构及影响解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

一、LLaMA 3模型结构

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

在这里插入图片描述

LLaMa 3模型结构

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

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

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

二、LLaMA 3的预训练过程

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

2.1 初始预训练

就是常规的预训练阶段,训练初期使用较小Batch Size以稳定训练,随后逐步增大以提高效率,最终达到 16M token 的Batch大小。为了提升模型的多语言和数学推理能力,增加了非英语和数学数据的比例。

2.2 长上下文预训练

在预训练的后面阶段,采用长文本数据对长序列进行训练,支持最多128K token的上下文窗口。采取逐步增加上下文窗口长度策略,在Llama 3 405B的预训练中,从最初的8K上下文窗口开始,逐步增加上下文长度,最终达到128K上下文窗口。这个长上下文预训练阶段使用了大约800B训练token数据。

2.3 退火(annealing)

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

三、预训练阶段不同类型数据配比

不同类型的数据配比如何配置大模型才能有最好的效果?这可能是目前大模型预训练仅剩的唯一秘密了,LLama**报告对此做了披露,他们先通过小规模实验确定最优配比,然后将之应用到大模型的训练中。结论是:50%的通用知识Token;25%的数学与逻辑Token;17%的代码Token;8%的多语言Token。

四、LLaMA 3的Post-Training

在这里插入图片描述

LLaMA 3 Post-Training流程

目前LLM的Post-Training主要有两种模式,一种是仿照ChatGPT的SFT**+RM+PPO的模式,采用强化学习,需要调的超参很多,比较复杂不太好调通;另外一种是SFT+DPO的模式,去掉了PPO强化学习,相对简化了整个流程,比较容易跑起来。LLaMA 3在这个阶段主体结构是SFT+DPO的模式,不过也有自己特殊的一些设计,上图展示了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模型。

五、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目前已经是一个蒸馏小模型的可能)。

六、LLaMA 3模型带来的影响

在这里插入图片描述

开源模型效果快速追赶闭源模型

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

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

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

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

七、小模型崛起三要素

最近半年小模型在快速崛起,各种开源小模型此起彼伏,且效果也越来越好。小模型无论是训练成本、推理成本还是对于用户数据隐私保护,相比大模型都有独到的好处。唯一的问题是效果,只要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技术报告提的,但是其实去年很多模型应该已经这么做了,只是叫法不一样。核心思想就是在预训练的最后阶段,对高质量数据比如数学、逻辑、代码数据进行上采样,增加其影响。LLama 3技术报告说这招对405B模型不怎么起作用,但是对8B小模型在逻辑代码能力方面有明显提升。

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

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

  • 在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从中学习知识,所以其实本质上是一种模型蒸馏。)

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

其实从ChatGPT火了以后看各种大模型的技术报告,包括LLama系列模型在内,可以看出大模型之所以能力仍在快速提升,主要驱动力有三个:

首先就是不断扩大模型和数据规模(Scaling Law**)。除此外,在数据方面有两个发展趋势:一个是越来越强调数据质量的作用,各种数据筛选方法和工具越来越多,保证质量是第一位的(这个早在Google T5时代就能推出这个结论,目前只是进一步验证并延续这个思路而已)。

第二个是不断增加数学、逻辑、代码这种能够提升大模型理性能力的数据配比比例,包括在预训练阶段(增加预训练数据此类数据比例,且在预训练后面阶段来上采样此类数据,就是说同样数据多执行几遍,以增加其对模型参数影响的权重)和Post-Training阶段(增加此类数据占比,Llama3的经过instruct的模型比仅做预训练模型相比,各种尺寸的效果提升都很大)皆是如此。

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

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

👉1.大模型入门学习思维导图👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
在这里插入图片描述

👉2.AGI大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。

在这里插入图片描述
在这里插入图片描述

👉3.大模型实际应用报告合集👈

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

在这里插入图片描述

👉4.大模型落地应用案例PPT👈

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

在这里插入图片描述

👉5.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

👉6.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

这篇关于【AI大模型】近100页的LLaMA 3技术报告:模型结构及影响解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1132933

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c