导言
- 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企服之家,中国第一个企服评测及商务社交产业平台。 |