LLama3 405B 技术解读

news2024/11/15 13:46:47

LLaMA 3 大模型效果提升的三要素

  1. 扩大模型和数据规模:通过Scaling Law增加模型参数数量和训练数据规模,以捕捉更复杂的模式。
  2. 数据质量的重要性:确保高质量数据,通过筛选方法提升模型性能。
  3. 理性能力数据的增加:在预训练和Post-Training阶段增加数学、逻辑、代码数据的比例和权重。

预训练过程

LLaMA 3的预训练分为初始预训练、长上下文预训练和退火(Annealing)三个阶段,数据配比为50%通用知识,25%数学与逻辑,17%代码,8%多语言。

Post-Training模式

采用SFT + DPO模式,通过RM模型、SFT数据和DPO模型迭代提升性能,确保输出高质量答案。

背景:

LLama 3 405B模型效果已经赶上目前最好的闭源模型比如GPT 4o和Claude 3.5

模型结构

    基本已经形成目前Dense LLM模型的标准结构了,绝大多数LLM模型结构都与此非常接近。

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

LLaMA 3的预训练过程

(1) 初始预训练,(2) 长上下文预训练,以及 (3) 退火(Annealing)

  • 初始预训练:初期较小Batch Size,逐步增大最终达到 16M token 大小。为了提升模型的多语言和数学推理能力,增加了非英语和数学数据的比例。

  • 长上下文预训练:预训练的后面阶段,采用长文本数据对长序列进行训练。
    采取逐步增加上下文窗口长度策略,从8K上下文窗口开始,逐步增加达到128K上下文窗口。长上下文预训练阶段使用了大约800B训练token数据。

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

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

不同类型的数据配比如何配置大模型才能有最好的效果?

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

LLaMA 3的Post-Training

目前LLM的Post-Training主要有两种模式,

一种是仿照ChatGPT的SFT+RM+PPO的模式,采用强化学习,需要调的超参很多,比较复杂不太好调通;

另外一种是SFT+DPO的模式,去掉了PPO强化学习。也有自己特殊的一些设计,上图展示了LLaMA 3整个Post-Training的流程

流程

1、RM模型  用人工标注数据训练RM模型,用来评价一个数据的质量,

2、SFT数据得到SFT模型;用RM参与拒绝采样(Rejection Sampling),就是说对于一个人工Prompt,用模型生成若干个回答,RM给予质量打分,选择得分最高的保留作为SFT数据,其它抛掉。这样得到的SFT数据再加上专门增强代码、数学、逻辑能力的SFT数据一起,用来调整模型得到SFT模型。

3、人工标注数据来使用DPO模型调整LLM参数,DPO本质上是个二分类,就是从人工标注的三元数据里学习,调整模型参数鼓励模型输出Good Answer,不输出Bad Answer。

这算完成了一个迭代轮次的Post-Training。

上述过程会反复迭代几次,每次的流程相同,

不同(拒绝采样阶段用给定Prompt产生回答的LLM模型,是上一轮流程最后产生的若干不同DPO模型(不同超参等)里选择最好。随着迭代的增加DPO模型越来越好,所以拒绝采样里能选出的最佳答案质量越来越高,SFT模型就越好,如此形成正反馈循环。

RLHF 和DPO两种模式都包含RM,但是用的地方不一样,

RLHF是把RM打分用在PPO强化学习阶段,而LLaMA 3则用RM来筛选高质量SFT数据。而且因为拒绝采样的回答是由LLM产生的,可知这里大量采用了合成数据来训练SFT模型

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

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

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

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

于闭源模型,如果其能力还赶不上LLaMA 3,就需要向公众解释对用户收费的依据问题(除了覆盖推理成本外的费用)。对于开源模型而言,如果能力不如LLaMA 3,就需要考虑如何作出差异化和不同特色的问题。

重视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技术报告貌似没有看到采用这个技术

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

合成数据进入实用化阶段

-在Post-Training阶段,合成数据目前已经产品化。

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

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

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

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

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

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

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

驱动大模型效果提升的三要素总结如下:

  1. 模型和数据规模的不断扩大(Scaling Law)

    • 扩大模型参数数量和训练数据规模是提升大模型性能的主要途径之一。
    • 更大的模型和更多的数据能够捕捉更复杂的模式,提高模型的泛化能力和准确性。
  2. 数据质量的重要性

    • 强调数据质量在模型训练中的关键作用,通过各种数据筛选方法和工具来确保数据的高质量。
    • 早在Google T5时代,就已认识到高质量数据的重要性,现如今这一理念得到了进一步验证和延续。
  3. 理性能力数据的增加

    • 不断增加数学、逻辑、代码等能够提升大模型理性能力的数据配比比例。
    • 在预训练阶段增加此类数据的比例,并在预训练后期阶段对这些数据进行上采样,以增加其对模型参数的影响权重。
    • 在Post-Training阶段,增加此类数据的占比。以Llama3为例,经过instruct训练的模型在各个尺寸上相较于仅进行预训练的模型有显著效果提升。

总结来看,随着通用数据的使用逐渐饱和,第三个因素——数学、逻辑、代码合成数据在Post-Training阶段的应用,将成为未来大模型进步的主导力量

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1956775.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode - 135双周赛

目录 一&#xff0c;3222. 求出硬币游戏的赢家 二&#xff0c;3223. 操作后字符串的最短长度 三&#xff0c;3224. 使差值相等的最少数组改动次数 四&#xff0c;3225. 网格图操作后的最大分数 一&#xff0c;3222. 求出硬币游戏的赢家 本题就是一道模拟题&#xff0c;每个…

vue自写组件可输入,可下拉选择,因为el-autocomplete数据多了会卡

<!-- 引入组件 --><AutoCompletev-model"scope.row.strreceivername":lngemployeeid"scope.row.lngreceiverid"select"handleSelect($event,scope.row)"/> methods:{handleSelect(item, row) {row.lngreceiverid item.lngemployeei…

NC 删除有序链表中重复的元素-II

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 给出一个升序…

复杂系统科学之钥——从简单交互到宏观行为的涌现公式

复杂系统科学之钥——从简单交互到宏观行为的涌现公式 简单交互与宏观行为的类比 你可以把简单交互比作“音符”&#xff0c;而宏观行为就像是“乐章”&#xff0c;复杂系统科学就是研究如何从众多音符演奏出美妙乐章的学问。 复杂系统科学的核心作用 组件/步骤描述简单交互个…

这可能是开源界最好用的能源管理系统

&#x1f482; 个人网站: IT知识小屋&#x1f91f; 版权: 本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主&#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 文章目录 写在前面项目简介项目特点项目架构模块展示项目获取 写在前面 大…

为什么日本的就业率那么高?原因是什么?

数据显示&#xff0c;2024年&#xff0c;日本大学生就业为98.1%&#xff0c;是自1997年以来的最高水平。不是说日本经济快崩了嘛&#xff0c;怎么就业率会如此高呢&#xff1f; 其中最主要的原因还是与就业率的统计有关。 有网友说&#xff0c;在日本工作&#xff0c;主要分为…

企知道 接口逆向:AES加密

&#x1f510; 登录接口逆向 &#x1f575;️ 抓包登录接口 使用抓包工具捕获企知道的登录接口请求&#xff0c;观察到密码参数是加密的密文&#xff0c;传输给后端服务器。 &#x1f9e9; 跟栈到密码加密位置 通过浏览器开发者工具&#xff0c;跟踪JS代码栈&#xff0c;找…

什么是数据中台?从哪些方面加深对数据中台的认知?需要理清些什么概念?数据中台的意义是什么?

目录 一、数据中台的产生与发展 1.1 脱胎于大数据的发展 1.2 概念诞生于中国 二、数据中台的定义 2.1 概述 2.2 定义一 2.2 定义二 2.3 定义三 2.4 定义四 2.5 定义五 2.6 我对数据中台的解读 三、对数据中台的认知 3.1 概述 3.2 数据中台需要提升战略高度&#x…

Python学习笔记47:游戏篇之外星人入侵(八)

前言 在上篇文章中&#xff0c;我们在游戏窗口中加载三行外星人。文章中也说过我们加载外星人的方式是比较简单的加载方式&#xff1a;一次性加载固定数量的外星人&#xff0c;并且以同样的方式重复加载。这种加载方式简单易懂&#xff0c;比较适合新手&#xff0c;如果想要一…

c++----日期类

今天这篇博客是对我们上面的两篇博客的一个小小的检验。我们今天来实现一下我们手机上的一个小功能。对日期的实现。那么如何实现以及使用哪些知识&#xff0c;我们马上来看看吧。 思想概括 其实实现日期类并不是什么难事。如果用c语言的话大家可能会觉得很简单&#xff0c;主…

【VS Code】我用到的一些VS Code插件和命令

【命令】 打开终端&#xff1a; Ctrl ~ 【插件】 材质图标主题插件&#xff1a;Material Icon Theme 让文件图标看起来更美丽

yandex图标点选验证码YOLOV8识别案例

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 如有侵犯,请联系作者下架 某yandex图标点选验证码如下: 使用过yolov8的小伙伴可能都知道,这种直接打个标注,基本上就可以了,至于问题图片由于不能很好的切割做分类,所以干脆也做成目标…

还在用JVM跑你的Java代码吗?太慢了,试试Oracle的GraalVM吧

前言 对于Java开发者们来说&#xff0c;几乎每天都在和JVM打交道&#xff0c;然而JVM即将过时了。那些对新技术保持敏锐洞察力的开发者&#xff0c;可能已经在生产环境中部署GraalVM生成的二进制程序了&#xff0c;小伙伴们&#xff0c;你们已经用起来了吗&#xff1f; Graal…

AOP~面向切面编程介绍

AOP基础 概述 AOP&#xff1a;Aspect Oriented Programming&#xff08;面向切面编程、面向方面编程&#xff09;&#xff0c;面向特定方法的编程。 动态代理是面向切面编程最主流的实现。 SpringAOP是Spring框架的高级技术&#xff0c;旨在管理bean对象的过程中&#xff0c…

【基础篇】Docker 架构与组件 TWO

嗨&#xff0c;小伙伴们&#xff01;我是小竹笋&#xff0c;一名热爱创作的工程师。上一篇我们聊了聊 Docker 的历史与发展、与虚拟机的对比以及它在行业中的应用。今天&#xff0c;让我们更进一步&#xff0c;深入探讨 Docker 的架构与关键组件。 欢迎订阅公众号&#xff1a;…

Fantastic-admin:Vue 中后台管理系统

Fantastic-admin&#xff1a;Vue 中后台管理系统 在当今的前端开发世界里&#xff0c;fantastic-admin 作为一款功能强大的 Vue 中后台管理系统框架&#xff0c;简直是开发者的福音。本文将介绍 fantastic-admin 的基本信息、特点&#xff0c;以及如何快速上手和使用。 项目简介…

亚信安慧AntDB亮相PostgreSQL中国技术大会,获“数据库最佳应用奖”并分享数据库应用实践

7月12日&#xff0c;第13届PostgreSQL中国技术大会在杭州顺利举办&#xff0c;亚信安慧AntDB数据库荣获“数据库最佳应用奖”。大会上&#xff0c;亚信安慧AntDB数据库同事带来《基于AntDB的CRM系统全域数据库替换实践》和《亚信安慧AntDB数据库运维之路》两场精彩演讲&#xf…

AWS资源购买和使用:亚马逊云显示配额不足怎么解决

亚马逊云显示配额不足是许多AWS用户在使用云服务时可能遇到的常见问题。这种情况通常发生在用户试图启动新的EC2实例或扩展现有资源时&#xff0c;系统提示已达到特定资源类型的限制。本文中九河云将跟你们一起探讨这一问题的原因及其解决方案。 首先&#xff0c;了解AWS配额的…

最便宜的iPhone SE 4要来,配置爆炸但砍了灵魂

前几天乐视刚刚发布了「低配青春 AIR 版 iPhone SE 4」&#xff0c;电友们就坐不住了&#xff0c;纷纷问真 iPhone SE 4 究竟什么时候才能来。 阿红也去挖了一下情报&#xff0c;别说&#xff0c;还真在路上了。 众所周知&#xff0c;最近一代&#xff0c;也就是第三代 iPhone…

Liquibase 增加一列主键,自动生成 UUID:最佳实践与深度解析

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 自动生成 UUID UUID 是一种全局唯一的标识符&#xff0c;通常由 32 个十六进制数字组成&#xff0c;分为五组&#xff0c;形式如下&#xff1a; 123e4567-e89b-12d3-a456-426614174000在 Java 中&#xff0c;可以使…