yashash045 commited on
Commit
094e300
·
verified ·
1 Parent(s): c603d39

Notebook: strip PREVIOUS HANDOFF NOTES line; remove broken Kaggle badge

Browse files
Files changed (1) hide show
  1. devops_pipeline_gym_colab.ipynb +1864 -20
devops_pipeline_gym_colab.ipynb CHANGED
@@ -6,11 +6,10 @@
6
  "id": "tHbOsIRfvz8J"
7
  },
8
  "source": [
9
- "# DevOps Pipeline Gym — Quick Demo\n",
10
  "*A deterministic, no-LLM-judge OpenEnv environment for incident-response decision making.*\n",
11
  "\n",
12
  "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Yashash4/devops-pipeline-gym/blob/main/devops_pipeline_gym_colab.ipynb)\n",
13
- "[![Open in Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/import?source=https%3A//github.com/Yashash4/devops-pipeline-gym/blob/main/devops_pipeline_gym_colab.ipynb)\n",
14
  "\n",
15
  "This notebook reproduces our hackathon headline result in ~12 minutes on a free Colab/Kaggle T4:\n",
16
  "- Connect to our live HF Space env\n",
@@ -20,11 +19,11 @@
20
  "- Display the GRPO refinement curve (supporting evidence)\n",
21
  "- (Optional) Compare against a 72B frontier model\n",
22
  "\n",
23
- "**Setup:** Set `HF_TOKEN` in Colab/Kaggle Secrets first — left sidebar key icon → New secret → name=`HF_TOKEN`, value=`hf_...`. Make sure the secret is enabled for this notebook.\n",
24
  "\n",
25
- "**Hardware:** Free Colab T4 GPU (Runtime → Change runtime type → T4 GPU). Cells 1–5 use the HF Inference Router so they don't need a local GPU; the trained-adapter cell (cell 6) uses the T4 to load the LoRA in 4-bit.\n",
26
  "\n",
27
- "**Links:** [Live HF Space](https://huggingface.co/spaces/yashash045/devops-pipeline-gym) · [Code](https://github.com/Yashash4/devops-pipeline-gym) · [Trained adapter](https://huggingface.co/yashash045/devops-pipeline-gym-sft-adapter) · [Blog](https://huggingface.co/spaces/yashash045/devops-pipeline-gym/blob/main/BLOG.md)\n"
28
  ],
29
  "id": "tHbOsIRfvz8J"
30
  },
@@ -133,9 +132,9 @@
133
  "cell_type": "markdown",
134
  "id": "117ac516",
135
  "source": [
136
- "## 1. Baseline — untrained Qwen3-1.7B base\n",
137
  "\n",
138
- "Now we'll run the **untrained Qwen3-1.7B base** on `judgment_call` (the hardest task — multiple valid resolution paths, 12-step time limit). Same model architecture as our trained one — just no SFT adapter. We call it through the HF Inference Router so no local GPU is needed for the baseline.\n",
139
  "\n",
140
  "Task: `judgment_call`, seed `5003`, max 12 steps, deterministic env."
141
  ],
@@ -147,7 +146,7 @@
147
  "cell_type": "code",
148
  "id": "def201bd",
149
  "source": [
150
- "# ─── Shared helpers used by both baseline and trained rollouts ──────────────\n",
151
  "import os, json\n",
152
  "from devops_pipeline_gym.client import DevopsPipelineEnv\n",
153
  "from devops_pipeline_gym.models import PipelineAction\n",
@@ -193,7 +192,6 @@
193
  " f\"GOAL: {obs.get('goal', '')}\\n\\n\"\n",
194
  " f\"CURRENT SERVICES:\\n{service_lines}\\n\\n\"\n",
195
  " f\"LAST ACTION RESULT: {last}\\n\"\n",
196
- " f\"PREVIOUS HANDOFF NOTES: none\\n\\n\"\n",
197
  " f\"AVAILABLE ACTIONS: {actions_str}\\n\\n\"\n",
198
  " f\"Respond with ONE JSON action.\"\n",
199
  " )\n",
@@ -317,7 +315,7 @@
317
  " )\n",
318
  " return total_reward, len(history), succeeded, history\n",
319
  "\n",
320
- "# ─── Baseline call: HF Inference Router ────────────────────────────────────\n",
321
  "from openai import OpenAI\n",
322
  "\n",
323
  "router = OpenAI(base_url=\"https://router.huggingface.co/v1\", api_key=os.environ[\"HF_TOKEN\"])\n",
@@ -326,7 +324,7 @@
326
  "def call_baseline(messages, max_tokens=256):\n",
327
  " resp = router.chat.completions.create(\n",
328
  " model=BASELINE_MODEL, messages=messages,\n",
329
- " max_tokens=max_tokens, temperature=0.3 # match trained cell — single-seed apples-to-apples,\n",
330
  " )\n",
331
  " return resp.choices[0].message.content or \"\"\n",
332
  "\n",
@@ -376,7 +374,7 @@
376
  "cell_type": "markdown",
377
  "id": "cdc35562",
378
  "source": [
379
- "## 2. Trained — Qwen3-1.7B + SFT LoRA\n",
380
  "\n",
381
  "Now we load our SFT adapter from [`yashash045/devops-pipeline-gym-sft-adapter`](https://huggingface.co/yashash045/devops-pipeline-gym-sft-adapter) onto Qwen3-1.7B-bnb-4bit and run the **same task** (`judgment_call`) at the **same seed** (`5003`). Same prompt format, same env. The only thing that changes is the model weights.\n",
382
  "\n",
@@ -695,7 +693,7 @@
695
  "source": [
696
  "## 3. Side-by-side\n",
697
  "\n",
698
- "Same task, same seed, deterministic env. The bar height difference is what SFT bought us — measured live, not from a saved table."
699
  ],
700
  "metadata": {
701
  "id": "b55a0c27"
@@ -715,7 +713,7 @@
715
  " bars = ax.bar(configs, rewards, color=colors, edgecolor=\"black\", linewidth=0.5)\n",
716
  " ax.axhline(0, color=\"black\", lw=0.5)\n",
717
  " ax.set_ylabel(\"Total reward (judgment_call, seed 5003)\")\n",
718
- " ax.set_title(f\"Δ = {trained_reward - baseline_reward:+.2f}\", fontsize=13, weight=\"bold\")\n",
719
  " ax.grid(True, axis=\"y\", alpha=0.3)\n",
720
  " for bar, val in zip(bars, rewards):\n",
721
  " h = bar.get_height()\n",
@@ -776,7 +774,7 @@
776
  "source": [
777
  "## 4. GRPO refinement (supporting evidence)\n",
778
  "\n",
779
- "We ran GRPO on top of SFT on an L40S to validate the RL pipeline end-to-end. Loss, grad_norm, KL, and entropy all flowed (real training, not a static dataset). Mean reward stayed close to the per-step floor — our read in the [BLOG.md](https://huggingface.co/spaces/yashash045/devops-pipeline-gym/blob/main/BLOG.md): the per-step reward is bounded to roughly ±0.3 with most policy improvement concentrated in the terminal +2.0 for a clean approve, so few rollouts touch that bonus and the gradient is starved. SFT remains the dominant local optimum for this env, so we ship the SFT LoRA as the headline. Curve below.\n"
780
  ],
781
  "metadata": {
782
  "id": "c80b40bc"
@@ -936,7 +934,1853 @@
936
  {
937
  "cell_type": "markdown",
938
  "id": "f7fc43ce",
939
- "source": "## Wrap-up\n\nWhat this notebook proved, end-to-end:\n\n- The live HF Space env is reachable from a free Colab/Kaggle and serves real episodes\n- Reward graders are deterministic — same trajectory, same score\n- Qwen3-1.7B + SFT LoRA beats the same Qwen3-1.7B base on the same seed (apples-to-apples, +1.156 reward)\n- A 1.7B trained model beats every untrained 70B-700B frontier model on this task (Llama-3.3-70B, DeepSeek-V3.1, Mistral-Large, Qwen2.5-72B, GPT-OSS-120B all land in -1.20 to -1.82 band)\n- Training infra is end-to-end functional (GRPO curve embedded above)\n\n### Links\n\n- **Live HF Space (the env)**: https://huggingface.co/spaces/yashash045/devops-pipeline-gym\n- **Gradio play-as-agent demo**: https://huggingface.co/spaces/yashash045/devops-pipeline-demo\n- **Trained adapter (HERO)**: https://huggingface.co/yashash045/devops-pipeline-gym-sft-adapter\n- **GRPO RL refinement adapter**: https://huggingface.co/yashash045/devops-pipeline-gym-trained\n- **Blog post**: [BLOG.md](https://huggingface.co/spaces/yashash045/devops-pipeline-gym/blob/main/BLOG.md)\n- **GitHub repo (code, training scripts, data)**: https://github.com/Yashash4/devops-pipeline-gym\n\n### Reproduce the full per-task eval (multi-seed × 6 tasks)\n\n```bash\npython training/eval_baseline.py --model unsloth/Qwen3-1.7B-bnb-4bit --env-url https://yashash045-devops-pipeline-gym.hf.space --output baseline.json --n-seeds 5\npython training/eval_baseline.py --model unsloth/Qwen3-1.7B-bnb-4bit --adapter-path yashash045/devops-pipeline-gym-sft-adapter --env-url https://yashash045-devops-pipeline-gym.hf.space --output trained.json --n-seeds 5\npython training/generate_comparison_chart.py --baseline baseline.json --trained trained.json --output before_after.png\n```\n\nApache 2.0. Team Tripod (Yashash, Gajanand, Likith) · OpenEnv Hackathon Grand Finale 2026.\n",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
940
  "metadata": {
941
  "id": "f7fc43ce"
942
  }
@@ -996,9 +2840,9 @@
996
  "description": "",
997
  "description_tooltip": null,
998
  "layout": "IPY_MODEL_08f8652b62df49568c1704929f97ed49",
999
- "placeholder": "​",
1000
  "style": "IPY_MODEL_d2a85528d35a4b2d896d411fcb6357d7",
1001
- "value": "Loading weights: 100%"
1002
  }
1003
  },
1004
  "599e2648e8fc4bc6b2f59f62b476db73": {
@@ -1041,9 +2885,9 @@
1041
  "description": "",
1042
  "description_tooltip": null,
1043
  "layout": "IPY_MODEL_0ad0719c02314d47a9769b2e263f3139",
1044
- "placeholder": "​",
1045
  "style": "IPY_MODEL_88c6f6fc6d0b4d7cb59c4e4f1d539da1",
1046
- "value": " 310/310 [00:01<00:00, 370.45it/s]"
1047
  }
1048
  },
1049
  "159c04da056f4f3f8a6a4c68b9f421ad": {
 
6
  "id": "tHbOsIRfvz8J"
7
  },
8
  "source": [
9
+ "# DevOps Pipeline Gym \u00e2\u20ac\u201d Quick Demo\n",
10
  "*A deterministic, no-LLM-judge OpenEnv environment for incident-response decision making.*\n",
11
  "\n",
12
  "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Yashash4/devops-pipeline-gym/blob/main/devops_pipeline_gym_colab.ipynb)\n",
 
13
  "\n",
14
  "This notebook reproduces our hackathon headline result in ~12 minutes on a free Colab/Kaggle T4:\n",
15
  "- Connect to our live HF Space env\n",
 
19
  "- Display the GRPO refinement curve (supporting evidence)\n",
20
  "- (Optional) Compare against a 72B frontier model\n",
21
  "\n",
22
+ "**Setup:** Set `HF_TOKEN` in Colab/Kaggle Secrets first \u00e2\u20ac\u201d left sidebar key icon \u00e2\u2020\u2019 New secret \u00e2\u2020\u2019 name=`HF_TOKEN`, value=`hf_...`. Make sure the secret is enabled for this notebook.\n",
23
  "\n",
24
+ "**Hardware:** Free Colab T4 GPU (Runtime \u00e2\u2020\u2019 Change runtime type \u00e2\u2020\u2019 T4 GPU). Cells 1\u00e2\u20ac\u201c5 use the HF Inference Router so they don't need a local GPU; the trained-adapter cell (cell 6) uses the T4 to load the LoRA in 4-bit.\n",
25
  "\n",
26
+ "**Links:** [Live HF Space](https://huggingface.co/spaces/yashash045/devops-pipeline-gym) \u00c2\u00b7 [Code](https://github.com/Yashash4/devops-pipeline-gym) \u00c2\u00b7 [Trained adapter](https://huggingface.co/yashash045/devops-pipeline-gym-sft-adapter) \u00c2\u00b7 [Blog](https://huggingface.co/spaces/yashash045/devops-pipeline-gym/blob/main/BLOG.md)\n"
27
  ],
28
  "id": "tHbOsIRfvz8J"
29
  },
 
132
  "cell_type": "markdown",
133
  "id": "117ac516",
134
  "source": [
135
+ "## 1. Baseline \u00e2\u20ac\u201d untrained Qwen3-1.7B base\n",
136
  "\n",
137
+ "Now we'll run the **untrained Qwen3-1.7B base** on `judgment_call` (the hardest task \u00e2\u20ac\u201d multiple valid resolution paths, 12-step time limit). Same model architecture as our trained one \u00e2\u20ac\u201d just no SFT adapter. We call it through the HF Inference Router so no local GPU is needed for the baseline.\n",
138
  "\n",
139
  "Task: `judgment_call`, seed `5003`, max 12 steps, deterministic env."
140
  ],
 
146
  "cell_type": "code",
147
  "id": "def201bd",
148
  "source": [
149
+ "# \u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac Shared helpers used by both baseline and trained rollouts \u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\n",
150
  "import os, json\n",
151
  "from devops_pipeline_gym.client import DevopsPipelineEnv\n",
152
  "from devops_pipeline_gym.models import PipelineAction\n",
 
192
  " f\"GOAL: {obs.get('goal', '')}\\n\\n\"\n",
193
  " f\"CURRENT SERVICES:\\n{service_lines}\\n\\n\"\n",
194
  " f\"LAST ACTION RESULT: {last}\\n\"\n",
 
195
  " f\"AVAILABLE ACTIONS: {actions_str}\\n\\n\"\n",
196
  " f\"Respond with ONE JSON action.\"\n",
197
  " )\n",
 
315
  " )\n",
316
  " return total_reward, len(history), succeeded, history\n",
317
  "\n",
318
+ "# \u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac Baseline call: HF Inference Router \u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\n",
319
  "from openai import OpenAI\n",
320
  "\n",
321
  "router = OpenAI(base_url=\"https://router.huggingface.co/v1\", api_key=os.environ[\"HF_TOKEN\"])\n",
 
324
  "def call_baseline(messages, max_tokens=256):\n",
325
  " resp = router.chat.completions.create(\n",
326
  " model=BASELINE_MODEL, messages=messages,\n",
327
+ " max_tokens=max_tokens, temperature=0.3 # match trained cell \u00e2\u20ac\u201d single-seed apples-to-apples,\n",
328
  " )\n",
329
  " return resp.choices[0].message.content or \"\"\n",
330
  "\n",
 
374
  "cell_type": "markdown",
375
  "id": "cdc35562",
376
  "source": [
377
+ "## 2. Trained \u00e2\u20ac\u201d Qwen3-1.7B + SFT LoRA\n",
378
  "\n",
379
  "Now we load our SFT adapter from [`yashash045/devops-pipeline-gym-sft-adapter`](https://huggingface.co/yashash045/devops-pipeline-gym-sft-adapter) onto Qwen3-1.7B-bnb-4bit and run the **same task** (`judgment_call`) at the **same seed** (`5003`). Same prompt format, same env. The only thing that changes is the model weights.\n",
380
  "\n",
 
693
  "source": [
694
  "## 3. Side-by-side\n",
695
  "\n",
696
+ "Same task, same seed, deterministic env. The bar height difference is what SFT bought us \u00e2\u20ac\u201d measured live, not from a saved table."
697
  ],
698
  "metadata": {
699
  "id": "b55a0c27"
 
713
  " bars = ax.bar(configs, rewards, color=colors, edgecolor=\"black\", linewidth=0.5)\n",
714
  " ax.axhline(0, color=\"black\", lw=0.5)\n",
715
  " ax.set_ylabel(\"Total reward (judgment_call, seed 5003)\")\n",
716
+ " ax.set_title(f\"\u00ce\u201d = {trained_reward - baseline_reward:+.2f}\", fontsize=13, weight=\"bold\")\n",
717
  " ax.grid(True, axis=\"y\", alpha=0.3)\n",
718
  " for bar, val in zip(bars, rewards):\n",
719
  " h = bar.get_height()\n",
 
774
  "source": [
775
  "## 4. GRPO refinement (supporting evidence)\n",
776
  "\n",
777
+ "We ran GRPO on top of SFT on an L40S to validate the RL pipeline end-to-end. Loss, grad_norm, KL, and entropy all flowed (real training, not a static dataset). Mean reward stayed close to the per-step floor \u00e2\u20ac\u201d our read in the [BLOG.md](https://huggingface.co/spaces/yashash045/devops-pipeline-gym/blob/main/BLOG.md): the per-step reward is bounded to roughly \u00c2\u00b10.3 with most policy improvement concentrated in the terminal +2.0 for a clean approve, so few rollouts touch that bonus and the gradient is starved. SFT remains the dominant local optimum for this env, so we ship the SFT LoRA as the headline. Curve below.\n"
778
  ],
779
  "metadata": {
780
  "id": "c80b40bc"
 
934
  {
935
  "cell_type": "markdown",
936
  "id": "f7fc43ce",
937
+ "source": [
938
+ "#",
939
+ "#",
940
+ " ",
941
+ "W",
942
+ "r",
943
+ "a",
944
+ "p",
945
+ "-",
946
+ "u",
947
+ "p",
948
+ "\n",
949
+ "\n",
950
+ "W",
951
+ "h",
952
+ "a",
953
+ "t",
954
+ " ",
955
+ "t",
956
+ "h",
957
+ "i",
958
+ "s",
959
+ " ",
960
+ "n",
961
+ "o",
962
+ "t",
963
+ "e",
964
+ "b",
965
+ "o",
966
+ "o",
967
+ "k",
968
+ " ",
969
+ "p",
970
+ "r",
971
+ "o",
972
+ "v",
973
+ "e",
974
+ "d",
975
+ ",",
976
+ " ",
977
+ "e",
978
+ "n",
979
+ "d",
980
+ "-",
981
+ "t",
982
+ "o",
983
+ "-",
984
+ "e",
985
+ "n",
986
+ "d",
987
+ ":",
988
+ "\n",
989
+ "\n",
990
+ "-",
991
+ " ",
992
+ "T",
993
+ "h",
994
+ "e",
995
+ " ",
996
+ "l",
997
+ "i",
998
+ "v",
999
+ "e",
1000
+ " ",
1001
+ "H",
1002
+ "F",
1003
+ " ",
1004
+ "S",
1005
+ "p",
1006
+ "a",
1007
+ "c",
1008
+ "e",
1009
+ " ",
1010
+ "e",
1011
+ "n",
1012
+ "v",
1013
+ " ",
1014
+ "i",
1015
+ "s",
1016
+ " ",
1017
+ "r",
1018
+ "e",
1019
+ "a",
1020
+ "c",
1021
+ "h",
1022
+ "a",
1023
+ "b",
1024
+ "l",
1025
+ "e",
1026
+ " ",
1027
+ "f",
1028
+ "r",
1029
+ "o",
1030
+ "m",
1031
+ " ",
1032
+ "a",
1033
+ " ",
1034
+ "f",
1035
+ "r",
1036
+ "e",
1037
+ "e",
1038
+ " ",
1039
+ "C",
1040
+ "o",
1041
+ "l",
1042
+ "a",
1043
+ "b",
1044
+ "/",
1045
+ "K",
1046
+ "a",
1047
+ "g",
1048
+ "g",
1049
+ "l",
1050
+ "e",
1051
+ " ",
1052
+ "a",
1053
+ "n",
1054
+ "d",
1055
+ " ",
1056
+ "s",
1057
+ "e",
1058
+ "r",
1059
+ "v",
1060
+ "e",
1061
+ "s",
1062
+ " ",
1063
+ "r",
1064
+ "e",
1065
+ "a",
1066
+ "l",
1067
+ " ",
1068
+ "e",
1069
+ "p",
1070
+ "i",
1071
+ "s",
1072
+ "o",
1073
+ "d",
1074
+ "e",
1075
+ "s",
1076
+ "\n",
1077
+ "-",
1078
+ " ",
1079
+ "R",
1080
+ "e",
1081
+ "w",
1082
+ "a",
1083
+ "r",
1084
+ "d",
1085
+ " ",
1086
+ "g",
1087
+ "r",
1088
+ "a",
1089
+ "d",
1090
+ "e",
1091
+ "r",
1092
+ "s",
1093
+ " ",
1094
+ "a",
1095
+ "r",
1096
+ "e",
1097
+ " ",
1098
+ "d",
1099
+ "e",
1100
+ "t",
1101
+ "e",
1102
+ "r",
1103
+ "m",
1104
+ "i",
1105
+ "n",
1106
+ "i",
1107
+ "s",
1108
+ "t",
1109
+ "i",
1110
+ "c",
1111
+ " ",
1112
+ "\u00e2",
1113
+ "\u20ac",
1114
+ "\u201d",
1115
+ " ",
1116
+ "s",
1117
+ "a",
1118
+ "m",
1119
+ "e",
1120
+ " ",
1121
+ "t",
1122
+ "r",
1123
+ "a",
1124
+ "j",
1125
+ "e",
1126
+ "c",
1127
+ "t",
1128
+ "o",
1129
+ "r",
1130
+ "y",
1131
+ ",",
1132
+ " ",
1133
+ "s",
1134
+ "a",
1135
+ "m",
1136
+ "e",
1137
+ " ",
1138
+ "s",
1139
+ "c",
1140
+ "o",
1141
+ "r",
1142
+ "e",
1143
+ "\n",
1144
+ "-",
1145
+ " ",
1146
+ "Q",
1147
+ "w",
1148
+ "e",
1149
+ "n",
1150
+ "3",
1151
+ "-",
1152
+ "1",
1153
+ ".",
1154
+ "7",
1155
+ "B",
1156
+ " ",
1157
+ "+",
1158
+ " ",
1159
+ "S",
1160
+ "F",
1161
+ "T",
1162
+ " ",
1163
+ "L",
1164
+ "o",
1165
+ "R",
1166
+ "A",
1167
+ " ",
1168
+ "b",
1169
+ "e",
1170
+ "a",
1171
+ "t",
1172
+ "s",
1173
+ " ",
1174
+ "t",
1175
+ "h",
1176
+ "e",
1177
+ " ",
1178
+ "s",
1179
+ "a",
1180
+ "m",
1181
+ "e",
1182
+ " ",
1183
+ "Q",
1184
+ "w",
1185
+ "e",
1186
+ "n",
1187
+ "3",
1188
+ "-",
1189
+ "1",
1190
+ ".",
1191
+ "7",
1192
+ "B",
1193
+ " ",
1194
+ "b",
1195
+ "a",
1196
+ "s",
1197
+ "e",
1198
+ " ",
1199
+ "o",
1200
+ "n",
1201
+ " ",
1202
+ "t",
1203
+ "h",
1204
+ "e",
1205
+ " ",
1206
+ "s",
1207
+ "a",
1208
+ "m",
1209
+ "e",
1210
+ " ",
1211
+ "s",
1212
+ "e",
1213
+ "e",
1214
+ "d",
1215
+ " ",
1216
+ "(",
1217
+ "a",
1218
+ "p",
1219
+ "p",
1220
+ "l",
1221
+ "e",
1222
+ "s",
1223
+ "-",
1224
+ "t",
1225
+ "o",
1226
+ "-",
1227
+ "a",
1228
+ "p",
1229
+ "p",
1230
+ "l",
1231
+ "e",
1232
+ "s",
1233
+ ",",
1234
+ " ",
1235
+ "+",
1236
+ "1",
1237
+ ".",
1238
+ "1",
1239
+ "5",
1240
+ "6",
1241
+ " ",
1242
+ "r",
1243
+ "e",
1244
+ "w",
1245
+ "a",
1246
+ "r",
1247
+ "d",
1248
+ ")",
1249
+ "\n",
1250
+ "-",
1251
+ " ",
1252
+ "A",
1253
+ " ",
1254
+ "1",
1255
+ ".",
1256
+ "7",
1257
+ "B",
1258
+ " ",
1259
+ "t",
1260
+ "r",
1261
+ "a",
1262
+ "i",
1263
+ "n",
1264
+ "e",
1265
+ "d",
1266
+ " ",
1267
+ "m",
1268
+ "o",
1269
+ "d",
1270
+ "e",
1271
+ "l",
1272
+ " ",
1273
+ "b",
1274
+ "e",
1275
+ "a",
1276
+ "t",
1277
+ "s",
1278
+ " ",
1279
+ "e",
1280
+ "v",
1281
+ "e",
1282
+ "r",
1283
+ "y",
1284
+ " ",
1285
+ "u",
1286
+ "n",
1287
+ "t",
1288
+ "r",
1289
+ "a",
1290
+ "i",
1291
+ "n",
1292
+ "e",
1293
+ "d",
1294
+ " ",
1295
+ "7",
1296
+ "0",
1297
+ "B",
1298
+ "-",
1299
+ "7",
1300
+ "0",
1301
+ "0",
1302
+ "B",
1303
+ " ",
1304
+ "f",
1305
+ "r",
1306
+ "o",
1307
+ "n",
1308
+ "t",
1309
+ "i",
1310
+ "e",
1311
+ "r",
1312
+ " ",
1313
+ "m",
1314
+ "o",
1315
+ "d",
1316
+ "e",
1317
+ "l",
1318
+ " ",
1319
+ "o",
1320
+ "n",
1321
+ " ",
1322
+ "t",
1323
+ "h",
1324
+ "i",
1325
+ "s",
1326
+ " ",
1327
+ "t",
1328
+ "a",
1329
+ "s",
1330
+ "k",
1331
+ " ",
1332
+ "(",
1333
+ "L",
1334
+ "l",
1335
+ "a",
1336
+ "m",
1337
+ "a",
1338
+ "-",
1339
+ "3",
1340
+ ".",
1341
+ "3",
1342
+ "-",
1343
+ "7",
1344
+ "0",
1345
+ "B",
1346
+ ",",
1347
+ " ",
1348
+ "D",
1349
+ "e",
1350
+ "e",
1351
+ "p",
1352
+ "S",
1353
+ "e",
1354
+ "e",
1355
+ "k",
1356
+ "-",
1357
+ "V",
1358
+ "3",
1359
+ ".",
1360
+ "1",
1361
+ ",",
1362
+ " ",
1363
+ "M",
1364
+ "i",
1365
+ "s",
1366
+ "t",
1367
+ "r",
1368
+ "a",
1369
+ "l",
1370
+ "-",
1371
+ "L",
1372
+ "a",
1373
+ "r",
1374
+ "g",
1375
+ "e",
1376
+ ",",
1377
+ " ",
1378
+ "Q",
1379
+ "w",
1380
+ "e",
1381
+ "n",
1382
+ "2",
1383
+ ".",
1384
+ "5",
1385
+ "-",
1386
+ "7",
1387
+ "2",
1388
+ "B",
1389
+ ",",
1390
+ " ",
1391
+ "G",
1392
+ "P",
1393
+ "T",
1394
+ "-",
1395
+ "O",
1396
+ "S",
1397
+ "S",
1398
+ "-",
1399
+ "1",
1400
+ "2",
1401
+ "0",
1402
+ "B",
1403
+ " ",
1404
+ "a",
1405
+ "l",
1406
+ "l",
1407
+ " ",
1408
+ "l",
1409
+ "a",
1410
+ "n",
1411
+ "d",
1412
+ " ",
1413
+ "i",
1414
+ "n",
1415
+ " ",
1416
+ "-",
1417
+ "1",
1418
+ ".",
1419
+ "2",
1420
+ "0",
1421
+ " ",
1422
+ "t",
1423
+ "o",
1424
+ " ",
1425
+ "-",
1426
+ "1",
1427
+ ".",
1428
+ "8",
1429
+ "2",
1430
+ " ",
1431
+ "b",
1432
+ "a",
1433
+ "n",
1434
+ "d",
1435
+ ")",
1436
+ "\n",
1437
+ "-",
1438
+ " ",
1439
+ "T",
1440
+ "r",
1441
+ "a",
1442
+ "i",
1443
+ "n",
1444
+ "i",
1445
+ "n",
1446
+ "g",
1447
+ " ",
1448
+ "i",
1449
+ "n",
1450
+ "f",
1451
+ "r",
1452
+ "a",
1453
+ " ",
1454
+ "i",
1455
+ "s",
1456
+ " ",
1457
+ "e",
1458
+ "n",
1459
+ "d",
1460
+ "-",
1461
+ "t",
1462
+ "o",
1463
+ "-",
1464
+ "e",
1465
+ "n",
1466
+ "d",
1467
+ " ",
1468
+ "f",
1469
+ "u",
1470
+ "n",
1471
+ "c",
1472
+ "t",
1473
+ "i",
1474
+ "o",
1475
+ "n",
1476
+ "a",
1477
+ "l",
1478
+ " ",
1479
+ "(",
1480
+ "G",
1481
+ "R",
1482
+ "P",
1483
+ "O",
1484
+ " ",
1485
+ "c",
1486
+ "u",
1487
+ "r",
1488
+ "v",
1489
+ "e",
1490
+ " ",
1491
+ "e",
1492
+ "m",
1493
+ "b",
1494
+ "e",
1495
+ "d",
1496
+ "d",
1497
+ "e",
1498
+ "d",
1499
+ " ",
1500
+ "a",
1501
+ "b",
1502
+ "o",
1503
+ "v",
1504
+ "e",
1505
+ ")",
1506
+ "\n",
1507
+ "\n",
1508
+ "#",
1509
+ "#",
1510
+ "#",
1511
+ " ",
1512
+ "L",
1513
+ "i",
1514
+ "n",
1515
+ "k",
1516
+ "s",
1517
+ "\n",
1518
+ "\n",
1519
+ "-",
1520
+ " ",
1521
+ "*",
1522
+ "*",
1523
+ "L",
1524
+ "i",
1525
+ "v",
1526
+ "e",
1527
+ " ",
1528
+ "H",
1529
+ "F",
1530
+ " ",
1531
+ "S",
1532
+ "p",
1533
+ "a",
1534
+ "c",
1535
+ "e",
1536
+ " ",
1537
+ "(",
1538
+ "t",
1539
+ "h",
1540
+ "e",
1541
+ " ",
1542
+ "e",
1543
+ "n",
1544
+ "v",
1545
+ ")",
1546
+ "*",
1547
+ "*",
1548
+ ":",
1549
+ " ",
1550
+ "h",
1551
+ "t",
1552
+ "t",
1553
+ "p",
1554
+ "s",
1555
+ ":",
1556
+ "/",
1557
+ "/",
1558
+ "h",
1559
+ "u",
1560
+ "g",
1561
+ "g",
1562
+ "i",
1563
+ "n",
1564
+ "g",
1565
+ "f",
1566
+ "a",
1567
+ "c",
1568
+ "e",
1569
+ ".",
1570
+ "c",
1571
+ "o",
1572
+ "/",
1573
+ "s",
1574
+ "p",
1575
+ "a",
1576
+ "c",
1577
+ "e",
1578
+ "s",
1579
+ "/",
1580
+ "y",
1581
+ "a",
1582
+ "s",
1583
+ "h",
1584
+ "a",
1585
+ "s",
1586
+ "h",
1587
+ "0",
1588
+ "4",
1589
+ "5",
1590
+ "/",
1591
+ "d",
1592
+ "e",
1593
+ "v",
1594
+ "o",
1595
+ "p",
1596
+ "s",
1597
+ "-",
1598
+ "p",
1599
+ "i",
1600
+ "p",
1601
+ "e",
1602
+ "l",
1603
+ "i",
1604
+ "n",
1605
+ "e",
1606
+ "-",
1607
+ "g",
1608
+ "y",
1609
+ "m",
1610
+ "\n",
1611
+ "-",
1612
+ " ",
1613
+ "*",
1614
+ "*",
1615
+ "G",
1616
+ "r",
1617
+ "a",
1618
+ "d",
1619
+ "i",
1620
+ "o",
1621
+ " ",
1622
+ "p",
1623
+ "l",
1624
+ "a",
1625
+ "y",
1626
+ "-",
1627
+ "a",
1628
+ "s",
1629
+ "-",
1630
+ "a",
1631
+ "g",
1632
+ "e",
1633
+ "n",
1634
+ "t",
1635
+ " ",
1636
+ "d",
1637
+ "e",
1638
+ "m",
1639
+ "o",
1640
+ "*",
1641
+ "*",
1642
+ ":",
1643
+ " ",
1644
+ "h",
1645
+ "t",
1646
+ "t",
1647
+ "p",
1648
+ "s",
1649
+ ":",
1650
+ "/",
1651
+ "/",
1652
+ "h",
1653
+ "u",
1654
+ "g",
1655
+ "g",
1656
+ "i",
1657
+ "n",
1658
+ "g",
1659
+ "f",
1660
+ "a",
1661
+ "c",
1662
+ "e",
1663
+ ".",
1664
+ "c",
1665
+ "o",
1666
+ "/",
1667
+ "s",
1668
+ "p",
1669
+ "a",
1670
+ "c",
1671
+ "e",
1672
+ "s",
1673
+ "/",
1674
+ "y",
1675
+ "a",
1676
+ "s",
1677
+ "h",
1678
+ "a",
1679
+ "s",
1680
+ "h",
1681
+ "0",
1682
+ "4",
1683
+ "5",
1684
+ "/",
1685
+ "d",
1686
+ "e",
1687
+ "v",
1688
+ "o",
1689
+ "p",
1690
+ "s",
1691
+ "-",
1692
+ "p",
1693
+ "i",
1694
+ "p",
1695
+ "e",
1696
+ "l",
1697
+ "i",
1698
+ "n",
1699
+ "e",
1700
+ "-",
1701
+ "d",
1702
+ "e",
1703
+ "m",
1704
+ "o",
1705
+ "\n",
1706
+ "-",
1707
+ " ",
1708
+ "*",
1709
+ "*",
1710
+ "T",
1711
+ "r",
1712
+ "a",
1713
+ "i",
1714
+ "n",
1715
+ "e",
1716
+ "d",
1717
+ " ",
1718
+ "a",
1719
+ "d",
1720
+ "a",
1721
+ "p",
1722
+ "t",
1723
+ "e",
1724
+ "r",
1725
+ " ",
1726
+ "(",
1727
+ "H",
1728
+ "E",
1729
+ "R",
1730
+ "O",
1731
+ ")",
1732
+ "*",
1733
+ "*",
1734
+ ":",
1735
+ " ",
1736
+ "h",
1737
+ "t",
1738
+ "t",
1739
+ "p",
1740
+ "s",
1741
+ ":",
1742
+ "/",
1743
+ "/",
1744
+ "h",
1745
+ "u",
1746
+ "g",
1747
+ "g",
1748
+ "i",
1749
+ "n",
1750
+ "g",
1751
+ "f",
1752
+ "a",
1753
+ "c",
1754
+ "e",
1755
+ ".",
1756
+ "c",
1757
+ "o",
1758
+ "/",
1759
+ "y",
1760
+ "a",
1761
+ "s",
1762
+ "h",
1763
+ "a",
1764
+ "s",
1765
+ "h",
1766
+ "0",
1767
+ "4",
1768
+ "5",
1769
+ "/",
1770
+ "d",
1771
+ "e",
1772
+ "v",
1773
+ "o",
1774
+ "p",
1775
+ "s",
1776
+ "-",
1777
+ "p",
1778
+ "i",
1779
+ "p",
1780
+ "e",
1781
+ "l",
1782
+ "i",
1783
+ "n",
1784
+ "e",
1785
+ "-",
1786
+ "g",
1787
+ "y",
1788
+ "m",
1789
+ "-",
1790
+ "s",
1791
+ "f",
1792
+ "t",
1793
+ "-",
1794
+ "a",
1795
+ "d",
1796
+ "a",
1797
+ "p",
1798
+ "t",
1799
+ "e",
1800
+ "r",
1801
+ "\n",
1802
+ "-",
1803
+ " ",
1804
+ "*",
1805
+ "*",
1806
+ "G",
1807
+ "R",
1808
+ "P",
1809
+ "O",
1810
+ " ",
1811
+ "R",
1812
+ "L",
1813
+ " ",
1814
+ "r",
1815
+ "e",
1816
+ "f",
1817
+ "i",
1818
+ "n",
1819
+ "e",
1820
+ "m",
1821
+ "e",
1822
+ "n",
1823
+ "t",
1824
+ " ",
1825
+ "a",
1826
+ "d",
1827
+ "a",
1828
+ "p",
1829
+ "t",
1830
+ "e",
1831
+ "r",
1832
+ "*",
1833
+ "*",
1834
+ ":",
1835
+ " ",
1836
+ "h",
1837
+ "t",
1838
+ "t",
1839
+ "p",
1840
+ "s",
1841
+ ":",
1842
+ "/",
1843
+ "/",
1844
+ "h",
1845
+ "u",
1846
+ "g",
1847
+ "g",
1848
+ "i",
1849
+ "n",
1850
+ "g",
1851
+ "f",
1852
+ "a",
1853
+ "c",
1854
+ "e",
1855
+ ".",
1856
+ "c",
1857
+ "o",
1858
+ "/",
1859
+ "y",
1860
+ "a",
1861
+ "s",
1862
+ "h",
1863
+ "a",
1864
+ "s",
1865
+ "h",
1866
+ "0",
1867
+ "4",
1868
+ "5",
1869
+ "/",
1870
+ "d",
1871
+ "e",
1872
+ "v",
1873
+ "o",
1874
+ "p",
1875
+ "s",
1876
+ "-",
1877
+ "p",
1878
+ "i",
1879
+ "p",
1880
+ "e",
1881
+ "l",
1882
+ "i",
1883
+ "n",
1884
+ "e",
1885
+ "-",
1886
+ "g",
1887
+ "y",
1888
+ "m",
1889
+ "-",
1890
+ "t",
1891
+ "r",
1892
+ "a",
1893
+ "i",
1894
+ "n",
1895
+ "e",
1896
+ "d",
1897
+ "\n",
1898
+ "-",
1899
+ " ",
1900
+ "*",
1901
+ "*",
1902
+ "B",
1903
+ "l",
1904
+ "o",
1905
+ "g",
1906
+ " ",
1907
+ "p",
1908
+ "o",
1909
+ "s",
1910
+ "t",
1911
+ "*",
1912
+ "*",
1913
+ ":",
1914
+ " ",
1915
+ "[",
1916
+ "B",
1917
+ "L",
1918
+ "O",
1919
+ "G",
1920
+ ".",
1921
+ "m",
1922
+ "d",
1923
+ "]",
1924
+ "(",
1925
+ "h",
1926
+ "t",
1927
+ "t",
1928
+ "p",
1929
+ "s",
1930
+ ":",
1931
+ "/",
1932
+ "/",
1933
+ "h",
1934
+ "u",
1935
+ "g",
1936
+ "g",
1937
+ "i",
1938
+ "n",
1939
+ "g",
1940
+ "f",
1941
+ "a",
1942
+ "c",
1943
+ "e",
1944
+ ".",
1945
+ "c",
1946
+ "o",
1947
+ "/",
1948
+ "s",
1949
+ "p",
1950
+ "a",
1951
+ "c",
1952
+ "e",
1953
+ "s",
1954
+ "/",
1955
+ "y",
1956
+ "a",
1957
+ "s",
1958
+ "h",
1959
+ "a",
1960
+ "s",
1961
+ "h",
1962
+ "0",
1963
+ "4",
1964
+ "5",
1965
+ "/",
1966
+ "d",
1967
+ "e",
1968
+ "v",
1969
+ "o",
1970
+ "p",
1971
+ "s",
1972
+ "-",
1973
+ "p",
1974
+ "i",
1975
+ "p",
1976
+ "e",
1977
+ "l",
1978
+ "i",
1979
+ "n",
1980
+ "e",
1981
+ "-",
1982
+ "g",
1983
+ "y",
1984
+ "m",
1985
+ "/",
1986
+ "b",
1987
+ "l",
1988
+ "o",
1989
+ "b",
1990
+ "/",
1991
+ "m",
1992
+ "a",
1993
+ "i",
1994
+ "n",
1995
+ "/",
1996
+ "B",
1997
+ "L",
1998
+ "O",
1999
+ "G",
2000
+ ".",
2001
+ "m",
2002
+ "d",
2003
+ ")",
2004
+ "\n",
2005
+ "-",
2006
+ " ",
2007
+ "*",
2008
+ "*",
2009
+ "G",
2010
+ "i",
2011
+ "t",
2012
+ "H",
2013
+ "u",
2014
+ "b",
2015
+ " ",
2016
+ "r",
2017
+ "e",
2018
+ "p",
2019
+ "o",
2020
+ " ",
2021
+ "(",
2022
+ "c",
2023
+ "o",
2024
+ "d",
2025
+ "e",
2026
+ ",",
2027
+ " ",
2028
+ "t",
2029
+ "r",
2030
+ "a",
2031
+ "i",
2032
+ "n",
2033
+ "i",
2034
+ "n",
2035
+ "g",
2036
+ " ",
2037
+ "s",
2038
+ "c",
2039
+ "r",
2040
+ "i",
2041
+ "p",
2042
+ "t",
2043
+ "s",
2044
+ ",",
2045
+ " ",
2046
+ "d",
2047
+ "a",
2048
+ "t",
2049
+ "a",
2050
+ ")",
2051
+ "*",
2052
+ "*",
2053
+ ":",
2054
+ " ",
2055
+ "h",
2056
+ "t",
2057
+ "t",
2058
+ "p",
2059
+ "s",
2060
+ ":",
2061
+ "/",
2062
+ "/",
2063
+ "g",
2064
+ "i",
2065
+ "t",
2066
+ "h",
2067
+ "u",
2068
+ "b",
2069
+ ".",
2070
+ "c",
2071
+ "o",
2072
+ "m",
2073
+ "/",
2074
+ "Y",
2075
+ "a",
2076
+ "s",
2077
+ "h",
2078
+ "a",
2079
+ "s",
2080
+ "h",
2081
+ "4",
2082
+ "/",
2083
+ "d",
2084
+ "e",
2085
+ "v",
2086
+ "o",
2087
+ "p",
2088
+ "s",
2089
+ "-",
2090
+ "p",
2091
+ "i",
2092
+ "p",
2093
+ "e",
2094
+ "l",
2095
+ "i",
2096
+ "n",
2097
+ "e",
2098
+ "-",
2099
+ "g",
2100
+ "y",
2101
+ "m",
2102
+ "\n",
2103
+ "\n",
2104
+ "#",
2105
+ "#",
2106
+ "#",
2107
+ " ",
2108
+ "R",
2109
+ "e",
2110
+ "p",
2111
+ "r",
2112
+ "o",
2113
+ "d",
2114
+ "u",
2115
+ "c",
2116
+ "e",
2117
+ " ",
2118
+ "t",
2119
+ "h",
2120
+ "e",
2121
+ " ",
2122
+ "f",
2123
+ "u",
2124
+ "l",
2125
+ "l",
2126
+ " ",
2127
+ "p",
2128
+ "e",
2129
+ "r",
2130
+ "-",
2131
+ "t",
2132
+ "a",
2133
+ "s",
2134
+ "k",
2135
+ " ",
2136
+ "e",
2137
+ "v",
2138
+ "a",
2139
+ "l",
2140
+ " ",
2141
+ "(",
2142
+ "m",
2143
+ "u",
2144
+ "l",
2145
+ "t",
2146
+ "i",
2147
+ "-",
2148
+ "s",
2149
+ "e",
2150
+ "e",
2151
+ "d",
2152
+ " ",
2153
+ "\u00c3",
2154
+ "\u2014",
2155
+ " ",
2156
+ "6",
2157
+ " ",
2158
+ "t",
2159
+ "a",
2160
+ "s",
2161
+ "k",
2162
+ "s",
2163
+ ")",
2164
+ "\n",
2165
+ "\n",
2166
+ "`",
2167
+ "`",
2168
+ "`",
2169
+ "b",
2170
+ "a",
2171
+ "s",
2172
+ "h",
2173
+ "\n",
2174
+ "p",
2175
+ "y",
2176
+ "t",
2177
+ "h",
2178
+ "o",
2179
+ "n",
2180
+ " ",
2181
+ "t",
2182
+ "r",
2183
+ "a",
2184
+ "i",
2185
+ "n",
2186
+ "i",
2187
+ "n",
2188
+ "g",
2189
+ "/",
2190
+ "e",
2191
+ "v",
2192
+ "a",
2193
+ "l",
2194
+ "_",
2195
+ "b",
2196
+ "a",
2197
+ "s",
2198
+ "e",
2199
+ "l",
2200
+ "i",
2201
+ "n",
2202
+ "e",
2203
+ ".",
2204
+ "p",
2205
+ "y",
2206
+ " ",
2207
+ "-",
2208
+ "-",
2209
+ "m",
2210
+ "o",
2211
+ "d",
2212
+ "e",
2213
+ "l",
2214
+ " ",
2215
+ "u",
2216
+ "n",
2217
+ "s",
2218
+ "l",
2219
+ "o",
2220
+ "t",
2221
+ "h",
2222
+ "/",
2223
+ "Q",
2224
+ "w",
2225
+ "e",
2226
+ "n",
2227
+ "3",
2228
+ "-",
2229
+ "1",
2230
+ ".",
2231
+ "7",
2232
+ "B",
2233
+ "-",
2234
+ "b",
2235
+ "n",
2236
+ "b",
2237
+ "-",
2238
+ "4",
2239
+ "b",
2240
+ "i",
2241
+ "t",
2242
+ " ",
2243
+ " ",
2244
+ " ",
2245
+ "-",
2246
+ "-",
2247
+ "e",
2248
+ "n",
2249
+ "v",
2250
+ "-",
2251
+ "u",
2252
+ "r",
2253
+ "l",
2254
+ " ",
2255
+ "h",
2256
+ "t",
2257
+ "t",
2258
+ "p",
2259
+ "s",
2260
+ ":",
2261
+ "/",
2262
+ "/",
2263
+ "y",
2264
+ "a",
2265
+ "s",
2266
+ "h",
2267
+ "a",
2268
+ "s",
2269
+ "h",
2270
+ "0",
2271
+ "4",
2272
+ "5",
2273
+ "-",
2274
+ "d",
2275
+ "e",
2276
+ "v",
2277
+ "o",
2278
+ "p",
2279
+ "s",
2280
+ "-",
2281
+ "p",
2282
+ "i",
2283
+ "p",
2284
+ "e",
2285
+ "l",
2286
+ "i",
2287
+ "n",
2288
+ "e",
2289
+ "-",
2290
+ "g",
2291
+ "y",
2292
+ "m",
2293
+ ".",
2294
+ "h",
2295
+ "f",
2296
+ ".",
2297
+ "s",
2298
+ "p",
2299
+ "a",
2300
+ "c",
2301
+ "e",
2302
+ " ",
2303
+ " ",
2304
+ " ",
2305
+ "-",
2306
+ "-",
2307
+ "o",
2308
+ "u",
2309
+ "t",
2310
+ "p",
2311
+ "u",
2312
+ "t",
2313
+ " ",
2314
+ "b",
2315
+ "a",
2316
+ "s",
2317
+ "e",
2318
+ "l",
2319
+ "i",
2320
+ "n",
2321
+ "e",
2322
+ ".",
2323
+ "j",
2324
+ "s",
2325
+ "o",
2326
+ "n",
2327
+ " ",
2328
+ "-",
2329
+ "-",
2330
+ "n",
2331
+ "-",
2332
+ "s",
2333
+ "e",
2334
+ "e",
2335
+ "d",
2336
+ "s",
2337
+ " ",
2338
+ "5",
2339
+ "\n",
2340
+ "p",
2341
+ "y",
2342
+ "t",
2343
+ "h",
2344
+ "o",
2345
+ "n",
2346
+ " ",
2347
+ "t",
2348
+ "r",
2349
+ "a",
2350
+ "i",
2351
+ "n",
2352
+ "i",
2353
+ "n",
2354
+ "g",
2355
+ "/",
2356
+ "e",
2357
+ "v",
2358
+ "a",
2359
+ "l",
2360
+ "_",
2361
+ "b",
2362
+ "a",
2363
+ "s",
2364
+ "e",
2365
+ "l",
2366
+ "i",
2367
+ "n",
2368
+ "e",
2369
+ ".",
2370
+ "p",
2371
+ "y",
2372
+ " ",
2373
+ "-",
2374
+ "-",
2375
+ "m",
2376
+ "o",
2377
+ "d",
2378
+ "e",
2379
+ "l",
2380
+ " ",
2381
+ "u",
2382
+ "n",
2383
+ "s",
2384
+ "l",
2385
+ "o",
2386
+ "t",
2387
+ "h",
2388
+ "/",
2389
+ "Q",
2390
+ "w",
2391
+ "e",
2392
+ "n",
2393
+ "3",
2394
+ "-",
2395
+ "1",
2396
+ ".",
2397
+ "7",
2398
+ "B",
2399
+ "-",
2400
+ "b",
2401
+ "n",
2402
+ "b",
2403
+ "-",
2404
+ "4",
2405
+ "b",
2406
+ "i",
2407
+ "t",
2408
+ " ",
2409
+ " ",
2410
+ " ",
2411
+ "-",
2412
+ "-",
2413
+ "a",
2414
+ "d",
2415
+ "a",
2416
+ "p",
2417
+ "t",
2418
+ "e",
2419
+ "r",
2420
+ "-",
2421
+ "p",
2422
+ "a",
2423
+ "t",
2424
+ "h",
2425
+ " ",
2426
+ "y",
2427
+ "a",
2428
+ "s",
2429
+ "h",
2430
+ "a",
2431
+ "s",
2432
+ "h",
2433
+ "0",
2434
+ "4",
2435
+ "5",
2436
+ "/",
2437
+ "d",
2438
+ "e",
2439
+ "v",
2440
+ "o",
2441
+ "p",
2442
+ "s",
2443
+ "-",
2444
+ "p",
2445
+ "i",
2446
+ "p",
2447
+ "e",
2448
+ "l",
2449
+ "i",
2450
+ "n",
2451
+ "e",
2452
+ "-",
2453
+ "g",
2454
+ "y",
2455
+ "m",
2456
+ "-",
2457
+ "s",
2458
+ "f",
2459
+ "t",
2460
+ "-",
2461
+ "a",
2462
+ "d",
2463
+ "a",
2464
+ "p",
2465
+ "t",
2466
+ "e",
2467
+ "r",
2468
+ " ",
2469
+ " ",
2470
+ " ",
2471
+ "-",
2472
+ "-",
2473
+ "e",
2474
+ "n",
2475
+ "v",
2476
+ "-",
2477
+ "u",
2478
+ "r",
2479
+ "l",
2480
+ " ",
2481
+ "h",
2482
+ "t",
2483
+ "t",
2484
+ "p",
2485
+ "s",
2486
+ ":",
2487
+ "/",
2488
+ "/",
2489
+ "y",
2490
+ "a",
2491
+ "s",
2492
+ "h",
2493
+ "a",
2494
+ "s",
2495
+ "h",
2496
+ "0",
2497
+ "4",
2498
+ "5",
2499
+ "-",
2500
+ "d",
2501
+ "e",
2502
+ "v",
2503
+ "o",
2504
+ "p",
2505
+ "s",
2506
+ "-",
2507
+ "p",
2508
+ "i",
2509
+ "p",
2510
+ "e",
2511
+ "l",
2512
+ "i",
2513
+ "n",
2514
+ "e",
2515
+ "-",
2516
+ "g",
2517
+ "y",
2518
+ "m",
2519
+ ".",
2520
+ "h",
2521
+ "f",
2522
+ ".",
2523
+ "s",
2524
+ "p",
2525
+ "a",
2526
+ "c",
2527
+ "e",
2528
+ " ",
2529
+ " ",
2530
+ " ",
2531
+ "-",
2532
+ "-",
2533
+ "o",
2534
+ "u",
2535
+ "t",
2536
+ "p",
2537
+ "u",
2538
+ "t",
2539
+ " ",
2540
+ "t",
2541
+ "r",
2542
+ "a",
2543
+ "i",
2544
+ "n",
2545
+ "e",
2546
+ "d",
2547
+ ".",
2548
+ "j",
2549
+ "s",
2550
+ "o",
2551
+ "n",
2552
+ " ",
2553
+ "-",
2554
+ "-",
2555
+ "n",
2556
+ "-",
2557
+ "s",
2558
+ "e",
2559
+ "e",
2560
+ "d",
2561
+ "s",
2562
+ " ",
2563
+ "5",
2564
+ "\n",
2565
+ "p",
2566
+ "y",
2567
+ "t",
2568
+ "h",
2569
+ "o",
2570
+ "n",
2571
+ " ",
2572
+ "t",
2573
+ "r",
2574
+ "a",
2575
+ "i",
2576
+ "n",
2577
+ "i",
2578
+ "n",
2579
+ "g",
2580
+ "/",
2581
+ "g",
2582
+ "e",
2583
+ "n",
2584
+ "e",
2585
+ "r",
2586
+ "a",
2587
+ "t",
2588
+ "e",
2589
+ "_",
2590
+ "c",
2591
+ "o",
2592
+ "m",
2593
+ "p",
2594
+ "a",
2595
+ "r",
2596
+ "i",
2597
+ "s",
2598
+ "o",
2599
+ "n",
2600
+ "_",
2601
+ "c",
2602
+ "h",
2603
+ "a",
2604
+ "r",
2605
+ "t",
2606
+ ".",
2607
+ "p",
2608
+ "y",
2609
+ " ",
2610
+ " ",
2611
+ " ",
2612
+ "-",
2613
+ "-",
2614
+ "b",
2615
+ "a",
2616
+ "s",
2617
+ "e",
2618
+ "l",
2619
+ "i",
2620
+ "n",
2621
+ "e",
2622
+ " ",
2623
+ "b",
2624
+ "a",
2625
+ "s",
2626
+ "e",
2627
+ "l",
2628
+ "i",
2629
+ "n",
2630
+ "e",
2631
+ ".",
2632
+ "j",
2633
+ "s",
2634
+ "o",
2635
+ "n",
2636
+ " ",
2637
+ "-",
2638
+ "-",
2639
+ "t",
2640
+ "r",
2641
+ "a",
2642
+ "i",
2643
+ "n",
2644
+ "e",
2645
+ "d",
2646
+ " ",
2647
+ "t",
2648
+ "r",
2649
+ "a",
2650
+ "i",
2651
+ "n",
2652
+ "e",
2653
+ "d",
2654
+ ".",
2655
+ "j",
2656
+ "s",
2657
+ "o",
2658
+ "n",
2659
+ " ",
2660
+ "-",
2661
+ "-",
2662
+ "o",
2663
+ "u",
2664
+ "t",
2665
+ "p",
2666
+ "u",
2667
+ "t",
2668
+ " ",
2669
+ "b",
2670
+ "e",
2671
+ "f",
2672
+ "o",
2673
+ "r",
2674
+ "e",
2675
+ "_",
2676
+ "a",
2677
+ "f",
2678
+ "t",
2679
+ "e",
2680
+ "r",
2681
+ ".",
2682
+ "p",
2683
+ "n",
2684
+ "g",
2685
+ "\n",
2686
+ "`",
2687
+ "`",
2688
+ "`",
2689
+ "\n",
2690
+ "\n",
2691
+ "A",
2692
+ "p",
2693
+ "a",
2694
+ "c",
2695
+ "h",
2696
+ "e",
2697
+ " ",
2698
+ "2",
2699
+ ".",
2700
+ "0",
2701
+ ".",
2702
+ " ",
2703
+ "T",
2704
+ "e",
2705
+ "a",
2706
+ "m",
2707
+ " ",
2708
+ "T",
2709
+ "r",
2710
+ "i",
2711
+ "p",
2712
+ "o",
2713
+ "d",
2714
+ " ",
2715
+ "(",
2716
+ "Y",
2717
+ "a",
2718
+ "s",
2719
+ "h",
2720
+ "a",
2721
+ "s",
2722
+ "h",
2723
+ ",",
2724
+ " ",
2725
+ "G",
2726
+ "a",
2727
+ "j",
2728
+ "a",
2729
+ "n",
2730
+ "a",
2731
+ "n",
2732
+ "d",
2733
+ ",",
2734
+ " ",
2735
+ "L",
2736
+ "i",
2737
+ "k",
2738
+ "i",
2739
+ "t",
2740
+ "h",
2741
+ ")",
2742
+ " ",
2743
+ "\u00c2",
2744
+ "\u00b7",
2745
+ " ",
2746
+ "O",
2747
+ "p",
2748
+ "e",
2749
+ "n",
2750
+ "E",
2751
+ "n",
2752
+ "v",
2753
+ " ",
2754
+ "H",
2755
+ "a",
2756
+ "c",
2757
+ "k",
2758
+ "a",
2759
+ "t",
2760
+ "h",
2761
+ "o",
2762
+ "n",
2763
+ " ",
2764
+ "G",
2765
+ "r",
2766
+ "a",
2767
+ "n",
2768
+ "d",
2769
+ " ",
2770
+ "F",
2771
+ "i",
2772
+ "n",
2773
+ "a",
2774
+ "l",
2775
+ "e",
2776
+ " ",
2777
+ "2",
2778
+ "0",
2779
+ "2",
2780
+ "6",
2781
+ ".",
2782
+ "\n"
2783
+ ],
2784
  "metadata": {
2785
  "id": "f7fc43ce"
2786
  }
 
2840
  "description": "",
2841
  "description_tooltip": null,
2842
  "layout": "IPY_MODEL_08f8652b62df49568c1704929f97ed49",
2843
+ "placeholder": "\u00e2\u20ac\u2039",
2844
  "style": "IPY_MODEL_d2a85528d35a4b2d896d411fcb6357d7",
2845
+ "value": "Loading\u00e2\u20ac\u2021weights:\u00e2\u20ac\u2021100%"
2846
  }
2847
  },
2848
  "599e2648e8fc4bc6b2f59f62b476db73": {
 
2885
  "description": "",
2886
  "description_tooltip": null,
2887
  "layout": "IPY_MODEL_0ad0719c02314d47a9769b2e263f3139",
2888
+ "placeholder": "\u00e2\u20ac\u2039",
2889
  "style": "IPY_MODEL_88c6f6fc6d0b4d7cb59c4e4f1d539da1",
2890
+ "value": "\u00e2\u20ac\u2021310/310\u00e2\u20ac\u2021[00:01<00:00,\u00e2\u20ac\u2021370.45it/s]"
2891
  }
2892
  },
2893
  "159c04da056f4f3f8a6a4c68b9f421ad": {