tsx81428 发表于 2025-2-19 18:43:40

【LLM】Llama 3 论文精读

导言


[*] Llama 3.5系列模型的发布:

[*]Llama 3.5系列模型是开源的,最大模型参数为405B([[稠密Transformer架构]],而不是MOE 架构),上下文窗口长度为128K。
[*]模型支持多语言和工具使用,并且在某些评估中已经接近或超过GPT-4的水平。

[*] 模型架构与练习:

[*]Llama 3.5采用了传统的稠密Transformer架构,而不是MOE(Mixture of Experts)架构。
[*]练习过程分为预练习和后练习两个阶段,后练习阶段使用了简单的SFT(Supervised Fine-Tuning)和DPO(Direct Preference Optimization)算法,没有使用复杂的RLHF(Reinforcement Learning from Human Feedback)。

[*] 性能评估:

[*]Llama 3.5在多个评估基准上表现出色,尤其是在知识面(MMLU)、代码生成(HumanEval)和数学推理(GSM8K)等任务上。
[*]模型越大,性能提拔越明显,但70B模型已经表现出较强的性能,405B模型在某些任务上提拔不大。

[*] 模型的应用场景:

[*]Llama 3.5展示了在工具使用、多语言翻译、复杂推理和代码生成等方面的能力。
[*]模型在多语言任务上表现良好,能够将故事翻译成西班牙语等语言。

[*] 模型的开源与使用限制:

[*]Llama 3.5 是开源的,但Llama团队更新了用户协议,要求使用其模型进行练习或微调的开发者必须在模型名称中包罗“Llama 3”。

[*] 未来展望:

[*]Llama 3.5系列模型在开源模型中的地位稳固,预计在一段时间内将继续保持领先地位。
[*]只管模型性能强盛,但在现实应用中,70B模型已经能够满足大部分需求,405B模型的练习和推理成本较高。

总结来说,Llama 3.5系列模型在性能、架构和应用场景上都有明显的上风,尤其是在开源模型范畴,但其练习和推理成本较高,且与竞争对手Mistral之间存在剧烈的竞争。
预练习数据

1. 预练习的四个关键步调:



[*]数据集构建:从互联网上抓取大量数据,涵盖多种来源(如 Common Crawl、GitHub、YouTube等),并进行去重和清洗。
[*]模型架构与Scaling Law:确定模型巨细和练习数据量,通常需要根据数据和架构进行调整。
[*]练习过程:大规模练习需要几个月时间,涉及数千张GPU卡,练习过程中需要容灾处理。
[*]多阶段练习:练习分为多个阶段,每个阶段的目的和数据处理方式可能不同。
2. 预练习数据的来源与处理:



[*]数据来源:

[*]互联网抓取(如Common Crawl、GitHub、YouTube等)。
[*]垂直网站(如Meta可能使用Facebook数据)。
[*]书籍、代码库(如GitHub)、视频字幕等。

[*]数据清洗:

[*]去除重复数据(URL去重、文档去重、行级别去重)。
[*]使用MinHash等算法处理大规模文本去重。
[*]过滤低质量数据(如广告、导航栏、脏词、PII信息等)。
[*]使用分类器(如FastText、Roberta)对数据进行质量打分和分类。

[*]特殊数据处理:

[*]代码和数学推理数据的抽取与保存,提拔模型的推理能力。
[*]多语言数据的处理,包罗语言分类和去重。

3. 数据混合与采样:



[*]数据混合比例:

[*]高质量数据(如数学、代码、Wikipedia)需要[[上采样]],低质量数据(如娱乐、成人内容)需要下采样。
[*]最终数据混合比例为:50%通用知识、25%数学和推理、17%代码、8%多语言。

[*]多语言数据处理:

[*]多语言数据在互联网中占比较高,但在练习中被下采样,导致Llama 3的多语言能力较弱。

4. 退火技术(Annealing):



[*]退火的作用:

[*]在练习后期,使用少量高质量数据(如数学、代码)进行退火练习,提拔模型在特定任务(如数学推理)上的表现。
[*]雷同于“考前突击”,通过重新调整学习率,在小规模高质量数据上微调模型。

[*]退火的效果:

[*]在GSM8K等数学评测集上,退火技术明显提拔了模型的表现。

[*]数据质量评估:

[*]通过退火技术,可以评估新数据源的质量,确定其对模型性能的提拔效果。

5. 技术细节与挑衅:



[*]数据清洗的复杂性:

[*]数据清洗是一个耗时且资源麋集的过程,涉及大量人工和计算资源。
[*]需要根据详细任务和数据特点,定制化处理(如代码、数学公式的抽取)。

[*]模型练习的容灾与稳定性:

[*]大规模练习需要处理硬件故障和数据分布变化。

[*]数据混合的实验性:

[*]数据混合比例需要通过多次实验确定,没有同一的最佳答案。

6. 与竞争对手的对比:



[*]Llama 3.5在数据质量和练习技术上进行了大量优化,尤其是在代码和数学推理任务上表现突出。
[*]与Mistral等竞争对手相比,Llama 3.5更注意数据多样性和高质量数据的利用。
7. 未来改进方向:



[*]多语言能力的提拔:当前Llama 3的多语言能力较弱,未来可能需要增加多语言数据的比例和质量。
[*]数据清洗和处理的进一步优化:通过更精致的数据处理技术,提拔模型在特定任务上的表现。
总结来说,Llama 3.5 的预练习阶段注意数据质量、多样性和高效利用,通过数据清洗、混合和退火技术,明显提拔了模型在代码、数学推理等任务上的性能。然而,多语言能力仍是其短板,未来可能需要进一步优化。
模型

1. 模型架构概述



[*]底子架构:Llama 3 使用了标准的稠密Transformer架构,与之前的版本相比没有本质变化。
[*]性能提拔来源:

[*]数据质量和多样性。
[*]模型规模更大(参数更多)。
[*]数据清洗和处理的优化。

2. 重要改进点


[*] Grouped Query Attention (GQA):

[*]背景:在多头注意力机制(Multi-Head Attention)中,每个头都有自己的Key(K)、Value(V)和Query(Q)。在推理时,K和V需要缓存(KVCache),导致内存占用高。
[*]GQA的焦点思想:将多个头的K和V分组共享,减少内存占用和计算量。

[*]比方,将8个头的K和V分成4组,每组共享相同的K和V。

[*]优点:

[*]明显减少KVCache的内存占用。
[*]减少权重存储和计算带宽。

[*]适用场景:特殊适合大模型(如70B、405B)的推理优化。

[*] 长序列练习中的掩码优化:

[*]题目:在长序列练习中,一个样本可能包罗多个文档,计算Attention时,不同文档之间的Token不应相互影响。
[*]解决方案:在Self-Attention中参加掩码,确保每个Token只与同一文档内的Token计算Attention分数。
[*]适用场景:支持更长的上下文窗口(如128K)。

[*] Tokenizer改进:

[*]辞书巨细:从Llama 2的32K扩展到128K。

[*]100K来自GPT-4的Tokenizer(tiktoken),28K为新增的非英语Token。

[*]优点:

[*]提拔多语言支持能力。
[*]减少Token数量,提拔计算服从(比方,一个英文单词从2个Token减少到1.5个Token)。


[*] RoPE位置编码优化:

[*]改进:使用更大的超参数(Theta),支持更长的上下文窗口(如32K)。
[*]优点:提拔模型对长文本的处理能力。

3. 模型规模与参数



[*]模型规模:

[*]8B:32层,4096宽度。
[*]70B:80层,8192宽度。
[*]405B:126层,16384宽度。

[*]参数增长规律:

[*]模型巨细与层数成正比,与宽度成平方关系。
[*]比方,8B到70B:层数×2.5,宽度×2,总参数增长约10倍。

4. Scaling Law(缩放定律)



[*]焦点思想:通过小模型的实验结果猜测大模型的性能。

[*]传统Scaling Law:猜测下一个Token的损失(Loss)。
[*]Llama 3的改进:猜测下游任务(如数学推理)的损失和精度。

[*]应用场景:

[*]确定最佳模型规模和练习数据量。
[*]比方,给定计算资源(如GPU卡数和练习时间),猜测最优模型巨细(如405B)。

[*]实验结果:

[*]在小模型上拟合的Scaling Law能够较正确地猜测大模型的性能。
[*]不同任务(如数学推理、代码生成)的Scaling Law曲线不同,需要分别拟合。

5. 练习与推理优化



[*]练习挑衅:

[*]大规模练习(如405B模型)需要数万张GPU卡,练习时间长达数月。
[*]需要处理硬件故障和数据分布变化。

[*]推理优化:

[*]通过GQA减少内存占用和计算量。
[*]支持更长的上下文窗口(如128K)。

6. 与Llama 2的对比



[*]重要改进:

[*]引入GQA,优化推理性能。
[*]扩展Tokenizer,支持多语言和更高效的Token表现。
[*]优化位置编码,支持更长上下文。
[*]使用Scaling Law更精准地猜测模型性能。

[*]性能提拔:

[*]在多语言、长上下文和推理任务上表现更好。
[*]但仍需进一步优化多语言能力。

7. 未来改进方向



[*]多语言支持:当前多语言能力仍较弱,需进一步优化Tokenizer和练习数据。
[*]长上下文优化:支持更长的上下文窗口(如100万Token)。
[*]练习服从:进一步优化大规模练习的稳定性和服从。
总结

Llama 3 在模型架构上的改进重要集中在推理优化(如GQA)、多语言支持(Tokenizer扩展)和长上下文处理(RoPE优化)。通过Scaling Law,Llama 3 能够更精准地猜测大模型的性能,从而优化模型规模和练习数据量。只管在多语言能力上仍有提拔空间,Llama 3 在推理、代码生成和数学任务上表现明显提拔,进一步巩固了其在开源大模型范畴的领先地位。
Llama 3 练习底子设施与技术细节

1. 硬件架构



[*]GPU集群:

[*]规模:最大使用 16,000张H100 GPU,每台机器配备8块GPU和2个CPU。
[*]网络:

[*]小模型:使用NVIDIA的Infiniband,耽误低但稳定性较差。
[*]大模型:使用RDMA over Ethernet,稳定性更高,但需要大量底层优化。
[*]带宽:每根光纤支持400Gb/s,网络架构为三层结构,上层交换机带宽为下层的1/7。

[*]存储:

[*]容量:240PB SSD,支持高吞吐量(峰值7TB/s,持续2TB/s)。
[*]Checkpoint:每个GPU的状态(1MB到4GB)需要快速写入存储系统,支持容灾和快速恢复。


2. 练习任务切分



[*]并行策略:
[*]Tensor Parallelism (TP):

[*]将模型的每一层切分到多个GPU上,每个GPU负责一部分计算。

[*]Pipeline Parallelism (PP):

[*]将模型的不同层分配到不同的GPU上,数据按顺序流过各层。
[*]题目:存在“气泡”(Bubble),即GPU空闲等待数据的时间。

[*]Data Parallelism (DP):

[*]将数据切分到多个GPU上,每个GPU计算一部分数据,末了汇总结果。

[*]Context Parallelism (CP):

[*]将长序列(如128K Token)切分到多个GPU上,减少内存占用。


[*]切分策略:

[*]405B模型:使用4D切分(TP、PP、DP、CP),充分利用16,000张GPU。
[*]70B模型:仅需TP、PP、DP,无需CP。

3. 练习服从与优化



[*]GPU利用率:

[*]理论值:H100的峰值算力为989 TFLOPS。
[*]现实值:到达43%利用率(约400 TFLOPS),在16,000张GPU上表现良好。

[*]优化点:

[*]网络优化:针对以太网进行底层优化,提拔All-Reduce和All-Gather操作的服从。
[*]数值稳定性:使用FP16进行计算,但在累加时切换为FP32,避免浮点溢出。
[*]容灾与恢复:

[*]每2小时保存一次Checkpoint,支持快速恢复。
[*]练习过程中均匀每天中断10次,重要原因是GPU和内存故障。


4. 容灾与稳定性



[*]故障统计:

[*]GPU故障:148次(占31.8%)。
[*]内存故障:85次(占18.2%)。
[*]其他故障:包罗交换机、光纤、SSD、CPU等题目。

[*]恢复策略:

[*]快速隔离故障节点,迁移任务到其他GPU。
[*]利用高速存储系统快速恢复Checkpoint,确保有效练习时间到达90%。

5. 挑衅与未来方向



[*]挑衅:

[*]硬件稳定性:H100早期批次故障率较高,GPU和内存题目频发。
[*]网络复杂性:大规模集群的网络架构计划和优化难度大。
[*]容灾与恢复:需要高效的Checkpoint机制和快速故障排查能力。

[*]未来方向:

[*]异步练习:减少同步等待时间,提拔大规模练习的服从和稳定性。
[*]硬件升级:采用下一代GPU(如B100)进一步提拔算力和能效。

总结

Llama 3 的练习底子设发挥示了大规模AI模型练习的复杂性和挑衅。通过16,000张H100 GPU、240PB SSD存储和优化的网络架构,Meta成功练习了405B参数的模型。只管在硬件稳定性、网络优化和容灾恢复方面面临诸多挑衅,Llama 3 的练习服从(43% GPU利用率)和容灾能力(90%有效练习时间)仍然到达了业界领先水平。未来,随着硬件升级和异步练习算法的引入,大规模模型练习的服从和稳定性有望进一步提拔。
模型练习过程

1. 预练习阶段

(1)基本学习率调整



[*]初始学习率 8E-05,使用 8000步线性warm-up 到最大值。
[*]之后 使用cosine decay 下降 100倍,最终到 8E-07。
(2)批量巨细和序列长度变化



[*]初始阶段:batch size 为 400万个token,序列长度 4096。
[*]中间阶段(252M token):batch size 增加到 800万,序列长度 8192。
[*]后期阶段(2.87T token):batch size 增加到 1600万。
(3)练习稳定性



[*]练习过程中 小的 batch size 更稳定,随着练习进行,徐徐增大 batch size。
[*]选择 batch size 是实验的结果,并非固定最佳方案。
(4)数据采样调整



[*]非英语数据的比例提高,提拔多语言能力。
[*]数学数据采样增加,提拔数学推理能力。
[*]新网页数据参加,增强最新信息的明白能力。
[*]低质量数据下采样,优化团体数据质量。
2. 长上下文预练习

(1)目的



[*]练习阶段使用 8K 上下文,但最终要支持 128K 长上下文。
[*]需要徐徐扩展,以避免计算资源浪费和模型不稳定。
(2)方法



[*]徐徐从 8K → 128K,一共 6次扩展,确保模型能稳定处理长上下文。
[*]采用 大海捞针测试 来评估模型的长文本明白能力。
(3)算力挑衅



[*]Self-Attention 计算复杂度是 O(n²),使得 128K 练习成本巨大。
[*]分布式计算策略 需要调整,以适应更长的上下文长度。
3. 退火(Fine-tuning 收尾阶段)

(1)学习率衰减



[*]在 末了4000万个token 上 线性降到 0。
[*]128K 上下文长度 继续保持。
(2)高质量数据采样



[*]退火阶段更关注高质量数据,以优化最终性能。
(3)模型权重均匀



[*]采用多个 final step 的 checkpoint 进行模型权重均匀,提拔稳定性。
[*]该方法在 CNN 期间用于刷榜(如 ImageNet 竞赛)。
4. 其他未详细分析的部分



[*]数据采样的详细比例和来源未透露(可能涉及版权)。
[*]数据清洗和处理方式未完全公开,但可以通过实验优化。
总结



[*]模型练习是一个实验驱动的过程,需要不断调整参数,雷同“炼丹”。
[*]批量巨细、上下文长度、数据质量 徐徐优化,以适应最终任务需求。
[*]退火阶段 重要用于收尾,确保模型稳定并具备高质量输出能力。
这套方法不但适用于 Llama 3,也符合当前主流大语言模型的预练习范式。

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