西河刘卡车医 发表于 2024-8-16 16:04:22

LLaMA3技术报告解读

前言

LLaMA系列算法是Meta公司发布的开源大模型。近期Meta公司又发布了LLaMA 3.1系列的模型,在这一系列模型中参数量最大的高达405B,上下文窗口多达128K个token。同时对模型进行了广泛的实证评估,发现在许多使掷中,LLaMA 3的质量可以与GPT-4等模型相媲美。
技术报告原始论文链接 The Llama 3 Herd of Models
引言

模型的开发主要可以分为两个阶段:(1)训练前阶段,在这一阶段,利用下一个单词猜测或者字幕等简单使命对模型进行大规模训练;(2)训练后阶段,在这一阶段中,对模型进行调整,使其遵照指令、符合人类偏好并提高特定本领(如编码和推理)。
LLaMA3是一个语言模型群,原生支持多语言性、编码、推理和工具利用。其中最大的模型是一个密集型Transformer架构,具有405B的参数量,上下文窗口多达128K个token,模型群的干系内容可以参照下图。
https://i-blog.csdnimg.cn/direct/967c6f79d9ef4883b3becd082062c90e.png#pic_center
在开发高质量的模型时通常由三个关键的点:数据,规模和复杂性管理。在LLaMA3的开发过程中对上述三方面进行了如下的优化:
数据:与之前的LLaMA对比,改进了用于前训练和后训练的数据的数量和质量。为预训练数据开发了更细致的预处理和整理管道,为后训练数据开发了更严酷的质量保证和过滤方法。在预训练阶段采用了15T以上的多语言词库的语料库,而LLaMA2仅采用了1.8T的词库。
规模:旗舰语言模型在预训练时利用了                                 3.8                         ×                         1                                 0                            25                                       3.8×10^{25}                  3.8×1025FLOPS,是最大版本LLaMA2的50倍。在15.6T文本标记上预训练了一个拥有405B可训练参数的旗舰模型。如基础模型的缩放规律所预期的那样,旗舰模型比利用相同步调训练的较小模型要好。在后期会利用旗舰模型来提高较小模型的质量。
复杂性管理:所做的筹划选择旨在最大限度地提高模型开发过程的扩展本领。在LLaMA3的训练过程中利用了标准的密集变形模型架构并稍作调整,而不是专家混淆模型,以最大限度地提高训练的稳固性。同时采用了基于监督微调(SFT)、拒绝采样(RS)和直接偏好优化(DPO)的相对简单的后训练步调,而不是更复杂的强化学习算法,后者每每稳固性较差且难以扩展。
总体概述

LLaMA 3的开发过程分为两个阶段:


[*]语言模型预训练。将一个大型多语言文本语料库转换为离散的标记,然后在由此产生的数据上预训练一个大型语言模型,以执行下一个标记的猜测。在训练过程中利用了8K标记的上下文窗口,在15.6Ttoken上预训练了一个拥有405B参数的模型。在标准预训练之后,还会继续进行预训练,将支持的上下文窗口增加到128k tokens。
[*]语言模型后训练。预训练后的语言模型对语言有丰富的明白,但还不能按照盼望的方式来执行指令或活动。在这一阶段将分几轮根据人类的反馈微调模型,每一轮都包括在指令微调数据基础上进行监督微调(SFT)。在训练后阶段,还整合了工具利用等新功能,并观察到在编码和推理等其他方面的明显改进。
同时还采用组合的方式为LLaMA3添加了图像、视频和语音功能:


[*]多模态编码器预训练。为图像和语音分别训练编码器。起首在大量的图像-文本上训练图像编码器。这可以让模型了解视觉内容和自然语言描述之间的关系。语音编码器采用自监督方式进行训练,这种方法会屏蔽掉语音输入的部分内容,并尝试通过离散标记表示法重建屏蔽掉的部分内容。因此,该模型可以学习语音信号的的布局。
[*]视觉适配器训练。会训练一个适配器,将预先训练好的图像编码器集成到预先训练好的语言模型中。适配器由一系列交叉注意层组成,可将图像编码器表征输入语言模型。适配器根据文本-图像对进行训练。这就使图像表征与语言表征保持划一。在适配器训练过程中,会更新图像编码器的参数,但故意不更新语言模型参数。在图像适配器的基础上,我们还在成对的视频-文本数据上训练视频适配器,这使模型可以或许汇总各帧的信息。
[*]语音适配器训练。最后,通过一个适配器将语音编码器集成到模型中,该适配器可将语音编码转换为标记表示,然后直接输入经过微调的语言模型。适配器和编码器的参数在有监督的微调阶段共同更新,以实现高质量的语音明白。在语音适配器训练过程中,不会改变语言模型。同时还集成了文本到语音体系。
预训练

语言模型预训练包括:(1)大规模训练预料的整理和筛选;(2)模型布局的开发和确定模型大小的相应比例法则;(3)大规模高效预训练技术的开发;(4)预训练配方的开发。
预训练数据

从包罗2023年底之前知识的各种数据源中创建了用于语言模型预训练的数据集。对每个数据源采用了多种去重方法和数据清理机制,以得到高质量的token,同时删除了包罗大量个人身份信息和有成人内容的域。
由于利用的大部分数据来自网络,因此需要对相应的数据进行清理。起首从可能包罗不安全内容或大量个人信息的网站,根据各种Meta安全标准被列为有害的域以及已知包罗成人内容的域中删除数据。为了提取高质量的多样化文本,构建了自定义的剖析器,用于提取HTML内容,并优化模板去除和内容召回的精度。开发了启发式方法往复除额外的低质量文档、异常值和重复过多的文档;还尝试应用各种基于模型的质量分类器来分选高质量的token;同时建立了特定范畴的管道来提代替码和数学干系网页。
要得到高质量的语言模型,细致确定差异数据源在预训练数据混淆中的比例也非常紧张,通过知识分类和规模定律实验以后终极确定的数据混淆大致包罗50%一样平常知识token,25%的数学和推理token,17%的代码token以及8%的多语言token。
通过实验以后发现在小量的高质量大麦和数学数据上进行退火可以提高预训练模型在关键基准上的性能。因此利用在选定范畴上采用高质量数据的数据混淆进行退火。不在退火数据中包罗常用基准的任何训练集,这使得可以或许评估LLaMA3的真实少次学习本领和范畴外泛化本领。同时在GSM8k和MATH训练集上评估了退火的有效性后发现,退火将预训练的LLaMA3 8B模型在GSM8k和MATH验证集上的性能分别提高了24.0%和6.4%。
模型架构

LLaMA 3利用了标准的密集型Transformer架构,与LLaMA和LLaMA 2在模型架构方面没有明显的差异;模型性能的提拔主要是由于数据质量和多样性的提高以及训练规模的增加。
但是与Llama 3相比,照旧做了一些小的修改:


[*]利用分组查询注意力和8个键值头来提高推理速度,并在解码过程中镌汰键值缓存的大小;
[*]利用注意力掩码来防止同一序列中的差异文档之间的自注意力。这种改变在标准预训练期间的影响有限,但在继续对非常长的序列进行预训练时发现它很紧张;
[*]利用一个包罗128K个token的词汇表。对应的token词汇表联合了来自tiktoken分词器的100K个token和额外增加的28K个token,以更好地支持非英语语言。与Llama 2分词器相比,新的分词器将样本英语数据的压缩率从3.17提高到3.94个字符每个token。这使得模型在相同的训练计算量下可以或许“阅读”更多的文本。还发现,增加来自选定非英语语言的28K个token在不影响英语分词的环境下,提高了压缩比和卑鄙性能;
[*]增加了RoPE基础频率超参数到500000,这样可以或许更好的支持更长的上下文。
Llama 3 405B利用了一个具有126层、16384个token表示维度和128个注意力头的架构,具体的布局参照下图。
https://i-blog.csdnimg.cn/direct/4de91cb6c3354e4195bd419e5e409fac.png#pic_center
模型定律
订定了规模定律来确定旗舰模型的最佳大小,考虑到预训练计算的预算。除了确定最佳模型大小之外,另一个主要挑战是猜测旗舰模型在卑鄙基准使命上的性能,由于下面几个问题:(1)现有的规模定律通常只猜测下一个标记猜测丧失,而不是特定的基准性能。(2)规模定律可能会有噪声而且不可靠,因为它们是基于小计算预算进行的雨荨来拿运行开发的。
为了应付这些挑战,实施了两阶段的方法来订定可以或许猜测卑鄙基准性能的规模定律:

[*]起首建立计算最优模型在卑鄙使命上的负对数似然与训练FLOPS之间的干系性;
[*]接下来将卑鄙使命上的负对数似然与使命准确性干系联,利用规模定律模型和用更高计算FLOPS训练的旧模型。在这一步中,特别利用了LLama 2系列模型。
基础办法、扩展性和效率

在模型训练时将Llama 3的训练迁徙到了Meta的生产集群上,405B的模型在高达16K的H100 GPU上进行训练,每个GPU运行在700W TDP下,配备80GB的HBM3。每个服务器配备有八个GPU和两个CPU。Meta的通用分布式文件体系用于为Llama 3预训练构建存储网络,提供了7500个配备SSD的服务器上的240PB的存储空间,并支持2TB/s的可持续吞吐量和7TB/s的峰值吞吐量。
为了扩展最大模型的训练,采用了4D并行性——联合四种差异类型的并行方法来切分模型。这种方法可以有效的在多个GPU之间分配计算资源,并确保每个GPU的参数模型参数、优化器状态、梯度和激活可以或许适应其HBM,在下图中展示了4D并行性的实现。它联合了张量并行性(TP)、流水线并行性(PP)、上下文并行性(CP)和数据并行性(DP)。
https://i-blog.csdnimg.cn/direct/fc723fa2b90e4b6e821ab66877009538.png#pic_center
训练配方

用于预训练LLaMA 3 405B的配方主要包括三个主要的阶段:(1)初始预训练;(2)长上下文预训练;(3)退火

[*] 初始预训练
利用余弦学习率对Llama 3 405B进行预训练,峰值学习率为                                             8                               ×                               1                                           0                                             −                                     5                                                             8×10^{-5}                        8×10−5,线性预热8000步,然后在1200000个训练步骤中衰减到                                             8                               ×                               1                                           0                                             −                                     7                                                             8×10^{-7}                        8×10−7。在训练初期利用较小的批量大小以提高训练稳固性,并最后增加它以提高效率。具体来说,最初的批量大小为4M个token,序列长度为4096,然后在预训练了252M个token后,将这些值添加到8M个token,序列长度为8192。在预训练了2.87T个token后再次将批量大小增加到16M。在训练过程中发现这种训练方法非常稳固:观察到的丧失峰值很少,而且不需要干预来改正模型训练发散。
[*] 长上下文训练
在预训练的最后阶段,对长序列进行训练,以支持高达128K个token的上下文窗口。之所以没有提前对长序列进行训练,是因为自注意力层的计算在序列长度上呈二次方增长。通过渐渐增加支持的上下文长度,直到模型成功适应增加的上下文长度。通过测量模型在短文本上下文评估上的性能是否完全恢复,以及模型是否可以或许完善解决长达那个长度的“针尖上的针”使命来评估成功的实用。
[*] 退火
在最后40M个token的预训练中,将学习率线性退火至0,同时保持上下文长度为128K个token。在这个退火阶段还调整了数据混淆,以增加对极高质量数据源的采样。最后,在退火期间,计算了模型检查点的平均值,以产生终极的预训练模型。
后训练

建模

通过对预训练检查点进行多轮后训练,或在预训练检查点的基础上与人类反馈对齐模型,以产生对齐的Llama 3模型。每一轮后训练包括监督式微调(SFT)和直接偏好优化(DPO),这些操作都是在通过人工注释或天生的实例上进行的。
在预训练检查点的基础上,训练一个涵盖差异本领的嘉奖模型。训练目标与Llama 2相同,只是去掉了丧失中的边际项,因为在实验过程中观察到数据扩展后的改进渐渐镌汰。然后利用嘉奖模型对人工注释提示进行拒绝采样。连同这些拒绝采样掉的数据和其他数据源(包括合成数据),利用标准的交叉熵丧失对预训练的语言模型进行微调,这个阶段称为监督式微调(SFT)。
进一步利用直接偏好优化(DPO)对SFT模型进行训练,以符合人类偏好对齐。在训练中,主要利用前一轮对齐中表现最好的模型网络的最新一批偏好数据,因此训练数据更好地符合每轮优化中的计谋模型的分布。同时还探索了如PPO等计谋算法,但发现DPO对于大规模模型需要的计算量更少,而且表现更好。在利用过程中对DPO应用了以下算法修改:


[*]在DPO丧失中屏蔽格式标记:从丧失中的被选择和被拒绝的相应中屏蔽特别格式标记,包括头部和终止标记,以稳固DPO训练。同时观察到,让这些模型对丧失做出贡献可能导致不盼望的模型活动,例如尾部重复或突然天生终止标记。假设这是由于DPO丧失的对比性子——在被选择和被拒绝的相应中存在共同标记导致学习目标冲突,因为模型需要同时增加和镌汰这些标记的可能性。
[*]通过NLL丧失进行正则化:添加了一个额外的负对数似然(NLL)丧失项,对被选择的序列进行缩放,缩放系数为0.2。这有助于通过保持天生所需的格式和防止被选择相应的对数概率低落进一步稳固的DPO训练。
后训练数据

偏好数据:在每个轮次后摆设多个模型进行注释,并为每个用户提示采样两个差异模型的两个差异相应。这些模型可以用差异的数据混淆和对齐配方进行训练,允许差异的本领强度和增加数据多样性。要求注释者根据他们对被选择相应相对于被拒绝相应的偏好水平,将其偏好强度分为四个等级:明显更好、更好、略好或勉强更好。还在偏好排名后参加编辑步骤,鼓励注释者进一步完善首选相应。注释者可以直接编辑所选相应,活泼提示模型用反馈来细化自己的相应。同时,照旧试了质量分析和人工评估流程,以严酷评估网络的数据,允许完善对应的提示并为注释者提供体系、可行的反馈。
在每个后训练轮次钟,利用当时可用的全部偏好数据进行嘉奖建模,而仅利用各种本领的最新批次进行DPO训练。对于嘉奖建模和DPO,都是用被标记为被选择相应明显更好或被拒绝的对应物更好的样本进行训练,并丢弃相应相似的样本。
SFT数据:微调数据主要由以下来源组成:


[*]来自人工注释网络的提示,以及拒绝采样的相应;
[*]针对特定本领的目标合成数据
[*]少量人工筹谋的数据
在拒绝采样(RS)期间,对于人工注释期间网络的每个提示,从最新的聊天模型计谋中采样K个输出,并利用嘉奖模型选择最佳候选。在后训练的后期轮次钟,引入了体系提示,以引导RS相应符合差异本领所需的盼望语调、风格或格式。为了提高拒绝采样的效率,采用了PagedAttention。PagedAttention通过动态键值缓存分配加强了内存小了,通过根据当前缓存容量动态安排哀求,支持任意输入长度。但是当内存不足时会带来互换的风险。为了消除这种互换开销,定义了最大输出长度并仅在有足够内存来适应该长度的输出时执行哀求。PagedAttention还使我们可以或许跨全部相应的输出共享提示的键值缓存页面,这些共同导致了拒绝采样期间吞吐量的2倍以上提高。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: LLaMA3技术报告解读