agent-readings / Training Agents
Tulu 3
Open post-training as a reproducible stack
---
The one sentence
Tulu 3 is an open post-training recipe that combines data curation, SFT, length-normalized DPO, RL with verifiable rewards, decontamination, and staged evaluation.
For agent training, Tulu 3 is the bridge from RLHF/DPO to verifiable-reward training: it shows how to use exact checks for math and instruction-following, while documenting the operational costs and failure modes of doing that at scale.
---
Core idea
Build a staged open recipe: curate and decontaminate data around core skills, train SFT checkpoints, generate on-policy preference data and tune with...
Build a staged open recipe: curate and decontaminate data around core skills, train SFT checkpoints, generate on-policy preference data and tune with length-normalized DPO, then run PPO with binary verifiable rewards for math and precise instruction-following...
Modelreason
Runtimeact
Worldobserve
01
Identify core skills: knowledge recall, reasoning, math, coding, chat, safety, and precise instruction following.
02
Build development and unseen evaluation suites before finalizing recipes.
03
Curate public and synthetic instruction data and aggressively decontaminate against evaluations.
04
Train SFT checkpoints on Llama 3.1 base models.
---
Executable shape
The mechanism should fit on one screen.
```python
base = load_llama31(size)
evals = build_eval_suite(dev_tasks, unseen_tasks)
data = decontaminate(curate_public_and_synthetic_data(), evals)
sft = train_sft(base, data.sft_mix, loss="sum", epochs=2)
prefs = generate_on_policy_preferences(sft, data.preference_prompts)
dpo = train_dpo_norm(sft, prefs)
for prompt in data.rlvr_prompts:
completion = sample(dpo, prompt)
reward = 10 if verifier(prompt, completion) else 0
dpo = ppo_update(dpo, reward, kl_to_ref=true)
return evaluate(dpo, evals.dev, evals.unseen)
```
---