Add train/eval loss plot after training
Browse filesCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
notebooks/ch_trader_finetune.ipynb
CHANGED
|
@@ -1235,6 +1235,13 @@
|
|
| 1235 |
"outputs": [],
|
| 1236 |
"execution_count": null
|
| 1237 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1238 |
{
|
| 1239 |
"cell_type": "markdown",
|
| 1240 |
"source": "## 5. Save & Push to HuggingFace Hub\n\nMerges LoRA adapters into the base model weights and pushes the full model.",
|
|
|
|
| 1235 |
"outputs": [],
|
| 1236 |
"execution_count": null
|
| 1237 |
},
|
| 1238 |
+
{
|
| 1239 |
+
"cell_type": "code",
|
| 1240 |
+
"source": "import matplotlib.pyplot as plt\n\n# Extract losses from trainer log history\ntrain_steps, train_loss = [], []\neval_steps, eval_loss = [], []\n\nfor entry in trainer.state.log_history:\n if \"loss\" in entry and \"eval_loss\" not in entry:\n train_steps.append(entry[\"step\"])\n train_loss.append(entry[\"loss\"])\n if \"eval_loss\" in entry:\n eval_steps.append(entry[\"step\"])\n eval_loss.append(entry[\"eval_loss\"])\n\n# Plot\nfig, ax = plt.subplots(figsize=(10, 5))\nax.plot(train_steps, train_loss, label=\"Train Loss\", alpha=0.8)\nax.plot(eval_steps, eval_loss, label=\"Eval Loss\", marker=\"o\", markersize=4)\nax.set_xlabel(\"Step\")\nax.set_ylabel(\"Loss\")\nax.set_title(\"Training & Validation Loss\")\nax.legend()\nax.grid(True, alpha=0.3)\nplt.tight_layout()\nplt.show()\n\nprint(f\"Final train loss: {train_loss[-1]:.4f}\")\nprint(f\"Final eval loss: {eval_loss[-1]:.4f}\")",
|
| 1241 |
+
"metadata": {},
|
| 1242 |
+
"execution_count": null,
|
| 1243 |
+
"outputs": []
|
| 1244 |
+
},
|
| 1245 |
{
|
| 1246 |
"cell_type": "markdown",
|
| 1247 |
"source": "## 5. Save & Push to HuggingFace Hub\n\nMerges LoRA adapters into the base model weights and pushes the full model.",
|
notebooks/stockex-clearing-house-llm-fine-tuning.ipynb
CHANGED
|
@@ -1235,6 +1235,13 @@
|
|
| 1235 |
"outputs": [],
|
| 1236 |
"execution_count": null
|
| 1237 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1238 |
{
|
| 1239 |
"cell_type": "markdown",
|
| 1240 |
"source": "## 5. Save & Push to HuggingFace Hub\n\nMerges LoRA adapters into the base model weights and pushes the full model.",
|
|
|
|
| 1235 |
"outputs": [],
|
| 1236 |
"execution_count": null
|
| 1237 |
},
|
| 1238 |
+
{
|
| 1239 |
+
"cell_type": "code",
|
| 1240 |
+
"source": "import matplotlib.pyplot as plt\n\n# Extract losses from trainer log history\ntrain_steps, train_loss = [], []\neval_steps, eval_loss = [], []\n\nfor entry in trainer.state.log_history:\n if \"loss\" in entry and \"eval_loss\" not in entry:\n train_steps.append(entry[\"step\"])\n train_loss.append(entry[\"loss\"])\n if \"eval_loss\" in entry:\n eval_steps.append(entry[\"step\"])\n eval_loss.append(entry[\"eval_loss\"])\n\n# Plot\nfig, ax = plt.subplots(figsize=(10, 5))\nax.plot(train_steps, train_loss, label=\"Train Loss\", alpha=0.8)\nax.plot(eval_steps, eval_loss, label=\"Eval Loss\", marker=\"o\", markersize=4)\nax.set_xlabel(\"Step\")\nax.set_ylabel(\"Loss\")\nax.set_title(\"Training & Validation Loss\")\nax.legend()\nax.grid(True, alpha=0.3)\nplt.tight_layout()\nplt.show()\n\nprint(f\"Final train loss: {train_loss[-1]:.4f}\")\nprint(f\"Final eval loss: {eval_loss[-1]:.4f}\")",
|
| 1241 |
+
"metadata": {},
|
| 1242 |
+
"execution_count": null,
|
| 1243 |
+
"outputs": []
|
| 1244 |
+
},
|
| 1245 |
{
|
| 1246 |
"cell_type": "markdown",
|
| 1247 |
"source": "## 5. Save & Push to HuggingFace Hub\n\nMerges LoRA adapters into the base model weights and pushes the full model.",
|