halo
whitecircle/halo加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
如果一个团队同时在做预训练、监督微调和强化学习,几乎一定会踩进同一个坑:每种训练方法都有一套自己的分布式实现和检查点逻辑。预训练团队写了一套 FSDP 封装,微调团队写了一套 DeepSpeed 封装,强化学习团队又引入第三套框架。三套代码、三种启动方式、三种保存格式,想把一个方法迁移到另一种任务上,等于重写。
Halo 的核心主张只有一句:训练方法应该共享同一套基础设施。

Halo 框架标识
Halo 由 White Circle(白环)团队构建,2026 年 8 月首次公开,到 11 月已发布三个版本(1.0.0 → 1.1.0 → 1.2.0),目前在 8 个 MoE 模型家族上提供支持。仓库约 850 star,但代码体量惊人——Python 代码约 1900 万字节,属于典型的"小团队、大工程量"项目。
Halo 最反主流的一点是:它不重新实现模型,而是直接训练 HuggingFace 模型。
它的并行能力以"包装"的方式加在原模型上——专家并行(EP)包裹 MoE 模块,上下文并行(CP)包裹注意力,张量并行与专家张量并行(TP/ETP)就地切分权重,流水线并行(PP)切分训练阶段。没有单独的分布式模型实现。训练器是 HuggingFace 或 TRL Trainer 的子类,检查点保持标准 SafeTensors 格式,from_pretrained 照常能用。
这带来一个对工程团队极其重要的收益:模型的接入成本可控。README 给出了"模型接入成本"文档——MoE 家族每个模型的 EP 层实现约 90 行,只有 GPT-OSS 例外(168 行)。
分布式原语则完全建立在 PyTorch 之上:FSDP2、DTensor、DeviceMesh 提供基础能力,DeepEP 负责专家并行的 all-to-all 通信。
训练方法全覆盖:预训练、监督微调(SFT)、偏好优化、蒸馏、离线与在线 GRPO、完全异步多轮强化学习,全部跑在同一套并行与检查点代码之上。
异步 RL 的架构分工清晰——这是设计上最见功力的一处。多轮环境 rollout 以 Ray actor 的形式运行在 vLLM 或 SGLang 服务旁边,训练侧通过原生 NCCL 把更新后的权重推送给推理服务。关键在于:训练侧保持纯粹的 Transformers 形态,不依赖 Megatron 后端,也不依赖 veRL。
性能优化是内置的:DeepEP V2、FlashAttention 4、Liger、Grouped GEMM、padding-free 与 tree packing、AdamWBF16 优化器,外加针对 GLM-5 Next、Blackwell、Hopper 及更老 GPU 的分层回退。
SFT 可以训练 MTP 头——多 token 预测头用于投机解码,可与微调并行训练,也可挂在冻结主干上训练。
SGLang 与 vLLM 双后端:提供四组 compose 文件(docker-compose.vllm.yml / .efa.yml / docker-compose.sglang.yml / .efa.yml),适配有无 EFA 高速网卡的集群。
门槛高,但路径清晰。
预构建镜像按 GPU 架构区分,无需账号即可匿名拉取:
docker pull public.ecr.aws/whitecircle/halo:blackwell # B200/B300: FA4 + FA2 + DeepEP
docker pull public.ecr.aws/whitecircle/halo:hopper # H100/H200: FA2 + FA3 + DeepEP
没有 latest 标签,必须用版本标签(如 :blackwell-1.2.0)固定——这是好设计。
Python 版本被严格锁定:requires-python = ">=3.12,<3.13"。依赖也钉得很死(accelerate>=1.11.0,<1.12.0、bitsandbytes>=0.49.2,<0.50.0),注释里直接写明原因:"0.49.2 附带 libbitsandbytes_cuda130.so,0.46.x 在 cu13 下报错"。
硬件门槛是硬性的:EP 与 DeepEP 需要 Blackwell 或 Hopper 级 GPU,官方基准用的是 8× B300。没有消费级显卡的路径——Halo 是给有集群的团队用的。
依赖栈重:Transformers 5.20、TRL 1.14、vLLM 0.32、SGLang 0.5.22、Ray、ClearML、bitsandbytes、causal-conv1d。
许可不是标准 Apache-2.0。仓库同时提供 LICENSE 与 APACHE-2.0.txt,pyproject 里写的是 LicenseRef-Halo,即"Apache-2.0 + 补充条款,冲突时补充条款优先"。补充条款内容未在摘要中完整展开,商用前必须法务审阅——这是开源采用时最容易被忽略的一步。
闭源依赖的比重不低。DeepEP、FlashAttention 4、DeepGEMM 等高性能内核来自外部生态,Halo 只是集成它们。版本演进节奏由上游决定,Halo 只能在适配层做文章。
集群运维复杂度。异步 RL 涉及 Ray actor、vLLM/SGLang 服务、NCCL 权重推送三套组件的协同,权重同步走原生 NCCL,跨机暴露面需要严格的网络隔离。
文档的双轨结构增加了阅读成本:agent-docs/ 与 human-docs/ 两套文档分别面向 AI 代理与人类维护,覆盖性能基准、并行策略、训练方法、基础设施,但缺少数值复现所需的完整环境清单。
Halo 代表的趋势是:大模型训练框架正在从"提供一整套分布式实现"转向"在 PyTorch 与 Transformers 之上做增强层"。Megatron 时代需要学一套全新的并行心智模型,而 Halo 的思路是让每个并行维度各有一个开关,且组合关系在配置期就校验(EP 可与 CP/TP/ETP 组合,PP 可与 EP/ETP 组合,其余组合直接拒绝)。
它同时回应了"训练方法碎片化"这个真实痛点:当新增一种训练方法不再需要重写并行与保存逻辑,框架的迭代速度就不再被工程债拖住。
官方数据称在 8× B300 上训练 gpt-oss-20b,吞吐可达原生 TRL 的 3.5 倍;双方都做 ZeRO-3 分片时峰值显存低 3.2 倍。1.2.0 相比 1.1.0 在十二种形状上快 1.11 到 2.07 倍。
如果你有集群,这是目前最值得关注的开源训练框架之一;如果你只有单卡,QLoRA 之类的轻量方案仍然是更现实的选择。