Llama3.1技术报告简要解读--附PDF

news2024/9/23 7:24:31

以为前些天是在炒作llama3.1泄露,没想到Meta在24号凌晨直接开源了,包括三个不同参数规模的模型(8B、70B、405B),三个模型上下文长度都是128K,其中超大杯拥有4050亿参数,从评测指标来看必是最强开源模型了,在闭源模型中也属于第一梯队,与 GPT-4/Claude 3.5 同级。(其实405B模型对于中小企业来说最大的价值是蒸馏了,根本跑不动)

加载模型检查点所需的 GPU VRAM

加载模型检查点所需的 GPU VRAM

KVcache占用

KV cache

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

Hugging Face下载链接:https://huggingface.co/collections/meta-llama/llama-31-669fc079a0c406a149a5738f
Meta官网下载链接:https://llama.meta.com/

小扎前段时间还说可能未来不会开源模型了,当时我以为LLM开源黄昏了,没想到现在直接来波王炸,还给写了一封"关于为什么他相信开源是前进的道路"的信,这波直接respect好吧。
部分


Meta还发布了一本 92 页的 PDF技术报告,详细介绍了该模型。技术报告以及谷歌翻译后的中文版都放在文末链接了,有需要自取。

下面就对技术报告简单总结一下,还是推荐大家自己读一下,里面细节多(有挺多trick),毕竟这可是顶级企业花费巨大代价才有的经验,还免费共享出来,不学一波可说不过去了(这不白嫖)。

推上面Daniel Han大佬将该模型相较于以前Llama的变化总结为一张图:

在这里插入图片描述

在这里插入图片描述

张俊林画的模型结构图

简要概述:

  1. 大而好:405B参数直接对标GPT4 (Scaling law)
  2. 中杯(8B)和大杯(70B)的上下文直接干到128K了,超过目前同类参数模型一个等级。
  3. 15T的Token,强调数据的重要性!!!包括数据准备、数据处理、数据清洗、数据构造,数据配比等等,数据是基石,决定模型上限。

文章的整个格式

文章目录

训练语料的整理和筛选

  1. 训练语料里面95%都是英文,支持8种语言的多语言输入输出,包括英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。(中文能力弱,等一波大佬们微调出来llama3.1-chinese)
  2. 知识截止到2023年12月,确保了模型知识的时效性。
  3. 8K token 的上下文窗口,在持续预训练阶段上下文窗口增加至128K

数据准备、数据处理:

  • PII (个人可识别信息)和安全过滤,删除能包含不安全内容或大量 PII 的网站和成人内容(脱敏、去黄)。
  • 自定义 HTML 解析器,维护数学和代码内容的结构 (工程)。
  • 在 URL 级别、文档级别和行级别执行重复数据删除,目的是保留最新数据版本(去重)。
  • 使用启发式过滤(n-gram算法、Kullback-Leibler),去除额外的低质量文档、异常值和重复过多的文档(清洗)。
  • 各种基于模型的质量分类器来分选高质量的标记,比如说基于 fasttext 的模型将文档分类为 176 种语言(清洗)。

数据组合的缩放定律

  • 在一个数据组合上训练几个小模型,并以此来预测一个大模型在该数据组合上的性能(常规操作)。

数据比例:

  • 做细粒度的打标签工作,然后根据标签采样,配不同的量,最终敲定:50% 通用数据, 25% 数理数据, 17% 代码数据, 8%多语言数据。

数据退火Annealing Data:

  • 作者发现在大模型训练的最后阶段,用高质量的数据学习能提高性能。于是在最后40B数据上,作者逐渐将学习率衰减到0。并且发现,数据退火方法,可以用来筛数据,量少,效果明显,实验更高效。这招对405B模型不怎么起作用,但是对8B小模型在逻辑代码能力方面有明显提升。

模型架构

在这里插入图片描述

  • 模型架构与 llama 和 llama-2 大体相同,进行了细微的改动,没选择MoE混合专家模型,官方说是以最大限度地提高训练稳定性。

  • 与之前的 Llama 版本相比,提高了用于训练前和训练后的数据的数量和质量。(数据决定上限)。
    在这里插入图片描述

  • 采用了迭代的post-training,其中每一轮使用supervised fine-tuning (SFT) 和 direct preference ptimization (DPO)。这样能够为每个回合创建最高质量的合成数据,并提高每个能力的性能。

  • 采用 8 KV 头分组查询注意力(GQA)技术,提高了推理的可扩展性。

  • RoPE 超参增加至 500000。

  • 注意力掩码可防止同一序列中不同文档之间的自注意力。

  • 128K 词汇量(100K 来自 tiktoken,28K 额外词汇用于除英语以外的语言)。

  • 126 层、128 个注意力头和 16384 嵌入大小。

确定模型大小的相应比例法则(解释为什么选择405B)

在这里插入图片描述
FLOPs是一个衡量计算性能的指标,它表示计算机每秒可以执行的浮点运算次数。

  • 在机器学习和深度学习中,FLOPs通常用来估计一个模型或算法在给定硬件上运行所需的计算资源。
  • 一个模型的FLOPs越高,意味着它需要更多的计算资源,可能需要更长的时间来训练或推理。

Normalized NLL per Character是一种评估语言模型性能的指标,特别是在序列生成任务中,如机器翻译或文本生成。

  • NLL,即负对数似然,是衡量模型预测概率分布与实际观测数据之间差异的一种方法。在语言模型中,NLL通常用来衡量模型生成文本的准确性。
  • 将NLL除以序列中字符的数量,得到的就是Normalized NLL per Character,这个指标可以提供一个更公平的比较基准,特别是在不同长度的序列之间。

FLOPs关注的是模型的计算需求,而Normalized NLL per Character关注的是模型在特定任务上的性能表现。FLOPs是一个硬件相关的指标,而Normalized NLL per Character是一个模型性能的指标。

Meta 实施了两阶段方法来开发能够准确预测下游基准性能的缩放法则:首先建立计算最优模型在下游任务上的负对数似然与训练FLOPs之间的相关性;(这样可以了解模型在不同计算资源下的性能表现。如果一个模型需要大量的FLOPs但NLL降低不多,这可能意味着进一步增加计算资源的边际效益在减少)

接下来,利用缩放法则模型和使用更高计算FLOPs训练的旧模型,将下游任务上的负对数似然与任务准确性相关联。

AI Infra

  • Llama 3 405B 使用 Meta 的 Grand Teton AI 服务器平台,在多达16000张H100 GPU 上进行训练,每个GPU的运行功耗为700W TDP,配备80G HBM3,累计使用了3930万GPU小时的计算时间。

  • Tectonic,Meta 内部的分布式文件系统用于存储,240PB,7500 个 SSD ,吞吐量从 2TB/s 到 7TB/s

  • 拓扑结构基于 RoCE 的 AI 集群由 24K GPU 组成,单口400Gb/s,通过三层网络连接

模型并行策略:并行维度的顺序【张量并行TP、上下文并行CP、流水线并行PP、数据并行DP】
在这里插入图片描述
张量并行将单个权重张量分割成不同设备上的多块。流水线并行将模型按层纵向划分为多个阶段,这样不同的设备可以并行处理整个模型流水线的不同阶段。上下文并行将输入上下文分为若干段,从而减少了超长序列长度输入的内存瓶颈。数据并行将模型、优化器和梯度分片,同时实现数据并行,在多个 GPU上并行处理数据,并在每个训练步骤后同步。

在Llama 3 405B模型54天的预训练期间,总共发生了419次意外中断,平均每天挂9次,可见各种优化手段上了依旧难搞定,万卡这盘棋不好操啊哈哈。

主要原因包括:
1、GPU故障: 148次 (30.1%)
2、GPU HBM3内存: 72次 (17.2%)
3、软件Bug: 54次 (12.9%)
4、网络交换机/线缆: 35次 (8.4%)
5、主机维护: 32次 (7.6%)
6、GPU SRAM内存: 19次 (4.5%)
7、GPU系统处理器: 17次 (4.1%)
8、NIC: 7次 (1.7%)
9、NCCL看门狗超时: 7次 (1.7%)
10、静默数据损坏: 6次 (1.4%)
11、GPU热接口+传感器: 6次 (1.4%)

预训练

预训练 Llama 3 405B 的方法包括三个主要阶段:(1) 初始预训练;(2) 长语境预训练;(3) 退火。

(1) 使用的初始批量大小为400 万个令牌和长度为4096的序列,在预训练2.52亿个令牌后,将这些值加倍到800万个序列和8192个令牌的批量大小。在对2.87T标记进行预训练后,我们再次将批量大小翻倍至1600万。损失峰值很少,而且不需要干预来纠正模型训练的偏差。

(2) 分六个阶段逐步增加上下文长度,从最初的 8K 上下文窗口开始,到最终的 128K 上下文窗口结束。这一长语境预训练阶段使用了大约800B 个训练标记。

(3) 在对最终 4000 万个词组进行预训练期间,学习率线性退火为 0,并保持 128K 词组的上下文长度。在退火阶段,对质量非常高的数据源进行了上采样;最后计算退火过程中模型检查点的平均值生成最终的预训练模型。

Post-Training

在这里插入图片描述
后期训练策略包括拒绝采样、监督微调和直接偏好优化。在人工标注的偏好数据上训练奖励模型(RM,和llama2差不多,只是去掉了损失的边界值),然后进行 SFT 和 DPO。每一轮后训练都包括监督微调(SFT),然后是直接偏好优化(DPO),训练数据是通过人类标志或模型合成数据(主要是生成的数据)。

  • 聊天对话格式:为了配合Agent中Tools的使用 (在一个对话回合中,它们会被发送到不同的位置(如用户、ipython),定义了一个聊天对话协议,使用各种特殊的头标记和终止标记。头标记用于指示对话中每条信息的来源和目的地。终止标记用于指示何时是人类和人工智能交替发言的时间。

  • 奖励模型:奖励模型用于对人工标注的提示进行拒绝采样。对于奖励模型,训练目标是相同的,只是由于收益递减而删除了损失中的边际项。每个偏好排序样本都有两到三个响应,排序如下:已编辑 > 选择 > 拒绝。

  • 监督微调:使用标准交叉熵损失(同时屏蔽提示标记上的损失)对预训练语言模型进行微调。在405B模型 8.5K 到 9K 步的过程中以 1e-5 的学习率进行微调。

  • 直接偏好优化DPO:至于为什么没用PPO,官方说发现 DPO 对大规模模型的计算要求更低,而且性能更好。还对 DPO 算法进行了如下修改:1.屏蔽 DPO 损失中的格式标记:屏蔽了诸如头和终止token之类的特殊token,以稳定训练。这些token的存在(无论是在接受的响应中还是在拒绝的响应中)都会导致学习目标发生冲突。2.负对数似然损失正则化:对所选序列应用额外的负对数似然 (NLL) 损失项,其缩放系数为 0.2

  • 数据:使用了超过2500万个合成样本进行指令微调,进一步提升了模型的表现。

总结一下:关键还是数据,尽管可见Meta在各个部分都做了各自Trick,但基础还是优质数据,同时也说明了合成数据的重要性。

Meta的AI研究科学家Thomas Scialom在播客中分享了Llama 3.1的研发思路,并展望了Llama 4的更新方向。Llama 3.1扩展至405B参数规模,以平衡推理效率与硬件约束,增加训练token数和时长,使模型达到“过度训练”状态。Scialom指出,Transformer架构缺乏灵活性,未来可能会有更多改进。Llama 3.1完全依赖Llama 2的高质量合成数据进行训练,他对合成数据的潜力表示看好。在评估方法上,他们尝试了多种方法,包括奖励模型、model-as-a-judge和多样化的提示。Meta已开始训练Llama 4模型,重点放在agent技术上,强调优质指令模型对agent能力的重要性。

相关链接

官方博客链接:https://ai.meta.com/blog/meta-llama-3-1/

技术报告PDF链接: https://pan.baidu.com/s/17CuihZ1hafgwUv4ZIu0qtA?pwd=ds2y 提取码: ds2y

关于llama3.1真实评测可以看https://mp.weixin.qq.com/s/6KJgrpfrJsvne0vbaD2DLw

笔者水平有限(写的很米田共),大家可看下面好文:
-Meta Llama 3.1-405B AI 模型多项跑分超越 GPT-4o,如何评价该款模型? - 张俊林的回答 - 知乎
https://www.zhihu.com/question/662354435/answer/3572364267

包包算法笔记–LLama 405B 技术报告解读:https://mp.weixin.qq.com/s/8RYqgfuYga0YU8H8XqNNOA

Llama3 92页技术报告中文全文详解
https://mp.weixin.qq.com/s/FaFXAMbHeUNMss3dTNi2eA

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

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

相关文章

基于MPC在线优化的有效集法位置控制器simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 模型预测控制是一种基于模型的优化控制方法,它利用过程模型预测未来行为,并通过求解一个优化问题来确定最优控制序列。MPC的特点在于它能够处理系统的动…

罗汉果糖基转移酶 SgUGT94-289-3--文献精读-37

Structural insights into the catalytic selectivity of glycosyltransferase SgUGT94-289-3 towards mogrosides 关于糖基转移酶 SgUGT94-289-3 对罗汉果苷催化选择性的结构洞察 摘要 罗汉果苷是一系列从罗汉果 (Siraitia grosvenorii) 中提取的天然甜味剂。这些罗汉果苷具…

PyQt5入门

Python中经常使用的GUI控件集有PyQt、Tkinter、wxPython、Kivy、PyGUI和Libavg。其中PyQt是Qt(c语言实现的)为Python专门提供的扩展 PyQt是一套Python的GUI开发框架,即图形用户界面开发框架.。而在Python中则使用PyQt这一工具包(PyQt5、PyQt5-tools、PyQt5-stubs&am…

数学建模--支持向量机

目录 SVM的基本原理 SVM的应用场景 实现细节与案例分析 总结 支持向量机(SVM)在处理非线性数据时的核函数有哪些,以及它们各自的优缺点是什么? 如何选择支持向量机的惩罚参数CC以优化模型性能和计算效率? 在实际…

Day17_1--AJAX学习之GET/POST传参

AJAX 简介 AJAX 是一种在无需重新加载整个网页的情况下&#xff0c;能够更新部分网页的技术。其实AJAX就可以理解为就是JS。通过AJAX也就实现了前后端分离&#xff0c;前端只写页面&#xff0c;后端生成数据&#xff01; 现在开始通过实例学习&#xff1a; 1--GET传参 <!…

4.4 标准正交基和格拉姆-施密特正交化

本节的两个目标就是为什么和怎么做(why and how)。首先是知道为什么正交性很好&#xff1a;因为它们的点积为零&#xff1b; A T A A^TA ATA 是对角矩阵&#xff1b;在求 x ^ \boldsymbol{\hat x} x^ 和 p A x ^ \boldsymbol pA\boldsymbol{\hat x} pAx^ 时也会很简单。第二…

深入解析 kubectl describe pod:全面了解 Kubernetes Pod 的运行状态

引言 在 Kubernetes 集群中&#xff0c;kubectl describe pod 命令是运维人员和开发者常用的工具之一&#xff0c;它提供了有关 Pod 的详细信息&#xff0c;帮助我们了解 Pod 的状态、配置和运行状况。这篇博文将深入解析 kubectl describe pod 命令的输出内容&#xff0c;逐项…

Transformer网络的魔改结构与应用领域

Transformer网络的魔改结构与应用领域 Transformer的基础架构Transformer的变体Transformer的应用领域未来发展方向 参考文献 自从Transformer架构在2017年被提出以来&#xff0c;它已经成为深度学习领域的一项革命性技术。Transformer最初应用于自然语言处理&#xff08;NLP&a…

测试左移,浅谈如何编写可反复执行的单元测试用例

测试左移&#xff0c;浅谈如何编写可反复执行的单元测试用例 背景当下现状期望目标当下困境 解决问题问题1&#xff1a;事务提交Transactional代码示例 问题2&#xff1a;对数据库数据强依赖Sql代码示例SQL脚本示例 问题3&#xff1a;断言assert的使用代码示例DemoTestBaseAppl…

触想工业显示器方案在汽车装配生产线上的应用

一、行业发展背景 中国汽车工业协会数据显示&#xff0c;2023年我国汽车产销量双双实现历史性突破&#xff0c;分别达到3016.1万辆和3009.4万辆&#xff0c;并连续15年位居全球首位。 汽车产业热销背后是先进的生产装配体系支撑&#xff0c;从零部件到整车&#xff0c;汽车的生…

IntelliJ IDEA下载、安装、运行,示例代码;最详细安装和运行教程

IntelliJ IDEA下载、安装、运行&#xff0c;最详细安装教程 以下内容参考&#xff1a; 原文标题&#xff1a;IntelliJ IDEA下载安装教程&#xff08;非常详细&#xff09;从零基础入门到精通&#xff0c;看完这一篇就够了-CSDN博客 原文地址&#xff1a;https://blog.csdn.net/…

汇编语言代码中立即数的前缀和后缀

汇编语言的语法细节非常多&#xff1b; 1 以A-F开头的十六进制数前需要加0 在汇编语言代码中&#xff0c;‌以A-F开头的十六进制数前需要加0以避免被识别为助记符。‌ 如下图&#xff0c; MOV AL, AFH&#xff0c; 这样将报错&#xff1b; AFH的前面加0就对了&#xf…

基于STM32的智能医疗监控系统教程

目录 引言环境准备智能医疗监控系统基础代码实现&#xff1a;实现智能医疗监控系统 生理参数监测模块数据处理与存储模块无线通信模块用户界面与报警系统应用场景&#xff1a;医疗监测与优化常见问题与解决方案收尾与总结 引言 随着健康管理需求的增加&#xff0c;智能医疗监…

“消费新纪元:解锁消费增值的无限可能“

亲爱的顾客朋友们&#xff0c;大家好&#xff01;今天&#xff0c;我非常荣幸能与大家分享一种前沿的消费理念——“消费增值”&#xff0c;它旨在让您的每一次消费都充满额外的价值与回报&#xff01; 在传统消费观念里&#xff0c;我们往往只是简单地支付金钱以换取商品或服务…

IBM:生成式AI时代的网络安全研究报告

《生成式 AI 时代的网络安全》由 IBM 发布&#xff0c;该报告指出随着生成式 AI 在企业中的广泛应用&#xff0c;网络安全面临新的挑战与机遇。 一、简介 网络安全领导者在面对生成式 AI 带来的变革时&#xff0c;需应对其潜在风险。尽管生成式 AI 能大幅提高企业生产力&…

学python的第二天:第一个代码

打印一个“Hello World” print 中文含义“打印” PyCharm&#xff08;以后简称PC&#x1f641;&#xff09;的参数解释 它吧啦吧啦说个不停 但我只打印一个“Hello World” 代码&#xff1a; print("Hello World") 效果&#xff1a; 魔改时间到 一号选手 请…

python 可视化探索(三):Seaborn数据可视化

总结&#xff1a;本文为和鲸python 可视化探索训练营资料整理而来&#xff0c;加入了自己的理解&#xff08;by GPT4o&#xff09; 原作者&#xff1a;作者&#xff1a;大话数据分析&#xff0c;知乎、公众号【大话数据分析】主理人&#xff0c;5年数据分析经验&#xff0c;前…

0803实操-数字取证

0803实操-数字取证 易失性数据收集 创建应急工具箱&#xff0c;并生成工具箱校验和&#xff0c;能在最低限度地改变系统状态的情况下收集易失性数据。 数据箱 使用md5sums.exe对工具目录中的所有文件进行计算 获取计算机本地日期和时间。输入命令date/t>timefront.txt和…

MES系统在企业数字化转型中扮演了什么样的角色

MES系统&#xff08;制造执行系统&#xff09;在企业数字化转型中扮演了至关重要的角色。以下是MES系统在企业数字化转型中的具体作用&#xff1a; 一、实现生产过程的数字化与智能化 实时监控与数据采集&#xff1a;MES系统通过实时监控和数据采集&#xff0c;将传统的手工记…

npos解析

概念理解 .npos是一个常数&#xff0c;表示size_t的最大值&#xff08;Maximum value for size_t&#xff09;。许多容器都提供这个东西&#xff0c;用来表示不存在的位置 #include <iostream> #include <limits> #include <string> using namespace …