LLama 405B 技术报告解读

LLama 405B 技术报告解读

果然传的消息都是真的,meta在24号凌晨发布了llama 3的405B版本,这次还是做一个技术报告解读。

值得一提的是,在技术报告的开头,meta特意强调了一个 Managing complexity,大意是管控复杂度。

为什么没用MoE却弄个405B的dense?为什么没用PPO只用DPO?

meta给的解释是:Managing complexity,大意就是这样简单吧…

评测结果如下,这个结果跟当初网上传的那个版本还是有一定出入的,没有到摁着GPT4o锤的程度。

况且,根据GPT4o的速度来看,参数量要远远小于一个405B的dense,高下立判。不过这个无可厚非,毕竟GPT4也挺慢的

图片虽然如此,但是llama3 405B中间有许多实用的trick还是值得我们学习的,整个的画风有点像打比赛刷榜那种程度,做的很细,抠每一个上分点,那么我们来总结下一些亮点吧。

一、预训练

数据部分

  • PII数据(个人隐私数据)清洗、去重、去黄、做模型洗数据(fasttext),混合代码和推理数据,多语言数据

数据配比-打标签

  • 做模型做细粒度的打标签工作,然后根据标签采样,配不同的量去试,最终敲定了:50% 通用数据, 25% 数理数据, 17% 代码数据, 8% 多语言数据。实际这个过程比这个深入很多,据消息,国内某知名大模型团队能做到上千级别的细粒度标签实验。

数据配比-scalinglaw

  • 探索数据配比的scaling law,作者这里没有展开,大概的方法可以看我之前写过的文章,在不同的小模型上做不同的配比实验,然后用来预测大模型的最优配比。

数据退火

  • 作者发现在大模型训练的最后阶段,用高质量的数据学习能提高性能。于是在最后40B数据上,作者逐渐将学习率衰减到0。并且发现,数据退火方法,可以用来筛数据,量少,效果明显,实验更高效。

二、模型结构

  • GQA,8-kv head,超大参数的常规操作,具体参数如下。

图片

  • 126 层,层数多两层,这是一个训练阶段方便流水线并行切分的技巧。
  • 长文拼接时候,使用attention mask防止不同来源的数据串味。样本间穿越在预训练阶段影响不大,以前大家也不在乎,但作者说,在扩长序列时影响很大。
  • 词表大小为128K,英语语料的压缩率有所提高,同样计算量能够过更多数据,并且增强了非英语的能力。这里面中文水平如何,还等着大家测试,不过根据下面实验部分的case study看,这次中文能力还是不错的。
  • RoPE theta 调到了500000,再次感谢苏神。

三、scalinglaw

作者说了现有的scalinglaw通常只预测loss,而不是特定的benchmark上的表现;(2)scalinglaw可能因基于小资源进行的预训练运行而变得没那么可靠。

对此,作者搞了一个两步走方法。

1.先建立计算最优模型在下游任务上的负对数似然与训练FLOPs之间的相关性。

2.利用scalinglaw模型和使用更高计算FLOPs训练的旧模型,将下游任务上的负对数似然与benchmark的准确率指标关联上。作者在这步用了LLama2系列的模型

作者在ARC上使用这个方法,能看出来拟合的还不错

图片四、infra/硬件/网络

  • GPU资源 16K H100 80GB with NVLink,有钱。
  • 专用集群,不是之前的Meta’s AI Research SuperCluster,船新的Meta’s production clusters,240 PB  SSD,7500 台机器,2TB-7TB/s 吞吐,如此高吞吐的存储集群是为了最小化ckpt的IO耗时。

网络部分,专业的机房看管员可以仔细研究下:

  • RoCE,单口400Gb/s

具体的拓扑结构为

  • 3层网络架构,单体24K GPU
  • 最底层1个ToR下2机器配16卡
  • 1 Pod 配192 ToR
  • 3072 张GPU 1:1 收敛比
  • 往上8 个Pod 1:7 的收敛比
  • 由于跨pod 带宽降低,所以模型并行编排和资源调度均需考虑网络架构

负载均衡

  • 两个GPU 间使用16个流,而不是1个,来降低单流流量,以更好地负载均衡
  • 在网络包的头部增加了特殊区域,通过hash 来使得流的选路更加均衡

拥塞控制

  • 在spine 上使用deep-buffer 交换机以适应集合通信导致的短时拥塞,并能够降低慢节点引发持久的拥塞和反压

整体的吞吐如图

图片别的不说,就这万卡集群的吞吐率,要比国内小作坊的16卡微调个小模型都要高。

模型并行策略:

图片* 4D并行,TP + CP + PP + DP,多了一个上下文并行CP,或者称之为序列并行。

  • 使用了FSDP,但是model weight 只拉取一次,以减少反向梯度计算时的weight allgather 通信

PP并行策略改进

  • Batch Size 限制:当前的流水线并行策略 会限制 micro batch 个数为流水线stage 的整数倍,会导致global batch size 和 流水线 stage 相互制约
  • 显存不均衡:第1个stage 会多出很多显存占用,之后逐stage 降低
  • 计算不均衡:最后一层会额外计算 output layer 和 loss,增加了计算量和延时,首尾stage 做了padding

CP并行策略的改进

  • 和Ring CP 一样的在序列维度切分,切分为2*CP 份以负载均衡,但没有用环状通信来overlap 计算和通信,而是基于allgather 的通信。

网络架构感知的并行策略

  • [TP, CP, PP, DP] 的并行策略是针对网络通信优化做专门设计的
  • 开发了显存预估和性能探查工具,用以平衡显存开销和通信性能

数值稳定性

  • FP32 的梯度累加和通信

集合通信

  • 基于NCCL 开发了 NCCLX,在高延迟网络下显著提升性能
  • [TP, CP, PP, DP]  并行策略可能导致PP 和DP 通信跨Pod:原 allgather 和 reducescatter 实现依赖数据chunk 和拷贝,需要大量的小的控制信息的通信,进行额外的拷贝操作,且占用GPU 资源来做通信。对此,llama团队 优化chunk 策略,提升小的控制包的通信优先级。

可用性

不怎么样,运行54天,崩了419次(预期外训练中断),具体的分布如下:

图片网络问题和GPU问题各占一半。

前面提到了那么多保障和优化措施,还是平均每天挂了8次,大约是90%的可用性。只能说操盘万卡集群不容易呀!

五、预训练

  • 三阶段训练法:(1) 初始训练 initial pre-training, (2) 长文训练 long-context pre-training, and (3) 退火训练 annealing

有点像做菜的感觉…作者特意强调了LLama3增加了非英文部分的比例,增加了数理数据,提高逻辑推理能力。看来这次是铁了心的死磕GPT4了。

初始训练:

  • 余弦调度 8 × 10−5 , 8,000 steps热身, 然后在1,200,000步上降到 8 × 10−7
  • 上下文长度和BS缓慢增加,配4M的bs用4,096长度, 再配8M的bs扩展序列长度为 8,192,这个阶段大约是 252M tokens。最终16M的BS

长上下文训练

  • 从l 8K 逐步增加到 128K

退火训练

  • 最后40M token,用128K长度,逐渐线性缩减学习率到0

五、后训练(对齐)

对话数据格式

  • 多种角色的输入输出的设定和特殊token

RM建模

  • 除了好坏标注之外,增加一路人工编辑,作为最优秀的质量样本 edited > chosen > rejected

SFT

  • 拒绝采样
  • 1e-5 学习率训 8.5K to 9K steps

DPO

  • token屏蔽,一些特殊的字符不参与学习
  • DPO+NLL的loss,在IRPO论文里提到的方法,类似正负样本的精细化调权手段

模型融合

  • 权重平均,RM, SFT, or DPO各个阶段独立融合

迭代式训练

  • 同LLama2,最新的模型采样最新的偏好数据,武当总云梯,左脚踩右脚

数据方面

  • 做的特别细,常用的方法如做细粒度标签采样,做模型打各种角度的分,精细的语义去重等
  • 合成数据
  • “model-as-judge”做模型,去做数据质量筛选

数据部分大体的方法大家都用过,各种角度的数据生产在这篇技术报告中讲的非常细,这里建议大家去看看,不管什么什么O,最终还是洗数据,造数据,选数据。

下面是正文全文的部分,powered by kimi

1 引言

基础模型是设计用来支持大量人工智能(AI)任务的通用模型,它们涵盖了语言、视觉、语音等一个或多个模态。这些模型构成了许多现代AI系统的基础。

现代基础模型的发展包括两个主要阶段:(1) 预训练阶段,在这一阶段,模型通过大规模使用简单任务(如下一个词预测或字幕生成)进行训练;(2) 后续训练阶段,在这一阶段,模型被调整以遵循指令、符合人类偏好,并提高特定能力(例如编码和推理)。

在本文中,我们介绍了一套新的语言基础模型,称为Llama 3。Llama 3模型群原生支持多语言、编码、推理和工具使用。我们最大的模型是一个具有405B参数的密集Transformer,上下文窗口可达128K个token。本文对Llama 3进行了广泛的实证评估。我们发现,Llama 3在众多任务上提供了与领先的语言模型如GPT-4相当的品质。我们公开发布了Llama 3,包括405B参数语言模型的预训练和后训练版本,以及我们的Llama Guard 3模型,用于输入和输出安全。本文还介绍了我们将图像、视频和语音能力通过组合方法集成到Llama 3中的实验结果。我们观察到这种方法在图像、视频和语音识别任务上与最先进技术表现相当。由于这些模型仍在开发中,目前尚未广泛发布。

2 总体概述

Llama 3的模型架构在图1中进行了说明。我们Llama 3语言模型的开发包括两个主要阶段:

  • 语言模型预训练
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值