【LLM】Llama 3 论文精读

打印 上一主题 下一主题

主题 842|帖子 842|积分 2528

导言


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

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81428

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表