haiscale (Highflyer AI Scale) 是一个轻量级的高性能并行训练工具库,其整合了幻方 AI 多年的并行训练研发优化经验,能够帮助 PyTorch 用户更加高效、便捷地在大规模集群上训练模型。
haiscale 中包含了以下几种工具:
1. haiscale.ddp: 分布式数据并行工具,以幻方 AI 自研的 hfreduce 通信为后端,相比于 NCCL 能够获得更好的多卡拓展性能;
2. haiscale.fsdp: 极致优化 Fully Sharded Data Parallel (FSDP) 算法的实现,相比于 PyTorch FSDP 速度更快、占用显存更少;
3. haiscale.pipeline: 分布式流水线并行(或称模型并行)工具包,包含 GPipe, PipeDream 等算法,支持多机多卡训练;
4. haiscale.cpu_offload: 神经网络模型 Offload 工具,节省训练占用的显存。
下图展示了 haiscale 三种并行方式的性能,其相比 PyTorch 官方自带工具都有显著的性能提升:
用于测试的模型是 GPT-2 Medium,相关代码已开源至 hfai 模型仓库。下面将为大家简要介绍。
API文档:https://doc.hfai.high-flyer.cn/api/haiscale_ddp.html
示例模型:https://github.com/HFAiLab/hfai-models/tree/main/gpt
安装
haiscale 提供 Python 接口,通过如下方式安装:
- 如果要使用 haiscale DDP,首先需要先安装 hfreduce (如果不需要使用 DDP 可跳过这步):
sudo apt install libnuma-dev sudo apt install libibverbs-dev pip install hfreduce --extra-index-url https://pypi.hfai.high-flyer.cn/simple --trusted-host pypi.hfai.high-flyer.cn