上一篇博客系统性的整理和介绍了“预训练框架”,那么接下来就是“后训练框架”了。如果读者了解过的话,可以知道这个领域一个很有意思的现象:在“后训练框架”中,中国的社区、开发者和公司所占据的影响力和份额比预训练框架要高得多的多。这很大程度上要归功于Deepseek这一家公司:DeepSeek-R1几乎以一己之力引爆了RLVR的热潮,而GRPO也是DeepSeek提出的,这两个贡献直接定义了当前后训练的主流方向。随着Qwen、Seed的快速追赶,中国的相关实体在这一领域的早期贡献产生了明显的奠基者效应。在接下来的介绍中,将会更深刻的体会到这一点。我们将从一些先前遗漏的(因为较为不重要,或者较为陈旧了)较为小的后训练专用技术开始,随后扩展到当前的主流框架都有哪些。
⚠️注意事项:这部分我也是初学,许多内容原本不甚了解,因此大量参考了网络资料和其他在线内容进行学习后整理,供读者参考。如有问题,欢迎指出。
一些后训练技术
PEFT(Parameter-Efficient Fine-Tuning)
Prefix/Prompt-Tuning:在模型的输入或隐层添加$k$个额外可训练的前缀tokens(这些前缀是连续的伪tokens,是在Embedding空间内可微梯度下降训练找到的,不对应真实的tokens),只训练这些前缀参数;
Adapter-Tuning:将较小的神经网络层或模块插入预训练模型的每一层,这些新插入的神经模块称为adapter(适配器),下游任务微调时也只训练这些适配器参数;
LoRA:通过学习小参数的低秩矩阵来近似模型权重矩阵$W$的参数更新,训练时只优化低秩矩阵参数。
历史上这三种方法几乎同期出现(2021-2022 年),但LoRA最终成为事实标准,原因是几个优势的叠加:推理零开销(合并后消失)、实现简单(包一层wrapper就行)、效果最好(直接改权重比改输入或加模块更有效)、和量化技术的配合更自然(QLoRA)。
OpenRLHF(开源,Jian Hu等)
以"简洁 + 高性能"的平衡为核心的开源 RLHF 框架,代码量最小但性能不输重量级方案。
定位:面向学术研究者和想深入理解 RLHF 工程的开发者。核心卖点是代码精简易读(约 8,500 行),同时通过 Ray + vLLM + DeepSpeed 的组合实现了工业级性能。已被多所大学课程采用为教学框架。适合的场景是从单机到多机的 RLHF/RLVR 训练,模型规模支持到 70B+。不适合的场景是需要 Megatron 后端做超大规模训练的场景(只支持 DeepSpeed)。
组成:Python + PyTorch,核心依赖三个组件——Ray(分布式编排和 GPU 资源调度)、vLLM(高效 rollout generation,支持 AutoTP 和 PP)、DeepSpeed ZeRO-3(训练端显存优化)。架构上为每个模型(Actor/Critic/Reward/Ref)分配独立的 worker group,通过 Ray 调度。
有什么:
算法方面:PPO、REINFORCE++、REINFORCE++-baseline、GRPO、RLOO、DAPO、SFT、DPO、Reward Model 训练。
推理引擎:集成 vLLM,支持 AutoTP 和 PP,rollout 吞吐量很高。
分布式方面:基于 Ray 的灵活 GPU 分配,Hybrid Engine 支持所有模型和 vLLM 引擎共享 GPU 资源。支持 DeepSpeed ZeRO-3、deepcompile、AutoTP、RingAttention。
高级特性:异步 RL 训练(async_train)、异步 agent RL、统一的 token-in-token-out agent 执行范式(SingleTurn 和 MultiTurn 统一接口)、VLM RLHF(支持 Qwen3.5 等视觉语言模型)、多 agent RL(MARTI 基于 OpenRLHF 构建)。
没有什么/不足:
训练后端只支持 DeepSpeed,不支持 FSDP 和 Megatron。多轮 agent RL 的支持相对较新,成熟度不如单轮场景。没有专门的环境接口(需要通过 agent_func_path 自定义)。
veRL(火山引擎,ByteDance)
为性能和灵活性而生的 RLHF 框架,支持最多的训练后端和最高的显存效率。
定位:面向需要大规模 RLHF/RLVR 训练的工业团队和高级研究者。核心卖点是灵活的多后端架构和 resharding 机制。适合的场景是大规模训练(支持到数千 GPU)、需要 Megatron 后端的超大模型训练、需要精细控制训练-推理资源分配的场景。不适合的场景是快速原型验证(代码复杂度高、上手门槛大)。
组成:Python + PyTorch,核心依赖 Ray(编排)+ vLLM(推理)。训练后端灵活——同时支持 FSDP、DeepSpeed 和 Megatron Core 三种选择。核心创新是 WorkerDict(把多个模型放在同一组 worker 上共享资源)和 HybridEngine(同一组 GPU 上在训练和推理模式之间动态切换)。代码量约 32,000 行。
有什么:
算法方面:PPO、GRPO、REINFORCE、SFT、DPO、Reward Model 训练。
训练后端:FSDP + DeepSpeed + Megatron Core 三选一(其他框架最多支持一到两个)。
推理引擎:集成 vLLM。
核心创新——Resharding:在训练和推理之间动态转换参数的并行分布方式(比如训练时用 FSDP 的 sharding,推理时转成 TP),实现最高的显存效率。In-place transformation 避免了多余的参数拷贝。
分布式方面:基于 Ray 的 WorkerDict 架构,多个模型共享同一组 GPU,资源利用率高于 OpenRLHF 的独立 worker group 方案。
高级特性:支持 agentic mode(多轮 RL)。
特别值得一提的贡献:HybridEngine + resharding 的设计思想影响了后续很多框架,veRL 的论文(HybridFlow)发表在 EuroSys'25。
没有什么/不足:
代码复杂度最高(32,000 行),上手门槛大。resharding 引入了额外的延迟(虽然显存效率最高)。文档和教程不如 TRL 和 OpenRLHF 完善。异步 RL 的支持不如 OpenRLHF 成熟。VLM RLHF 支持相对较新。
TRL(Transformers Reinforcement Learning,HuggingFace)
HuggingFace 官方的后训练库,以易用性和生态集成为核心卖点。
定位:面向不想深入分布式细节、只想快速跑通后训练流程的研究者和应用开发者。最适合的场景是在 HuggingFace 生态内做 SFT/DPO/GRPO 实验,模型规模在 7B-70B,硬件在 1-8 卡。不适合的场景是需要大规模分布式 RLHF(多模型协调)、需要高吞吐 rollout generation、或者需要灵活的多轮 agent RL 的场景。
组成:Python + PyTorch,深度集成 HuggingFace Transformers + PEFT(LoRA/QLoRA)+ Accelerate(封装了 FSDP/DeepSpeed 做分布式)+ Datasets。不直接集成 vLLM 等高效推理引擎。代码量约 19,000 行。
有什么:
算法方面:SFT、DPO、SimPO、KTO、PPO、GRPO、RLOO、Reward Model 训练、Online DPO。
PEFT 集成:原生支持 LoRA、QLoRA(通过 PEFT 库),可以一行代码启用。
分布式方面:通过 Accelerate 支持 FSDP 和 DeepSpeed 后端,但用户不需要直接接触底层。
易用性方面:和 HuggingFace Hub 无缝对接(数据集加载、模型推送),Trainer 风格的 API,配置简单。
没有什么/不足:
没有集成 vLLM 等高效推理引擎,PPO rollout 阶段用的是 HuggingFace 的原生 generate,吞吐量远低于 vLLM。没有 Ray 等分布式编排,多模型(Actor/Critic/Reward/Ref)的 GPU 分配不灵活。不原生支持多轮 RL 和任意环境交互。不支持 Megatron 后端。不支持异步 RL。整体大规模训练效率不如 OpenRLHF 和 veRL。
其他值得注意的后训练框架
NeMo RL
NVIDIA 官方的后训练引擎,NeMo-Aligner 的下一代替代品,面向企业级部署。
定位:面向使用 NVIDIA 基础设施的企业团队,需要一站式、有官方支持的后训练方案。适合的场景是在 DGX 集群 / SLURM / Kubernetes 上做大规模后训练,需要和 NeMo 生态(Curator、Evaluator、Guardrails、NIM 部署)打通。不适合的场景是个人研究者或小团队快速实验(太重、依赖太多)。
组成:Python + PyTorch,底层训练用 Megatron Core,编排用 Ray,和 HuggingFace 有一定程度的集成。是 NeMo 全家桶的一部分。
有什么:
高性能 Megatron Core 后端,支持各种并行策略。支持端到端 FP8 训练。支持异步 RL。和 NeMo Gym(RL 训练环境库)配合。支持和 TRL、veRL 的互操作。被用于训练 Nemotron 3 模型家族。结构化数据流设计、清晰的接口定义。
没有什么/不足:
生态相对封闭(深度绑定 NVIDIA 全家桶)。社区活跃度和开源影响力不如 OpenRLHF 和 veRL。安装和配置复杂(推荐用 NGC 容器)。文档在 NeMo 重组过程中仍在完善。
DeepSpeed-Chat
最早的完整 RLHF 开源方案之一,但维护停滞,逐渐被取代。
定位:历史上是第一个把 SFT → Reward Model → PPO 全链路打通的开源方案,对 RLHF 工程的普及有重要贡献。但现在已经不推荐新项目使用——社区维护活跃度低,bug 多,性能不如 OpenRLHF 和 veRL。
组成:Python + PyTorch + DeepSpeed ZeRO。不使用 Ray 做编排(用 DeepSpeed 自己的 engine),不集成 vLLM(rollout 用自己的推理实现)。
有什么:
完整的 SFT → Reward Model → PPO 三阶段 pipeline。和 DeepSpeed ZeRO 深度集成。Hybrid Engine(在同一 GPU 上切换训练和推理模式)。
没有什么/不足:
不支持 GRPO、DPO、RLVR 等较新的算法。不集成 vLLM,rollout 吞吐量低。不使用 Ray,GPU 资源调度不灵活。不支持异步 RL、多轮 agent RL。社区广泛反映的问题包括:配置复杂、调试困难、某些场景下训练不收敛。
ChatLearn
阿里内部的后训练框架,开源但社区影响力有限。
定位:面向阿里内部及其云服务用户。支持 RLHF 的多模型编排和训练。在阿里内部有一定使用,但在开源社区中的采用率和讨论度远低于 OpenRLHF 和 veRL。
后训练框架核心特性汇总表
特性 TRL OpenRLHF veRL NeMo RL DS-Chat
─────────────────────────────────────────────────────────────────────────────────────
维护方 HuggingFace 社区(中国) ByteDance NVIDIA Microsoft
代码量 ~19K ~8.5K ~32K - -
定位 易用生态 简洁高性能 灵活极致性能 企业级 已过时
SFT ✓ ✓ ✓ ✓ ✓
DPO/SimPO/KTO ✓ ✓ ✓ ✓ ✗
PPO ✓ ✓ ✓ ✓ ✓
GRPO ✓ ✓ ✓ ✓ ✗
REINFORCE++ ✗ ✓ ✗ ✗ ✗
RLOO ✓ ✓ ✗ ✗ ✗
DAPO ✗ ✓ ✓ ✗ ✗
Reward Model训练 ✓ ✓ ✓ ✓ ✓
推理引擎集成
vLLM ✗ ✓ ✓ ✗ ✗
自有推理 HF generate - - Megatron推理 DS推理
分布式编排
Ray ✗ ✓ ✓ ✓ ✗
自有编排 Accelerate - - - DS Engine
训练后端
FSDP ✓(Accelerate)✗ ✓ ✗ ✗
DeepSpeed ✓(Accelerate)✓(ZeRO-3) ✓ ✗ ✓
Megatron Core ✗ ✗ ✓ ✓ ✗
LoRA/QLoRA ✓(PEFT) ✓ ✓ ✓(PEFT) ✗
异步RL ✗ ✓ 部分 ✓ ✗
多轮Agent RL ✗ ✓ ✓(agentic) ✓(NeMo Gym) ✗
VLM RLHF ✗ ✓ 部分 ✓ ✗
FP8训练 ✗ ✗ ✗ ✓ ✗
GPU资源共享
(Hybrid Engine) ✗ ✓ ✓(WorkerDict) ✓ ✓
Weight Sync方式 - NCCL/IPC Resharding Megatron内部 共享内存
易用性 最高 高 中 低 低
学习/教学价值 中 最高 中 低 低(已过时)
社区活跃度 高 很高 很高 中 低
─────────────────────────────────────────────────────────────────────────────────────