常用于做网站的软件教育机构代理平台

张小明 2026/1/1 22:52:23
常用于做网站的软件,教育机构代理平台,东营市信息网官网,做建筑材料哪个网站好一点为兼顾内存占用与训练效率#xff0c;技术团队提出细粒度激活卸载方案#xff0c;在 Megatron-Core 框架中实现模块 / 算子级别的激活卸载#xff0c;并兼容流水线并行#xff08;PP#xff09;、虚拟流水线并行#xff08;VPP#xff09;及细粒度重计算#xff0c;最终…为兼顾内存占用与训练效率技术团队提出细粒度激活卸载方案在 Megatron-Core 框架中实现模块 / 算子级别的激活卸载并兼容流水线并行PP、虚拟流水线并行VPP及细粒度重计算最终在内存节省与性能损失间取得最优平衡。随着大语言模型LLM参数规模突破千亿级如 Kimi-K2 达 1000B 参数、上下文长度扩展至 32K 甚至更长激活值巨大的显存开销已经成为大语言模型训练过程中的核心瓶颈 —— 激活值数据量随序列长度增长呈二次方增长极易超出 GPU 内存容量该问题在多模态、强化学习RL等场景中尤为尖锐。传统解决方案如完全重计算、增大并行度或带来显著计算开销或导致通信成本激增最终导致模型训练效率的次优。为兼顾内存占用与训练效率技术团队提出细粒度激活卸载方案Fine-grained Activation Offloading在 Megatron-Core 框架中实现模块 / 算子级别的激活卸载并兼容流水线并行PP、虚拟流水线并行VPP及细粒度重计算最终在内存节省与性能损失间取得最优平衡。本文将从背景、实现原理、兼容性设计、性能验证到最佳实践全面解析该方案。本文介绍的工作已 release 到 Megatron-LM 仓库欢迎试用https://github.com/NVIDIA/Megatron-LM/tree/dev。01、背景大模型训练的激活内存瓶颈与传统方案局限在常规大语言模型训练中激活数据模型前向传播过程中产生的、且将用于反向传播阶段梯度计算的中间结果的内存开销通常与序列长度、特征维度正相关。当序列长度或特征维度持续增加时模型训练的整体动态内存开销显著增加最终可能超出 GPU 内存上限。这类问题常见于以下两类场景在长序列训练场景中例如多模态模型训练及强化学习训练序列长度相比较预训练来说有显著的增长通常可达几十 k 甚至上百 k造成激活动态显存开销急剧增加而模型本身的显存占用保持不变那么此时训练过程中激活动态显存的开销占比就会非常大。该场景下相比于增加并行度这一同时针对模型参数和激活值的传统方案我们更需要一种类似重计算的、专门针对激活值的显存优化技术并期望获得性能上的优势。第二类场景是 fine-grained MoE 模型的训练目前这类模型牢牢占据了大语言模型排行榜的前列。它们的特点是总参数量和激活参数量的比值非常悬殊典型的模型如下表所示DeepSeek-V3 的总参数量和激活量的比值是 18而 Kimi-K2 的这一比值达到了 31。这意味着和同等参数量的 Dense 模型相比fine-grained MoE 模型的计算量是前者的 1/18 或 1/31。若不对显存做额外的优化那每张卡上分到的计算量将远远少于 Dense 模型这种计算密度的降低不仅会造成 kernel efficiency 降低还会放大通信开销同时使 Host 端的开销暴露出来对性能优化提出了较大挑战。针对以上问题本文提出了 Fine-grained Activation Offloading支持 module-level/operator-level 的 offloading类似于 Fine-grained Recomputing用户可指定 offload 某个特定的 module 的 activation并与 Fine-grained Recomputing 功能组合使用实现精准、高效、全面的内存管理。本文介绍的工作已 release 到 Megatron-LM 仓库欢迎试用https://github.com/NVIDIA/Megatron-LM/tree/dev。02、实现原理2.1 方案核心思想Fine-grained Activation Offloading 的核心是“按需卸载、重叠计算、兼容并行”具体包含三大设计原则粒度精细化以模型模块如 qkv_linear、core_attn、moe_act为单位卸载激活而非层或块。计算 - 卸载重叠前向卸载、反向重载与后续计算并行执行隐藏数据传输开销。全场景兼容支持 PP1/PP1/VPP1兼容 BF16/Blockwise-FP8/MXFP8/NVFP4 精度、1F1B A2A 重叠、CUDA Graph 等 Megatron-Core 最新优化同时适配 MoE、MLA 等复杂模型结构。2.2 前向传播Forward的 offload 逻辑前向传播过程中激活卸载的关键是”模块计算完成后立即卸载激活且不影响后续计算“具体流程如下Offload 触发时机当一个模块如 core_attn完成计算后立即将其输入激活和中间激活 offload 至 CPU 内存张量是否被 offload 取决于其是否通过 save_for_backward 存储至反向阶段使用。计算 - offload 重叠offload 操作与下一个模块如 attn_proj的计算并行执行通过独立 CUDA 流D2H 流实现异步传输。特殊规则对于在 timeline 上 forward pass 与 backward pass 相邻的 chunk其内部的最后一层的激活将不进行 activation offloading如下图中标红的 chunk 所示因为该层激活将在反向传播阶段优先使用offload 后需立刻进行 reload否则存在增加延迟的风险。2.3 反向传播Backward的 reload 逻辑反向传播过程中reload 激活需与前向 offload 操作保持对称且错峰避免出现局部时刻的内存开销翻倍具体流程如下隔层 reload当前模块如 expert_fc2完成反向计算后再 reload 下一层对应模块如 expert_fc2的激活。避免内存翻倍通过“计算完成后再 reload ”的时序设计确保同一时刻仅保留一层激活无需维护 2 倍的激活数据量。计算 - reload 重叠reload 操作与下一个模块的反向计算并行执行通过独立 CUDA 流H2D 流隐藏传输开销。2.4 同步机制激活的 offload/reload 操作和计算 kernel 存在数据依赖因此必须添加同步机制以确保数据的正确性。本工作设计了四个同步规则启动 offload 时需确保当前 module 完成了前向计算。启动 reload 时需确保当前 module 完成了反向计算。启动 reload 时需确保 reload 对应的 offload 已经完成即 cpu tensor 已经准备好被 reload 回 GPU。启动反向计算前需确保其使用的所有激活值已经完成 reload 操作即 gpu tensor 已经准备好被用于反向计算。需要说明的是上图中相邻的 forward chunk 与 backward chunk 是不同的两个 model chunk因此 layer2 的 offload 可以与反向时 layer2 的 reload 操作进行 overlap否则依据第 3 条同步规则这两个操作应当是串行执行的。03、兼容性设计适配PP/VPP与细粒度重计算3.1 兼容流水线并行PP/VPPFine-grained Activation Offloading 在 PP/VPP 场景下的核心挑战是“块间数据依赖与顺序管理”解决方案如下Model chunk 内原生兼容对于单个 PP/VPP chunk 内的模块activation offloading 逻辑无需特别修改与 PP1 场景一致。ChunkOffloadHandler 队列管理通过单例管理器PipelineOffloadManager 维护 ChunkOffloadHandler 双端队列每个 PP/VPP chunk 的每个 micro batch 分别对应一个独立的 ChunkOffloadHandler其负责管理本 chunk 的所有 offload/reload 逻辑。双端队列维护逻辑ChunkOffloadHandler 以“ VPP stage 逆序、micro batch 正序”顺序入队此时出队顺序即为反向传播时 VPP chunk 的执行顺序。重叠优化VPP chunk 间的 activation offload 与 reload 可并行进行以减少传输延迟。特殊规则对于在 timeline 上 forward pass 与 backward pass 相邻的 chunk其内部的最后一层的激活将不进行 activation offloading因为该层激活将在反向传播阶段优先使用offload 后需立刻进行 reload否则存在增加延迟的风险。3.2 兼容 Fine-grained RecomputingFine-grained Activation Offloading 与 Fine-grained Recomputing 可以互补增效。重计算减少轻量算子的内存占用offloading 降低重计算开销较大的算子的内存压力具体协同逻辑如下算子/模块差异化策略a.轻量算子/模块轻量算子/模块的重计算开销相对较低而激活显存开销与高计算量算子/模块的显存开销在同一数量级使用 offloading 会带来较前者更多的 overhead因此进行重计算性价比更高。轻量算子/模块通常包括 layernorm、moe_act 等。b.高计算量算子/模块高计算量算子/模块进行重计算会引入很重的计算开销使用 offloading 并通过与计算进行 overlap可以在节省内存的同时达到吞吐性能上的无损或微损。高计算量算子/模块通常包括 core_attn、expert_fc1 等。c.内存完全释放对同一模块结合“重计算释放中间变量输出”和“ offloading 释放输入和中间变量”可以实现对单模块动态显存占用的全覆盖最终达到模块级别的 memory-free。在现有的代码实现里重计算和 offloading 可以覆盖一个 transformer layer 的所有 activation用户可按需选择极限情况下可以释放一个 transformer layer 的所有 activation。3.3 与 Full Recomputation 的对比Full Recomputation 通常会存储每个 transformer layer 的 input释放掉 transformer layer 前向传播时的中间变量因此最终的显存峰值会包括一层 layer 的临时中间变量以及前面所有 layer 的 input。而 Fine-grained Activation Offloading Recomputing 可以释放掉一个 transformer layer 的所有显存最终的显存峰值为一层 layer 的临时中间变量所以极限情况下这种方案有着比 Full Recomputation 更高的显存优化潜力。04、性能验证内存节省和吞吐量平衡4.1 实验配置与核心指标实验基于 Megatron-LM 框架选取 DeepSeek-V3、Qwen3-235B 和 Dots2.llm 等典型大模型围绕吞吐量和峰值内存开销两大指标考察在使能了部分重计算的 baseline 基础上对比开关 offload 功能对两大指标产生的影响预期以极少的吞吐量损失换取较大内存收益。在全层重计算的基础上将部分子模块替换为 offload其余模块采用部分重计算对比 Fine-grained Activation Offloading Fine-grained Recomputing 的组合策略与全层重计算在两大指标上的差异预期在保证极致内存收益基本不变的同时获取吞吐量收益。4.2 实验 1: DeepSeek-V3-proxy 64卡基本配置14 层 moe layer、num-experts64、采用 TP1PP4EP6VPP1 策略、MBS1GBS512、BF16 精度offload 策略baseline 不使用 offload对比实验对 expert_fc1、moe_act 和 layernorm 使能 offload以极少的吞吐量损失换取较大内存收益4.3 实验 2: DeepSeek-V3 256卡基本配置不包含 MTP 的完整 DeepSeek-V3 模型、采用 TP1PP8EP32VPP4 策略、MBS1GBS2048、MXFP8 精度offload 策略baseline 不使用 offload对比实验对 moe_act 使能 offload以极少的吞吐量损失换取较大内存收益4.4 实验 3: Qwen3-235B 长序列训练 256卡基本配置Qwen3-235B 模型、64k 序列长度、BF16 精度offload 策略basslineTP4PP8EP8VPP4CP4recompute layernorm、moeoffload: 在 baseline 基础上 CP4-CP1offload qkv、layernorm、core_attn、attn_proj在保证极致内存收益基本不变的同时获取吞吐量收益4.5 实验 4: Dots2.llm 512卡基本配置完整 Dots2.llm 模型Dots2 是小红书的最新一代自研模型采用 MoE 架构本实验采用该系列的文本模型 Dots2.llm更多模型具体信息会在未来工作中逐步披露、MBS1GBS4096offload recompute 组合策略a.offloadmoe_actb.recompute除 moe_act 以外的所有 submodule包括 attention module、router、moe_fc2 等在保证极致内存收益基本不变的同时获取吞吐量收益4.6 开销分析与优化实验中观察到两类潜在开销具体实践中通过针对性优化将影响降至最低PCIe 带宽竞争H2D/D2H 传输与跨节点 A2A 通信竞争 PCIe 带宽导致 A2A 通信变慢。这个问题首先可以通过 Megatron-Core 提供的A2A Overlapping 解决A2A 通信被计算 kernel 所隐藏它的变慢对整体的性能影响不大其次在具有比较大的 NVLink Domain的集群A2A 通信可以控制在 NVLink domain 内不会受 H2D/D2H 的影响CPU 开销张量打包 / 解包、钩子回调带来额外 CPU 负担可以通过开启 CUDA Graph 来降低 CPU 开销对整体性能的影响另外 Offloading 节省的显存可以用来增加 GPU 的计算密度进一步降低训练中 CPU 开销带来的影响。05、最佳实践从诊断到落地的全流程指南5.1 步骤 1诊断内存瓶颈通过手动计算或者 torch 的 memory snapshot 找出一个 transformer layer 占用显存量比较大的 topK 个 activationDump memory snapshot 的方法https://pytorch.org/blog/understanding-gpu-memory-1/5.2 步骤 2计算最大可卸载张量大小需确保 offload/reload 的传输时间可被计算完全掩盖关键公式最大可卸载字节 单模块计算时间 × H2D/D2H带宽带宽测试使用 https://github.com/NVIDIA/nvbandwidth工具测试硬件带宽计算时间通过 NSys report 计算一个 transformer layer 的耗时例如单层计算耗时 2ms则可卸载最大字节数为 2ms×40GBps80MB。前反向计算不均衡通常情况下我们只需考虑前向即可因为反向计算时间是前向的 2 倍而且 nvbandwidth 给出的数据显示 H2D 要略快于 D2H故反向传播时的 reload 相较于前向的 offload 更容易被隐藏offloading 的 overlap 瓶颈集中在前向阶段。5.3 步骤 3配置 offload 与后验证参数配置通过 --offload-modules 指定卸载模块例如 --offload-modulescore_attn,expert_fc1验证指标a.NSys report 时序图检查 D2H/H2D 是否与计算完全重叠如下图b.Memory snapshot确认目标模块的 activation 已按预期释放。具体地开发者可以仔细查看 memory snapshot 里的每次显存分配操作来确认相应的 activation 是否被及时释放掉查看显存节省量是否已达到预期。5.4 步骤 4迭代优化调整 offload 模块若内存仍不足增加 offload 模块如 attn_proj若性能损失过大将部分 offload 模块换成重计算如保留 layernorm 重计算并行度适配结合上一步的显存节省量通过显存估计器https://huggingface.co/spaces/ISEEKYAN/megatron_memory_estimator调整 TP/CP/PP 并行度如将 TP 从 4 降低至 1提升计算强度重复上述步骤06、未来计划当前方案仍有进一步优化空间后续将重点推进五大方向支持 CUDA Graph 捕获卸载模块解决当前 CUDA Graph 无法捕获卸载操作的限制进一步降低 CPU 开销优化 FP8 张量卸载减少 FP8 张量在 CPU-GPU 传输中的类型转换与打包开销兼容 Megatron-FSDP实现细粒度卸载与 FSDP完全共享数据并行的协同适配更大规模模型训练。支持不同层的卸载策略的差异化配置当前卸载策略为全局配置所有层采用统一的卸载策略后续将允许不同层采取不同卸载策略以适应流水线并行在 warm-up 阶段与 steady 阶段可掩盖的数据搬运量不一样的特点。支持跨 pp rank 的显存均衡我们可以让 Offload 策略感知 PP 里不同 rank 的显存消耗不一致的问题从而控制较大的 pp rank 减少非必要的 offload 操作使它们的显存占用尽可能均衡最大程度利用显存和降低对性能的影响。总结Megatron Core 中的细粒度激活卸载方案通过 “模块级粒度、计算 - 传输重叠、全并行兼容” 的设计在长上下文训练中实现了 “峰值内存收益 吞吐性能收益” 的联合最优。实验表明该方案可使 DeepSeek-V3、Dots2.llm 等模型以吞吐损失 1%-2% 的代价换取峰值内存开销 10%-35% 的收益或在保证极致内存收益的同时获取 7%-10% 的吞吐收益为千亿级模型、长序列训练提供高效的内存解决方案。结合本文的最佳实践开发者可快速将该方案落地至实际训练任务进一步突破大模型的内存瓶颈推动更大规模、更长上下文的模型研发。如果你想更深入地学习大模型以下是一些非常有价值的学习资源这些资源将帮助你从不同角度学习大模型提升你的实践能力。一、全套AGI大模型学习路线AI大模型时代的学习之旅从基础到前沿掌握人工智能的核心技能​因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获取二、640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获取三、AI大模型经典PDF籍随着人工智能技术的飞速发展AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型如GPT-3、BERT、XLNet等以其强大的语言理解和生成能力正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获取四、AI大模型商业化落地方案作为普通人入局大模型时代需要持续学习和实践不断提高自己的技能和认知水平同时也需要有责任感和伦理意识为人工智能的健康发展贡献力量。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

建设初级中学网站wordpress记账

背景需求: 最近是小司机主题,我想画一些交通工具: 1. 乘用车 轿车: 微型/小型轿车(如:比亚迪海鸥、大众Polo) 紧凑型轿车(如:丰田卡罗拉、本田思域) 中型/中大型轿车(如:宝马3系、奥迪A6) 豪华轿车(如:奔驰S级、劳斯莱斯幻影) 跑车/运动型车(如:保时捷9…

张小明 2026/1/2 5:40:18 网站建设

上海门户网站开发佛山乐居装饰公司

第一章:Open-AutoGLM与vivo机型兼容性现状Open-AutoGLM作为一款基于AutoGLM架构开源的自动化大模型推理框架,近年来在移动端AI部署领域受到广泛关注。其核心优势在于支持多平台轻量化部署,尤其适用于高能效比的终端设备。然而,在实…

张小明 2026/1/2 7:26:23 网站建设

购物网站开发环境114黄页

还在为复杂的网络设备连接关系而头疼吗?当您面对成百上千台交换机、路由器和服务器时,仅靠表格和列表很难快速理解整个网络的结构。NetBox拓扑视图插件正是为解决这一痛点而生,它能将NetBox中的设备数据自动转换为直观的网络拓扑图&#xff0…

张小明 2026/1/2 7:56:21 网站建设

深圳营销型网站建设免费建筑人才网官网首页

Taro跨端开发终极指南:一套代码多端运行 【免费下载链接】taro 开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/ 项目地址: https://gitcode.…

张小明 2026/1/2 7:57:27 网站建设

网站服务器查找免费微信点餐小程序

摘要 随着现代农业的快速发展,果蔬作物的疾病防治成为农业生产中的重要环节。传统的疾病防治方法依赖人工经验,效率低下且难以应对大规模种植需求。信息技术的发展为农业病害防治提供了新的解决方案,通过智能化平台实现病害识别、预警和防治策…

张小明 2026/1/2 7:58:33 网站建设