Tinker Cookbook:4 个最核心的训练示例

您可以使用 Tinker 和 Tinker Cookbook 轻松微调大型语言模型(LLM),满足您的特定需求,而无需管理复杂的训练基础设施。Tinker 负责分布式训练,并使用高效的 LoRA 适配器来降低成本并加快定制速度。Cookbook 提供了现成的示例和工具,适用于聊天、数学推理和强化学习等任务,帮助您快速构建和改进 AI 模型。

本文基于 thinking-machines-lab/tinker-cookbook 仓库,选取其中最基础、最重要、最能帮助理解 Tinker 训练理念的四个示例:
SL Loop、RL Loop、SL Basic、RL Basic

Tinker 是一个轻量但强大的模型训练与微调框架,强调 「透明的训练循环」 与 「可配置的训练流程」
如果你想真正理解一个 LLM 是如何被训练的,这四个例子足够作为入口。

1. sl_loop.py:从零写一个监督学习(SL)训练循环

路径:
tinker_cookbook/recipes/sl_loop.py

为什么这个例子重要?

它展示了 最纯粹的训练循环,没有任何魔法,没有隐藏逻辑,只有如下几件事:

  • 前向计算(forward)
  • 计算 loss
  • 反向传播(backward)
  • optimizer 更新(step)
  • 保存状态(save_state)

换句话说,这就是你在 PyTorch 里手写最小训练代码的 Tinker 版本。

这个例子适合谁?

  • 想看清 Tinker 如何封装训练 loop
  • 想理解训练过程背后最真实的运作方式
  • 想自己扩展 loss、指标、日志的开发者

这个示例非常“原始”,但也因此最有教育意义。

2. rl_loop.py:从零写一个强化学习(RL)训练循环

路径:
tinker_cookbook/recipes/rl_loop.py

为什么这个例子重要?

强化学习(RL)往往是微调语言模型的关键环节,例如:

  • 提升模型的对齐能力
  • 优化模型的响应质量
  • 让模型更善于按指令输出

在这个示例中,你能看到一个简单但完整的 RL 循环,包括:

  • 采样(sample)
  • 计算奖励(reward)
  • 策略更新(policy update)

它是 SFT → RLHF 或 “监督微调→强化微调” 结构里面必须理解的部分。

这个例子能帮助你:

  • 理解 RLHF 的最底层逻辑
  • 看懂策略迭代、奖励建模的基础概念
  • 为更复杂的 RL 训练(如 PPO)打基础

3. sl_basic.py:用配置完成一个监督微调流程

路径:
tinker_cookbook/recipes/sl_basic.py

重点:从“手写”变成“声明式训练”

如果说 sl_loop.py 是“自己写训练循环”,
那么 sl_basic.py 是:

你只需要写一个配置(config),Tinker 自动完成训练。

这也是 Tinker 的核心设计哲学:

  • 训练流程可读
  • 训练步骤分离
  • 用统一的 Runner 来控制整个生命周期

在这个例子里,你可以看到:

  • 如何定义数据集
  • 如何加载 tokenizer 和 model
  • 如何设定训练参数(batch、lr、epochs)
  • 如何运行并保存结果

它更像是你实际会用在项目里的训练方式。

4. rl_basic.py:声明式强化学习训练流程

路径:
tinker_cookbook/recipes/rl_basic.py

这个例子与 sl_basic.py 类似,但展示:

如何用“配置”完成一个强化学习训练(如奖励策略优化)。

相比 rl_loop.py 的手写循环,这个版本展示了:

  • 如何定义 RL 的 policy
  • 如何设定奖励函数 / 采样策略
  • 如何配置迭代步数
  • 如何用 Runner 平稳运行整个 RL 流程

你可以把它理解为 RL 训练的实用化版本,更接近实际项目。

四个示例之间的关系(一句话总结)

  • sl_loop.py:最小 SFT 训练循环(完全手写)
  • rl_loop.py:最小 RL 循环(完全手写)
  • sl_basic.py:声明式 / 自动化 SFT(实际项目用这个)
  • rl_basic.py:声明式 / 自动化 RL(实际 RL 用这个)

如果你想学习路线,我建议照这个顺序:

1 → 2(先理解底层逻辑)

3 → 4(再学自动化训练方式)

这样你会对模型训练的理解是“从底到上”的。

总结

Tinker Cookbook 的这四个例子,构成一个极简但完整的模型训练框架的核心:

示例类型难度用途
sl_loop.pySL 手写循环⭐⭐理解最底层训练流程
rl_loop.pyRL 手写循环⭐⭐⭐理解 RLHF 基础
sl_basic.pySL 声明式训练实际项目推荐
rl_basic.pyRL 声明式训练⭐⭐实用 RL 微调方式

如果未来想自己训练、微调一个模型,这四个示例几乎是“必修内容”。

GitHub:https://github.com/thinking-machines-lab/tinker-cookbook
油管:https://youtu.be/rVXNsiu5gEI