链载Ai

标题: LLAMA3 论文精读 [打印本页]

作者: 链载Ai    时间: 昨天 12:03
标题: LLAMA3 论文精读

前言

最近对之前精读的论文进行梳理,发现一些笔记还是非常有价值的,稍微改改发布出来给大家看看。

LLama3是几个月前的论文了,但是每次精读还是有所收获,本文将一些重点的内容加一些自己的思考和实践进去,对每个技术点进行讨论。

总体概述

如上图所示,Llama3 纯文本模态的整个训练过程分为以下几个主要阶段:

对于多模态部分,主要包括以下几个阶段,这部分不是很成熟,所以暂且略过

模型架构


与llama1 和 llama2没有大差异,效果的提升主要还是来自于:数据质量(data quality)数据多样性(diversity)和training scale。

Pretrain

Pre-Training Data

PT数据量级为15.6T,涵盖的知识截止到2023年。


Web Data


Determining the data mix

预训练数据中的数据配比是一个非常核心的话题。


退火数据:Annealing Data

论文发现,退火阶段加入高质量的代码和数学数据能够提高在 key benchmarks 上的效果。

退火训练在 llama3 8B 上训练后,在 GSM8K和MATH上分别提升了24%和6.4%,但是在 405B 模型上的提升微乎其微,这表明 405B 模型本身具备强大的上下文能力和推理能力,不需要再特定领域的退火来提升效果。

论文后面通过退火训练来评估数据质量。


Scale Laws

值得单独拉专题出来讨论。后面单独写文章讨论下。


Pre-Training Recipe

3.1 Initial Pre-Training:405B


3.2 Long Context Pre-Training

支持长度:128K,训练 token 数:800B。

用6个阶段从 8K 循序渐进的来扩大文本长度到 128K。在每个阶段训练中,通过评估模型的表现来判断在该长度上是否成功适应。评估的方向包括两个方面:


3.3 退火:Annealing

在最后的 40M tokens中,慢慢将学习率衰减到0,训练长度128k。在退火阶段增大高质量数据的配比。


对 Pretrain 的看法

当前的 Pretrain 在各大厂之间已经不存在明显差距了,并且基座的竞争已经基本结束了,国内Qwen的开源已经吊打很多大厂的闭源团队了,阿里的开源质量还是非常有保障的啊。可预见的是未来的竞争重心已经不在基座上了,现在是谁有卡,谁有数据,谁就是爸爸,看好阿里和字节。


Post-Training

整个 Post-Training 阶段如上图所示,主要是SFT 阶段DPO 阶段进行迭代优化的过程。


Perference Data:偏好数据


SFT 数据

数据来源于三个方面:

最终使用的SFT 的数据统计如下:


2.1 Rejection sampling


2.2 SFT数据质量处理与过滤

由于数据大多数都是模型生成的,因此需要过滤与质量控制。

数据清洗:

Data Pruning:采用一些模型来过滤掉低质量的数据


Capabilities

针对特定领域的数据进行优化,主要包括:Code,math 和 reasoning,Long context,tool use,factuality,steerability。

3.1 Code

生成了2.7M的合成数据。

3.2 Multilinguality

3.3 Math and Reasoning

当前的挑战:


3.4 Long Context

从8k 扩展到128k。

如果使用短sft 数据来微调模型会使得模型的长文本能力出现显著衰退。

采用LLama3 在以下领域合成数据:

然后将上述方法用于 16k,32k,64k,128k的数据生成。

配比:0.1% 的长上下文数据与短文本数据结合能够均衡整个结果。

DPO 中仅仅使用短文本不会对sft后的长文本性能产生负面影响。

对 Post-Pretrain 的一些看法

当前基座的竞争结束后接下来就是应用的竞争,而应用层面的竞争会更加关注:增量预训练,SFT,合成数据,RLHF 几个方面。

最后

我认为自 ChatGPT 掀起的这波浪潮已经到了中期,接下来的竞争会更加惨烈,最终大多数的应用落地还得是大厂和一些垂域独角兽说了算。






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5