
5分钟跑通 TRL 模型微调SFT、GRPO、DPO 完整选型指南【免费下载链接】trlTrain transformer language models with reinforcement learning.项目地址: https://gitcode.com/GitHub_Trending/tr/trlTRL 是 Hugging Face 生态里做强化学习微调的库SFT、GRPO、DPO 都是封装好的现成训练器。会装 Python 环境就能做 TRL 模型微调本文面向想微调小模型、不想手写训练循环的新手。 先对号入座再谈方法动手前先判断自己属于哪种场景场景定了方法基本就定了。想微调领域助手选 SFT手里有问题—答案形式的示范数据想让模型学会你的领域、口吻和格式用 SFT监督微调。它最稳、开销最小也是绝大多数微调任务的第一步。想训出会推理的模型选 GRPO任务能打分比如数学题做对做错就让它自己生成多份答案、用组内相对得分当学习信号这就是 GRPO。它比 PPO 更省显存DeepSeek-R1 就是用这套方法训出来的。想让回答更合偏好选 DPO手里是两个回答、一个更好的成对数据DPO 直接对偏好做优化不需要单独训一个奖励模型Llama 3 的后训练用的就是它。⚡ 五分钟跑通TRL 安装教程与第一条命令环境要求 Python 3.10 及以上先装包pip install trl再跑一次 SFT。TRL 自带命令行入口不用写任何 Pythontrl sft --model_name_or_path Qwen/Qwen2.5-0.5B --dataset_name trl-lib/Capybara --output_dir Qwen2.5-0.5B-SFT三个参数各管一件事--model_name_or_path定基座模型--dataset_name自动下载训练数据--output_dir是结果保存目录。0.5B 的模型跑完一轮就是验证整条流程是否顺畅的最低成本方式。 一张表讲清 SFT DPO GRPO 怎么选维度SFTGRPODPO用途从示范数据学任务与风格靠强化学习学推理与决策用成对偏好数据调回答口味数据形态单条问题—答案提示 可打分的生成好回答 vs 差回答对显存开销低—中高需在线生成与奖励打分中代表案例Capybara SFTDeepSeek-R1 训练Llama 3 后训练上手难度最低一条命令中等要写奖励函数低一条命令拿不准就按顺序来先 SFT 打底再用 DPO 调偏好有可验证任务才上 GRPO。 跟着一个例子走Capybara 上的 SFT目标把 Qwen2-0.5B 在 Capybara 指令数据集上微调成通用问答助手。完整命令直接来自仓库脚本的内置文档python trl/scripts/sft.py \ --model_name_or_path Qwen/Qwen2-0.5B \ --dataset_name trl-lib/Capybara \ --learning_rate 2.0e-5 \ --num_train_epochs 1 \ --output_dir Qwen2-0.5B-SFT跑完后Qwen2-0.5B-SFT目录里就是微调好的权重直接加载即可推理。显存吃紧时加上--use_peft --lora_r 32 --lora_alpha 16只训练一小份适配器主模型保持冻结。更多完整脚本和 notebook 都在 examples/ 下按文件夹自包含、可直接运行。⚠️ 新手最容易踩的 4 个坑坑 1显存不够一启动就 OOM。原因全参微调要同时装下全部参数、优化器状态和中间激活。解法8—12GB 的卡就改走 LoRA脚本支持--use_peft --lora_r 32 --lora_alpha 16再加--load_in_4bit做 4bit 加载就是 QLoRA。另外 TRL 的各训练器默认开启梯度检查点用重算换显存不用你额外配置。坑 2学习率没按训练方式调模型直接变傻。原因全参微调和 LoRA 的安全量级差一个数量级。解法全参用 2.0e-5LoRA 提到 2.0e-4脚本文档里的默认值就是这个组合。步长太大 loss 会震荡发散太小则训完等于没训。坑 3单卡批大小开不大loss 曲线抖动明显。原因小 batch 下每个梯度估计的方差大。解法用--gradient_accumulation_steps累积若干步再更新权重脚本默认的 batch 2 累积 8 相当于有效 batch 16显存却只按小 batch 算。坑 4多张卡却只用了一张。原因直接python启动只初始化单进程。解法改用 Accelerate 启动仓库的 accelerate_configs 目录里备好了多卡、DeepSpeed ZeRO-1/2/3 等现成配置按需取一份再启动即可训练脚本本身不用改。 想继续深入去哪看稳定版训练器源码trl/trainer/实验性算法BCO、CPO、KTO、GKD 等接口可能变动trl/experimental/可运行的完整示例examples/分布式训练配置examples/accelerate_configs/官方文档入口docs/source/index.md先用 Qwen2-0.5B 加 Capybara 把 SFT 完整跑一遍跑通后再换成 LoRA 上更大的模型就是最顺的路径。【免费下载链接】trlTrain transformer language models with reinforcement learning.项目地址: https://gitcode.com/GitHub_Trending/tr/trl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考