数据截至 (上游 commit 67dfbe211a07)
TRL — 后训练方法全家桶的公共骨架与各方法实现
30 秒导读: TRL 是 Hugging Face 的大模型后训练(post-training)库。它把 SFT、DPO、KTO、GRPO、RLOO、知识蒸馏这些方法各做成一个 Trainer 类,全部继承自 transformers 的
Trainer,共用同一套数据格式约定和配置基类。它的独特价值不在任何一个单一方法,而在于所有方法住在同一个屋檐下、用同一种代码风格写——想搞清楚「DPO 和 GRPO 到底差在哪」,在这个库里可以直接对比着读。
1. 这是什么(零基础也能懂)
一句话定义
TRL 是一个给已经预训练好的语言模型做「后训练」的 Python 库:你给它一个基座模型和一份数据,它提供一整套现成 Trainer,分别实现监督微调(SFT)、偏好优化(DPO/KTO)、在线强化学习(GRPO/RLOO/PPO)、奖励模型训练和知识蒸馏。
它要解决谁的什么问题
预训练模型只会「续写文本」。要让它变成能对话、守规矩、会推理的模型,还要经过后训练。后训练方法有一整个动物园,各有论文、各有实现,散落在不同仓库里,接口互不兼容。
TRL 的做法是把它们统一收进一个库、统一成一种用法:
- 每种方法 = 一个
XxxTrainer类 + 一个XxxConfig配置类。 - 所有 Trainer 都继承
transformers.Trainer,所以分布式训练(DDP/DeepSpeed/FSDP)、混合精度、checkpoint、日志这些基础设施一次都不用自己写。 - 所有方法吃同一套数据格式约定(纯文本 / prompt-completion / 对话消息列表,见第 5 章)。