<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Study Reinforcement Learning</title><description>Notes, lectures, and exercises for learning reinforcement learning and how it is used to train language models.</description><link>https://rl.yad.codes/</link><language>en</language><item><title>Lecture 20: Exploration: from ε-greedy to intrinsic motivation</title><link>https://rl.yad.codes/posts/20-exploration/</link><guid isPermaLink="true">https://rl.yad.codes/posts/20-exploration/</guid><description>Lecture 01 set up the MDP and the Bellman equations under the assumption that you already had a way to estimate Q(s, a) for every state-action pair you cared about. Lecture 03 introduced Q-learning and gestured at…</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>classical</category></item><item><title>Lecture 21: Multi-agent RL and self-play</title><link>https://rl.yad.codes/posts/21-multi-agent-rl/</link><guid isPermaLink="true">https://rl.yad.codes/posts/21-multi-agent-rl/</guid><description>Lectures 01–08 treat the world as a single MDP. There&apos;s an environment with stationary dynamics, a reward function defined on (state, action), and a single agent whose only job is to act well in it. The textbook (Sutton…</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>classical</category></item><item><title>Lecture 22: World models</title><link>https://rl.yad.codes/posts/22-world-models/</link><guid isPermaLink="true">https://rl.yad.codes/posts/22-world-models/</guid><description>Lecture 08: Model-based RL introduced the basic idea: learn a model of environment dynamics, then use it to plan or to generate synthetic training data. That lecture covered Dyna-Q, MBPO with short rollouts from an…</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>classical</category></item><item><title>Lecture 23: Process reward models vs outcome reward models</title><link>https://rl.yad.codes/posts/23-process-reward-models/</link><guid isPermaLink="true">https://rl.yad.codes/posts/23-process-reward-models/</guid><description>Lecture 09 covered learned reward models trained on preference comparisons. Lecture 15 covered verifiable rewards: rule-based checkers that score the final answer of a reasoning chain. Both are outcome signals: the…</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>rlvr</category></item><item><title>Lecture 24: Computer use and browser agents</title><link>https://rl.yad.codes/posts/24-computer-use-agents/</link><guid isPermaLink="true">https://rl.yad.codes/posts/24-computer-use-agents/</guid><description>Lecture 16 covered agentic RL through a text-mediated interface: the model emits a string like edit_file(&quot;foo.py&quot;, ...), an environment executes it, and a textual observation comes back. The action space is finite (a…</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>agentic</category></item><item><title>Lecture 25: Long-horizon credit assignment</title><link>https://rl.yad.codes/posts/25-long-horizon-credit/</link><guid isPermaLink="true">https://rl.yad.codes/posts/25-long-horizon-credit/</guid><description>Lecture 16 set up the agentic RL loop: a policy emits an action, an environment returns an observation, the history grows, and a terminal reward shows up at the end. The example episodes there were short (a 3-action…</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>agentic</category></item><item><title>Lecture 26: RL for mathematical reasoning</title><link>https://rl.yad.codes/posts/26-rl-math-reasoning/</link><guid isPermaLink="true">https://rl.yad.codes/posts/26-rl-math-reasoning/</guid><description>Lecture 15 covered the general shape of RL with verifiable rewards: a checker replaces a learned reward model, GRPO replaces PPO&apos;s critic, and the binary correctness signal turns out to be enough to shape long-horizon…</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>rlvr</category></item><item><title>Lecture 27: RLAIF and synthetic preferences at scale</title><link>https://rl.yad.codes/posts/27-rlaif/</link><guid isPermaLink="true">https://rl.yad.codes/posts/27-rlaif/</guid><description>Lecture 09 walked through reward modeling with human preference pairs. Lecture 14 introduced RLAIF as one of several AI-feedback techniques and sketched the Constitutional AI pipeline. This lecture stays narrow on a…</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>rlaif</category></item><item><title>Lecture 28: Reward hacking and verifier design</title><link>https://rl.yad.codes/posts/28-reward-hacking/</link><guid isPermaLink="true">https://rl.yad.codes/posts/28-reward-hacking/</guid><description>Every lecture in the LLM block has been an honest attempt to specify what &quot;good&quot; means. Lecture 09 used pairwise human preferences and a Bradley-Terry head. Lecture 14 replaced the human labeler with another model and a…</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>rlvr</category></item><item><title>Lecture 29: Distributed RL systems</title><link>https://rl.yad.codes/posts/29-distributed-rl-systems/</link><guid isPermaLink="true">https://rl.yad.codes/posts/29-distributed-rl-systems/</guid><description>Supervised training has a clean separation: there&apos;s a dataset on disk, a loader streams batches to GPUs, and the gradient computation dominates the loop. You can scale by adding more workers reading from the same…</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>systems</category></item><item><title>Lecture 30: RL inference infrastructure for LLMs</title><link>https://rl.yad.codes/posts/30-rl-inference-infra/</link><guid isPermaLink="true">https://rl.yad.codes/posts/30-rl-inference-infra/</guid><description>Profile a GRPO or PPO run on a modern LLM (say, a 7B-to-70B policy with a group size of 32 and a few thousand prompts per step). You will find that something like 70–90% of wall-clock time goes to generation, running…</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>systems</category></item><item><title>Lecture 31: Hardware for RL</title><link>https://rl.yad.codes/posts/31-hardware-for-rl/</link><guid isPermaLink="true">https://rl.yad.codes/posts/31-hardware-for-rl/</guid><description>Almost every other lecture in this series treats compute as a free variable. You write loss.backward() and assume the hardware sorts itself out. That works fine through Lecture 08: CartPole and small MuJoCo tasks run on…</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>systems</category></item><item><title>Lecture 32: Meta-RL and in-context RL</title><link>https://rl.yad.codes/posts/32-meta-rl-in-context/</link><guid isPermaLink="true">https://rl.yad.codes/posts/32-meta-rl-in-context/</guid><description>Every algorithm in lectures 02 through 08 trains on one task. Pick CartPole, pick HalfCheetah, pick Atari Breakout. You put a policy through millions of environment steps, and the thing it ends up doing is &quot;solve this…</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>classical</category></item><item><title>Lecture 33: Robotics RL</title><link>https://rl.yad.codes/posts/33-robotics-rl/</link><guid isPermaLink="true">https://rl.yad.codes/posts/33-robotics-rl/</guid><description>Everything so far has assumed the agent lives in a simulator or in a text stream. Atari resets in microseconds. A GSM8K problem hands you a clean prompt and a clean answer. PPO runs across thousands of parallel…</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>classical</category></item><item><title>Lecture 34: Self-distillation and self-improvement loops</title><link>https://rl.yad.codes/posts/34-self-distillation/</link><guid isPermaLink="true">https://rl.yad.codes/posts/34-self-distillation/</guid><description>Lecture 18: Distillation of Reasoning Models covered a specific recipe: take a large reasoning model, sample reasoning chains, filter by a verifiable checker, train a smaller model on the kept chains. The teacher and…</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>rlaif</category></item><item><title>Lecture 09: Reward modeling for RLHF</title><link>https://rl.yad.codes/posts/09-reward-modeling/</link><guid isPermaLink="true">https://rl.yad.codes/posts/09-reward-modeling/</guid><description>You know how to do RL. But for LLMs, there&apos;s a foundational problem: what is the reward for &quot;good&quot; text generation?</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><category>rlhf</category></item><item><title>Lecture 14: Constitutional AI, RLAIF, and Self-Improvement</title><link>https://rl.yad.codes/posts/14-constitutional-ai-rlaif/</link><guid isPermaLink="true">https://rl.yad.codes/posts/14-constitutional-ai-rlaif/</guid><description>Lecture 09 showed how to train a reward model from human preference pairs. Lecture 10 showed how to use that reward model inside PPO to fine-tune a language model. Both assumed a dataset of human-labeled comparisons:…</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><category>rlaif</category></item><item><title>Lecture 15: RL with Verifiable Rewards and Reasoning Models</title><link>https://rl.yad.codes/posts/15-rl-verifiable-rewards/</link><guid isPermaLink="true">https://rl.yad.codes/posts/15-rl-verifiable-rewards/</guid><description>Lectures 10–12 covered the standard RLHF pipeline: train a reward model on human preference comparisons, then run PPO against it. The reward model is a learned approximation of &quot;what humans prefer,&quot; and its quality…</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><category>rlvr</category></item><item><title>Lecture 16: Agentic RL: tool use and multi-turn interaction</title><link>https://rl.yad.codes/posts/16-agentic-rl/</link><guid isPermaLink="true">https://rl.yad.codes/posts/16-agentic-rl/</guid><description>Lectures 10 through 15 treat the model&apos;s output as a single block of text, scored once. You sample a response, a reward model or a verifier returns a scalar, and you update the policy. The &quot;episode&quot; is one generation.</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><category>agentic</category></item><item><title>Lecture 17: Online and Iterative Preference Optimization</title><link>https://rl.yad.codes/posts/17-online-iterative-preference/</link><guid isPermaLink="true">https://rl.yad.codes/posts/17-online-iterative-preference/</guid><description>Lecture 11: Direct Preference Optimization derived DPO as a one-shot, offline procedure: collect a fixed dataset of (prompt, chosen, rejected) triples, run the DPO loss until convergence, done. No reward model, no…</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><category>rlhf</category></item><item><title>Lecture 18: Distillation of Reasoning Models</title><link>https://rl.yad.codes/posts/18-distillation-reasoning/</link><guid isPermaLink="true">https://rl.yad.codes/posts/18-distillation-reasoning/</guid><description>Lecture 15: RL with Verifiable Rewards ended with the DeepSeek-R1 recipe: cold-start SFT on a few thousand high-quality reasoning traces, then GRPO against a verifiable reward, then a final alignment pass. The result is…</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><category>offline</category></item><item><title>Lecture 19: Offline RL</title><link>https://rl.yad.codes/posts/19-offline-rl/</link><guid isPermaLink="true">https://rl.yad.codes/posts/19-offline-rl/</guid><description>Lectures 02–08 all assume you can interact with an environment while training. The policy collects transitions, computes gradients, and updates; then does it again. The data distribution changes as the policy improves.…</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><category>offline</category></item><item><title>Lecture 01: MDPs and Bellman Equations</title><link>https://rl.yad.codes/posts/01-mdps-bellman/</link><guid isPermaLink="true">https://rl.yad.codes/posts/01-mdps-bellman/</guid><description>Every RL method (Q-learning, PPO, RLHF for LLMs) is solving a Markov decision process. The MDP is the object; the algorithms are different ways of finding a good policy in it. This lecture sets up the object and solves…</description><pubDate>Wed, 12 Nov 2025 00:00:00 GMT</pubDate><category>foundations</category></item><item><title>Lecture 02: Policy Gradients from Scratch</title><link>https://rl.yad.codes/posts/02-policy-gradients/</link><guid isPermaLink="true">https://rl.yad.codes/posts/02-policy-gradients/</guid><description>Policy iteration works on a 5×5 gridworld. It doesn&apos;t scale: an LLM&apos;s &quot;state&quot; is the whole token sequence so far, so there&apos;s no value table big enough, and the action space (the vocabulary) is huge. Policy gradients…</description><pubDate>Wed, 12 Nov 2025 00:00:00 GMT</pubDate><category>foundations</category></item><item><title>Lecture 03: Value Functions &amp; Q-Learning</title><link>https://rl.yad.codes/posts/03-value-functions-q-learning/</link><guid isPermaLink="true">https://rl.yad.codes/posts/03-value-functions-q-learning/</guid><description>Lecture 02 optimized the policy π(a|s) directly. The other route: learn how good each action is (Q(s,a)) and act greedily. That buys you sample efficiency (you can replay old data), off-policy learning (learn from any…</description><pubDate>Wed, 12 Nov 2025 00:00:00 GMT</pubDate><category>foundations</category></item><item><title>Lecture 04: Actor-Critic Methods</title><link>https://rl.yad.codes/posts/04-actor-critic/</link><guid isPermaLink="true">https://rl.yad.codes/posts/04-actor-critic/</guid><description>Combine policy gradients with value functions, implement A2C/A3C from scratch</description><pubDate>Wed, 12 Nov 2025 00:00:00 GMT</pubDate><category>foundations</category></item><item><title>Lecture 05: Trust Region Policy Optimization (TRPO)</title><link>https://rl.yad.codes/posts/05-trpo/</link><guid isPermaLink="true">https://rl.yad.codes/posts/05-trpo/</guid><description>Understand why policy updates fail, learn TRPO&apos;s solution, see why PPO was needed</description><pubDate>Wed, 12 Nov 2025 00:00:00 GMT</pubDate><category>foundations</category></item><item><title>Lecture 06: PPO - Proximal Policy Optimization</title><link>https://rl.yad.codes/posts/06-ppo/</link><guid isPermaLink="true">https://rl.yad.codes/posts/06-ppo/</guid><description>PPO (Proximal Policy Optimization) is the standard RL algorithm for RLHF and was used to train InstructGPT and its successors. This lecture covers the algorithm, a full implementation, and practical tuning advice.</description><pubDate>Wed, 12 Nov 2025 00:00:00 GMT</pubDate><category>foundations</category></item><item><title>Lecture 07: Off-Policy Learning - SAC and TD3</title><link>https://rl.yad.codes/posts/07-off-policy-rl/</link><guid isPermaLink="true">https://rl.yad.codes/posts/07-off-policy-rl/</guid><description>Learn off-policy methods for continuous control, implement SAC and TD3</description><pubDate>Wed, 12 Nov 2025 00:00:00 GMT</pubDate><category>classical</category></item><item><title>Lecture 08: Model-based reinforcement learning</title><link>https://rl.yad.codes/posts/08-model-based-rl/</link><guid isPermaLink="true">https://rl.yad.codes/posts/08-model-based-rl/</guid><description>Learn world models, implement Dyna and MBPO, understand when to use model-based RL</description><pubDate>Wed, 12 Nov 2025 00:00:00 GMT</pubDate><category>classical</category></item><item><title>Lecture 10: PPO for language models (the full RLHF pipeline)</title><link>https://rl.yad.codes/posts/10-ppo-for-llms/</link><guid isPermaLink="true">https://rl.yad.codes/posts/10-ppo-for-llms/</guid><description>This lecture covers the three-stage pipeline used in InstructGPT and described in Ouyang et al. (2022, arXiv:2203.02155): supervised fine-tuning, reward model training, then PPO to optimize against that reward model.…</description><pubDate>Wed, 12 Nov 2025 00:00:00 GMT</pubDate><category>rlhf</category></item><item><title>Lecture 11: Direct Preference Optimization (DPO)</title><link>https://rl.yad.codes/posts/11-dpo/</link><guid isPermaLink="true">https://rl.yad.codes/posts/11-dpo/</guid><description>PPO-based RLHF works but requires three models (SFT, reward model, policy), has many sensitive hyperparameters, and is expensive to run. DPO (Rafailov et al. 2023, arXiv:2305.18290) shows that you can derive a…</description><pubDate>Wed, 12 Nov 2025 00:00:00 GMT</pubDate><category>rlhf</category></item><item><title>Lecture 12: Beyond DPO (GRPO, RRHF, IPO, and post-DPO methods)</title><link>https://rl.yad.codes/posts/12-beyond-dpo/</link><guid isPermaLink="true">https://rl.yad.codes/posts/12-beyond-dpo/</guid><description>DPO (2023) eliminated the reward model and PPO instability. But follow-up work exposed weaknesses:</description><pubDate>Wed, 12 Nov 2025 00:00:00 GMT</pubDate><category>rlhf</category></item><item><title>Lecture 13: RLHF for Code Generation</title><link>https://rl.yad.codes/posts/13-rlhf-code-generation/</link><guid isPermaLink="true">https://rl.yad.codes/posts/13-rlhf-code-generation/</guid><description>Understand how to apply RLHF to code generation, implement CodeRL, and handle execution-based rewards</description><pubDate>Wed, 12 Nov 2025 00:00:00 GMT</pubDate><category>rlvr</category></item></channel></rss>