{ "cells": [ { "cell_type": "markdown", "id": "4a379ea2-d831-4d46-b4fe-d6aa2b045389", "metadata": {}, "source": [ "\n", "\n", "\n", "\n", "\n", "
\n", "\n", "Supplementary code for the Build a Reasoning Model (From Scratch) book by Sebastian Raschka
\n", "
Code repository: https://github.com/rasbt/reasoning-from-scratch\n", "
\n", "
\n", "\n", "
" ] }, { "cell_type": "markdown", "id": "c6378508-8676-4c95-8293-814938aafd49", "metadata": {}, "source": [ "# Chapter 7: Improving GRPO for Reinforcement Learning" ] }, { "cell_type": "markdown", "id": "a8bfc1e7-b142-4b35-8060-d4dcacfbf408", "metadata": {}, "source": [ "Packages that are being used in this notebook:" ] }, { "cell_type": "code", "execution_count": 1, "id": "9e8b6231-fe94-4b6c-9bab-b65c2014da5c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "reasoning_from_scratch version: 0.1.15\n", "torch version: 2.10.0\n", "tokenizers version: 0.22.2\n" ] } ], "source": [ "from importlib.metadata import version\n", "\n", "used_libraries = [\n", " \"reasoning_from_scratch\",\n", " \"torch\",\n", " \"tokenizers\" # Used by reasoning_from_scratch\n", "]\n", "\n", "for lib in used_libraries:\n", " print(f\"{lib} version: {version(lib)}\")" ] }, { "cell_type": "markdown", "id": "caf291b5-f928-4ff9-a3ff-cd9eb62f65fa", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "id": "8d2d201d-dc48-47ee-89fc-27231cda37b8", "metadata": {}, "source": [ " \n", "## 7.1 Improving GRPO" ] }, { "cell_type": "markdown", "id": "6febe41b-fd79-4b9d-8091-c7cf15e0a79a", "metadata": {}, "source": [ "- Note: you may skip this chapter if it is too technical and you are not interested in additional GRPO details; the next chapter does not depend on it" ] }, { "cell_type": "markdown", "id": "43065094-7755-42e8-9d3e-600d778b3860", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "id": "26b080de-3e9f-4979-9604-92f92d36d24d", "metadata": {}, "source": [ " \n", "## 7.2 Tracking GRPO performance metrics" ] }, { "cell_type": "markdown", "id": "ed927a2c-885d-43c7-a069-8b55d66be113", "metadata": {}, "source": [ "- We ran a short RLVR training run in the previous chapter and briefly discussed the results" ] }, { "cell_type": "markdown", "id": "c7bfea1a-70b5-495a-91c0-04abda421dd0", "metadata": {}, "source": [ "- For instance, in the previous section, we saw the outputs for a short run, which were structured as follows:\n", "\n", "```\n", "[Step 1/50] loss=-0.0000 reward_avg=0.000 avg_resp_len=5.5\n", "[Step 2/50] loss=-0.0000 reward_avg=0.000 avg_resp_len=6.8\n", "[Step 3/50] loss=0.3592 reward_avg=0.250 avg_resp_len=7.8\n", "[Step 4/50] loss=2.7401 reward_avg=0.250 avg_resp_len=56.5\n", "[Step 5/50] loss=3.3214 reward_avg=0.500 avg_resp_len=251.2\n", "# ...\n", "```\n", "\n", "- In this section, we pick up where we left off and discuss some of the metrics to track when running RLVR" ] }, { "cell_type": "markdown", "id": "22842a39-d8ba-46e3-a634-ac4de3f750c2", "metadata": {}, "source": [ " \n", "### 7.2.1 Executing a GRPO training run" ] }, { "cell_type": "markdown", "id": "f5ae7112-8f02-4567-893e-290d4b16fff5", "metadata": {}, "source": [ "- The code in chapter 6 tries to strike a balance between showing the whole GRPO pipeline and being concise to improve readability\n", "- The supplementary materials contain a script ([ch06/02_rlvr_grpo_scripts_intro\n", "/rlvr_grpo_original_no_kl.py](https://github.com/rasbt/reasoning-from-scratch/blob/main/ch06/02_rlvr_grpo_scripts_intro/rlvr_grpo_original_no_kl.py)) with the same code, but may be more convenient to run from a code terminal\n", "- In this chapter, we will be referencing scripts from the supplementary materials for convenience and to avoid excessive code duplication that would clutter the notebook and chapter\n", "- Using the following helper function, we will download code from the supplementary materials and save it in our local directory throughout this chapter" ] }, { "cell_type": "code", "execution_count": 2, "id": "8e482d44-2b65-4ce0-a7a2-0f76b09252b9", "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "import requests\n", "\n", "def download_from_github(rel_path, out=None):\n", " github_raw_base = ( # Base URL\n", " \"https://raw.githubusercontent.com/rasbt/\"\n", " \"reasoning-from-scratch/refs/heads/main/\"\n", " )\n", "\n", " rel_path = Path(rel_path)\n", " # Use URL file name as default output file name\n", " out = Path(out) if out is not None else Path(rel_path.name)\n", "\n", " # Skip download if file already exists locally\n", " if out.exists():\n", " size_kb = out.stat().st_size / 1e3\n", " print(f\"{out}: {size_kb:.1f} KB (cached)\")\n", " return out\n", "\n", " # Download file\n", " r = requests.get(github_raw_base + rel_path.as_posix())\n", " r.raise_for_status()\n", "\n", " out.write_bytes(r.content)\n", " size_kb = out.stat().st_size / 1e3\n", " print(f\"{out}: {size_kb:.1f} KB\")" ] }, { "cell_type": "markdown", "id": "48eb5e8f-bf01-41cf-9a31-7282feb45ddb", "metadata": {}, "source": [ "- Download GRPO script (based on code from chapter 6):" ] }, { "cell_type": "code", "execution_count": 3, "id": "e374e58f-0f6b-463b-9978-7a139c963754", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "rlvr_grpo_original_no_kl.py: 13.7 KB (cached)\n" ] }, { "data": { "text/plain": [ "PosixPath('rlvr_grpo_original_no_kl.py')" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "download_from_github(\n", " \"ch06/02_rlvr_grpo_scripts_intro/rlvr_grpo_original_no_kl.py\"\n", ")" ] }, { "cell_type": "markdown", "id": "ca73d7c8-3a04-4614-a600-f5cbf2d3da25", "metadata": {}, "source": [ "- If the downloaded files have sizes much smaller than the ones shown above, there might have been something wrong with the download\n", "- Please double-check if the URLs have been typed correctly\n", "- Additionally, please see the [Troubleshooting Guide](https://github.com/rasbt/reasoning-from-scratch/blob/main/troubleshooting.md) if you continue having problems with the file download" ] }, { "cell_type": "markdown", "id": "96b64306-b1c5-41d1-8d16-d8a8debc297d", "metadata": {}, "source": [ "- If you don't want to run the training code, which is reasonable, because it is relatively expensive, log files for the following run are provided in the supplementary materials for the following run (more info on how to download them later):\n", "\n", "\n", "```bash\n", "uv run rlvr_grpo_original_no_kl.py \\\n", " --steps 500 \\\n", " --max_new_tokens 1024\n", "```" ] }, { "cell_type": "markdown", "id": "53be05c2-2c94-4322-951b-79a34453269d", "metadata": {}, "source": [ "- **Tip:** You can add `--show_eta` to the code execution command above to show a time estimate of the total runtime of the script specific to your machine" ] }, { "cell_type": "markdown", "id": "c4ddc2cf-51d2-48ea-8dbd-5709da99398d", "metadata": {}, "source": [ "- I recommend running the script (using the command above) in the terminal, but it's also possible to run them in Jupyter notebooks in a code cell and by prepending an \"!\", i.e., `!uv run rlvr_grpo_original_no_kl.py`\n", "- If you are not a `uv` user, replace `uv run` with `python`, i.e., `python rlvr_grpo_original_no_kl.py`" ] }, { "cell_type": "markdown", "id": "10d378db-d986-4c28-a94f-1d8de94e483f", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "id": "9c79580e-6396-465c-8661-8b138c2a6127", "metadata": {}, "source": [ "- As mentioned earlier, instead of reproducing the run above yourself, which can be expensive, you can download the log files as follows:" ] }, { "cell_type": "code", "execution_count": 4, "id": "abb5d8b0-84e1-4432-a509-63928dd2e8a6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ch06_rlvr_grpo_original_no_kl_metrics.txt: 43.7 KB (cached)\n", "ch06_rlvr_grpo_original_no_kl_metrics.csv: 25.1 KB (cached)\n" ] }, { "data": { "text/plain": [ "PosixPath('ch06_rlvr_grpo_original_no_kl_metrics.csv')" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Log file in plain text\n", "\n", "download_from_github(\n", " \"ch07/02_logs/ch06_rlvr_grpo_original_no_kl_metrics.txt\"\n", ")\n", "\n", "# Same log file in CSV format\n", "download_from_github(\n", " \"ch07/02_logs/ch06_rlvr_grpo_original_no_kl_metrics.csv\"\n", ")" ] }, { "cell_type": "markdown", "id": "003e93f8-05ee-418d-97d5-59537a66eddd", "metadata": {}, "source": [ " \n", "### 7.2.2 Inspecting the GRPO training run" ] }, { "cell_type": "markdown", "id": "8c6dbf57-9c7b-4c10-8266-a34cb7db5abd", "metadata": {}, "source": [ "- We use the following utility functions to plot the results from the log files throughout this chapter" ] }, { "cell_type": "code", "execution_count": 5, "id": "9b9b827f-5430-4410-833f-a0e00fa0f792", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import csv\n", "import matplotlib.pyplot as plt\n", "\n", "\n", "def moving_average(values, window_fraction=0.25):\n", " # Smooth a noisy training signal to reveal longer-term trends during training\n", " window_size = max(1, int(window_fraction * len(values)))\n", " smoothed = []\n", "\n", " for i in range(len(values)):\n", " start_idx = max(0, i - window_size + 1)\n", " window_mean = sum(values[start_idx : i + 1]) / (i - start_idx + 1)\n", " smoothed.append(window_mean)\n", "\n", " return smoothed\n", "\n", "\n", "def plot_grpo_metrics(csv_path, columns, save_as=None):\n", " data = {name: {\"steps\": [], \"values\": []} for name in columns}\n", "\n", " # Open and read CSV log file\n", " with Path(csv_path).open(newline=\"\") as f:\n", " reader = csv.DictReader(f)\n", " for row in reader:\n", " if not row or not row.get(\"step\"):\n", " continue\n", "\n", " # Use the training step as the shared x-axis across all metrics\n", " step = int(row[\"step\"])\n", "\n", " for name in columns:\n", " value_str = row.get(name)\n", " if value_str:\n", " data[name][\"steps\"].append(step)\n", " data[name][\"values\"].append(float(value_str))\n", "\n", " # Create a fixed grid so loss, rewards, response length, etc. can be shown side by side\n", " fig, axes = plt.subplots(2, 2, sharex=True, figsize=(6, 4))\n", " axes = axes.ravel()\n", "\n", " for i, name in enumerate(columns):\n", " steps = data[name][\"steps\"]\n", " values = data[name][\"values\"]\n", "\n", " # Skip metrics that are not present\n", " if not values:\n", " fig.delaxes(axes[i])\n", " continue\n", "\n", " # Evaluation accuracy as barplot because we don't have data for each step\n", " if name == \"eval_acc\":\n", " axes[i].bar(steps, values, width=20)\n", " else:\n", " axes[i].plot(steps, values, alpha=0.4)\n", " axes[i].plot(steps, moving_average(values))\n", "\n", " axes[i].set_ylabel(name)\n", "\n", " for j in (2, 3):\n", " if axes[j] in fig.axes:\n", " axes[j].set_xlabel(\"Step\")\n", "\n", " plt.tight_layout()\n", " if save_as is not None:\n", " plt.savefig(save_as)\n", " plt.show()\n", "\n", "\n", "# Plot the GRPO training run\n", "plot_grpo_metrics(\n", " \"ch06_rlvr_grpo_original_no_kl_metrics.csv\",\n", " columns=[\"loss\", \"reward_avg\", \"avg_response_len\", \"eval_acc\"],\n", " # save_as=\"4.pdf\"\n", ")" ] }, { "cell_type": "markdown", "id": "e3cb555c-ead6-4849-b9e1-1133a691e59e", "metadata": {}, "source": [ "- Here are some general observations and thoughts:\n", " - Average response length should initially go up (ideally with accuracy going up); this looks good overall, although we see some later decline just before step 400\n", " - Compared to pre-training, the loss is not very meaningful; it should stay relatively flat, but some fluctuations are ok (spikes toward the end are a bit concerning, though)\n", "- Average rewards should go up; technically, an average reward of 1.00 means all answers are correct, which is great, but then we would have reached a point where there is no training signal anymore, and we should stop\n", "- Target/external task performance (here: MATH-500 accuracy) should improve; it does that initially and then declines" ] }, { "cell_type": "markdown", "id": "f13808cb-be48-4050-b122-5da31e85f8f7", "metadata": {}, "source": [ "- Summary: we have fast early gains, then diminishing returns\n", " - One reason is that the algorithm is not very stable \n", " - (Another potential explanation could be that problems get harder, but then we wouldn't see the decline in evaluation accuracy)" ] }, { "cell_type": "markdown", "id": "3af0b0f4-3ca1-4ddd-91b0-108269eee5d8", "metadata": {}, "source": [ "- Note that we focus here on a simplified tracking of GRPO runs; the next section adds some more\n", "- By the way, evaluation accuracy (here: MATH-500 accuracy) is not tracked by default\n", "- It can be calculated on the 500 MATH-500 test examples during training by adding `--eval_on_checkpoint 500`, but this slows down the training\n", "- Alternatively, it can be computed afterwards using the `evaluate_math500.py` script (containing the code from chapter 3)" ] }, { "cell_type": "code", "execution_count": 6, "id": "a6731421-70ca-4f1b-a192-2e4cab401034", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "evaluate_math500.py: 3.5 KB (cached)\n" ] }, { "data": { "text/plain": [ "PosixPath('evaluate_math500.py')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "download_from_github(\n", " \"ch03/02_math500-verifier-scripts/evaluate_math500.py\"\n", ")" ] }, { "cell_type": "markdown", "id": "d5ac7347-9262-4b19-bb4d-b400ac1236a9", "metadata": {}, "source": [ "- The evaluation can then be run as follows on a given checkpoint:" ] }, { "cell_type": "markdown", "id": "09b95b91-d702-4849-9e58-43060014aa9f", "metadata": {}, "source": [ "```bash\n", "uv run evaluate_math500.py \\\n", " --dataset_size 500 \\\n", " --checkpoint_path \\\n", " \"checkpoints/rlvr_grpo_original_no_kl/\\\n", "qwen3-0.6B-rlvr-grpo-step00050.pth\"\n", "```" ] }, { "cell_type": "markdown", "id": "ccdbc4ae-da75-4ddb-bb35-5db2185a29b3", "metadata": {}, "source": [ "- I already added the results from these evaluation runs, for every 50th step, to the log file we analyzed previously" ] }, { "cell_type": "markdown", "id": "8227f119-f60b-4588-a492-94ebef3ee7bd", "metadata": {}, "source": [ " \n", "## 7.3 Tracking more advanced GRPO performance metrics" ] }, { "cell_type": "markdown", "id": "b84e396c-304f-46e9-99ce-63ec35215650", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "id": "28125e47-2d3a-44a7-9e87-a5ef56974000", "metadata": {}, "source": [ "- In the previous section, we looked at basic performance metrics to track GRPO runs\n", "- There are several other useful metrics we could track\n", "- Two examples include\n", " - the advantages that we already computed in the `compute_grpo_loss` function (chapter 6)\n", " - the entropy of the computed sequences" ] }, { "cell_type": "markdown", "id": "e76c20b1-e801-4a6d-bb52-14cf5a184c32", "metadata": {}, "source": [ " \n", "### 7.3.1 Advantage tracking" ] }, { "cell_type": "markdown", "id": "9ed5aa11-2ffa-45e5-8442-e123e3acbbcf", "metadata": {}, "source": [ "- As part of the GRPO algorithm, we compute the so-called advantages as discussed previously (chapter 6)\n", "- These advantages are also useful to analyze training dynamics" ] }, { "cell_type": "markdown", "id": "62fe0552-fd50-42dd-9a65-3ba68b235565", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "id": "a7ed3365-8596-40a4-95b7-e12e8b04dd01", "metadata": {}, "source": [ "- In particular, we compute two new summary statistics derived from the advantages: the average value (as the sample `mean`) and standard deviation (`std`)" ] }, { "cell_type": "code", "execution_count": 7, "id": "e5b65d0b-6f26-4530-b8cb-9f5bc3633513", "metadata": {}, "outputs": [], "source": [ "import torch\n", "\n", "def compute_advantage_stats(rewards_list):\n", " # This is what we already compute in GRPO:\n", " rewards = torch.tensor(rewards_list)\n", " advantages = (rewards - rewards.mean()) / (rewards.std() + 1e-4)\n", "\n", " # These are the new statistics we add:\n", " adv_avg = advantages.mean().item()\n", " adv_std = advantages.std().item()\n", "\n", " return advantages, adv_avg, adv_std" ] }, { "cell_type": "markdown", "id": "512ae7e0-c88b-4e36-980e-bb9ac474ee0a", "metadata": {}, "source": [ "- Below is an example using a small sample of four reward values (similar to the ones shown in the previous figure)" ] }, { "cell_type": "code", "execution_count": 8, "id": "fb7719bd-5677-459f-9660-bd117b3b07aa", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Advantages: tensor([ 0.8659, 0.8659, -0.8659, -0.8659])\n", "Advantage mean = 0.0000, std = 0.9998\n" ] } ], "source": [ "adv, adv_avg, adv_std = compute_advantage_stats([1., 1., 0., 0.])\n", "\n", "print(f\"Advantages: {adv}\")\n", "print(f\"Advantage mean = {adv_avg:.4f}, std = {adv_std:.4f}\")" ] }, { "cell_type": "markdown", "id": "0d9422af-3464-4118-a382-9ce4c88159ca", "metadata": {}, "source": [ "- Mean:\n", " - Note that the way we compute the advantages, the mean will always be 0; in GRPO, it's just a sanity check that our code works as intended\n", "\n", "- Std:\n", " - The standard deviation has more information here \n", " - std ≈ 1 means we have a good scale of the gradient signal for stable updates\n", " - std ≪ 1 means vanishing signal (often happens when rewards collapse)\n", " - std ≫ 1 means overly spiky updates that can destabilize training" ] }, { "cell_type": "markdown", "id": "264128d0-8c00-4f3d-beb0-7fb714f163a4", "metadata": {}, "source": [ "- Extreme cases are those where the rewards are all similar; in this case, the standard deviation is 0, and we can use it as a measure to detect the lack of a training signal" ] }, { "cell_type": "code", "execution_count": 9, "id": "0e5d1d0d-95f9-4018-840b-55f9104a4225", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Advantages: tensor([0., 0., 0., 0.])\n", "Advantage mean = 0.0000, std = 0.0000\n" ] } ], "source": [ "adv, adv_avg, adv_std = compute_advantage_stats([0., 0., 0., 0.])\n", "print(f\"Advantages: {adv}\")\n", "print(f\"Advantage mean = {adv_avg:.4f}, std = {adv_std:.4f}\")" ] }, { "cell_type": "code", "execution_count": 10, "id": "d0be17cc-5f23-4986-a1ac-950450261614", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Advantages: tensor([0., 0., 0., 0.])\n", "Advantage mean = 0.0000, std = 0.0000\n" ] } ], "source": [ "adv, adv_avg, adv_std = compute_advantage_stats([1., 1., 1., 1.])\n", "print(f\"Advantages: {adv}\")\n", "print(f\"Advantage mean = {adv_avg:.4f}, std = {adv_std:.4f}\")" ] }, { "cell_type": "markdown", "id": "934dbd5f-13f4-4fa2-b14c-09faed6c0d45", "metadata": {}, "source": [ "- In practice, it's best to look at advantage statistics together with reward averages, because, as mentioned before, a reward average of 1 is actually a good thing; we don't have a training signal anymore, but the model gets all answers correct\n", "- At this point, we should either stop training or choose more difficult examples" ] }, { "cell_type": "markdown", "id": "f480fafa-10e3-4e0d-9e07-161100b88c36", "metadata": {}, "source": [ " \n", "### 7.3.2 Entropy tracking" ] }, { "cell_type": "markdown", "id": "2f132bff-956a-47b4-9e93-118678bbc6fe", "metadata": {}, "source": [ "- Entropy measures how uncertain the LLM is when producing the next token\n", " - High entropy: The model spreads probability mass over many tokens (good for exploration)\n", " - Low entropy: The model puts almost all mass on one token (more deterministic behavior, could indicate possible collapse)" ] }, { "cell_type": "markdown", "id": "0da71f2c-3a6f-40da-8ade-32e543d3e8b7", "metadata": {}, "source": [ "- Before calculating entropy, let's consider how we computed the log-probability values (logprobs) in chapter 5:" ] }, { "cell_type": "markdown", "id": "9f728c8d-b74a-4163-a135-9c697f415905", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "id": "1bf0480f-8cd7-4f32-96ab-0d96fb81f129", "metadata": {}, "source": [ "- Instead of using real logits created by prompting the base model, we use example logits assuming a vocabulary size of 7 (otherwise, with the original 151k vocabulary, things would be way too messy in the plot above)" ] }, { "cell_type": "code", "execution_count": 11, "id": "6a6af766-cd9c-48d8-9261-d252193edaa6", "metadata": {}, "outputs": [], "source": [ "# Toy logits\n", "logits = torch.tensor([\n", " 0.6667, -2.0000, 1.3333, -0.0000, -0.6667, 2.0000, -1.3333\n", "])" ] }, { "cell_type": "markdown", "id": "6f4f45dd-6172-4fa2-9754-36aa823eb2eb", "metadata": {}, "source": [ "- The code below implements the calculation from the previous figure:" ] }, { "cell_type": "code", "execution_count": 12, "id": "69aa05bb-4426-4caf-a511-52a798f8f645", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "All token logprobs: tensor([-2.0442, -4.7109, -1.3776, -2.7109, -3.3776, -0.7109, -4.0442])\n", "Selected token ID: tensor(5)\n", "Selected token logprob: tensor(-0.7109)\n" ] } ], "source": [ "logprobs = torch.log_softmax(logits, dim=-1)\n", "print(\"All token logprobs:\", logprobs)\n", "\n", "# Index of the selected token\n", "selected_token = torch.argmax(logprobs)\n", "\n", "selected = logprobs[selected_token]\n", "print(\"Selected token ID:\", selected_token)\n", "print(\"Selected token logprob:\", selected)" ] }, { "cell_type": "markdown", "id": "def3938b-ca51-4f9c-814f-d96637a572e0", "metadata": {}, "source": [ "- The entropy is a related concept; we calculate it by multiplying the probability values by the log-probability values, then we sum these resulting products, as illustrated in the next figure\n", "- In principle, one could also track simpler quantities such as the sum of probabilities or log-probabilities, but entropy is a well-established and interpretable measure of uncertainty in probability distributions" ] }, { "cell_type": "markdown", "id": "af48cd5b-77ac-4e50-b97e-a2af875d5e26", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "id": "21601d9c-7680-46d6-b538-68859fc73406", "metadata": {}, "source": [ "- Btw., as a rule of thumb:\n", " - Very low entropy (≈ 0–0.5) means one token dominates the distribution, where the model is highly confident and behaves almost deterministically\n", " - Moderate entropy (≈ 1–2) means that the probability mass is shared among a few more tokens, which is typical during stable training\n", " - High entropy (≫ 2, approaching log(vocabulary_size); here: log(7) = 1.9459), the probability mass is spread across many tokens, and the model is highly uncertain and behaves close to random" ] }, { "cell_type": "markdown", "id": "5be8ce9e-bac1-4d10-9cba-f7a4d0e2e561", "metadata": {}, "source": [ "- We can calculate the entropy as follows:" ] }, { "cell_type": "code", "execution_count": 13, "id": "c9b96d0b-ed89-44b5-b9bd-558c85b23a44", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Probs: tensor([0.1295, 0.0090, 0.2522, 0.0665, 0.0341, 0.4912, 0.0175])\n", "Entropy: tensor(1.3700)\n" ] } ], "source": [ "# Probabilities from logits\n", "probs = torch.softmax(logits, dim=-1)\n", "logprobs = torch.log_softmax(logits, dim=-1)\n", "\n", "# Entropy from probabilities\n", "entropy = torch.sum(-(probs * logprobs))\n", "\n", "print(\"Probs:\", probs)\n", "print(\"Entropy:\", entropy)" ] }, { "cell_type": "markdown", "id": "2185628c-fc54-498c-ace3-745f693a91aa", "metadata": {}, "source": [ "- Alternatively, if we only have log-probability values, we could convert the log-probability values back into probability values via `torch.exp`\n", "- You can see that the values below match the \"probs\" values above:" ] }, { "cell_type": "code", "execution_count": 14, "id": "de51f9f5-eeaf-4ed8-990d-5bb58ffc2ee6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Probs: tensor([0.1295, 0.0090, 0.2522, 0.0665, 0.0341, 0.4912, 0.0175])\n" ] } ], "source": [ "print(\"Probs:\", torch.exp(logprobs))" ] }, { "cell_type": "markdown", "id": "978294a6-272b-4893-a612-c554c2a69d10", "metadata": {}, "source": [ "- Using this concept from above, we can upgrade the `sequence_logprob` function from the previous chapter to a `sequence_logprob_and_entropy` function that returns both logprobs and the entropy:" ] }, { "cell_type": "code", "execution_count": 15, "id": "aa654bb1-bf4e-4f1c-90a8-2ce494d43d66", "metadata": {}, "outputs": [], "source": [ "def sequence_logprob_and_entropy(model, token_ids, prompt_len):\n", " # Old: Code is identical to chapter 5\n", " logits = model(token_ids.unsqueeze(0)).squeeze(0).float()\n", " logprobs = torch.log_softmax(logits, dim=-1)\n", "\n", " targets = token_ids[1:]\n", " selected = logprobs[:-1].gather(1, targets.unsqueeze(-1)).squeeze(-1)\n", "\n", " # Log-prob of the generated answer tokens (sum over answer steps)\n", " selected_answer_logprobs = selected[prompt_len - 1:]\n", " logp_all_steps = torch.sum(selected_answer_logprobs)\n", "\n", " # New: Calculate entropy\n", " all_answer_logprobs = logprobs[:-1][prompt_len - 1:]\n", " if all_answer_logprobs.numel() == 0: # Safeguard if the model immediately returns EOS token\n", " entropy_all_steps = logp_all_steps.new_tensor(0.0)\n", " else:\n", " all_answer_probs = torch.exp(all_answer_logprobs) # convert logprob to prob\n", " plogp = all_answer_probs * all_answer_logprobs # elementwise p * log p\n", " step_entropy = -torch.sum(plogp, dim=-1) # sum over vocab -> entropy per step\n", " entropy_all_steps = torch.mean(step_entropy) # average over answer steps\n", "\n", " return logp_all_steps, entropy_all_steps" ] }, { "cell_type": "markdown", "id": "f7ecd6f4-19ba-4607-8dae-4c27214ea245", "metadata": {}, "source": [ "- We can use this function inside the `compute_grpo_loss` function to also compute the entropy so that we can track it during training\n", "- Note that the previous figure illustrated the entropy computation for a single token in the LLM's rollout (`step_entropy`); the `sequence_logprob_and_entropy` computes the entropy as the average entropy over all answer tokens: `entropy_all_steps = torch.mean(step_entropy)`\n", "- For example, if we consider the answer `\"this is the LLM response\"`, the step entropy is the entropy of one token (like `\"this\"`), and the average entropy over all answer steps is the average entropy over all answer tokens `\"this is the LLM response\"`" ] }, { "cell_type": "markdown", "id": "44cf5cfc-c026-43b0-9dda-c63f484f8152", "metadata": {}, "source": [ " \n", "### 7.3.3 Plotting additional GRPO metrics" ] }, { "cell_type": "markdown", "id": "a138345e-3ba2-4c18-b1c6-a262d378b867", "metadata": {}, "source": [ "- Let's see this in action and analyze the advantage statistics and entropy for a training run\n", "- To do this, we could replace `sequence_logprob_and_entropy` in the `compute_grpo_loss` and then print and track the entropy in the `train_rlvr_grpo` that uses the `compute_grpo_loss` function internally\n", "- To avoid lengthy code duplication, the full, modified code is provided in the supplementary materials, and we can download it as follows:" ] }, { "cell_type": "code", "execution_count": 16, "id": "f41d0aed-a767-44ec-a934-018e17a9d62c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "7_3_plus_tracking.py: 15.1 KB (cached)\n" ] }, { "data": { "text/plain": [ "PosixPath('7_3_plus_tracking.py')" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "download_from_github(\n", " \"ch07/03_rlvr_grpo_scripts_advanced/7_3_plus_tracking.py\"\n", ")" ] }, { "cell_type": "markdown", "id": "961bf26e-3a72-4c04-952d-90768a9cd199", "metadata": {}, "source": [ "- The code can be run similarly to the training script we discussed previously:" ] }, { "cell_type": "markdown", "id": "a29a414a-1384-46fa-a552-d67a5e712738", "metadata": {}, "source": [ "```bash\n", "uv run 7_3_plus_tracking.py \\\n", " --steps 500 \\\n", " --max_new_tokens 1024\n", "```" ] }, { "cell_type": "markdown", "id": "30f5019d-0f8b-4847-9aab-22560e9bd881", "metadata": {}, "source": [ "- Since it takes a long time to train, the resulting CSV log file can be downloaded as follows:" ] }, { "cell_type": "code", "execution_count": 17, "id": "93d8658b-f99d-4304-8c30-ffb02b6bd38e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "7_3_plus_tracking_metrics.csv: 39.0 KB (cached)\n" ] }, { "data": { "text/plain": [ "PosixPath('7_3_plus_tracking_metrics.csv')" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "download_from_github(\n", " \"ch07/02_logs/7_3_plus_tracking_metrics.csv\"\n", ")" ] }, { "cell_type": "code", "execution_count": 18, "id": "d123b0f4-2be5-4dfc-9968-152961c367b9", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_grpo_metrics(\n", " \"7_3_plus_tracking_metrics.csv\",\n", " columns=[\"reward_avg\", \"adv_avg\", \"adv_std\", \"entropy_avg\"],\n", " # save_as=\"9.pdf\"\n", ")" ] }, { "cell_type": "markdown", "id": "7728520a-1a8d-4187-a09c-de9a8098d5a6", "metadata": {}, "source": [ "- The average advantage is and stays zero, which is exactly what we expect with GRPO-style normalization \n", " - Advantages are computed relative to the group mean, so by construction, they should sum to zero\n", " - This metric is mostly a sanity check in GRPO, and if it drifted away from zero, that would point to a bug or other normalization bias issue\n", "- The advantage std is the more informative signal\n", " - Early on, we see a relatively high variance, which means the model produces diverse rollouts \n", " - Later on, the advantage std slowly declines and stabilizes, which means rollouts become more similar in quality\n", " - But the bottom line is that a nonzero (and stable) advantage std means there is still a usable learning signal" ] }, { "cell_type": "markdown", "id": "6cd6261a-53d8-48b6-a5e3-59559b7a3b8c", "metadata": {}, "source": [ "- Next, let’s look at the entropy\n", " - Early in training, the entropy is relatively flat and low (this indicates that the LLM is fairly deterministic)\n", " - In practice, increasing the sampling temperature would increase the output diversity during rollout, although it does not change the underlying LLM entropy\n", " - Later in training (after ~step 200), the entropy increases substantially, which means the next-token distribution is getting broader and the model is becoming more stochastic\n", " - Very low entropy can be a sign of collapse, where the model repeatedly produces the same or very similar outputs\n", " - In this run, however, considering entropy together with the reward average and the non-vanishing advantage standard deviation suggests an overall healthy exploration rather than collapse" ] }, { "cell_type": "markdown", "id": "9d4d52cc-4ad4-4536-ae07-737d2d8ffac6", "metadata": {}, "source": [ "- In short, individual metrics can tell us different things, but it is useful to look at these together in context" ] }, { "cell_type": "markdown", "id": "4ce2d715-088b-413d-b443-ed85aa0a13ea", "metadata": {}, "source": [ " \n", "## 7.4 Stabilizing sequence-level GRPO using clipped policy ratios" ] }, { "cell_type": "markdown", "id": "f43f7b34-50ad-4fa6-957a-832a9e442958", "metadata": {}, "source": [ "- So far, we mainly focused on analyzing the GRPO training results\n", "- Next, we begin making additions to the GRPO algorithm\n", "- The GRPO algorithm we have so far is a simplified version of GRPO, this section focuses on using a clipped policy ratio for the GRPO loss" ] }, { "cell_type": "markdown", "id": "33bdd058-224d-477f-8c90-eee9fd64dca6", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "id": "ce09d896-25b0-4114-a607-f4d1b4fb122f", "metadata": {}, "source": [ " \n", "### 7.4.1 Computing clipped policy ratios" ] }, { "cell_type": "markdown", "id": "d2e00c6b-f66e-4b4f-80a5-d1ff779fdba2", "metadata": {}, "source": [ "- The clipped policy ratio measures how much the current policy (the LLM being trained) differs from an earlier version of the same policy\n", "- Concretely, it compares sequence log-probabilities computed before the update step with those computed after the update\n", "- In the GRPO pipeline shown below, this corresponds to comparing the log-probabilities from step 4 (computed using the old parameters) with the log-probabilities produced by the updated model after step 6" ] }, { "cell_type": "markdown", "id": "675e8dca-a43e-4cc6-aeaa-e7a787e83c94", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "id": "d19becbd-be44-440d-81e9-4ffca20722f4", "metadata": {}, "source": [ "- To recap, in the previous chapter, we computed the policy gradient loss as follows:" ] }, { "cell_type": "code", "execution_count": 19, "id": "5ea711a8-dc42-4737-b1da-62acc49de064", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Policy gradient loss: tensor(-2.5764)\n" ] } ], "source": [ "# Compute rollouts\n", "# ...\n", "\n", "# Compute rewards\n", "rewards = torch.tensor([1., 1., 0., 0.])\n", "\n", "# Compute sequence logprobs\n", "logprobs = torch.tensor([-7.9243, -20.1546, -16.6130, -23.3677])\n", "\n", "advantages = (rewards - rewards.mean()) / (rewards.std() + 1e-4)\n", "\n", "pg_loss = -(advantages.detach() * logprobs).mean()\n", "print(\"Policy gradient loss:\", pg_loss)" ] }, { "cell_type": "markdown", "id": "d0c79b6e-8c5a-4c1b-ae36-51cd31a5d5e3", "metadata": {}, "source": [ "- The clipped ratio is computed between logprobs from a previous policy (`old_logps`) and the current logprobs (`new_logps`)\n", "- The derivation is outside the scope, but interested readers can find more information in the [Proximal Policy Optimization Algorithms](https://arxiv.org/pdf/1707.06347) paper\n", "- For illustration purposes, we use the logprobs from the example above as the `old_logps`, pretend we carried out a model update, and compute the `new_logps` with the updated model (we would use the same prompt here for the old and current policy to have an apples-to-apples comparison)" ] }, { "cell_type": "markdown", "id": "6d40f9bd-4e9a-4b02-90d2-2b8288d6aef1", "metadata": {}, "source": [ "" ] }, { "cell_type": "code", "execution_count": 20, "id": "c0face01-2acf-4386-8138-38ef8b69617e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Ratio: tensor([20.0855, 1.2214, 0.1353, 1.0000])\n", "Clipped ratio: tensor([11.0000, 1.2214, 0.1353, 1.0000])\n" ] } ], "source": [ "new_logps = logprobs\n", "\n", "# The values of the new_logps\n", "# are shown side by side in the comments\n", "old_logps = torch.tensor([\n", " -10.9243, # -7.9243\n", " -20.3546, # -20.1546\n", " -14.6130, # -16.6130\n", " -23.3677, # -23.3677\n", "])\n", "\n", "log_ratio = new_logps - old_logps\n", "ratio = torch.exp(log_ratio)\n", "clip_eps = 10.0\n", "clipped_ratio = torch.clamp(ratio, 1.0 - clip_eps, 1.0 + clip_eps)\n", "\n", "print(\"Ratio: \", ratio)\n", "print(\"Clipped ratio:\", clipped_ratio)" ] }, { "cell_type": "markdown", "id": "d594066a-200f-4870-bfbd-6efaad19aa8d", "metadata": {}, "source": [ "- The `ratio` tells us how different the old and new logprobs are; if they are the same, we see a 1.0\n", "- The `clipped_ratio` enforces a maximum deviation from the old policy to ensure that updates remain relatively conservative and improve training stability\n", "- In particular, it is common to clamp it to 1 +/- `clip_eps`; in DeepSeek-R1 training, clip_eps was set to 10, which means very weak clipping (however, in other RL training pipelines, it is not uncommon to set `clip_eps` to a much smaller value like 0.1)\n", " " ] }, { "cell_type": "markdown", "id": "5057dd2d-3b4b-413f-bf2e-d3e4501c9f60", "metadata": {}, "source": [ "- Next, we apply the `ratio` and `clipped_ratio` to the loss calculation\n", "- Before, we multiplied the advantages and the logprobs directly\n", "- Now, we scale the advantages by the policy ratios and use the clipped objective to limit how much each rollout can influence the update" ] }, { "cell_type": "code", "execution_count": 21, "id": "80348cb2-3ac9-4c63-88a8-70960ef388b9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Clipped policy gradient loss: tensor(-2.3998)\n", "Policy ratio: tensor(5.6106)\n" ] } ], "source": [ "# Treat advantages as fixed learning signals (no backprop through rewards)\n", "adv = advantages.detach()\n", "\n", "unclipped = ratio * adv\n", "clipped = clipped_ratio * adv\n", "\n", "# PPO-style clipping\n", "obj = torch.where(\n", " adv >= 0,\n", " torch.minimum(unclipped, clipped), # cap large positive updates\n", " torch.maximum(unclipped, clipped), # cap large negative updates\n", ")\n", " \n", "clipped_pg_loss = -torch.mean(obj)\n", "policy_ratio = torch.mean(ratio)\n", "\n", "print(\"Clipped policy gradient loss:\", clipped_pg_loss)\n", "print(\"Policy ratio:\", policy_ratio)" ] }, { "cell_type": "markdown", "id": "8a39a89d-7887-4112-9c6a-8200f1bfe09f", "metadata": {}, "source": [ "- The large policy ratio in this example means that the updated policy (model) assigns a much higher probability to the sampled tokens than the previous policy\n", "- Note that the clipped policy gradient loss (-2.3998) is now slightly lower than the regular policy gradient loss (-2.5764) we computed before, which means that the model weight update is slightly lower than before\n", "- This clipping can prevent overly aggressive updates that could destabilize training" ] }, { "cell_type": "markdown", "id": "88ab30ec-988b-490e-8295-82a5e5af6ab2", "metadata": {}, "source": [ " \n", "### 7.4.2 Training with clipped policy ratios" ] }, { "cell_type": "markdown", "id": "1dd4bff1-fc28-4556-afaa-1d4c94b7a07d", "metadata": {}, "source": [ "- A script with the updated GRPO training that now implements the clipped policy ratio computation can be downloaded from the supplementary materials:" ] }, { "cell_type": "code", "execution_count": 22, "id": "b7804c4c-4e5f-44ef-955d-0bcd4fc8c16f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "7_4_plus_clip_ratio.py: 17.2 KB (cached)\n" ] }, { "data": { "text/plain": [ "PosixPath('7_4_plus_clip_ratio.py')" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "download_from_github(\n", " \"ch07/03_rlvr_grpo_scripts_advanced/7_4_plus_clip_ratio.py\"\n", ")" ] }, { "cell_type": "markdown", "id": "c8080c7f-f2b5-4e44-a9be-1cfc8dff8f40", "metadata": {}, "source": [ "- Similar to before, we can run it as follows:\n", "\n", "```bash\n", "uv run 7_4_plus_clip_ratio.py \\\n", " --steps 500 \\\n", " --max_new_tokens 1024\n", "```" ] }, { "cell_type": "markdown", "id": "fd3994e5-dc40-4f95-a290-c107d2a72d58", "metadata": {}, "source": [ "- DeepSeek-R1 generates a large pool of rollouts (8,192) and splits them into 16 minibatches, then does one inner epoch over those minibatches\n", "- Concretely, the approach is as follows:\n", " 1. Make a copy of the current model as the reference policy\n", " 2. Sample a big rollout pool using the reference policy\n", " 3. Split those fixed rollouts into minibatches\n", " 4. For each minibatch:\n", " - compute `old_logps` under the reference model\n", " - compute `new_logps` under the current model (which changes after each minibatch update)\n", " - update the current model\n", " 5. Update the reference model" ] }, { "cell_type": "markdown", "id": "97bfb24a-ae88-4798-bdc6-e5dd3301ed4e", "metadata": {}, "source": [ "- Due to resource constraints, we can't generate that many rollouts and minibatches and have to use workarounds\n", "1. We make a copy of the current model as the reference policy\n", "2. We sample 8 rollouts using the reference policy\n", "3. Then we compute:\n", " - `old_logps` under the reference model\n", " - `new_logps` under the current model\n", " - update the current model\n", "4. The steps 2 and 3 are repeated with different rollouts, instead of using minibatches\n", "5. Update the reference model" ] }, { "cell_type": "markdown", "id": "4b787fe0-92b2-4827-b78b-e5ef675e5d37", "metadata": {}, "source": [ "- In short, DeepSeek-R1 generates a huge rollout pool once, and then walk through it in minibatches\n", "- In our code we generate a small batch of rollouts multiple times" ] }, { "cell_type": "markdown", "id": "ef158000-cd67-4c97-9299-a51144cbe5ed", "metadata": {}, "source": [ "- A log file of this run can be downloaded and visualized as follows:" ] }, { "cell_type": "code", "execution_count": 23, "id": "c8adb6fd-4faa-4e88-a601-76dacae130a0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "7_4_plus_clip_ratio_metrics.csv: 42.7 KB (cached)\n" ] }, { "data": { "text/plain": [ "PosixPath('7_4_plus_clip_ratio_metrics.csv')" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "download_from_github(\n", " \"ch07/02_logs/7_4_plus_clip_ratio_metrics.csv\",\n", ")" ] }, { "cell_type": "code", "execution_count": 24, "id": "4c9e2dcf-1f0f-4623-9934-f91233ad611b", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_grpo_metrics(\n", " \"7_4_plus_clip_ratio_metrics.csv\",\n", " columns=[\"loss\", \"reward_avg\", \"avg_response_len\", \"eval_acc\"],\n", " save_as=\"13_1.pdf\"\n", ")" ] }, { "cell_type": "code", "execution_count": 25, "id": "1114eb40-4a37-417e-a64c-0b739064a7e6", "metadata": {}, "outputs": [ { "data": { "image/png": "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v8uXL3e6v1evXg6FgGVd54svvtBGjRqlhYeHa3369NEeffRRhwKQcvxrr72mnX322VpERIQ6ZuHChR3yuQghgQvHreCGool4DRE5MTEx2l133aVVVVU12p+bm6vEz3vvvaeqZsu68Msvv2hxcXHa+++/r+3fv1/78ccftd69eyvhpCOv69Spk/bWW29pe/bs0R566CHNZDJpO3fu7NDPSAgJLDhuBTcUTcSr/Pvf/9YSExOVNWjSpEna3LlztS1btjiIn0WLFjm8ZurUqdpTTz3lsO3//u//tK5duzq87pZbbnE4ZsKECdrs2bM99lkIIcEBx63ghY7gxOu+AZmZmfjqq69w9tlnY/ny5Rg9ejTef//9Jl+zZcsWPP7444iJibEtN910E7KyslBRUWE7buLEiQ6vk/Vdu3Z59PMQQgIfjlvBCx3BideJiIjAmWeeqZaHH34YN954I+bNm4drr73W6fFlZWV47LHHcNFFFzk9FyGEeBqOW8EJLU3E5xgyZAjKy8vV89DQUJjNZof9Yonas2cP+vfv32gxGuv/pFevXu3wOlkfPHhwB30KQkgwwXErOKCliXgNSStwySWX4Prrr8fw4cMRGxuL9evX49lnn8WMGTPUMb1791YpCE4++WSVxykxMRGPPPIIzj//fJXb6eKLL1ZCSabstm/fjieffNJ2/oULF2Ls2LE45ZRT8NFHH2Ht2rV45513+I0TQjhukbbhbacqErxIxNwDDzygjR49WouPj9eioqK0gQMHqki3iooKdcxXX32l9e/fXwsJCXFIObB48WLlOB4ZGaki6caPH6/985//tO2XP+1XX31VO/PMM1VaAomuW7BggVc+JyEkcOC4FdwY5L826i1CfBbJJL5o0SLMnDnT200hhBCX4Ljl+9CniRBCCCHEBSiaCCGEEEJcgNNzhBBCCCEuQEsTIYQQQogLUDQRQgghhLgARRMhhBBCiAtQNBFCCCGEuABFEyGEEEKIC1A0EUIIIYS4AEUTIYQQQogLUDQRQgghhLgARRMhhBBCCFrm/wHZE0CIxy/f8AAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_grpo_metrics(\n", " \"7_4_plus_clip_ratio_metrics.csv\",\n", " columns=[\"policy_ratio\", \"adv_avg\", \"adv_std\", \"entropy_avg\"],\n", " save_as=\"13_2.pdf\"\n", ")" ] }, { "cell_type": "markdown", "id": "b9c32ef7-d661-4086-ace5-869785fb48bd", "metadata": {}, "source": [ "- Based on the plots above, we can see that the training is now more stable than before, as there is no drop around step 400 anymore" ] }, { "cell_type": "markdown", "id": "8a9357f7-cae0-4129-8632-ecfaf7752c28", "metadata": {}, "source": [ " \n", "## 7.5 Controlling how much the model changes with a KL term" ] }, { "cell_type": "markdown", "id": "c8d26f20-579d-4e5a-b3f6-840b6bc81c2b", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "id": "be8fcbd0-15b1-4bd1-9e25-95acd3e62738", "metadata": {}, "source": [ "- In the previous chapter, we skipped the KL loss term of the GRPO algorithm, as it was already a very long chapter\n", "- Readers familiar with RL algorithms may recognize that we essentially implemented [REINFORCE](https://en.wikipedia.org/wiki/Policy_gradient_method#REINFORCE) with group-normalized advantages\n", "- To complete the GRPO algorithm, we now add the KL loss term\n", "- KL is short for Kullback-Leibler divergence and measures how the current policy (the LLM we are training) deviates from a reference policy (the original LLM at the start of training)\n", "- It acts as a regularizer that discourages overly large policy updates, which helps keep the model close to its original behavior and prevents drastic and unstable updates\n", "- This is not unrelated to the clipped policy ratios we implemented previously; before we focused only on the size of the update steps, and now we explicitly minimize long-term drift" ] }, { "cell_type": "markdown", "id": "2343859a-0974-45e8-8eed-3a0f2b76025c", "metadata": {}, "source": [ " \n", "### 7.5.1 Implementing the KL loss term" ] }, { "cell_type": "markdown", "id": "3a4381ad-fb0d-4ac9-a411-2b3c59d04343", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "id": "6112e116-1015-4bd9-ae67-ada48d70a429", "metadata": {}, "source": [ "- For each rollout, we compute log-probabilities under both the current policy (model) and a fixed reference model, using the exact same generated tokens, as shown on the right side of the figure\n", "- The KL divergence is then computed by summing the differences between these corresponding log-probabilities, which quantifies how much the current policy has shifted relative to the reference\n", "- This KL term is added to the policy gradient loss, so weight updates that increase reward but also strongly increase the difference (divergence) from the reference model are penalized during training\n", "- The reference model here is the original model before we start training (in DeepSeek-R1, this reference model is updated every 400 steps with the most recent model)" ] }, { "cell_type": "markdown", "id": "35481f95-1876-4c74-a111-893e58bd5051", "metadata": {}, "source": [ "- To avoid code duplication, the code below does not show the full modified `compute_grpo_loss_with_kl`, which focuses only on the changes we have to make to the `compute_grpo_loss` function\n", "- The new parts are those either highlighted by `\"# New\"` and those under `if kl_coeff`:" ] }, { "cell_type": "code", "execution_count": 26, "id": "1404ce92-503b-45b5-8cfb-136ba43fb6f1", "metadata": {}, "outputs": [], "source": [ "import copy\n", "\n", "# kl_coeff = 0.0 deactivates the KL term and the code is similar to before\n", "kl_coeff = 0.0 \n", "\n", "# Make copy of the original model and disable gradients so it isn't updated\n", "if kl_coeff:\n", " ref_model = copy.deepcopy(model).to(device) # noqa: F821\n", " ref_model.eval()\n", " for p in ref_model.parameters():\n", " p.requires_grad = False\n", "else:\n", " ref_model = None\n", "\n", "\n", "def compute_grpo_loss_with_kl(\n", " model,\n", " ref_model, # New\n", " # ...\n", " kl_coeff=0.02, # New\n", "):\n", " roll_logps, roll_ref_logps, roll_rewards, samples = [], [], [], [] # noqa: F841\n", " # ...\n", "\n", " for _ in range(num_rollouts): # noqa: F821\n", " token_ids, prompt_len, text = sample_response( # noqa: F821\n", " # ...\n", " )\n", "\n", " # Compute logprobs with reference model\n", " if kl_coeff:\n", " with torch.no_grad():\n", " ref_logp = sequence_logprob( # noqa: F821\n", " ref_model, token_ids, prompt_len\n", " )\n", " else:\n", " ref_logp = None\n", "\n", " reward = reward_rlvr(text, example[\"answer\"]) # noqa: F821\n", "\n", " roll_rewards.append(reward)\n", " roll_logps.append(logp) # noqa: F821\n", " if kl_coeff:\n", " roll_ref_logps.append(ref_logp)\n", " \n", " # ...\n", "\n", " rewards = torch.tensor(roll_rewards, device=device) # noqa: F841\n", " advantages = (rewards - rewards.mean()) / (rewards.std() + 1e-4)\n", "\n", " logps = torch.stack(roll_logps)\n", " if kl_coeff:\n", " ref_logps = torch.stack(roll_ref_logps).detach()\n", "\n", " pg_loss = -(advantages.detach() * logps).mean()\n", "\n", " # Compute KL loss term\n", " if kl_coeff:\n", " kl_loss = kl_coeff * torch.mean(logps - ref_logps)\n", " else:\n", " kl_loss = torch.tensor(0.0, device=logps.device)\n", "\n", " # Add KL loss term to policy gradient loss\n", " loss = pg_loss + kl_loss # noqa: F841" ] }, { "cell_type": "markdown", "id": "563b6e6f-04e9-47af-a421-cfbf04a9b7fe", "metadata": {}, "source": [ "- Note that adding the KL loss term adds additional resource requirements, as we now have to keep an additional copy of the original model around\n", "- The larger the `kl_coeff`, the stronger the divergence penalty" ] }, { "cell_type": "markdown", "id": "4415ce33-e3b9-48ac-b4d7-623320e7ecac", "metadata": {}, "source": [ " \n", "### 7.5.2 Training with a KL loss term" ] }, { "cell_type": "markdown", "id": "6bc3eb9d-57d2-417b-8a80-5523b50f722e", "metadata": {}, "source": [ "- We can download the full script from the supplementary materials as follows" ] }, { "cell_type": "code", "execution_count": 27, "id": "45dc4afb-53c0-4ac5-98bb-e77a1f00aaf1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "7_5_plus_kl.py: 18.8 KB (cached)\n" ] }, { "data": { "text/plain": [ "PosixPath('7_5_plus_kl.py')" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "download_from_github(\n", " \"ch07/03_rlvr_grpo_scripts_advanced/7_5_plus_kl.py\"\n", ")" ] }, { "cell_type": "markdown", "id": "3282b4a5-de64-4fdc-9490-9bd7c2d4614b", "metadata": {}, "source": [ "- Similar to before, we can run it as follows:\n", "\n", "```bash\n", "uv run 7_5_plus_kl.py \\\n", " --steps 500 \\\n", " --max_new_tokens 1024\n", "```" ] }, { "cell_type": "markdown", "id": "b6381422-1c05-4896-8eaf-a75b18d823db", "metadata": {}, "source": [ "- Similar to before, we can download the following log file for analysis, as running the experiment can be resource-intensive and expensive:" ] }, { "cell_type": "code", "execution_count": 28, "id": "c03c0097-9125-4321-ac36-693c43be3b5a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "7_5_plus_kl_metrics.csv: 48.8 KB (cached)\n" ] }, { "data": { "text/plain": [ "PosixPath('7_5_plus_kl_metrics.csv')" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "download_from_github(\n", " \"ch07/02_logs/\"\n", " \"7_5_plus_kl_metrics.csv\"\n", ")" ] }, { "cell_type": "code", "execution_count": 29, "id": "87251884-f166-4a35-b366-468f629e1306", "metadata": {}, "outputs": [ { "data": { "image/png": "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MEGTdCp/5JFH8Oyzz2LLli3o3r27atKZlpbm6V0jogDCkzci3xUwQdPMmTMxadIkTJw4EZ06dcK7776LyMhIfPTRR3afX1hYiKysLJuNiKguePJG5NsCImgqKirC5s2bMWzYMMt9Op1O3V63bp3d18yYMQNxcXGWrXnz5m7cYyLyRzU9eSMi7xIQheBnz56FwWBAUlKSzf1yW9bNs2fKlClqOE+TmZmJ5ORkZpyInEzL4posazX698mbHFscPXmTjLds1sch4Ujm21iYV+ljNcmcV/U+NX0vIl8/DgVE0FQbYWFhaiv/hTLjROQa2dnZKqvrr2pz8iYZ7+nTp1e4v67HobhZdXq5y96LyNuPQwERNCUmJkKv1+P06dM298vtRo0aOfQeTZo0wfHjxxETE4MgB5dFkUBLDm7yutjY2Frte6DgdxW435Wc2cmBSv6NUdUZb6PRiPT0dCQkJPA45AL+9m/L1bL86Pty9DgUEEFTaGgoevfujRUrVmDMmDGWg4/cvv/++x16D0mjN2vWrFafL/8z+fr/UO7C7yowvyt/zjDV5eStfMZb1KtXD4H+/4ur8bsKzO8rzoHjUEAUggs5W3v//fcxd+5c7N27F5MnT0Zubq4qyCQicufJm0Y7eRs4cCB/AUQ+ICAyTeKmm27CmTNnMG3aNKSmpqJHjx5YunRphfoCIiJXnrxNmDABffr0Qb9+/TBr1iyevBH5kIAJmoQMxTk6HOcMklaXZprl0+vE74r/XwUmT5y88TjE74r/bzlPkMnf5/kSEREROUHA1DQRERER1QWDJiIiIiIHMGgiIiIicgCDJiIiIiIHMGhykdmzZ6Nly5YIDw9H//79sXHjRgQaWQKib9++qot6w4YNVWPR/fv32zynoKAA9913n+pwHB0djbFjx1Zo/nfs2DGMGjVKLWwq7/P444+jpKQE/uzll19WHZ8feughy338rqg2Av1YxONQ7fE4ZIfMniPnmjdvnik0NNT00UcfmXbv3m2aNGmSqV69eqbTp08H1Fc9YsQI08cff2zatWuXadu2baYrr7zSlJycbMrJybE859577zU1b97ctGLFCtOmTZtMAwYMMF144YWWx0tKSkxdunQxDRs2zLR161bTDz/8YEpMTDRNmTLF5K82btxoatmypalbt26mBx980HI/vyuqKR6LeBzicci5GDS5QL9+/Uz33Xef5bbBYDA1adLENGPGDFMgS0tLk/YWptWrV6vbGRkZppCQENOCBQssz9m7d696zrp169RtCZJ0Op0pNTXV8px33nnHFBsbayosLDT5m+zsbFO7du1My5cvNw0ZMsQSNPG7otrgsagiHod4HKoLDs85WVFRETZv3oxhw4bZrFsnt9etW4dAlpmZqS7r16+vLuV7Ki4utvmuOnTogOTkZMt3JZddu3a1af43YsQItVDk7t274W9kqFKGIq2/E8HvimqKxyL7eBzicaguAqojuDucPXsWBoOhQodfub1v3z4EKlljS+pzBg0ahC5duqj7pCOyrMdVfgFS+a7kMe059r5L7TF/Mm/ePGzZsgV//PFHhcf4XVFN8VhUEY9DPA7VFYMmclsGZdeuXfjtt9/4jdtx/PhxPPjgg1i+fLkq2CUiHofcjceh6nF4zskSExOh1+srzACT240aNUIgkvX+Fi9ejF9++QXNmjWz3C/fhwwhZGRkVPpdyaW971J7zF/I8FtaWhp69eqF4OBgta1evRpvvvmmui7ZNX5XVBM8FtnicYjHIWdg0ORkMtzUu3dvrFixwiYlLLcHDhyIQCITDeRAtXDhQqxcuRKtWrWyeVy+p5CQEJvvSloSSIsB7buSy507d6qAQiPZmNjYWHTq1An+4rLLLlM/57Zt2yxbnz59cOutt1qu87uimuCxyIzHIR6HnKpOZeRU6TTfsLAw05w5c0x79uwx3XPPParlgPUMsEAwefJkU1xcnGnVqlWmlJQUy5aXl2czjV7aEKxcuVK1HBg4cKDayrccGD58uGpbsHTpUlODBg38uuWAxnr2nOB3RTXFYxGPQzwOOReDJhf573//q4IB6dck037Xr19vCjQSk9vbpHeTJj8/3/T3v//dFB8fb4qMjDRde+21KrCyduTIEdPIkSNNERERqkfTo48+aiouLjYFWtDE74pqI9CPRTwO1Q2PQ7aC5D/OzV0RERER+R/WNBERERE5gEETERERkQMYNBERERE5gEETERERkQMYNBERERE5gEETERERkQMYNBERERE5gEETERERkQMYNBERERE5gEETebUzZ85g8uTJSE5ORlhYGBo1aoQRI0Zg7dq16vGgoCAsWrTI07tJRH6MxyHSBFuuEXmhsWPHoqioCHPnzkXr1q1x+vRprFixAufOnfP0rhFRgOBxiCzKrUVH5DXOnz+vFttctWqV3cdbtGhhsxin3NYsWrTI1LNnT1NYWJipVatWpueee85mkV95/ttvv2264oorTOHh4eo5CxYscMvPRUS+g8chssagibyWBDnR0dGmhx56yFRQUFDh8bS0NBX8fPzxx6aUlBR1W6xZs8YUGxtrmjNnjunQoUOmZcuWmVq2bKkCJ428LiEhwfT++++b9u/fb5o6dapJr9eb9uzZ49afkYi8G49DZI1BE3m1r7/+2hQfH6+yQRdeeKFpypQppu3bt9sEPwsXLrR5zWWXXWZ66aWXbO779NNPTY0bN7Z53b333mvznP79+5smT57ssp+FiHwTj0OkYSE4eX0twalTp/Ddd9/hiiuuwKpVq9CrVy/MmTOn0tds374dzz//PKKjoy3bpEmTkJKSgry8PMvzBg4caPM6ub13716X/jxE5Ht4HCINC8HJ64WHh+Pyyy9X2zPPPIO7774bzz77LO644w67z8/JycH06dNx3XXX2X0vIiIeh6g2mGkin9OpUyfk5uaq6yEhITAYDDaPSyZq//79aNu2bYVNpyv7X379+vU2r5PbHTt2dNNPQUS+jMehwMRME3ktaStwww034M4770S3bt0QExODTZs24ZVXXsHo0aPVc1q2bKlaEAwaNEj1cYqPj8e0adNw1VVXqd5O119/vQqUZMhu165dePHFFy3vv2DBAvTp0weDBw/G559/jo0bN+LDDz/04E9MRN6GxyGyYaluIvIyMmPuySefNPXq1csUFxdnioyMNLVv317NdMvLy1PP+e6770xt27Y1BQcH27QcWLp0qSocj4iIUDPp+vXrZ3rvvfcsj8v/+rNnzzZdfvnlqi2BzK6bP3++R35OIvJePA6RtSD5j20YReT/pJP4woULMWbMGE/vChEFKB6HfA9rmoiIiIgcwKCJiIiIyAEcniMiIiJyADNNRERERA5g0ERERETkAAZNRERERA5g0ERERETkAAZNRERERA5g0ERERETkAAZNRERERA5g0ERERESE6v0/M6n3kDXkp8sAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_grpo_metrics(\n", " \"7_5_plus_kl_metrics.csv\",\n", " columns=[\"loss\", \"reward_avg\", \"avg_response_len\", \"eval_acc\"],\n", " # save_as=\"16.pdf\"\n", ")" ] }, { "cell_type": "code", "execution_count": 30, "id": "e3d9c1e5-3b93-4ac2-a55a-7f81a129f84c", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAGGCAYAAABmPbWyAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAc2dJREFUeJzt3Qd4VFXaB/B/Muk9EAid0It0EAQLIChYQVERXUFQ+MRFQWzgUhZ1xbK6iKLY0RUEUWEREEWKKL333ksKBNJ7Zr7nPZM7mUkmyaRMycz/t8/szNy5M3NzMSfvPec97/EyGAwGEBEREVGpvEt/mYiIiIgYNBERERHZiD1NRERERDZg0ERERERkAwZNRERERDZg0ERERERkAwZNRERERDZg0ERERERkAx9bdvI0er0ely5dQmhoKLy8vJx9OETVhtTKTU1NRb169eDtzWsyR2PbRWTftotBkxUSMDVs2LCCp56Izp8/jwYNGvBEOBjbLiL7tl0MmqyQHibt5IWFhVXyn4DIc6SkpKgLDu13iByLbReRfdsuBk1WaENyEjAxaCIqP3cY1p4zZw7eeecdxMXFoWPHjvjggw/QvXv3EvdfvHgxpk6dijNnzqBFixZ46623cOedd5pef/zxx/H1119bvGfAgAFYtWqV6fnVq1fxzDPP4Oeff1ZDBEOGDMH777+PkJAQm46ZbReRfdsuJh0QERWxaNEiTJw4EdOnT8euXbtU0CQBTkJCgtVztWnTJgwbNgxPPPEEdu/ejcGDB6vbgQMHLPYbOHAgYmNjTbfvvvvO4vVHH30UBw8exOrVq7F8+XJs2LABY8aM4b8PkYvwMkj2ExXrpgsPD0dycjJ7mog88HenR48euP766/Hhhx+aEqyl6156gSZNmlRs/6FDhyI9PV0FOpobbrgBnTp1wty5c009TUlJSVi6dKnV7zx8+DDatm2L7du3o1u3bmqb9EJJb9WFCxdUgqqnnH8iR7P1d4c9TU7CWJXINeXk5GDnzp3o37+/aZsMlcnzzZs3W32PbDffX0jPVNH9169fj9q1a6NVq1YYO3YsEhMTLT4jIiLCFDAJ+Uz57q1bt1bhT0hEFcWcJidIzsjFqoOxaFs3HO0bhDvjEIioBFeuXEF+fj6io6MttsvzI0eOWH2P5D1Z21+2mw/N3X///WjSpAlOnjyJV155BXfccYcKlnQ6ndpXAipzPj4+qFGjhsXnmMvOzlY386tlIrIfBk1OsOv8NeTrgf0Xkxk0EXmIhx9+2PS4ffv26NChA5o1a6Z6n/r161ehz5w5cyZmzJhRhUdJRKXh8BwRkZmoqCjV8xMfH29xXuR5nTp1rJ4r2V6e/UXTpk3Vd504ccL0GUUTzfPy8tSMupI+Z/LkySoHQ7tJmRQish8GTUREZvz8/NC1a1esWbPGtE0SweV5z549rZ4r2W6+v5AZcCXtLyS5W3Ka6tata/oMSRSXfCrN2rVr1XdLYro1/v7+ptIoLJFCZH8MmoiIipByA5999pmqqySz2iRpW2bHjRw5Ur0+fPhw1cujGT9+vJrp9u6776q8p3/+85/YsWMHxo0bp15PS0vDiy++iC1btqg6ThJgDRo0CM2bN1cJ46JNmzYq72n06NHYtm0bNm7cqN4vw3q2zJwjIvtjThMRkZUSApcvX8a0adNUEraUDpCgSEv2PnfunMX6VL169cKCBQswZcoUleAtxS2ltEC7du3U6zLct2/fPhWESW+SBEG33347XnvtNdVbpJk/f74KlCTHSStuOXv2bP77ELkI1mlyQq2TdUcTEJuUpR4/0qNRlX8+kbOwTpBz8fwTVQzrNBERERFVIeY0EREREdmAQRMRERGRDRg0EREREdmAQRMRERGRDRg0EREREdmAQRMRERGRDRg0EREREdmAQRMRERGRDRg0EREREdmAQRMRERGRDRg0EREREdmAQZMTeDnjS4mIiKhSGDQRERER2YBBExEREZENGDQRERER2YBBExEREZENGDQRERER2YBBExEREZENGDQRERER2YBBExEREZENGDQRERER2YBBExEREZE7Bk0bNmzAPffcg3r16sHLywtLly61eN1gMGDatGmoW7cuAgMD0b9/fxw/ftxpx0tERETuodoFTenp6ejYsSPmzJlj9fW3334bs2fPxty5c7F161YEBwdjwIAByMrKcvixElH1JW1MTEwMAgIC0KNHD2zbtq3U/RcvXozWrVur/du3b4+VK1eaXsvNzcXLL7+stkubJBd9w4cPx6VLlyw+Q75PLgbNb2+++abdfkYicvOg6Y477sDrr7+O++67r9hr0ss0a9YsTJkyBYMGDUKHDh3wzTffqIapaI8UEVFJFi1ahIkTJ2L69OnYtWuXulCTi6+EhASr+2/a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iIiIyAYMmsipLl++jLFjx6JRo0bw9/dHnTp1MGDAAGzcuFG97uXlhaVLl/JfiYhcBtstz+Xj7AMgzzZkyBDk5OTg66+/RtOmTREfH481a9YgMTHR2YdGRGQV2y0P5uzF78hzXbt2TS3wu379equvN27c2GIhYHmuWbp0qaFz584Gf39/Q5MmTQz//Oc/LRaAlP0/+ugjw8CBAw0BAQFqn8WLFzvk5yIi98V2y7MxaCKnkSAnJCTEMGHCBENWVlax1xMSElTw89VXX6lVs+W52LBhgyEsLMwwb948w8mTJw2//fabISYmRgVOGnlfzZo1DZ999pnh6NGjhilTphh0Op3h0KFDDv0Zici9sN3ybAyayKl++OEHQ2RkpOoN6tWrl2Hy5MmGvXv3WgQ/S5YssXhPv379DG+88YbFtv/+97+GunXrWrzvqaeestinR48ehrFjx9rtZyEiz8B2y3MxEZycnhtw6dIlLFu2DAMHDsT69evRpUsXzJs3r8T37N27F6+++ipCQkJMt9GjRyM2NhYZGRmm/Xr27GnxPnl++PBhu/48ROT+2G55LiaCk9MFBATgtttuU7epU6fiySefxPTp0/H4449b3T8tLQ0zZszA/fffb/WziIjsje2WZ2JPE7mctm3bIj09XT329fVFfn6+xevSE3X06FE0b9682M3bu/A/6S1btli8T563adPGQT8FEXkStluegT1N5DRSVuDBBx/EqFGj0KFDB4SGhmLHjh14++23MWjQILVPTEyMKkFw4403qjpOkZGRmDZtGu6++25V2+mBBx5QgZIM2R04cACvv/666fMXL16Mbt264aabbsL8+fOxbds2fPHFF/wXJyK2W1Qxzk6qIs8lM+YmTZpk6NKliyE8PNwQFBRkaNWqlZrplpGRofZZtmyZoXnz5gYfHx+LkgOrVq1SieOBgYFqJl337t0Nn376qel1+U97zpw5httuu02VJZDZdYsWLXLKz0lE7oPtlmfzkv+rYLxF5LKkkviSJUswePBgZx8KEZFN2G65PuY0EREREdmAQRMRERGRDTg8R0RERGQD9jQRERER2YBBExEREZENGDQRERER2YBBExEREZENGDQRERER2YBBExEREZENGDQRERER2YBBExEREZENGDQRERERoWz/D6cZf70Q17ACAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_grpo_metrics(\n", " \"7_5_plus_kl_metrics.csv\",\n", " columns=[\"policy_ratio\", \"adv_avg\", \"adv_std\", \"entropy_avg\"],\n", ")" ] }, { "cell_type": "markdown", "id": "1c7dd979-b319-4836-a109-a9ebea109e27", "metadata": {}, "source": [ "- We can see that the training run falls apart shortly after 50 steps, and the evaluation accuracy goes toward 0\n", "- Manual checking of the generated model responses reveals that the model starts outputting non-sensical text and random tokens like `\"framework.raises Self profess(import\"`\n", "- This can have multiple reasons:\n", "1. KL term is computed on summed logprobs\n", " - `kl_loss = kl_coeff * mean(new_logps - ref_logps)`, where `new_logps` and `ref_logps` are sums over answer tokens\n", " - So, longer sequences make the KL term grow in magnitude, which can incentivize very long outputs (as we can see based on the growing response length) and destabilize training\n", "2. Once rewards collapse around step 200, KL becomes the only gradient\n", " - When rewards are all zero, advantages become 0, so the policy gradient loss has no gradient\n", " - However, the KL term is still there and then dominates updates and can push the model toward higher entropy / near-uniform distributions, which explains the randomness in the generated answers (and th 0.0% evaluation accuracy)" ] }, { "cell_type": "markdown", "id": "d19c2fd3-2aa8-4086-9cc4-5ebbc9f4841e", "metadata": {}, "source": [ "- While the KL term is a standard component of GRPO, which is why we introduce it here, several researchers found that the model may train better without, e.g.,\n", " - [Dr. GRPO](https://arxiv.org/abs/2503.20783)\n", " - [Olmo 3](https://arxiv.org/abs/2512.13961)\n", " - [DeepSeek V3.2](https://arxiv.org/abs/2512.02556)" ] }, { "cell_type": "markdown", "id": "673b64d9-cd32-4415-83fe-5b99c175486b", "metadata": {}, "source": [ "Alternatively, we could stabilize the training in different ways\n", "\n", "1. Length-normalize log-probs and KL using token-level logprobs\n", " - To use token-level logprobs we divide by generated length before the policy ratio and KL term computation\n", " - This removes incentives to inflate sequence length.\n", "\n", "2. Lower the `kl_coeff` (e.g., to 0.001, but I found that this also doesn't help here)\n", " \n", "3. Use a reweighted KL term (importance sampling)\n", " - Old: `kl_loss = kl_coeff * torch.mean(logps - ref_logps)`\n", " - New: `kl_loss = kl_coeff * torch.mean(torch.exp(new_logps - old_logps) * (new_logps - ref_logps))`\n", "\n", "4. Add a small format reward to prevent advantages collapsing to zero; we will talk about format rewards in the next section\n", "\n", "- However, as mentioned before, the common recommendation is not to use a KL term when training on math data (as recommended by Dr. GRPO, Olmo 3, and DeepSeek V3.2)\n", " - This also simplifies the code complexity and resource requirements" ] }, { "cell_type": "markdown", "id": "e4ab7b2f-5fc1-40dc-8469-63bb8880a56c", "metadata": {}, "source": [ " \n", "## 7.6 Adding an explicit format reward" ] }, { "cell_type": "markdown", "id": "0e3cb0c4-a0e6-43f7-bfdf-3d9bf4a2bf40", "metadata": {}, "source": [ "- So far, we only used a single correctness reward; in this section, we add a second format reward, similar to what DeepSeek-R1 did" ] }, { "cell_type": "markdown", "id": "1fdadc2a-6dc9-4225-a80e-9084ad1343a6", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "id": "4a20b12c-f06f-4d38-be17-139e8186a4f8", "metadata": {}, "source": [ " \n", "### 7.6.1 Using `` tokens" ] }, { "cell_type": "markdown", "id": "3e722889-eb5d-428a-908f-0e13e8e31640", "metadata": {}, "source": [ "- Some reasoning models (like DeepSeek-R1 and Qwen3) use so-called `` `` tokens\n", "- This is not necessary, but can be useful to encourage the model to separate its intermediate reasoning from the final answer and enforce a consistent output structure\n", "- Let's load the tokenizer of the base model we used previously:" ] }, { "cell_type": "code", "execution_count": 31, "id": "f83be8ae-04b4-4b0f-9e7b-e00434a7ed45", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Using Apple Silicon GPU (MPS)\n", "✓ qwen3/qwen3-0.6B-base.pth already up-to-date\n" ] } ], "source": [ "from reasoning_from_scratch.ch02 import get_device\n", "from reasoning_from_scratch.ch03 import load_model_and_tokenizer\n", "\n", "device = get_device()\n", "model, tokenizer_base = load_model_and_tokenizer(\n", " which_model=\"base\",\n", " device=device,\n", " use_compile=False\n", ")" ] }, { "cell_type": "markdown", "id": "ca7d1ed4-f3c2-4827-909f-be8ac9877788", "metadata": {}, "source": [ "- As we can see, it breaks up the `` token into several subword tokens, which indicates that the `` token is not part of the vocabulary:" ] }, { "cell_type": "code", "execution_count": 32, "id": "bd53cd1d-a4c3-4168-8fbc-f4a83557f5c1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[13708, 766, 29]\n" ] } ], "source": [ "print(tokenizer_base.encode(\"\"))" ] }, { "cell_type": "code", "execution_count": 33, "id": "f9ff224c-2b5c-46c0-a976-59355b0f45ba", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "for i in [13708, 766, 29]:\n", " print(tokenizer_base.decode([i]))" ] }, { "cell_type": "markdown", "id": "f005631e-4962-422c-8684-0f8008842074", "metadata": {}, "source": [ "- The tokenizer has some empty placeholder slots, so we could add the `` token to the vocabulary as follows:" ] }, { "cell_type": "code", "execution_count": 34, "id": "54320687-9fcf-4758-a96a-0deafd8d1e18", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tokenizer_base._tok.add_special_tokens(\n", " [\"\", \"\", \"\", \"\"]\n", ")" ] }, { "cell_type": "code", "execution_count": 35, "id": "522865ef-62c1-488a-85d0-2b136c978016", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[151667]\n" ] } ], "source": [ "print(tokenizer_base.encode(\"\"))" ] }, { "cell_type": "code", "execution_count": 36, "id": "b49262b2-fd95-4918-b3ff-16791ee429fc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[151668]\n" ] } ], "source": [ "print(tokenizer_base.encode(\"\"))" ] }, { "cell_type": "markdown", "id": "0befd1b3-8e01-4e17-a2a1-164b2cc61761", "metadata": {}, "source": [ "- We added the `\"\"` and `\"\"` tokens above to match it up with the tokenizer of the Qwen3 reasoning variant, which we will discuss shortly" ] }, { "cell_type": "markdown", "id": "5c74faad-5d01-4af6-b4bd-c345178646f9", "metadata": {}, "source": [ "- These tokens would also be supported by the model, which supports token IDs from 0 to 151935 as it has a vocabulary size of 151936" ] }, { "cell_type": "code", "execution_count": 37, "id": "5e7a8ce2-b6e5-4d96-9760-81154e58f03e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Vocabulary size: 151936\n" ] } ], "source": [ "print(\"Vocabulary size:\", model.tok_emb.weight.shape[0])" ] }, { "cell_type": "markdown", "id": "21ae0b14-cfeb-4731-a246-9d3118be855b", "metadata": {}, "source": [ "- Alternatively, the tokenizer of the reasoning model variant already supports these `` tokens natively" ] }, { "cell_type": "markdown", "id": "102d8e28-e0a8-4a61-b23e-405088a22d49", "metadata": {}, "source": [ "- Similar to what we have done in chapter 2, we can load the tokenizer separately:" ] }, { "cell_type": "code", "execution_count": 38, "id": "d5efc3b1-3f37-438e-96be-6c20f0aa0c1e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "✓ qwen3/tokenizer-reasoning.json already up-to-date\n" ] } ], "source": [ "from reasoning_from_scratch.qwen3 import Qwen3Tokenizer\n", "from reasoning_from_scratch.qwen3 import download_qwen3_small\n", "\n", "download_qwen3_small(\n", " kind=\"reasoning\", tokenizer_only=True, out_dir=\"qwen3\"\n", ")\n", "\n", "tokenizer_path = Path(\"qwen3\") / \"tokenizer-reasoning.json\"\n", "tokenizer = Qwen3Tokenizer(tokenizer_file_path=tokenizer_path)" ] }, { "cell_type": "code", "execution_count": 39, "id": "9bfe1784-88c0-48ce-920e-7d886f54a055", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[151667]\n" ] } ], "source": [ "print(tokenizer.encode(\"\"))" ] }, { "cell_type": "code", "execution_count": 40, "id": "c41afcc2-3e36-475a-80cd-609ee1a16b1a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[151668]\n" ] } ], "source": [ "print(tokenizer.encode(\"\"))" ] }, { "cell_type": "markdown", "id": "c4c3921b-9b0a-4932-a917-12ecd4adc2fd", "metadata": {}, "source": [ "- We can then develop a reward function that checks whether the LLM uses `` `` tags\n", "- The function returns 1.0 if both `` and `` occur in the output and in the right order; otherwise, it returns 0.0" ] }, { "cell_type": "markdown", "id": "7eb91a03-59f0-4ad7-9be7-88eb35fdb149", "metadata": {}, "source": [ "" ] }, { "cell_type": "code", "execution_count": 41, "id": "65196330-6a93-4cd5-a0e0-e43ecd984853", "metadata": {}, "outputs": [], "source": [ "def reward_format(\n", " token_ids,\n", " prompt_len,\n", " start_think_id=151667,\n", " end_think_id=151668,\n", "):\n", " try:\n", " gen = token_ids[prompt_len:].tolist()\n", " return float(\n", " gen.index(start_think_id) < gen.index(end_think_id)\n", " )\n", " except ValueError:\n", " return 0.0" ] }, { "cell_type": "code", "execution_count": 42, "id": "0fba8c6e-6b3c-467c-ae35-5644c8254595", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prompt = \"Calculate ...\"\n", "rollout = \"Let's ... ... ...\"\n", "token_ids = tokenizer.encode(prompt + rollout)\n", "\n", "reward_format(\n", " token_ids=torch.tensor(token_ids),\n", " prompt_len=len(tokenizer.encode(prompt))\n", ")" ] }, { "cell_type": "markdown", "id": "1f176bf5-fda6-4d74-ac18-bd57e3d6848f", "metadata": {}, "source": [ "- We can then use the format reward as an additional reward signal to train the model\n", "- For instance, we could modify the `compute_grpo_loss` to a `compute_grpo_loss_plus_format_reward` function as follows:" ] }, { "cell_type": "code", "execution_count": 43, "id": "c6975d6b-37e4-456a-854d-05d37c15ced0", "metadata": {}, "outputs": [], "source": [ "def compute_grpo_loss_plus_format_reward(\n", " # ...\n", " format_reward_weight=1.0, # NEW\n", "):\n", " # ...\n", "\n", " logp = sequence_logprob(model, token_ids, prompt_len) # noqa: F821, F841\n", " rlvr_reward = reward_rlvr(text, example[\"answer\"]) # noqa: F821\n", " format_reward = reward_format(token_ids, prompt_len) # NEW # noqa: F821\n", " reward = rlvr_reward + format_reward_weight * format_reward # NEW # noqa: F841\n", "\n", " # ..." ] }, { "cell_type": "markdown", "id": "7948727e-e5ee-4fec-a5c0-637e7468f6fd", "metadata": {}, "source": [ "- In addition, we want to modify the `render_prompt` to direct the model to emit these `` tokens:" ] }, { "cell_type": "code", "execution_count": 44, "id": "f64fc1ad-ba22-4fdf-a95c-0685892936e3", "metadata": {}, "outputs": [], "source": [ "def render_prompt_with_think_tokens(prompt):\n", " template = (\n", " \"You are a helpful math assistant.\\n\"\n", " \"When solving the problem, first write your reasoning inside and tags.\\n\"\n", " \"Then write the final result on a new line in the exact format:\\n\"\n", " \"\\\\boxed{ANSWER}\\n\\n\"\n", " f\"Question:\\n{prompt}\\n\\nAnswer:\"\n", " )\n", " return template" ] }, { "cell_type": "markdown", "id": "81aadc44-2978-49b6-b816-354afcc8a491", "metadata": {}, "source": [ " \n", "### 7.6.2 Training a model to emit `` tokens" ] }, { "cell_type": "markdown", "id": "8c0bd373-ed79-461e-b6ab-ae674fb66255", "metadata": {}, "source": [ "- We can download the modified script from the supplementary materials as follows:" ] }, { "cell_type": "code", "execution_count": 45, "id": "c0eccc31-5224-43bf-84b5-aedb9580470b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "7_6_plus_format_reward.py: 21.2 KB (cached)\n" ] }, { "data": { "text/plain": [ "PosixPath('7_6_plus_format_reward.py')" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "download_from_github(\n", " \"ch07/03_rlvr_grpo_scripts_advanced/7_6_plus_format_reward.py\"\n", ")" ] }, { "cell_type": "markdown", "id": "bc875387-3a8b-41d3-8187-75e73cde701d", "metadata": {}, "source": [ "- If we train the base model with GRPO to emit `` tokens, the results would be quite poor because the base model has never seen `` tokens before\n", "- Instead, we would want to pre-train or instruction fine-tune the model on data that includes `` tokens first (instruction fine-tuning is covered in the next chapter)\n", "- So, for this section, we train the existing \"reasoning\" variant of the model, which is already familiar with `` tokens" ] }, { "cell_type": "markdown", "id": "85fbecc2-ffcd-4d77-9446-3ed8c63a585f", "metadata": {}, "source": [ "- Similar to before, we can run it as follows (note that this script is already configured to use the \"reasoning\" model variant instead of the \"base\" model):\n", "\n", "```bash\n", "uv run 7_6_plus_format_reward.py \\\n", " --steps 500 \\\n", " --max_new_tokens 1024\n", "```" ] }, { "cell_type": "markdown", "id": "225a1133-0789-4c5a-84ab-14ed68780180", "metadata": {}, "source": [ "- Also similar to before, we can download the following log file for analysis, as running the experiment can be resource-intensive and expensive:" ] }, { "cell_type": "code", "execution_count": 46, "id": "5bb25b33-f12d-42f0-9dbf-46f1d2cfcdd2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "7_6_plus_format_reward_metrics.csv: 51.7 KB (cached)\n" ] }, { "data": { "text/plain": [ "PosixPath('7_6_plus_format_reward_metrics.csv')" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "download_from_github(\n", " \"ch07/02_logs/7_6_plus_format_reward_metrics.csv\"\n", ")" ] }, { "cell_type": "code", "execution_count": 47, "id": "847d7468-6df6-4fe0-a6a1-5f8737670f31", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_grpo_metrics(\n", " \"7_6_plus_format_reward_metrics.csv\",\n", " columns=[\"loss\", \"reward_avg\", \"avg_response_len\", \"eval_acc\"],\n", " #save_as=\"18.pdf\"\n", ")" ] }, { "cell_type": "markdown", "id": "38cb7c43-a0cf-4194-8168-4bce5908618c", "metadata": {}, "source": [ "> **Note on `loss` and `kl_loss`**\n", ">\n", "> - This experiment uses `7_6_plus_format_reward.py` with the default settings `--kl_coeff 0.0` and `--inner_epochs 1`\n", "> - Because `--kl_coeff` is set to `0.0`, the KL penalty is disabled, so the logged `kl_loss` remains `0` throughout the run\n", ">\n", "> - If you want to enable KL regularization with the same settings used in Section 7.5, run:\n", ">\n", "> ```bash\n", "> uv run 7_6_plus_format_reward.py \\\n", "> --steps 500 \\\n", "> --max_new_tokens 1024 \\\n", "> --kl_coeff 0.001 \\\n", "> --inner_epochs 2\n", "> ```\n", ">\n", "> - The logged `loss` is also `0` with the default 7.6 settings\n", "> - This happens because the run uses only one inner update (`--inner_epochs 1`) and compares the model against a copy of itself from the same step\n", "> - As a result, the policy ratio starts at `1`, and since the advantages are normalized to have mean `0`, the scalar policy loss evaluates to `0`\n", ">\n", "> - So in this case, `loss = 0` is a computation artifact that is a consequence of the default settings\n", "> - I.e., it mainly reflects that the run uses a single inner epoch and no KL term, which makes the logged scalar loss uninformative\n", "> - The more useful quantities to monitor here are metrics such as `reward_avg`, `format_reward_avg`, `adv_std`, and `entropy_avg`\n" ] }, { "cell_type": "code", "execution_count": 48, "id": "dcabee2f-75be-4a11-bece-868d5205682b", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_grpo_metrics(\n", " \"7_6_plus_format_reward_metrics.csv\",\n", " columns=[\"reward_avg\", \"format_reward_avg\", \"adv_std\", \"entropy_avg\"],\n", " #save_as=\"19.pdf\"\n", ")" ] }, { "cell_type": "markdown", "id": "5f3a6ed5-1d28-46b1-8812-c16cf7a1d734", "metadata": {}, "source": [ "- As we can see, the model initially improves but then becomes worse after the first 100 steps; this could be correlated to the shorter response length the model is outputting after these first 100 steps\n", "- One potential explanation is that the model already gets too many rewards from following the `` tag format, as shown above, and does not focus enough on the correctness anymore\n", "- We could reduce the format reward magnitude by reducing the default `format_reward_weight` from 1.0 to 0.1\n", "- Another improvement could be to make the format reward conditional, meaning that it is only awarded if the answer is also correct (right now, it is awarded independently of whether the answer is correct or not)" ] }, { "cell_type": "markdown", "id": "47f2d1b1-d15c-4161-aa5d-8e06e5dcbc2e", "metadata": {}, "source": [ "```python\n", "if conditional_reward:\n", " format_reward *= rlvr_reward\n", "reward = rlvr_reward + format_reward_weight * format_reward\n", "```" ] }, { "cell_type": "markdown", "id": "63844d19-a804-4ab6-9304-65f0f259fe0b", "metadata": {}, "source": [ " \n", "## 7.7 More GRPO modifications, tips, and tricks" ] }, { "cell_type": "markdown", "id": "9c976fb7-7f18-4c95-b66b-81859e6c7786", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "id": "9141996f-1503-47d3-b4bd-f07f6619df49", "metadata": {}, "source": [ "- In the months following the success of DeepSeek-R1, many researchers proposed improvements over the original GRPO algorithm that improve both the stability and performance\n", "- Due to the already long length of this chapter, this section only briefly lists each change / improvement\n", "- You can find more information and code on these in the [supplementary materials](../03_rlvr_grpo_scripts_advanced/)\n", "\n", "1. Zero gradient signal filtering ([DAPO by Yu et al., 2025](https://arxiv.org/abs/2503.14476))\n", "2. Active sampling (DAPO)\n", "3. Token-level loss (DAPO)\n", "4. No KL loss (DAPO and [Dr. GRPO by Liu et al., 2025](https://arxiv.org/abs/2503.20783))\n", "5. Clip higher (DAPO)\n", "6. Truncated importance sampling ([Yao et al., 2025](https://fengyao.notion.site/off-policy-rl))\n", "7. No standard deviation normalization (Dr. GRPO)\n", "8. KL tuning with domain-specific KL strengths; zero for math ([DeepSeek V3.2](https://arxiv.org/abs/2512.02556)\n", "9. Reweighted KL (DeepSeek V3.2)\n", "10. Off-policy sequence masking (DeepSeek V3.2)\n", "11. Keep sampling mask for top-p / top-k (DeepSeek V3.2)\n", "12. Keep original GRPO advantage normalization (DeepSeek V3.2)\n", "13. Per-reward group-wise normalization before aggregation ([GDPO by Liu et al., 2026](https://arxiv.org/abs/2601.05242))\n", "14. Sequence-level importance sampling and clipping ([GSPO by Zheng et al., 2025](https://arxiv.org/abs/2507.18071))\n", "15. Clip importance-sampling weights rather than token updates ([CISPO by MiniMax et al., 2025](https://arxiv.org/abs/2506.13585))" ] }, { "cell_type": "markdown", "id": "55cce81d-0cac-4e0e-96e5-2778f836d9f9", "metadata": {}, "source": [ " \n", "## 7.8 Summary" ] }, { "cell_type": "markdown", "id": "a26e0d6e-81f0-4a22-9277-8918adbb4a76", "metadata": {}, "source": [ "- No code in this section" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.16" } }, "nbformat": 4, "nbformat_minor": 5 }