Llama 3.1大模型的预训练和后训练范式解析

2024-09-07 20:20

本文主要是介绍Llama 3.1大模型的预训练和后训练范式解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Meta的Llama大型语言模型每次出新版本,都会是一大事件。前段时间他们不仅发布了3.1的一个超大型的405亿参数模型,还对之前的8亿和70亿参数的模型做了升级,让它们在MMLU测试中的表现更好了。

图片

不同模型在MMLU基准测试中的表现

他们还出了一个92页的技术报告《Llama 3 Herd of Models》(https://arxiv.org/abs/2407.21783),里面详细介绍了这些模型。

说到Llama 3.1,它用了一个叫做群组查询注意力(group query attention)的技术,这和最近其他的大型语言模型挺像的。不过,Meta AI这次没有用滑动窗口注意力和专家混合方法,这还挺让人意外的。Llama 3.1看起来挺传统的,他们好像更注重预训练和后训练,而不是在模型架构上做创新。

和之前的Llama版本一样,这次的模型权重也是公开的。Meta还说,他们更新了Llama 3的许可协议,现在可以用它来生成合成数据或者做知识蒸馏,帮助改进其他模型了。

4.2 Llama 3.1 预训练

Llama 3.1的预训练过程真是下了大功夫。他们用了一个超级大的数据集,有15.6万亿个标记,比之前的Llama 2多了好多倍,Llama 2当时用的是1.8万亿个标记。而且,Llama 3.1至少能支持八种语言,虽然Qwen 2能处理的语言更多,有20种。

Llama 3.1还有一个亮点,就是它的词汇量达到了128,000,这是用OpenAI的tiktoken分词器搞出来的。

在保证预训练数据质量方面,Llama 3.1用了两种过滤方法:一种是启发式过滤,另一种是基于模型的过滤。他们还用了一些快速分类器,比如Meta AI的fastText和基于RoBERTa的分类器,这些工具也帮助他们决定在训练过程中用哪些数据。

Llama 3.1的预训练分成三个阶段。第一个阶段就是用那15.6万亿个标记做标准的初始预训练,上下文窗口大小是8k。第二个阶段继续预训练,但这次把上下文窗口扩大到128k。最后一个阶段是退火,就是为了让模型表现得更好。咱们再仔细看看这三个阶段都干了啥?

4.2.1 预训练 I: 标准(初始)预训练

在Llama 3.1的第一阶段预训练里,他们开始的时候用的是400万个标记的批次,每个批次的序列长度是4096。这相当于每个批次有1024个标记左右,如果400万是四舍五入的数字的话。训练了2.52亿个标记之后,他们把序列长度增加到了8192。在训练的更深层次,也就是处理了2.87万亿个标记之后,他们又一次把批次的大小翻了一倍。

而且,研究人员并没有一直用同样的数据混合来训练模型。他们根据模型的学习情况和性能,调整了训练过程中用的数据混合。这种灵活的数据处理方法,可能帮助模型更好地适应不同类型的数据,提高它的泛化能力。

4.2.2 预训练 II: 继续预训练以延长上下文长度

在Llama 3.1的第二阶段预训练中,他们采取了一种渐进的方式来增加上下文长度,而不是像其他模型那样一次性增加。研究人员分六个阶段,逐步把上下文长度从8000个标记增加到128000个标记。这种逐步增加的方法可能有助于模型更平稳地适应更大的上下文环境。

这个过程中用到的训练数据量相当大,有8000亿个标记,大约占到了总数据集的5%。这样的训练量,对于模型理解和处理长文本信息的能力提升,肯定是大有帮助的。

4.2.3 预训练 III: 在高质量数据上进行退火

到了Llama 3.1预训练的第三阶段,研究人员选择了一种特别的方法:他们在一小部分但质量很高的数据上对模型进行了所谓的“退火”训练。这种训练方式被证明能够提升模型在基准数据集上的表现。比如,在GSM8K和MATH这两个训练集上进行退火后,模型在相应的验证集上的表现有了显著提升。

研究人员提到,用于退火的数据集大小大约是400亿个标记,这占到了总数据集的0.02%。这400亿个标记的数据集是用来评估数据质量的。他们又指出,实际上的退火训练是在更小的数据集上进行的,只有4000万个标记,这占到了退火数据集的0.1%。

这种在高质量小数据集上进行的退火训练,可能帮助模型在关键的性能指标上有所提升,同时也确保了模型不会在大量低质量数据上浪费时间。

图片

Llama 3.1预训练技术的总结

4.3 Llama 3.1 后训练

Llama 3.1的后训练过程,Meta AI团队采取了一种比较直接的方法,主要包括监督微调(SFT)、拒绝采样和直接偏好优化(DPO)这几个步骤。

他们发现,跟其他一些技术比如强化学习算法RLHF相比,使用PPO(Proximal Policy Optimization)的方法不够稳定,也更难扩大规模。特别值得一提的是,SFT和DPO这两个步骤是多次迭代进行的,也就是说,他们会结合人工生成的数据和合成数据来不断优化模型。

在深入讨论更多细节之前,他们的工作流程图如下,可以帮助我们更直观地理解整个后训练过程是如何进行的。

图片

Llama 3.1论文中描述后训练过程的注释图

尽管他们采用了直接偏好优化(DPO),但他们还是像在RLHF(Reinforcement Learning from Human Feedback)中那样,开发了一个奖励模型。这个奖励模型的初始训练是基于预训练阶段的检查点,并且使用了人工标注的数据。想更多了解DPO,请查看《LLM 直接偏好优化(DPO)的一些研究》,想了解RLHF,请查看《您真的了解人类反馈强化学习(RLHF)吗?》

这个奖励模型在拒绝采样过程中发挥了作用,它帮助挑选出合适的提示来进行进一步的训练。在每一轮的训练中,他们不仅对奖励模型进行了更新,还对SFT(Supervised Fine-Tuning)和DPO模型进行了模型平均技术的应用。这种模型平均技术通过合并最近和以前的模型参数,有助于稳定并提升模型随时间的性能。

总的来说,他们的核心后训练流程包括了标准的SFT和DPO阶段,但这些阶段是多轮迭代进行的。他们还引入了奖励模型来进行拒绝采样,这与Qwen 2 《通义千问Qwen 2大模型的预训练和后训练范式解析》和AFM 《Apple LLM: 智能基础语言模型(AFM)》的做法相似。此外,他们还采用了模型平均技术,这不仅适用于奖励模型,还适用于所有参与训练的模型,这一点与Gemma的做法相仿。通过这样的方法,他们能够确保模型在训练过程中的稳定性和性能提升。

图片

Llama 3.1后训练技术的总结

4.4 结论

Llama 3模型在很多方面都保持了一种比较传统的路线,跟之前的Llama 2模型相似,但也引入了一些新颖的方法。特别引人注目的是,它使用了高达15万亿个标记的庞大训练集,这让它在众多模型中脱颖而出。就像苹果的AFM模型一样,Llama 3也采取了一个三阶段的预训练流程。

与其他近期的大型语言模型(LLMs)不同,Llama 3并没有采用知识蒸馏技术,而是选择了一条更直接的模型开发路径。在后训练阶段,Llama 3采用了直接偏好优化(DPO),而不是其他模型中常见的更复杂的强化学习策略。总的来说,这种选择很有意思,因为它展示了通过更简单(但已经证明有效)的方法来提升大型语言模型性能的可能性。

这篇关于Llama 3.1大模型的预训练和后训练范式解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

网页解析 lxml 库--实战

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

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

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

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

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

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

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

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU