资讯动态

用TRL跑通大模型后训练全流程:从SFT到DPO、GRPO的完整实战指南

发布时间:2026/9/8 21:41:03 来源:尧图企业网站定制
用TRL跑通大模型后训练全流程从SFT到DPO、GRPO的完整实战指南【免费下载链接】trlTrain transformer language models with reinforcement learning.项目地址: https://gitcode.com/GitHub_Trending/tr/trlSFT微调之后你的模型回答格式挺像那么回事可稍微绕一点的问题它又开始一本正经地胡说八道——现在缺的不是更多数据而是哪个回答更好的信号。这就是后训练要解决的问题而 TRLTransformers Reinforcement Learning正是专做这件事的库它把监督微调、偏好对齐DPO/KTO、在线强化学习GRPO/PPO、知识蒸馏收进统一的 Trainer 接口从单卡到多机集群都不用换代码。能力全景按阶段选Trainer监督阶段SFTTrainer纯文本与多轮对话两种格式都支持packingTrue可打包短样本提升吞吐偏好对齐免奖励模型DPOTrainer用 chosen/rejected 成对数据直接学KTOTrainer只认好/坏二元标签不需要成对数据ORPO/CPO是替代损失RewardTrainer则是传统路线里训练奖励模型用的在线强化学习GRPOTrainerDeepSeek 训练 R1 用的算法省掉价值模型、比 PPO 省显存PPOTrainer是经典 RLHFtrl.experimental下还有 rollout 与训练并行的异步 GRPO蒸馏DistillationTrainer已转正为稳定 API、GKDTrainer把教师模型的 token 分布压进学生模型底座能力不写代码的 CLI、Accelerate 多卡/多机、PEFT/QLoRA、Unsloth 加速、vLLM 生成加速5分钟跑通8行代码起一个SFT ⚡先安装pip install trl想要未发布的最新功能可以克隆仓库后装 editable 版git clone https://gitcode.com/GitHub_Trending/tr/trl然后pip install -e .from datasets import load_dataset from trl import SFTTrainer dataset load_dataset(trl-lib/Capybara, splittrain) trainer SFTTrainer(modelQwen/Qwen2.5-0.5B, train_datasetdataset) trainer.train()TRL 的每个 Trainer 都是 Transformers Trainer 的薄封装学习率、batch size 这些配置项用法和 HF Trainer 完全一致没有新的心智负担。不想写代码的话CLI 一条命令也行trl sft --model_name_or_path Qwen/Qwen2.5-0.5B --dataset_name trl-lib/Capybara。核心模块拆解GRPO与DPO的关键参数GRPOTrainer在线RL的省力路线PPO 需要额外养一个价值模型去估计回报显存和调参成本都翻倍。GRPO 的思路是对同一个 prompt 采样一组回答用组内平均回报当基线直接省掉价值模型。from trl import GRPOTrainer from trl.rewards import accuracy_reward trainer GRPOTrainer( modelQwen/Qwen2.5-0.5B-Instruct, reward_funcsaccuracy_reward, # 可传任意自定义奖励函数 train_datasetdataset, ) trainer.train()必须调的参数num_generations默认 8即组大小太小会让奖励基线很噪max_completion_length默认 512控制回答上限betaKL 正则强度reward_funcs支持传多个函数自动求和。DPOTrainer不训奖励模型的对齐DPO 直接在偏好对上学策略跳过奖励模型训练环节Llama 3 对齐用的就是它。from trl import DPOTrainer trainer DPOTrainer(modelQwen/Qwen3-0.6B, train_datasetdataset) trainer.train()必须调的参数beta默认 0.1策略偏离参考模型的惩罚系数是稳定性总开关loss_type默认 sigmoid换成 ipo 正则更强label_smoothing数据噪声大时有用。完整参数表见 DPOTrainer 文档。真实部署优化显存与吞吐的4个调整点显存上 LoRA/QLoRA——冻结基座只训低秩补丁相当于给模型贴一块可拆卸的贴片不碰原参数7B 模型 24G 卡可跑rollout 瓶颈GRPO 的生成阶段交给 vLLM生成卡和训练卡分离原来最耗时的 rollout 直接转给推理引擎vLLM 集成文档多卡扩展仓库自带 Accelerate 配置trl/accelerate_configs/下有 zero2/zero3/fsdp2 等加个--config就从单卡拉到多机吞吐SFT 开packingTrue把短样本拼成满长度序列再配合梯度累积拉大有效 batch踩坑实录3个高频问题 ️DPO 的 loss 一路降推理却越来越离谱→ 策略离参考模型跑偏了通常 beta 给得太小 → 保持 beta0.1还不稳就换 ipo 损失加强正则GRPO 训练慢reward 几乎不动→ rollout 生成占了大头时间batch 越小越明显 → 生成交给 vLLM并先调小max_completion_length排除长度因素训练时挺正常一推理就放飞→ 训练和推理的聊天模板不一致 → 推理前用同一套 chat template 过一遍模型仓库 trl/chat_templates/ 里备好了常见模型的模板文件别自己手搓延伸路径完整文档入口docs/source/index.md每个 Trainer 都有独立章节40 个可直接跑的示例脚本examples/覆盖数学推理、游戏wordle/2048、SQL 智能体等场景工作流固定后想省事看 CLI 文档trl sft / dpo / kto / grpo各配一条命令trl/experimental/是孵化区新算法可以先试但 API 随时可能变生产慎用【免费下载链接】trlTrain transformer language models with reinforcement learning.项目地址: https://gitcode.com/GitHub_Trending/tr/trl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价