MindSpeed LLM长序列并行指南Ring Attention与Ulysses上下文并行详解【免费下载链接】MindSpeed-LLM昇腾LLM分布式训练框架项目地址: https://gitcode.com/Ascend/MindSpeed-LLMMindSpeed LLM是昇腾 NPU 上的 LLM 分布式训练框架其上下文并行Context ParallelCP能力专门解决长序列训练难题通过Ring Attention与Ulysses两大算法把超长序列切分到多卡并行计算让 128K 甚至更长的序列训练变得可行。本文面向新手讲清两种长序列并行方案的原理差异、核心参数与最佳实践。为什么长序列训练这么难随着会话式 AI、长文档摘要、代码库理解等场景普及训练序列长度从 4K 一路飙升到 128K 以上。麻烦在于显存爆炸自注意力矩阵随序列长度 S 呈O(S²)增长单卡根本放不下传统并行不覆盖序列维数据并行、张量并行、流水线并行都不切分序列维度S 变大时单步显存依然失控。因此需要一种沿序列维度切分的并行方式这就是上下文并行CP要解决的问题。两大上下文并行算法Ring Attention vs UlyssesMindSpeed LLM 提供多种 CP 算法其中最具代表性的是megatron_cp_algoRing Attention和ulysses_cp_algoUlysses通过参数--context-parallel-algo一键切换。 Ring Attention环状分块 KV 通信Ring Attention 借鉴分块 Softmax 原理把序列切成 N 块每块由一个 CP rank 持有本地 QKV。计算时各 rank 先做本地 attention再通过环状Ring通信把 KV 块逐段传给下一个 rank边传边算循环一轮后得到全局完整结果。核心特点通信与计算可互相掩盖KV 块在环上传递的同时本地 attention 继续算通信开销几乎被藏掉无需数据拼接全程分块计算支持的理论序列长度近乎无限无头维整除约束不要求 head_size 能被 cp_size 整除适配性广要求FlashAttention 必须开启且序列分块足够长才能掩盖好通信。核心实现在 AttentionWithCp其中前向过程会构建内外两个 Ring P2P 通信结构按 rank 顺序逐块取 KV 并更新 softmax 归一化因子。参数注册与合法性校验集中在 context_parallel_feature.py例如 CP 不支持 ALiBi 位置编码、推理 KV Cache 等组合会被直接拦截。 UlyssesAll-to-All 序列-头转置Ulysses 的思路完全不同每个 rank 持有完整序列但只负责 1/N 的注意力头。每层 attention 前后各做一次all-to-all通信把切序列的布局转成切头的布局来计算算完再转回来。特点通信量与序列长度解耦CP 较小时经验上 CP ≤ 4通信占比低吞吐更高对注意力头数量有整除要求头数需能被 cp_size 整除框架内置--kv-head-repeat-before-uly-alltoall开关支持 GQA/MQA 模型在 all-to-all 前扩展 KV 头见 ulysses_context_parallel.py。一图看懂两种方案怎么选维度Ring Attentionmegatron_cp_algoUlyssesulysses_cp_algo切分方式每 rank 持有序列分块环传 KV每 rank 持有全序列切注意力头通信模式P2P 环状逐块传递可重叠计算每层两次 all-to-all头数整除要求无需 head 数被 cp_size 整除适合场景CP 较大、超长序列32K/128KCP 较小≤4、序列中等偏长显存/延迟特点通信延迟略高但可掩盖CP 小时延迟更低、吞吐更高官方长序列微调文档中也有实测佐证Llama2-7B、32K 序列、TP2/CP4 配置下Ulysses 吞吐 192.3 TFLOP/s/GPU高于 Ring 的 102.7 TFLOP/s/GPU详见 fine-tuning-with-context-parallel.md。快速上手关键参数与配置方法一键开启上下文并行步骤设置并行规模与算法--context-parallel-sizeCP 卡数--context-parallel-algo对齐序列长度--seq-length必须能被 cp_size 整除选择掩码类型训练建议--attention-mask-type causal开启通信优化--use-cp-send-recv-overlap让 send/recv 重叠。最快配置方法参数速查表参数说明--context-parallel-sizeCP 并行卡数默认 1--context-parallel-algo可选megatron_cp_algoRing/ulysses_cp_algo/hybrid_cp_algo/kvallgather_cp_algo等--seq-length序列总长度需被 cp_size 整除--attention-mask-typecausal倒三角推荐或general全量--use-cp-send-recv-overlap建议开启掩盖 CP 通信延迟--cp-window-sizeRing 窗口大小默认 1典型超长序列训练配置示例--seq-length 131072 \ --context-parallel-size 8 \ --context-parallel-algo megatron_cp_algo \ --attention-mask-type causal \ --use-cp-send-recv-overlap实战避坑让长序列并行跑出最佳性能分块长度别太小Ring Attention 的通信掩盖依赖足够长的计算块。经验法则是seq-length / context-parallel-size 8K否则 8K 以下短分块会导致通信反而慢于计算得不偿失。Mask 选 causalGPT 类模型训练场景默认用causal性能与显存都优于general全量计算。FlashAttention 是硬依赖开启 CP 时必须同时开启 Flash Attention 特性否则功能不可用。组合约束要留意CP 与 ALiBi 位置编码、KV Cache、超长滑窗等互斥DeepSeek V4 类模型需使用kvallgather_cp_algo或deepseek_v4_cp_algo这些都会在参数校验阶段给出明确报错见 validate_args。打包微调场景多样本 pack 训练时配合--reset-position-ids与--reset-attention-mask让 attention mask 按 EOD 分句生成锯齿状掩码与 CP 分块计算正确配合方法详见 长序列微调文档。相关代码与文档在哪里官方文档Ring Attention 原理与使用docs/zh/pytorch/features/mcore/ring-attention-context-parallel.md长序列 CP 微调指南docs/zh/pytorch/features/mcore/fine-tuning-with-context-parallel.mdCP 特性入口与参数定义mindspeed_llm/features_manager/context_parallel/context_parallel_feature.pyRing Attention 核心算子mindspeed_llm/core/context_parallel/ring_context_parallel.pyCP 数据切批工具mindspeed_llm/core/context_parallel/get_batch_utils.pyUlysses 特性封装mindspeed_llm/features_manager/context_parallel/ulysses_context_parallel.py总结MindSpeed LLM 的上下文并行让长序列训练不再是显存噩梦Ring Attention以环状 KV 通信 计算掩盖取胜适合 CP 较大、序列超长的大规模场景Ulysses以 all-to-all 转置取胜CP 较小时延迟更低、吞吐更高。记住三条经验——序列分块大于 8K、Mask 用 causal、FlashAttention 必开就能在昇腾集群上稳定跑通 128K 级别的长序列训练。【免费下载链接】MindSpeed-LLM昇腾LLM分布式训练框架项目地址: https://gitcode.com/Ascend/MindSpeed-LLM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
CLLAP:LiDAR伪雷达预训练,雷达-相机3D检测 mAP提升3.23 🔥 本文定位:CSDN 原创干货 | 武汉理工大学 | 雷达-相机 3D 检测预训练
🎯 核心收益:围绕4D 毫米波雷达-相机 3D 目标检测的真实瓶颈,拆开复现 CLLAP 的数据、特征和决策路径。论文最可核对的结果是:CRN 从… · 2026/9/26 11:07:38
基于MediaPipe Holistic的八段锦动作识别:75个关键点与DTW匹配实战 简介:基于计算机视觉的八段锦智能辅助训练系统选用MediaPipe Holistic模型,可同时检测33个身体关键点和42个手部关键点,在自建测试集上对8个标准动作的识别准确率达92%。资源面向动作识别与姿态估计方向的开发者、科研人员,可落地… · 2026/9/26 11:37:15
基于STM32的智能鸽子驯养系统:从定时器到状态机的嵌入式实战解析 如果你的课题或者自己的小项目恰好是“基于STM32的智能鸽子驯养系统”,先别急着把它当成一个冷门的养殖设备。我做完这个项目最大的感受是:它本质上是一个把STM32核心外设几乎全用上的综合嵌入式练习。定时器、PWM、输入捕获、编码器模式、通信接口、电源… · 2026/9/26 11:37:08
dalle3 图像生成实战:用 TaoToken 统一 Key 打通 better captions 工作流 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:37:08
CUDA版PyTorch安装实战:驱动检查、版本选择与验证排坑全指南 很多人看到“CUDA版PyTorch”这串词,第一反应就是安装过程复杂、变量太多。我在Windows笔记本和Linux服务器上反复装过十几遍环境之后想告诉你,真正费时间的不是安装动作本身,而是几个特别容易让人卡住的概念——比如驱动和CUDA到底什么关系、… · 2026/9/26 11:37:08
PX4固件体系结构深度解析:从实时操作系统到uORB中间件 1. 先搞清楚PX4到底是个什么东西我最早接触PX4的时候,跟很多人一样,以为它就是一套飞控固件,烧进Pixhawk里就能飞。后来真正开始看源码、改代码、调参,才发现事情没那么简单——PX4不是一个“程序”,而是一整套软件体系… · 2026/9/26 11:37:02
kubectl资源管理命令实战:从排查故障到集群运维的完整指南 1. 为什么资源管理命令值得系统性掌握
1.1 从一次"排查半小时"的真实经历说起 大概两年前的一个工作日下午,集群告警突然嗡嗡响起来,某核心服务连续三次健康检查失败。我当时的反应和大多数刚上手 Kubernetes 的运维一样,先 kube… · 2026/9/26 11:36:56
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46