可用于简化昇腾超节点编程,释放算力潜能。提供昇腾超节点亲和的分布式并行加速能力,支持资源池化管理、拓扑感知调度、FP8混合精度训练,实现模型与系统优化解耦,保障训练稳定性与精度可复现性。
当前访问频次受限,请登录后继续访问
简介
HyperParallel 面向昇腾超节点提供分布式并行加速能力。针对资源池化、对等架构、分层网络拓扑和 FP8 低精度格式等特点,框架覆盖从集群分布式并行到芯片内多核并行,并支持 CPU DRAM 与 NPU HBM 池化管理、拓扑感知调度、通信路径规划和 FP8 混合精度训练。
核心设计
-
模型与系统优化解耦:HyperParallel 将并行、重计算和 Offload 等系统优化从模型代码中分离,并通过声明式接口注入模型;并行范式覆盖集群 SPMD、集群 MPMD 和芯片内多核 MPMD,面向大语言模型和多模态模型训练。
-
兼容 Hugging Face 生态:HyperParallel 支持直接读取 Hugging Face 模型配置和预训练权重,并复用 Transformers 中已有的模型实现;模型创建后,由 HyperParallel 以声明式方式将并行、重计算和算子替换等分布式逻辑注入模型。
-
全流程确定性:HyperParallel 支持计算、通信、数据预处理和随机数等环节的确定性,并对已支持模型进行 bitwise 对齐验证。确定性模式可能带来性能开销,但有助于复现训练结果、发现 SDC 和定位问题。
-
动静混合:静态图有利于通算并发、内存分析和执行序编排,但完整动转静对模型语法和编译能力要求较高。HyperParallel 在动态图基础上支持受约束的局部动转静。
📣 最新消息
- [Aug. 25, 2026]: Qwen/Qwen3-30B-A3B 模型支持
使用入口
HyperParallel 模型训练
HyperParallel 模型 面向训练用户,通过 YAML 配置 Hugging Face 模型、数据、优化器、并行策略以及保存与恢复方式。
支持模型
HyperParallel Core
HyperParallel Core 面向模型作者和框架开发者,提供从分布式模型构建到训练执行与状态管理的底层能力。
核心能力
- 模型切分与并行组合:以 DeviceMesh、DTensor 和 Shard 描述设备拓扑与 Tensor 布局,并组合 FSDP/HSDP、TP、CP、EP、PP 等并行策略。
- MoE 与异构执行:覆盖专家切分、路由和 token dispatch,以及流水线调度、集群 MPMD 和芯片内多核 MPMD。
- 内存与性能优化:提供 Activation Checkpoint、Activation Swap、通信与计算重叠、通信融合和自动并行能力。
- 训练与状态管理:提供优化器、分布式检查点、异步保存、离线格式转换和确定性训练能力。
相关文档
未来计划
安装
完整安装方式、源码构建参数和环境要求见 安装指南。
🚀 快速开始
使用 HyperParallel 启动模型训练
运行仓库提供的单机 8 卡训练示例 hyper_parallel/models/qwen3_moe/recipes/train.yaml:
torchrun --standalone --nproc_per_node=8 \
scripts/train_lm.py hyper_parallel/models/qwen3_moe/recipes/train.yaml
附加命令行参数可按 YAML 字段路径覆盖配置值,无需修改配置文件:
torchrun --standalone --nproc_per_node=8 \
scripts/train_lm.py hyper_parallel/models/qwen3_moe/recipes/train.yaml \
--model.pretrained_model_name_or_path=/path/to/model \
--training.train_iters=10
字段定义与解析规则见 训练配置与组件。
使用 HyperParallel Core API
以下示例在数据并行 DeviceMesh 上应用 fully_shard,实现模型参数分片:
from hyper_parallel import fully_shard, init_device_mesh
dp_mesh = init_device_mesh("npu", (dp_size,), mesh_dim_names=("dp",))
model = fully_shard(model, mesh=dp_mesh)
TP、CP、EP、PP 等组合方式见 特性使用指南,公开接口见 API 参考。
📖 文档
- 文档中心 — 文档索引与导航
- 训练配置与组件 — TrainerConfig 字段、模块结构与组件文档入口
- 安装指南 — 源码构建、依赖安装
- 特性使用指南 — 并行与训练能力指南
- API 参考 — 按特性模块组织的接口说明
- FAQ 与故障排查 — 常见问题与解决方案
- AI 辅助开发 — AI 辅助开发说明
- 社区贡献 — 开发环境、测试规范和发布流程
- 版本说明 — 版本变更记录
🗂️ 项目结构
HyperParallel/
├── hyper_parallel/
│ ├── models/ # 模型族适配层与 recipes/train.yaml,对外入口 api.py
│ │ └── _transformers/ # Transformers 模型构建与预训练权重加载
│ ├── trainer/ # TrainerConfig、TextTrainer/VLMTrainer 和训练生命周期
│ ├── components/ # 高性能 modules/functional、优化器、loss 和 checkpoint
│ ├── data/ # 数据集读取、样本转换与 dataloader
│ ├── distributed/ # 分布式模型构建、并行计划应用与激活管理
│ ├── core/
│ │ ├── dtensor/ # DeviceMesh、Layout、placement 和 DTensor
│ │ ├── shard/ # sharding plan、自定义 shard 和 DFunction
│ │ ├── fully_shard/ # FSDP/HSDP 参数与执行调度
│ │ ├── tensor_parallel/ # TP styles 与 loss parallel
│ │ ├── context_parallel/ # Context Parallel
│ │ ├── expert_parallel/ # Expert Parallel
│ │ ├── pipeline_parallel/ # Pipeline stage 与调度
│ │ └── distributed_checkpoint/ # 分布式保存、加载与 reshard
│ └── collectives/ # 集合通信接口与实现
├── examples/
│ ├── training_demo/ # 训练示例(数据准备、离线/在线 YAML)
│ ├── data/ # 数据准备脚本
│ ├── generate/ # 生成与精度对齐校验脚本
│ └── torch/ # PyTorch 后端 Core API 组合示例
├── docs/
│ ├── guide/ # 使用指南
│ └── api/ # API 参考
└── tests/ # models、Core 和后端测试
🤝 加入我们
欢迎提交 Issue 和 Pull Request。开发环境、测试规范和提交流程见 社区贡献指南。
Parallel Training System SIG
如果对 HyperParallel 的技术方向感兴趣,欢迎加入 Parallel Training System SIG。
扫描下方二维码加入 Parallel Training System SIG 微信交流群,与社区开发者交流使用经验、技术方案和项目进展。

HyperParallel 技术博客
扫描下方二维码关注 HyperParallel 小红书账号(小红书号:hyperparallel),获取技术博客与实践分享。
