From 5d0255999383b9197fd3f6351aaf8dcfd28df9ff Mon Sep 17 00:00:00 2001 From: Sebastian Raschka Date: Fri, 22 Mar 2024 09:15:40 -0500 Subject: [PATCH] small cosmetic updates (#83) --- ch05/01_main-chapter-code/ch05.ipynb | 98 +++++++++++++++------------- 1 file changed, 53 insertions(+), 45 deletions(-) diff --git a/ch05/01_main-chapter-code/ch05.ipynb b/ch05/01_main-chapter-code/ch05.ipynb index 39e5f8d..1ae9309 100644 --- a/ch05/01_main-chapter-code/ch05.ipynb +++ b/ch05/01_main-chapter-code/ch05.ipynb @@ -31,8 +31,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "matplotlib version: 3.7.2\n", - "numpy version: 1.25.2\n", + "matplotlib version: 3.8.2\n", + "numpy version: 1.26.0\n", "tiktoken version: 0.5.1\n", "torch version: 2.2.1\n" ] @@ -765,7 +765,7 @@ "id": "2ec6c217-e429-40c7-ad71-5d0a9da8e487" }, "source": [ - "### 5.1.3 Calculating the Training and Validation Set Losses" + "### 5.1.3 Calculating the training and validation set losses" ] }, { @@ -950,8 +950,7 @@ "- Next, we divide the dataset into a training and a validation set and use the data loaders from chapter 2 to prepare the batches for LLM training\n", "- For visualization purposes, the figure below assumes a `max_length=6`, but for the training loader, we set the `max_length` equal to the context length that the LLM supports\n", "- The figure below only shows the input tokens for simplicity\n", - " - Since we train the LLM to predict the next word in the text, the targets look the same as these inputs, except that the targets are shifted by one position\n", - " - For example, " + " - Since we train the LLM to predict the next word in the text, the targets look the same as these inputs, except that the targets are shifted by one position" ] }, { @@ -1221,7 +1220,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 28, "id": "Mtp4gY0ZO-qq", "metadata": { "id": "Mtp4gY0ZO-qq" @@ -1298,7 +1297,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 29, "id": "3422000b-7aa2-485b-92df-99372cd22311", "metadata": { "colab": { @@ -1359,7 +1358,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 30, "id": "0WSRu2i0iHJE", "metadata": { "colab": { @@ -1400,11 +1399,12 @@ " ax2.set_xlabel(\"Tokens seen\")\n", "\n", " fig.tight_layout() # Adjust layout to make room\n", + " # plt.savefig(\"loss-plot.pdf\")\n", " plt.show()\n", "\n", "\n", "epochs_tensor = torch.linspace(0, num_epochs, len(train_losses))\n", - "plot_losses(epochs_tensor, tokens_seen, train_losses, val_losses)" + "plot_losses(epochs_tensor, tokens_seen, train_losses, val_losses)\n" ] }, { @@ -1467,7 +1467,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 31, "id": "2734cee0-f6f9-42d5-b71c-fa7e0ef28b6d", "metadata": {}, "outputs": [ @@ -1538,7 +1538,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 32, "id": "01a5ce39-3dc8-4c35-96bc-6410a1e42412", "metadata": {}, "outputs": [ @@ -1567,7 +1567,7 @@ "\n", "inverse_vocab = {v: k for k, v in vocab.items()}\n", "\n", - "# suppose input is \"every effort moves you\", and the LLM\n", + "# Suppose input is \"every effort moves you\", and the LLM\n", "# returns the following logits for the next token:\n", "next_token_logits = torch.tensor(\n", " [4.51, 0.89, -1.90, 6.75, 1.63, -1.62, -1.89, 6.28, 1.79]\n", @@ -1576,7 +1576,7 @@ "probas = torch.softmax(next_token_logits, dim=0)\n", "next_token_id = torch.argmax(probas).item()\n", "\n", - "# the next generated token is then as follows:\n", + "# The next generated token is then as follows:\n", "print(inverse_vocab[next_token_id])" ] }, @@ -1592,7 +1592,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 33, "id": "0759e4c8-5362-467c-bec6-b0a19d1ba43d", "metadata": {}, "outputs": [], @@ -1610,13 +1610,13 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 34, "id": "2e66e613-4aca-4296-a984-ddd0d80c6578", "metadata": {}, "outputs": [ { "data": { - "image/png": "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DnNzczg4OMDBwQHm5uYICwtDSUmJpmskIiIiqja1em4mTJiAnTt3Yu7cufD29gbw/PLwmTNn4uHDh1i+fLlGiyQiIiKqLrXCzZYtW7Bt2zb07NlT2da2bVvY29sjICCA4YaIiIhEo9awlFwuh4ODQ4V2R0dH6Ovr17YmIiIiIrWpFW7Gjx+P6OhoFBUVKduKioowe/ZsjB8/XmPFEREREdVUtYel+vXrp/L86NGjaNq0Kdzd3QEAly9fRnFxMd5//33NVkhERERUA9UON+bm5irPP/30U5XnvBSciIiI6oNqh5t169a9yTqIiIiINKJWi/jdv39feaPMt99+G1ZWVhopioiIiEhdak0oLiwsxMiRI9GkSRN069YN3bp1g62tLYKCgvDkyRNN10hERERUbWqFm5CQEBw/fhw///wzcnNzkZubi59++gnHjx/Hl19+qekaiYiIiKpNrWGpH3/8ETt27ED37t2Vbb169YKhoSEGDhzIRfyIiIhINGr13Dx58gTW1tYV2hs3bsxhKSIiIhKVWuHG29sbkZGRePbsmbLt6dOnmDVrlvJeU0RERERiUGtYauHChfD396+wiJ+BgQEOHTqk0QKJiIiIakKtcOPm5ob//Oc/2Lx5M27cuAEACAgIwJAhQ2BoaKjRAomIiIhqosbhpqSkBK1atcLevXsxevToN1ETERERkdpqPOdGT09PZa4NERERUX2i1oTicePG4V//+hdKS0s1XQ8RERFRrag15+bs2bOIj4/H4cOH4ebmBmNjY5XtO3fu1EhxRERERDWlVrixsLCocFdwIiIiovqgRuFGoVBg3rx5SElJQXFxMd577z3MnDmTV0gRERFRvVGjOTezZ8/GV199BRMTE9jZ2WHx4sUYN27cm6qNiIiIqMZqFG42bNiAZcuW4dChQ9i9ezd+/vlnbN68GQqF4k3VR0RERFQjNQo3GRkZ6NWrl/K5r68vZDIZ/vjjD40XRkRERKSOGoWb0tJSGBgYqLTp6emhpKREo0URERERqatGE4oFQcCIESMgl8uVbc+ePcOYMWNULgfnpeBEREQklhqFm+HDh1doGzp0qMaKISIiIqqtGoWbdevWvZEili5dinnz5iE7Oxvu7u7497//jY4dO772uG3btiEgIAB9+vTB7t2730htREREpF3Uuv2CJm3fvh0hISGIjIzEhQsX4O7u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", + "image/png": "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69atw7Jly3DgwAHs3LkTv/zyCzZu3AiFQqGpfERERERUTTUqdllZWejXr5/yvre3N2QyGf766y+1ByMiIiKimqlRsSsvL4eenp7KmI6ODsrKytQaioiIiIhqrkYHTwiCgHHjxkEulyvHSkpKMHHiRJVTnvB0J0RERET1r0bFbuzYsZXGRo8erbYwRERERFR7NSp2a9as0VQOIiIiIqqjWl1SjIiIiIgaHhY7IiIiIoloEMUuLi4Otra20NPTQ/fu3XHmzJlqrbdlyxbIZDIMHjxYswGJiIiIGgHRi93WrVsREhKCyMhIXLhwAc7OzvDx8cGdO3deul5mZiZCQ0PRs2fPekpKRERE1LCJXuwWLlyIwMBA+Pv7w9HREfHx8TAwMMDq1atfuE5FRQVGjRqFOXPmwN7evh7TEhERETVcoha70tJSnD9/Ht7e3soxLS0teHt749SpUy9cLyoqChYWFggICHjlazx58gQFBQUqNyIiIiIpErXY3bt3DxUVFbC0tFQZt7S0RG5ubpXrHD9+HKtWrcKKFSuq9RqxsbEwMTFR3mxsbOqcm4iIiKghEn1TbE38/fff+Pjjj7FixQqYmZlVa51Zs2YhPz9fecvOztZwSiIiIiJx1OgExepmZmYGbW1t5OXlqYzn5eXBysqq0vI3btxAZmYmBgwYoBxTKBQAgGbNmiE1NRXt27dXWUcul6tcAo2IiIhIqkSdsdPV1YW7uzsSExOVYwqFAomJifD09Ky0fKdOnXD16lVcunRJeRs4cCD69OmDS5cucTMrERERNWmiztgBQEhICMaOHQsPDw9069YNixYtQlFREfz9/QEAY8aMQevWrREbGws9PT107txZZX1TU1MAqDRORERE1NSIXuxGjBiBu3fvIiIiArm5uXBxccH+/fuVB1RkZWVBS6tR7QpIREREJAqZIAiC2CHqU0FBAUxMTJCfnw9jY2Ox4xA1GrYz97xymUy9ka9+otn5akhDRNR01KS7cCqMiIiISCJY7IiIiIgkgsWOiIiISCJY7IiIiIgkgsWOiIiISCJY7IiIiIgkgsWOiIiISCJY7IiIiIgkgsWOiIiISCJEv6QYERERaVa1rhwzr389JCFN44wdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJBIsdERERkUSw2BERERFJRDOxAxBR0+K01umVy1wde7UekhARSQ9n7IiIiIgkgsWOiIiISCJY7IiIiIgkgsWOiIiISCJY7IiIiIgkgsWOiIiISCJY7IiIiIgkguexIyIiomrheSgbPs7YEREREUkEix0RERGRRDSIYhcXFwdbW1vo6emhe/fuOHPmzAuXXbFiBXr27IkWLVqgRYsW8Pb2funyRERERE2F6MVu69atCAkJQWRkJC5cuABnZ2f4+Pjgzp07VS6flJQEPz8/HDlyBKdOnYKNjQ0++OAD3L59u56TExERETUsohe7hQsXIjAwEP7+/nB0dER8fDwMDAywevXqKpffuHEjPv30U7i4uKBTp05YuXIlFAoFEhMT6zk5ERERUcMiarErLS3F+fPn4e3trRzT0tKCt7c3Tp06Va3nKC4uRllZGVq2bFnl40+ePEFBQYHKjYiIiEiKRC129+7dQ0VFBSwtLVXGLS0tkZubW63n+Pzzz2Ftba1SDv8pNjYWJiYmypuNjU2dcxMRERE1RKJviq2LefPmYcuWLdixYwf09PSqXGbWrFnIz89X3rKzs+s5JREREVH9EPUExWZmZtDW1kZeXp7KeF5eHqysrF667jfffIN58+bh8OHD6NKlywuXk8vlkMvlaslLRERE1JCJOmOnq6sLd3d3lQMfnh0I4enp+cL15s+fj+joaOzfvx8eHh71EZWIiIiowRP9kmIhISEYO3YsPDw80K1bNyxatAhFRUXw9/cHAIwZMwatW7dGbGwsAOA///kPIiIisGnTJtja2ir3xTM0NIShoaFo74OIiIhIbKIXuxEjRuDu3buIiIhAbm4uXFxcsH//fuUBFVlZWdDS+r+Jxe+++w6lpaUY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", "text/plain": [ "
" ] @@ -1639,6 +1639,8 @@ "ax.set_xticklabels(vocab.keys(), rotation=90)\n", "ax.legend()\n", "\n", + "plt.tight_layout()\n", + "# plt.savefig(\"temperature-plot.pdf\")\n", "plt.show()" ] }, @@ -1653,7 +1655,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 35, "id": "b23b863e-252a-403c-b5b1-62bc0a42319f", "metadata": {}, "outputs": [ @@ -1695,7 +1697,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 36, "id": "e4600713-c51e-4f53-bf58-040a6eb362b8", "metadata": {}, "outputs": [ @@ -1728,7 +1730,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 37, "id": "9dfb48f0-bc3f-46a5-9844-33b6c9b0f4df", "metadata": {}, "outputs": [ @@ -1794,7 +1796,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 38, "id": "2a7f908a-e9ec-446a-b407-fb6dbf05c806", "metadata": {}, "outputs": [ @@ -1817,7 +1819,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 39, "id": "753865ed-79c5-48b1-b9f2-ccb132ff1d2f", "metadata": {}, "outputs": [ @@ -1843,7 +1845,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 40, "id": "4844f000-c329-4e7e-aa89-16a2c4ebee43", "metadata": {}, "outputs": [ @@ -1879,7 +1881,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 41, "id": "8e318891-bcc0-4d71-b147-33ce55febfa3", "metadata": {}, "outputs": [], @@ -1930,7 +1932,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 42, "id": "3adb4df3-1150-44e2-93c7-532d205901f9", "metadata": {}, "outputs": [ @@ -1966,7 +1968,7 @@ "id": "4e2002ca-f4c1-48af-9e0a-88bfc163ba0b", "metadata": {}, "source": [ - "## 5.4 Loading and saving weights in PyTorch" + "## 5.4 Loading and saving model weights in PyTorch" ] }, { @@ -1989,7 +1991,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 43, "id": "3d67d869-ac04-4382-bcfb-c96d1ca80d47", "metadata": {}, "outputs": [], @@ -2007,7 +2009,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 44, "id": "9d57d914-60a3-47f1-b499-5352f4c457cb", "metadata": {}, "outputs": [], @@ -2028,7 +2030,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 45, "id": "bbd175bb-edf4-450e-a6de-d3e8913c6532", "metadata": {}, "outputs": [], @@ -2043,7 +2045,7 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 46, "id": "8a0c7295-c822-43bf-9286-c45abc542868", "metadata": {}, "outputs": [], @@ -2092,7 +2094,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 47, "id": "fb9fdf02-972a-444e-bf65-8ffcaaf30ce8", "metadata": {}, "outputs": [], @@ -2102,7 +2104,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 48, "id": "a0747edc-559c-44ef-a93f-079d60227e3f", "metadata": {}, "outputs": [ @@ -2122,7 +2124,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 49, "id": "c5bc89eb-4d39-4287-9b0c-e459ebe7f5ed", "metadata": {}, "outputs": [], @@ -2233,7 +2235,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 50, "id": "76271dd7-108d-4f5b-9c01-6ae0aac4b395", "metadata": {}, "outputs": [ @@ -2243,11 +2245,17 @@ "text": [ "File already exists and is up-to-date: gpt2/124M/checkpoint\n", "File already exists and is up-to-date: gpt2/124M/encoder.json\n", - "File already exists and is up-to-date: gpt2/124M/hparams.json\n", - "File already exists and is up-to-date: gpt2/124M/model.ckpt.data-00000-of-00001\n", - "File already exists and is up-to-date: gpt2/124M/model.ckpt.index\n", - "File already exists and is up-to-date: gpt2/124M/model.ckpt.meta\n", - "File already exists and is up-to-date: gpt2/124M/vocab.bpe\n" + "File already exists and is up-to-date: gpt2/124M/hparams.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "model.ckpt.data-00000-of-00001: 100%|███████| 498M/498M [05:21<00:00, 1.55MiB/s]\n", + "model.ckpt.index: 100%|███████████████████| 5.21k/5.21k [00:00<00:00, 2.61MiB/s]\n", + "model.ckpt.meta: 100%|██████████████████████| 471k/471k [00:00<00:00, 2.55MiB/s]\n", + "vocab.bpe: 100%|████████████████████████████| 456k/456k [00:00<00:00, 1.94MiB/s]\n" ] } ], @@ -2257,7 +2265,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 51, "id": "b1a31951-d971-4a6e-9c43-11ee1168ec6a", "metadata": {}, "outputs": [ @@ -2275,7 +2283,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 52, "id": "857c8331-130e-46ba-921d-fa35d7a73cfe", "metadata": {}, "outputs": [ @@ -2321,7 +2329,7 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 53, "id": "9fef90dd-0654-4667-844f-08e28339ef7d", "metadata": {}, "outputs": [], @@ -2354,7 +2362,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 54, "id": "f9a92229-c002-49a6-8cfb-248297ad8296", "metadata": {}, "outputs": [], @@ -2367,7 +2375,7 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 55, "id": "f22d5d95-ca5a-425c-a9ec-fc432a12d4e9", "metadata": {}, "outputs": [], @@ -2420,7 +2428,7 @@ }, { "cell_type": "code", - "execution_count": 66, + "execution_count": 56, "id": "1f690253-f845-4347-b7b6-43fabbd2affa", "metadata": {}, "outputs": [ @@ -2509,7 +2517,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.4" + "version": "3.10.12" } }, "nbformat": 4,