From 421dd1048afaf539deb8bcdf7a45c0d5ecde032b Mon Sep 17 00:00:00 2001 From: prime234 Date: Wed, 8 May 2024 19:58:32 +0800 Subject: [PATCH 1/5] update ch02-2.7 --- Translated_Book/ch02/2.7 构建词符嵌入.ipynb | 214 ++++++++++++++++++++ 1 file changed, 214 insertions(+) create mode 100644 Translated_Book/ch02/2.7 构建词符嵌入.ipynb diff --git a/Translated_Book/ch02/2.7 构建词符嵌入.ipynb b/Translated_Book/ch02/2.7 构建词符嵌入.ipynb new file mode 100644 index 0000000..43f7142 --- /dev/null +++ b/Translated_Book/ch02/2.7 构建词符嵌入.ipynb @@ -0,0 +1,214 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "2cd2fcda-2fda-4aa8-8bc8-de1e496f9db1", + "metadata": {}, + "source": [ + "## 2.7 构建词符嵌入" + ] + }, + { + "cell_type": "markdown", + "id": "1a301068-6ab2-44ff-a915-1ba11688274f", + "metadata": {}, + "source": [ + "- 我们准备用于大语言模型(LLM)的数据已经差不多就绪了\n", + "- 接下来,我们要做的最后一步是使用嵌入层将 token 嵌入到连续的向量表示中。token本身不可计算,需要将其映射到一个连续向量空间,才可以进行后续运算,这个映射的结果就是该token对应的embedding\n", + "- 通常,这些用来转换词符的嵌入层是大语言模型(LLM)的一部分,并且在模型训练的过程中会不断调整和优化。" + ] + }, + { + "cell_type": "markdown", + "id": "e85089aa-8671-4e5f-a2b3-ef252004ee4c", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "id": "44e014ca-1fc5-4b90-b6fa-c2097bb92c0b", + "metadata": {}, + "source": [ + "- 假设我们在分词后有以下四个输入示例,对应的输入ID分别是5、1、3和2:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "15a6304c-9474-4470-b85d-3991a49fa653", + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "input_ids = torch.tensor([2, 3, 5, 1])" + ] + }, + { + "cell_type": "markdown", + "id": "14da6344-2c71-4837-858d-dd120005ba05", + "metadata": {}, + "source": [ + "- 为了简化问题,假设我们有一个只包含6个单词的小型词汇表,我们想要创建大小为3的嵌入。" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "93cb2cee-9aa6-4bb8-8977-c65661d16eda", + "metadata": {}, + "outputs": [], + "source": [ + "vocab_size = 6\n", + "output_dim = 3\n", + "\n", + "torch.manual_seed(123)\n", + "embedding_layer = torch.nn.Embedding(vocab_size, output_dim)" + ] + }, + { + "cell_type": "markdown", + "id": "4ff241f6-78eb-4e4a-a55f-5b2b6196d5b0", + "metadata": {}, + "source": [ + "- 这将会生成一个6x3的权重矩阵:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "a686eb61-e737-4351-8f1c-222913d47468", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Parameter containing:\n", + "tensor([[ 0.3374, -0.1778, -0.1690],\n", + " [ 0.9178, 1.5810, 1.3010],\n", + " [ 1.2753, -0.2010, -0.1606],\n", + " [-0.4015, 0.9666, -1.1481],\n", + " [-1.1589, 0.3255, -0.6315],\n", + " [-2.8400, -0.7849, -1.4096]], requires_grad=True)\n" + ] + } + ], + "source": [ + "print(embedding_layer.weight)" + ] + }, + { + "cell_type": "markdown", + "id": "5e54d5f1", + "metadata": {}, + "source": [ + "- 由于嵌入层只是独热编码和矩阵乘法方法的一种更高效的实现,它可以被视为一个可以通过反向传播进行优化的神经网络层。\n", + "- 对于那些熟悉独热编码的人来说,上述嵌入层的方法本质上只是实现独热编码后进行矩阵乘法的一种更高效的手段,这种方法在全连接层中使用,其详细说明可以在补充代码[./embedding_vs_matmul](https://github.com/datawhalechina/llms-from-scratch-cn/tree/main/ch02/03_bonus_embedding-vs-matmul)中找到。\n", + "- 因为嵌入层只是独热编码和矩阵乘法方法的一种更高效的实现,所以它可以被视为一个可以通过反向传播算法进行优化的神经网络层。" + ] + }, + { + "cell_type": "markdown", + "id": "4b0d58c3-83c0-4205-aca2-9c48b19fd4a7", + "metadata": {}, + "source": [ + "- 要将ID为3的词符转换为一个3维向量,我们执行以下步骤:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "e43600ba-f287-4746-8ddf-d0f71a9023ca", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tensor([[-0.4015, 0.9666, -1.1481]], grad_fn=)\n" + ] + } + ], + "source": [ + "print(embedding_layer(torch.tensor([3])))" + ] + }, + { + "cell_type": "markdown", + "id": "a7bbf625-4f36-491d-87b4-3969efb784b0", + "metadata": {}, + "source": [ + "- 注意,上述内容是`embedding_layer`权重矩阵中的第4行。\n", + "- 为了嵌入上面所有的四个`input_ids`值,我们执行以下操作:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "50280ead-0363-44c8-8c35-bb885d92c8b7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tensor([[ 1.2753, -0.2010, -0.1606],\n", + " [-0.4015, 0.9666, -1.1481],\n", + " [-2.8400, -0.7849, -1.4096],\n", + " [ 0.9178, 1.5810, 1.3010]], grad_fn=)\n" + ] + } + ], + "source": [ + "print(embedding_layer(input_ids))" + ] + }, + { + "cell_type": "markdown", + "id": "be97ced4-bd13-42b7-866a-4d699a17e155", + "metadata": {}, + "source": [ + "- 嵌入层本质上是一种查找操作:" + ] + }, + { + "cell_type": "markdown", + "id": "f33c2741-bf1b-4c60-b7fd-61409d556646", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "id": "08218d9f-aa1a-4afb-a105-72ff96a54e73", + "metadata": {}, + "source": [ + "- **您可能对比较嵌入层与常规线性层的附加内容感兴趣:[../03_bonus_embedding-vs-matmul](https://github.com/datawhalechina/llms-from-scratch-cn/tree/main/ch02/03_bonus_embedding-vs-matmul)**" + ] + } + ], + "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.9.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From c24de4b52c8b0f46609cf49e2946885a9f568657 Mon Sep 17 00:00:00 2001 From: gaoliye Date: Sat, 11 May 2024 00:42:26 +0800 Subject: [PATCH 2/5] ch5.1 --- .../ch02/2.6使用滑动窗口进行数据采样.ipynb | 4 +- .../ch05/5.1 在未标记的数据上进行预训练.ipynb | 1950 +++++++++++++++++ 2 files changed, 1952 insertions(+), 2 deletions(-) create mode 100644 Translated_Book/ch05/5.1 在未标记的数据上进行预训练.ipynb diff --git a/Translated_Book/ch02/2.6使用滑动窗口进行数据采样.ipynb b/Translated_Book/ch02/2.6使用滑动窗口进行数据采样.ipynb index 7c1aeb6..c8d29f4 100644 --- a/Translated_Book/ch02/2.6使用滑动窗口进行数据采样.ipynb +++ b/Translated_Book/ch02/2.6使用滑动窗口进行数据采样.ipynb @@ -75,7 +75,7 @@ "import tiktoken\n", "\n", "tokenizer = tiktoken.get_encoding(\"gpt2\")\n", - "with open(\"/Users/zhihu123/Project/other/llms-from-scratch-cn/ch02/01_main-chapter-code/the-verdict.txt\", \"r\", encoding=\"utf-8\") as f:\n", + "with open(\"the-verdict.txt\", \"r\", encoding=\"utf-8\") as f:\n", " raw_text = f.read()\n", "enc_text = tokenizer.encode(raw_text)\n", "print(len(enc_text))" @@ -441,7 +441,7 @@ } ], "source": [ - "with open(\"/Users/zhihu123/Project/other/llms-from-scratch-cn/ch02/01_main-chapter-code/the-verdict.txt\", \"r\", encoding=\"utf-8\") as f:\n", + "with open(\"the-verdict.txt\", \"r\", encoding=\"utf-8\") as f:\n", " raw_text = f.read()\n", " dataloader = create_dataloader_v1(\n", " raw_text, batch_size=1, max_length=4, stride=1, shuffle=False)\n", diff --git a/Translated_Book/ch05/5.1 在未标记的数据上进行预训练.ipynb b/Translated_Book/ch05/5.1 在未标记的数据上进行预训练.ipynb new file mode 100644 index 0000000..c1662ca --- /dev/null +++ b/Translated_Book/ch05/5.1 在未标记的数据上进行预训练.ipynb @@ -0,0 +1,1950 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "bae559a1", + "metadata": {}, + "source": [ + "# 第五章 在未 token 的数据上进行预训练" + ] + }, + { + "cell_type": "markdown", + "id": "e3b02c54", + "metadata": {}, + "source": [ + "**本章介绍**:" + ] + }, + { + "cell_type": "markdown", + "id": "bd2ed84e", + "metadata": {}, + "source": [ + "- 计算训练集和验证集的损失,以评估训练过程中 LLM 生成文本的质量\n", + "- 实现训练函数并对 LLM 进行预训练\n", + "- 保存和加载模型权重,以便继续训练 LLM\n", + "- 加载 OpenAI 的预训练权重" + ] + }, + { + "cell_type": "markdown", + "id": "73c209fb", + "metadata": {}, + "source": [ + "在前几章中,我们实现了数据采样、注意力机制,并编写了LLM 架构的代码。本章我们将主要关注如何实现训练函数并对LLM 进行预训练,如图 5.1 所示。" + ] + }, + { + "cell_type": "markdown", + "id": "29f55f31", + "metadata": {}, + "source": [ + "**图 5.1 对于构建 LLM 的三个主要阶段的心智模型,包括在通用文本数据集上预训练 LLM,以及在 token 的数据集上对其进行微调。本章将主要关注 LLM 的预训练,包括实现训练代码,评估性能,以及保存和加载模型权重。**" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "5f4fdd61", + "metadata": {}, + "source": [ + "![fig5.1](https://github.com/Pr04Ark/llms-from-scratch-cn/blob/trans01/Translated_Book/img/fig-5-1.jpg?raw=true)" + ] + }, + { + "cell_type": "markdown", + "id": "783519e0", + "metadata": {}, + "source": [ + "如图 5.1 所示,我们将进一步学习基本的模型评估技术,以便衡量生成文本的质量,这是在训练过程中优化LLM的关键步骤。此外,我们还将探讨如何加载预训练的权重,这将为我们在后续章节中对LLM进行微调提供坚实的基础。" + ] + }, + { + "cell_type": "markdown", + "id": "f582a3ea", + "metadata": {}, + "source": [ + "**权重参数(Weight parameters)**" + ] + }, + { + "cell_type": "markdown", + "id": "56f117c0", + "metadata": {}, + "source": [ + "在 LLM 和其他深度学习模型的背景下,权重(*weights*)指的是学习过程中需要调整的可训练参数。这些权重也被称为权重参数(*weight parameters*)或 简称为参数(*parameters*)。在像 PyTorch 这样的框架中,这些权重存储在线性层中,例如我们在第 3 章中实现多头注意力模块和第 4 章中的 GPTModel 时使用的。在初始化一个层(`new_layer = torch.nn.Linear(...)`)后,我们可以通过` .weight `属性访问其权重,即`new_layer.weight`。此外,为了方便,PyTorch允 许直接访问模型的所有可训练参数,包括权重和偏置,通过 `model.parameters()` 方法,我们将在后面实现模型训练时使用。" + ] + }, + { + "cell_type": "markdown", + "id": "708fa8b4", + "metadata": {}, + "source": [ + "## 5.1 评估文本生成模型" + ] + }, + { + "cell_type": "markdown", + "id": "6220ac20", + "metadata": {}, + "source": [ + "我们将从上一章的代码出发,介绍如何使用 LLM 进行文本生成,然后讨论评估生成文本质量的基本方法。本节以及本章剩余部分的内容概述如图 5.2 所示。" + ] + }, + { + "cell_type": "markdown", + "id": "2058d5ab", + "metadata": {}, + "source": [ + "**图 5.2 本章的主题内容如下。我们首先回顾上一章的文本生成内容,然后实现在预训练阶段进行模型评估的基本技术。**" + ] + }, + { + "cell_type": "markdown", + "id": "0f0d0449", + "metadata": {}, + "source": [ + "![fig5.2](https://github.com/Pr04Ark/llms-from-scratch-cn/blob/trans01/Translated_Book/img/fig-5-2.jpg?raw=true)" + ] + }, + { + "cell_type": "markdown", + "id": "ff6e7627", + "metadata": {}, + "source": [ + "如图 5.2 所示,下一小节我们将回顾上一章末尾设置的文本生成内容,然后在后续的小节中深入研究文本评估和计算训练及验证损失。" + ] + }, + { + "cell_type": "markdown", + "id": "6aefa0d9", + "metadata": {}, + "source": [ + "### 5.1.1 使用 GPT 生成文本" + ] + }, + { + "cell_type": "markdown", + "id": "1beee80f", + "metadata": {}, + "source": [ + "在本节,我们将初始化 LLM,并简要回顾在第四章中实现的文本生成过程。首先,我们将初始化一个 GPT 模型,该模型将在本章中被评估和训练。我们将使用第四章中的 GPTModel 类和 GPT_CONFIG_124M 字典来完成模型的初始化:" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "64eae149", + "metadata": { + "metadata": {} + }, + "outputs": [ + { + "data": { + "text/plain": [ + "GPTModel(\n", + " (tok_emb): Embedding(50257, 768)\n", + " (pos_emb): Embedding(256, 768)\n", + " (drop_emb): Dropout(p=0.1, inplace=False)\n", + " (trf_blocks): Sequential(\n", + " (0): TransformerBlock(\n", + " (att): MultiHeadAttention(\n", + " (W_query): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_key): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_value): Linear(in_features=768, out_features=768, bias=False)\n", + " (out_proj): Linear(in_features=768, out_features=768, bias=True)\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (ff): FeedForward(\n", + " (layers): Sequential(\n", + " (0): Linear(in_features=768, out_features=3072, bias=True)\n", + " (1): GELU()\n", + " (2): Linear(in_features=3072, out_features=768, bias=True)\n", + " (3): Dropout(p=0.1, inplace=False)\n", + " )\n", + " )\n", + " (norm1): LayerNorm()\n", + " (norm2): LayerNorm()\n", + " (drop_resid): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (1): TransformerBlock(\n", + " (att): MultiHeadAttention(\n", + " (W_query): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_key): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_value): Linear(in_features=768, out_features=768, bias=False)\n", + " (out_proj): Linear(in_features=768, out_features=768, bias=True)\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (ff): FeedForward(\n", + " (layers): Sequential(\n", + " (0): Linear(in_features=768, out_features=3072, bias=True)\n", + " (1): GELU()\n", + " (2): Linear(in_features=3072, out_features=768, bias=True)\n", + " (3): Dropout(p=0.1, inplace=False)\n", + " )\n", + " )\n", + " (norm1): LayerNorm()\n", + " (norm2): LayerNorm()\n", + " (drop_resid): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (2): TransformerBlock(\n", + " (att): MultiHeadAttention(\n", + " (W_query): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_key): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_value): Linear(in_features=768, out_features=768, bias=False)\n", + " (out_proj): Linear(in_features=768, out_features=768, bias=True)\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (ff): FeedForward(\n", + " (layers): Sequential(\n", + " (0): Linear(in_features=768, out_features=3072, bias=True)\n", + " (1): GELU()\n", + " (2): Linear(in_features=3072, out_features=768, bias=True)\n", + " (3): Dropout(p=0.1, inplace=False)\n", + " )\n", + " )\n", + " (norm1): LayerNorm()\n", + " (norm2): LayerNorm()\n", + " (drop_resid): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (3): TransformerBlock(\n", + " (att): MultiHeadAttention(\n", + " (W_query): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_key): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_value): Linear(in_features=768, out_features=768, bias=False)\n", + " (out_proj): Linear(in_features=768, out_features=768, bias=True)\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (ff): FeedForward(\n", + " (layers): Sequential(\n", + " (0): Linear(in_features=768, out_features=3072, bias=True)\n", + " (1): GELU()\n", + " (2): Linear(in_features=3072, out_features=768, bias=True)\n", + " (3): Dropout(p=0.1, inplace=False)\n", + " )\n", + " )\n", + " (norm1): LayerNorm()\n", + " (norm2): LayerNorm()\n", + " (drop_resid): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (4): TransformerBlock(\n", + " (att): MultiHeadAttention(\n", + " (W_query): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_key): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_value): Linear(in_features=768, out_features=768, bias=False)\n", + " (out_proj): Linear(in_features=768, out_features=768, bias=True)\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (ff): FeedForward(\n", + " (layers): Sequential(\n", + " (0): Linear(in_features=768, out_features=3072, bias=True)\n", + " (1): GELU()\n", + " (2): Linear(in_features=3072, out_features=768, bias=True)\n", + " (3): Dropout(p=0.1, inplace=False)\n", + " )\n", + " )\n", + " (norm1): LayerNorm()\n", + " (norm2): LayerNorm()\n", + " (drop_resid): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (5): TransformerBlock(\n", + " (att): MultiHeadAttention(\n", + " (W_query): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_key): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_value): Linear(in_features=768, out_features=768, bias=False)\n", + " (out_proj): Linear(in_features=768, out_features=768, bias=True)\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (ff): FeedForward(\n", + " (layers): Sequential(\n", + " (0): Linear(in_features=768, out_features=3072, bias=True)\n", + " (1): GELU()\n", + " (2): Linear(in_features=3072, out_features=768, bias=True)\n", + " (3): Dropout(p=0.1, inplace=False)\n", + " )\n", + " )\n", + " (norm1): LayerNorm()\n", + " (norm2): LayerNorm()\n", + " (drop_resid): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (6): TransformerBlock(\n", + " (att): MultiHeadAttention(\n", + " (W_query): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_key): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_value): Linear(in_features=768, out_features=768, bias=False)\n", + " (out_proj): Linear(in_features=768, out_features=768, bias=True)\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (ff): FeedForward(\n", + " (layers): Sequential(\n", + " (0): Linear(in_features=768, out_features=3072, bias=True)\n", + " (1): GELU()\n", + " (2): Linear(in_features=3072, out_features=768, bias=True)\n", + " (3): Dropout(p=0.1, inplace=False)\n", + " )\n", + " )\n", + " (norm1): LayerNorm()\n", + " (norm2): LayerNorm()\n", + " (drop_resid): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (7): TransformerBlock(\n", + " (att): MultiHeadAttention(\n", + " (W_query): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_key): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_value): Linear(in_features=768, out_features=768, bias=False)\n", + " (out_proj): Linear(in_features=768, out_features=768, bias=True)\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (ff): FeedForward(\n", + " (layers): Sequential(\n", + " (0): Linear(in_features=768, out_features=3072, bias=True)\n", + " (1): GELU()\n", + " (2): Linear(in_features=3072, out_features=768, bias=True)\n", + " (3): Dropout(p=0.1, inplace=False)\n", + " )\n", + " )\n", + " (norm1): LayerNorm()\n", + " (norm2): LayerNorm()\n", + " (drop_resid): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (8): TransformerBlock(\n", + " (att): MultiHeadAttention(\n", + " (W_query): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_key): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_value): Linear(in_features=768, out_features=768, bias=False)\n", + " (out_proj): Linear(in_features=768, out_features=768, bias=True)\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (ff): FeedForward(\n", + " (layers): Sequential(\n", + " (0): Linear(in_features=768, out_features=3072, bias=True)\n", + " (1): GELU()\n", + " (2): Linear(in_features=3072, out_features=768, bias=True)\n", + " (3): Dropout(p=0.1, inplace=False)\n", + " )\n", + " )\n", + " (norm1): LayerNorm()\n", + " (norm2): LayerNorm()\n", + " (drop_resid): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (9): TransformerBlock(\n", + " (att): MultiHeadAttention(\n", + " (W_query): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_key): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_value): Linear(in_features=768, out_features=768, bias=False)\n", + " (out_proj): Linear(in_features=768, out_features=768, bias=True)\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (ff): FeedForward(\n", + " (layers): Sequential(\n", + " (0): Linear(in_features=768, out_features=3072, bias=True)\n", + " (1): GELU()\n", + " (2): Linear(in_features=3072, out_features=768, bias=True)\n", + " (3): Dropout(p=0.1, inplace=False)\n", + " )\n", + " )\n", + " (norm1): LayerNorm()\n", + " (norm2): LayerNorm()\n", + " (drop_resid): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (10): TransformerBlock(\n", + " (att): MultiHeadAttention(\n", + " (W_query): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_key): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_value): Linear(in_features=768, out_features=768, bias=False)\n", + " (out_proj): Linear(in_features=768, out_features=768, bias=True)\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (ff): FeedForward(\n", + " (layers): Sequential(\n", + " (0): Linear(in_features=768, out_features=3072, bias=True)\n", + " (1): GELU()\n", + " (2): Linear(in_features=3072, out_features=768, bias=True)\n", + " (3): Dropout(p=0.1, inplace=False)\n", + " )\n", + " )\n", + " (norm1): LayerNorm()\n", + " (norm2): LayerNorm()\n", + " (drop_resid): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (11): TransformerBlock(\n", + " (att): MultiHeadAttention(\n", + " (W_query): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_key): Linear(in_features=768, out_features=768, bias=False)\n", + " (W_value): Linear(in_features=768, out_features=768, bias=False)\n", + " (out_proj): Linear(in_features=768, out_features=768, bias=True)\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (ff): FeedForward(\n", + " (layers): Sequential(\n", + " (0): Linear(in_features=768, out_features=3072, bias=True)\n", + " (1): GELU()\n", + " (2): Linear(in_features=3072, out_features=768, bias=True)\n", + " (3): Dropout(p=0.1, inplace=False)\n", + " )\n", + " )\n", + " (norm1): LayerNorm()\n", + " (norm2): LayerNorm()\n", + " (drop_resid): Dropout(p=0.1, inplace=False)\n", + " )\n", + " )\n", + " (final_norm): LayerNorm()\n", + " (out_head): Linear(in_features=768, out_features=50257, bias=False)\n", + ")" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import torch\n", + "from chapter04 import GPTModel\n", + "GPT_CONFIG_124M = {\n", + "\"vocab_size\": 50257,\n", + "\"context_length\": 256, #A\n", + "\"emb_dim\": 768,\n", + "\"n_heads\": 12,\n", + "\"n_layers\": 12,\n", + "\"drop_rate\": 0.1, #B\n", + "\"qkv_bias\": False\n", + "}\n", + "torch.manual_seed(123)\n", + "model = GPTModel(GPT_CONFIG_124M)\n", + "model.eval()" + ] + }, + { + "cell_type": "markdown", + "id": "9d97ef59", + "metadata": {}, + "source": [ + "对于 GPT_CONFIG_124M 字典,我们与上一章相比做出的唯一调整是将上下文长度(context_length)缩减到 256 个 tokens。这种改变降低了模型训练的计算压力,使得在普通的笔记本电脑上进行训练成为可能。" + ] + }, + { + "cell_type": "markdown", + "id": "f58ad472", + "metadata": {}, + "source": [ + "拥有 1.24 亿参数的 GPT-2 模型原本被配置为处理 1024 个 tokns。在训练过程结束后,我们将在本章末尾更新上下文大小设置,并加载预训练的权重,以便与配置为 1024 tokens 上下文长度的模型一起工作。" + ] + }, + { + "cell_type": "markdown", + "id": "933d6219", + "metadata": {}, + "source": [ + "借助 GPTmodel 实例,我们采用了上一章介绍的 `generate_text_simple `函数,并引入了两个实用的函数,`text_to_token_ids` 和 `token_ids_to_text`。这些函数方便我们在文本和 token 表示之间进行转换,我们将在本章中频繁使用它们。为了提供更清晰的理解,我们在深入代码之前,通过图 5.3 来展示这个过程。" + ] + }, + { + "cell_type": "markdown", + "id": "099fb30b", + "metadata": {}, + "source": [ + "**图 5.3 文本生成过程包括将文本编码为 token ID,随后被 LLM 处理为 logit 向量。之后这些 logit 向量被转换回 token ID,最后再被解码为文本形式。**" + ] + }, + { + "cell_type": "markdown", + "id": "ee7b74da", + "metadata": {}, + "source": [ + "![fig5.3](https://github.com/Pr04Ark/llms-from-scratch-cn/blob/trans01/Translated_Book/img/fig-5-3.png?raw=true)" + ] + }, + { + "cell_type": "markdown", + "id": "bac8aaf9", + "metadata": {}, + "source": [ + "图 5.3 描绘了使用 GPT 模型进行的文本生成的三步。首先,如第二章所述,分词器将输入文本转换为一系列的 token ID。其次,模型接收这些 token ID,并生成相应的 logit,这些 logit 是向量,代表词汇表中每个令牌的概率分布,如第四章所述。最后,这些 logit 被转换回 token ID,分词器将其解码为人类可读的文本,从而完成从文本输入到文本输出的循环。" + ] + }, + { + "cell_type": "markdown", + "id": "6f5c65de", + "metadata": {}, + "source": [ + "我们实现了如下文本生成过程的代码:" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "f955fbdf", + "metadata": { + "metadata": {} + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output text:\n", + " Every effort moves you rentingetic wasnم refres RexMeCHicular stren\n" + ] + } + ], + "source": [ + "import tiktoken\n", + "from chapter04 import generate_text_simple\n", + "\n", + "def text_to_token_ids(text, tokenizer):\n", + " encoded = tokenizer.encode(text, allowed_special={'<|endoftext|>'})\n", + " encoded_tensor = torch.tensor(encoded).unsqueeze(0) # 添加批次维度\n", + " return encoded_tensor\n", + "\n", + "def token_ids_to_text(token_ids, tokenizer):\n", + " flat = token_ids.squeeze(0) # 删除批次维度\n", + " return tokenizer.decode(flat.tolist())\n", + "\n", + "start_context = \"Every effort moves you\"\n", + "tokenizer = tiktoken.get_encoding(\"gpt2\")\n", + "\n", + "token_ids = generate_text_simple(\n", + " model=model,\n", + " idx=text_to_token_ids(start_context, tokenizer),\n", + " max_new_tokens=10,\n", + " context_size=GPT_CONFIG_124M[\"context_length\"]\n", + ")\n", + "print(\"Output text:\\n\", token_ids_to_text(token_ids, tokenizer))" + ] + }, + { + "cell_type": "markdown", + "id": "fac02310", + "metadata": {}, + "source": [ + "使用前面的代码,模型会生成以下文本:" + ] + }, + { + "cell_type": "markdown", + "id": "32ee5054", + "metadata": {}, + "source": [ + "```\n", + "Output text:\n", + "Every effort moves you rentingetic wasnم refres RexMeCHicular stren\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "af55c67f", + "metadata": {}, + "source": [ + "从输出结果来看,模型显然还无法生成连贯的文本,因为它还未经过训练。为了定义何为\"连贯的\"或\"高质量的\"文本,我们需要实现一种数值化的方法来评估生成的内容。这种方法将使我们能够在整个训练过程中监控并提升模型的性能。" + ] + }, + { + "cell_type": "markdown", + "id": "d6ced9d3", + "metadata": {}, + "source": [ + "接下来的部分将介绍我们如何为生成的输出计算损失指标(*loss metric*)。这个损失作为训练进度的衡量和成功的标志。此外,在后续关于微调 LLM 的章节中,我们将回顾评估模型质量的其他方法。" + ] + }, + { + "cell_type": "markdown", + "id": "a6ac4dbe", + "metadata": { + "metadata": {} + }, + "source": [ + "### 5.1.2 计算文本生成损失" + ] + }, + { + "cell_type": "markdown", + "id": "6a758181", + "metadata": {}, + "source": [ + "在本节中,我们将深入探讨一种通过计算文本生成损失,以量化评估训练过程中生成的文本质量的技术。我们将通过一个实际的例子,逐步深入解析这个主题,以便让概念更加清晰并易于实践。我们先简短回顾下第二章的数据加载和第四章的`generate_text_simple`函数生成文本。" + ] + }, + { + "cell_type": "markdown", + "id": "7a6d3342", + "metadata": {}, + "source": [ + "图 5.4 以五步流程清晰地描绘了从输入文本到 LLM 生成文本的整个过程。" + ] + }, + { + "cell_type": "markdown", + "id": "b1f5e953", + "metadata": { + "metadata": {}, + "vscode": { + "languageId": "markdown" + } + }, + "source": [ + "**图 5.4 对于图片左侧显示的三个输入,我们会为每一个输入 token 计算一个向量,该向量包含对应于词汇表中每个 token 的概率分数。每个向量中概率分数最高的索引位置代表最可能的下一个 token ID。选择与最高概率分数相关联的这些 token ID,并将其映射回一个文本,这个文本就代表模型生成的文本。**" + ] + }, + { + "cell_type": "markdown", + "id": "a8a713e2", + "metadata": {}, + "source": [ + "![fig5.4](https://github.com/Pr04Ark/llms-from-scratch-cn/blob/trans01/Translated_Book/img/fig-5-4.jpg?raw=true)" + ] + }, + { + "cell_type": "markdown", + "id": "8dd4c3f7", + "metadata": {}, + "source": [ + "图 5.4 中的文本生成流程详细描述了第四章中 `generate_text_simple` 函数的内部工作原理。在本节后面计算生成文本质量的损失之前,我们需要先执行这些相同的初始步骤。" + ] + }, + { + "cell_type": "markdown", + "id": "5bd17c35", + "metadata": {}, + "source": [ + "图 5.4 以一个只有 7 个 toekns 的小型词汇表为例,概述了文本生成过程,以便在单页上展示此图像。然而,我们的 GPT 模型使用的是一个包含 50,257 个单词的大型词汇表;因此,在接下来的代码中, token ID 的范围将是 0 到 50,256,而不仅仅是 0 到 6。" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "此外,为了简化,图 5.4 仅展示了一个文本示例(\"every effort moves\")。在接下来实现图 5.4 步骤的代码示例中,我们将使用两个输入示例(\"every effort moves\" 和 \"I really like\")作为 GPT 模型的输入。" + ] + }, + { + "cell_type": "markdown", + "id": "664aaa24", + "metadata": {}, + "source": [ + "考虑两个输入示例,这些示例已经被转换为对应的 token ID,对应于图 5.4 中的步骤 1:" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "ce0dbb8d", + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "inputs = torch.tensor([[16833, 3626, 6100], # [\"every effort moves\",\n", + " [40, 1107, 588]]) # \"I really like\"]" + ] + }, + { + "cell_type": "markdown", + "id": "ffa56920", + "metadata": {}, + "source": [ + "\"目标(`targets`)\"包含我们希望模型生成的生成对应输入的 token ID:\n", + "Matching these inputs, the `targets` contain the token IDs we aim for the model to produce:" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "df02aa75", + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "targets = torch.tensor([[3626, 6100, 345 ], # [\" effort moves you\",\n", + " [588, 428, 11311]]) # \" really like chocolate\"]" + ] + }, + { + "cell_type": "markdown", + "id": "2089e68e", + "metadata": {}, + "source": [ + "请注意,目标与输入相同,只不过是向前移动了一个位置,这是我们在第二章实现数据加载器时所讨论过的概念。这种移位策略对于训练模型预测序列中的下一个元素至关重要。" + ] + }, + { + "cell_type": "markdown", + "id": "246c2bdf", + "metadata": {}, + "source": [ + "我们将输入送入模型以计算两个输入示例的逻辑向量,每个示例由三个 toekns组成,并应用 softmax 函数将这些逻辑值转换为概率分数,这对应于图 5.4 中的步骤 2:" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "de5d2a00", + "metadata": { + "metadata": {} + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "torch.Size([2, 3, 50257])\n" + ] + } + ], + "source": [ + "with torch.no_grad(): #A\n", + " logits = model(inputs)\n", + "probas = torch.softmax(logits, dim=-1) # 词表中每个 token 的概率\n", + "print(probas.shape)" + ] + }, + { + "cell_type": "markdown", + "id": "99cd63e6", + "metadata": {}, + "source": [ + "由此得出的概率分数(probas)张量维度如下:" + ] + }, + { + "cell_type": "markdown", + "id": "c82fedd0", + "metadata": {}, + "source": [ + "`torch.Size([2, 3, 50257])`" + ] + }, + { + "cell_type": "markdown", + "id": "07faf720", + "metadata": {}, + "source": [ + "第一个数字 2,代表输入中的两个示例(行),也被称为批量大小。第二个数字 3,代表每个输入(行)中的 token 数量。最后一个数字则对应于嵌入的维度,这是由词表大小决定的,正如我们在前面的章节中讨论的。" + ] + }, + { + "cell_type": "markdown", + "id": "ba6370a8", + "metadata": {}, + "source": [ + "在通过 softmax 函数将逻辑值转换为概率后,使用我们在第四章中实现的 `generate_text_simple` 函数将这些概率分数再次转换为文本,如图 5.4 的步骤 3-5 所示。" + ] + }, + { + "cell_type": "markdown", + "id": "05668740", + "metadata": {}, + "source": [ + "我们可以通过对概率分数应用 argmax 函数来实现步骤 3 和步骤 4,从而获得相应的 token ID:" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "bed6affe", + "metadata": { + "metadata": {} + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Token IDs:\n", + " tensor([[[16657],\n", + " [ 339],\n", + " [42826]],\n", + "\n", + " [[49906],\n", + " [29669],\n", + " [41751]]])\n" + ] + } + ], + "source": [ + "token_ids = torch.argmax(probas, dim=-1, keepdim=True)\n", + "print(\"Token IDs:\\n\", token_ids)" + ] + }, + { + "cell_type": "markdown", + "id": "92f47d35", + "metadata": {}, + "source": [ + "考虑到我们有两个输入批次,每个批次都包含 3 个 token,将 argmax 函数应用于概率分数(如图 5.4 的步骤 3 所示)会产生两组输出,每组都包含3个预测的 token ID:" + ] + }, + { + "cell_type": "markdown", + "id": "caae4dad", + "metadata": {}, + "source": [ + "```\n", + "Token IDs:\n", + "tensor([[[16657], # First batch\n", + " [ 339],\n", + " [42826]],\n", + " [[49906], # Second batch\n", + " [29669],\n", + " [41751]]])\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "bf4c07d1", + "metadata": {}, + "source": [ + "最后,第 5 步将 token ID 转换回文本:" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "8d529bbb", + "metadata": { + "metadata": {} + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Targets batch 1: effort moves you\n", + "Outputs batch 1: Armed heNetflix\n" + ] + } + ], + "source": [ + "print(f\"Targets batch 1: {token_ids_to_text(targets[0], tokenizer)}\")\n", + "print(f\"Outputs batch 1: {token_ids_to_text(token_ids[0].flatten(), tokenizer)}\")" + ] + }, + { + "cell_type": "markdown", + "id": "55640177", + "metadata": {}, + "source": [ + "当我们解码这些 token 时,我们发现这些输出 token 与我们希望模型生成的目标 token 完全不同:" + ] + }, + { + "cell_type": "markdown", + "id": "e11ae407", + "metadata": {}, + "source": [ + "```\n", + "Targets batch 1: effort moves you\n", + "Outputs batch 1: Armed heNetflix\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "9a968f03", + "metadata": {}, + "source": [ + "模型产生的随机文本与目标文本不同,这是因为它还没有经过训练。现在,我们将通过一种被称为“损失”的方式,对模型生成的文本性能进行数值化评估,如图5.4所示。这种方法不仅对于衡量生成文本的质量有重要作用,同时也是实现后续训练函数的基础。我们将利用这个函数来更新模型的权重,从而提升生成文本的质量。" + ] + }, + { + "cell_type": "markdown", + "id": "401b9da4", + "metadata": { + "vscode": { + "languageId": "markdown" + } + }, + "source": [ + "**图 5.5 在本节的剩余部分,我们将实现文本评估函数。在接下来的一节中,我们将把这个评估函数应用到用于模型训练的整个数据集上。**" + ] + }, + { + "cell_type": "markdown", + "id": "f1d15903", + "metadata": { + "metadata": {} + }, + "source": [ + "![fig5.5](https://github.com/Pr04Ark/llms-from-scratch-cn/blob/trans01/Translated_Book/img/fig-5-5.png?raw=true)" + ] + }, + { + "cell_type": "markdown", + "id": "1b5b7f61", + "metadata": { + "metadata": {}, + "vscode": { + "languageId": "markdown" + } + }, + "source": [ + "在本节剩余部分中,我们将实现文本评估过程的部分,如图5.5所示。这个过程是为了衡量生成的 token 与正确预测(目标)之间的“距离”。在本章后续的训练函数中,我们将利用这些信息来调整模型权重,以便生成的文本更接近(理想情况下与)目标文本。" + ] + }, + { + "cell_type": "markdown", + "id": "542d3ae9", + "metadata": {}, + "source": [ + "模型训练的目标是提升正确目标 token ID 对应索引位置的 softmax 概率,如图 5.6 所示。这个 softmax 概率也被应用于我们在本节后续部分要实现的评估指标中,用于对模型生成的输出进行数值评估:正确位置的概率越高,效果就越好。" + ] + }, + { + "cell_type": "markdown", + "id": "a70c573c", + "metadata": {}, + "source": [ + "**图 5.6 未进过训练时,模型随机生成下一个 token 的概率向量。模型训练的目标是最大化目标 token ID 对应的概率值。**" + ] + }, + { + "cell_type": "markdown", + "id": "a16fe1d9", + "metadata": {}, + "source": [ + "![fig5.6](https://github.com/Pr04Ark/llms-from-scratch-cn/blob/trans01/Translated_Book/img/fig-5-6.jpg?raw=true)" + ] + }, + { + "cell_type": "markdown", + "id": "810b4cee", + "metadata": {}, + "source": [ + "请注意,图 5.6 展示了一个只有 7 个 token 的紧凑词汇表的 softmax 概率,以便将所有信息都整合到一个图形中。这意味着初始的随机值将大约在 1/7(约等于 0.14)附近。" + ] + }, + { + "cell_type": "markdown", + "id": "21753a03", + "metadata": {}, + "source": [ + "不过,我们在 GPT-2 模型中使用的词汇有 50,257 个 tokens,因此大多数初始概率都会在 0.00002(1/50,257 )附近。" + ] + }, + { + "cell_type": "markdown", + "id": "ff61eb16", + "metadata": {}, + "source": [ + "对于两个输入文本中的每一个,我们可以通过以下代码打印与目标 token 对应的初始 softmax 概率分数:" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "a37ab176", + "metadata": { + "metadata": {} + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Text 1: tensor([7.4541e-05, 3.1061e-05, 1.1563e-05])\n", + "Text 2: tensor([3.9836e-05, 1.6783e-05, 4.7559e-06])\n" + ] + } + ], + "source": [ + "text_idx = 0\n", + "target_probas_1 = probas[text_idx, [0, 1, 2], targets[text_idx]]\n", + "print(\"Text 1:\", target_probas_1)\n", + "text_idx = 1\n", + "target_probas_2 = probas[text_idx, [0, 1, 2], targets[text_idx]]\n", + "print(\"Text 2:\", target_probas_2)" + ] + }, + { + "cell_type": "markdown", + "id": "742c3dbf", + "metadata": {}, + "source": [ + "每个批次的 3 个目标 token ID 概率如下:" + ] + }, + { + "cell_type": "markdown", + "id": "2199e6c0", + "metadata": {}, + "source": [ + "```\n", + "Text 1: tensor([7.4541e-05, 3.1061e-05, 1.1563e-05])\n", + "Text 2: tensor([3.9836e-05, 1.6783e-05, 4.7559e-06])\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "b3d38314", + "metadata": {}, + "source": [ + " LLM 的训练目标是最大化这些概率值,尽可能使它们接近1。这样,模型在生成下一个 token 时,将始终选择目标 token —— 即句子中的下一个词。" + ] + }, + { + "cell_type": "markdown", + "id": "c2b81f29", + "metadata": {}, + "source": [ + "**反向传播(Backpropagation)**" + ] + }, + { + "cell_type": "markdown", + "id": "6b08f388", + "metadata": {}, + "source": [ + "我们如何才能最大化目标 tokens 对应的 softmax 概率值呢?总的来说,我们会更新模型的权重,使得模型对我们希望生成的各个 token ID 输出更高的值。权重的更新是通过一种名为反向传播的过程来完成的,这是训练深度神经网络的标准技术(关于反向传播和模型训练的更多详细信息,请参见附录 A 的 A.3 至 A.7 节)。" + ] + }, + { + "cell_type": "markdown", + "id": "5d808b98", + "metadata": {}, + "source": [ + "反向传播需要一个损失函数,该函数用于计算模型预测输出(在这里,是目标 token ID 对应的概率)与实际期望输出之间的差距。这个损失函数用于衡量模型预测结果与目标值之间的偏离程度。" + ] + }, + { + "cell_type": "markdown", + "id": "a0177e07", + "metadata": {}, + "source": [ + "在本节剩余部分,我们将计算两个示例批次,即 `target_probas_1` 和 `target_probas_2` 的概率分数的损失。主要步骤已在图 5.7 中展示。" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**图 5.7 计算损失包含多个步骤。步骤 1 至 3 用于计算目标张量相对应的 token 概率。然后,在步骤 4 至 6 中,这些概率经过对数转换并取平均。**" + ] + }, + { + "cell_type": "markdown", + "id": "03e5ab98", + "metadata": {}, + "source": [ + "![fig5.7](https://github.com/Pr04Ark/llms-from-scratch-cn/blob/trans01/Translated_Book/img/fig-5-7.jpg?raw=true)" + ] + }, + { + "cell_type": "markdown", + "id": "81ad3584", + "metadata": {}, + "source": [ + "由于我们已经按照图 5.7 中的步骤 1-3 计算出了 `target_probas_1` 和 `target_probas_2`,接下来我们将进行步骤 4,对这些概率分数应用对数函数。" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "a052472f", + "metadata": { + "metadata": {} + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tensor([ -9.5042, -10.3796, -11.3677, -10.1307, -10.9951, -12.2561])\n" + ] + } + ], + "source": [ + "log_probas = torch.log(torch.cat((target_probas_1, target_probas_2)))\n", + "print(log_probas)" + ] + }, + { + "cell_type": "markdown", + "id": "f935fe09", + "metadata": {}, + "source": [ + "结果如下:" + ] + }, + { + "cell_type": "markdown", + "id": "f9709916", + "metadata": {}, + "source": [ + "```\n", + "tensor([ -9.5042, -10.3796, -11.3677, -10.1308, -10.9951, -12.2561])\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "fb412c76", + "metadata": {}, + "source": [ + "在数学优化过程中,处理概率得分的对数比直接处理得分本身更为便捷。这个主题超出了本书的讨论范围,但我在一次讲座中对此进行了详细阐述,你可以在附录B的参考资料部分找到相关链接。" + ] + }, + { + "cell_type": "markdown", + "id": "87175393", + "metadata": {}, + "source": [ + "接下来,我们通过计算平均值将这些对数概率合并为一个分数(图 5.7 中的步骤 5):" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "78673f2a", + "metadata": { + "metadata": {} + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tensor(-10.7722)\n" + ] + } + ], + "source": [ + "avg_log_probas = torch.mean(log_probas)\n", + "print(avg_log_probas)" + ] + }, + { + "cell_type": "markdown", + "id": "e9d0cd22", + "metadata": {}, + "source": [ + "得出的平均对数概率得分如下:" + ] + }, + { + "cell_type": "markdown", + "id": "d1717f1d", + "metadata": {}, + "source": [ + "`tensor(-10.7722)`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "我们的目标是通过在训练过程中更新模型的权重,使平均对数概率尽可能接近 0,这部分我们将在 5.2 节中实现。" + ] + }, + { + "cell_type": "markdown", + "id": "05e24ea8", + "metadata": {}, + "source": [ + "然而,在深度学习中,常见的做法并不是提升平均对数概率至 0,而是降低负平均对数概率至 0。负平均对数概率即平均对数概率乘以 -1,这对应于图 5.7 中的第 6 步:" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "0c071178", + "metadata": { + "metadata": {} + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tensor(10.7722)\n" + ] + } + ], + "source": [ + "neg_avg_log_probas = avg_log_probas * -1\n", + "print(neg_avg_log_probas)" + ] + }, + { + "cell_type": "markdown", + "id": "907ea370", + "metadata": {}, + "source": [ + "这打印了张量`(10.7722)`" + ] + }, + { + "cell_type": "markdown", + "id": "e5c57f70", + "metadata": {}, + "source": [ + "这个负值(-10.7722 变成 10.7722)在深度学习中被称为交叉熵损失(*cross entropy*)。" + ] + }, + { + "cell_type": "markdown", + "id": "52ff9142", + "metadata": {}, + "source": [ + "PyTorch 在这里派上了用场,因为它已经内置了一个 `cross_entropy` 函数,可以为我们处理图 5.7 中的所有这 6 个步骤。" + ] + }, + { + "cell_type": "markdown", + "id": "7d8a8f12", + "metadata": {}, + "source": [ + "**交叉熵损失(Cross entropy loss)**" + ] + }, + { + "cell_type": "markdown", + "id": "53ea2a44", + "metadata": {}, + "source": [ + "交叉熵损失在机器学习和深度学习中是一种常用的度量方法,用于衡量两个概率分布之间的差异——通常是标签的真实分布(在这里,是数据集中的 token)和模型的预测分布(例如,由 LLM 生成的 token 概率)。" + ] + }, + { + "cell_type": "markdown", + "id": "02b5c1ab", + "metadata": {}, + "source": [ + "在机器学习领域,尤其是在像 PyTorch 这样的框架中,`cross_entropy` 函数用于计算离散结果的度量值,这与目标 token 在模型生成的 token 概率下的负平均对数概率类似。因此,交叉熵和负平均对数概率这两个术语在实践中经常被互换使用。" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "在应用交叉熵函数之前,让我们简单回顾一下 logits 和目标张量的形状:" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "886cbd2a", + "metadata": { + "metadata": {} + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logits shape: torch.Size([2, 3, 50257])\n", + "Targets shape: torch.Size([2, 3])\n" + ] + } + ], + "source": [ + "print(\"Logits shape:\", logits.shape)\n", + "print(\"Targets shape:\", targets.shape)" + ] + }, + { + "cell_type": "markdown", + "id": "bfb02d0e", + "metadata": {}, + "source": [ + "形状如下:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```\n", + "Logits shape: torch.Size([2, 3, 50257])\n", + "Targets shape: torch.Size([2, 3])\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "711c2449", + "metadata": {}, + "source": [ + "如我们所见,logits 张量有三个维度:批量大小、token 数量和词汇表大小。而 targets 张量有两个维度:批量大小和 token 数量。" + ] + }, + { + "cell_type": "markdown", + "id": "038c15b1", + "metadata": {}, + "source": [ + "对于 PyTorch 中的交叉熵损失函数,我们希望通过在批次维度上合并这些张量来扁平化这些张量:" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "9282e764", + "metadata": { + "metadata": {} + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Flattened logits: torch.Size([6, 50257])\n", + "Flattened targets: torch.Size([6])\n" + ] + } + ], + "source": [ + "logits_flat = logits.flatten(0, 1)\n", + "targets_flat = targets.flatten()\n", + "print(\"Flattened logits:\", logits_flat.shape)\n", + "print(\"Flattened targets:\", targets_flat.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "得到的张量维度如下:" + ] + }, + { + "cell_type": "markdown", + "id": "4a1a4bc9", + "metadata": {}, + "source": [ + "```\n", + "Flattened logits: torch.Size([6, 50257])\n", + "Flattened targets: torch.Size([6])\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "edbbad9f", + "metadata": {}, + "source": [ + "请注意,目标值是我们期望 LLM 生成的 token ID,而 logits 则包含了模型在经过 softmax 函数获取概率分数之前的未经缩放的输出值。" + ] + }, + { + "cell_type": "markdown", + "id": "5b12c46a", + "metadata": {}, + "source": [ + "在之前,我们应用了 softmax 函数,选择了与目标 ID 对应的概率分数,并计算了负平均对数概率。PyTorch 的 `cross_entropy` 函数将为我们处理所有这些步骤:" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "4bd2964f", + "metadata": { + "metadata": {} + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tensor(10.7722)\n" + ] + } + ], + "source": [ + "loss = torch.nn.functional.cross_entropy(logits_flat, targets_flat)\n", + "print(loss)" + ] + }, + { + "cell_type": "markdown", + "id": "79090bfa", + "metadata": {}, + "source": [ + "产生的损失与我们之前手动实现图 5.7 中所示的各个步骤时获得的损失相同:" + ] + }, + { + "cell_type": "markdown", + "id": "8d36aaf7", + "metadata": {}, + "source": [ + "```\n", + "tensor(10.7722)\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "e68aea09", + "metadata": {}, + "source": [ + "**困惑度(Perplexity)**" + ] + }, + { + "cell_type": "markdown", + "id": "bfdbd3b3", + "metadata": {}, + "source": [ + "困惑度是一种常用的评估指标,经常与交叉熵损失一起用于评价如 LLM 这类任务的模型性能。它提供了一种更易于理解的方式,帮助我们理解模型在预测序列中下一个 token 时的不确定性。" + ] + }, + { + "cell_type": "markdown", + "id": "13622f5e", + "metadata": {}, + "source": [ + "困惑度衡量的是模型预测的概率分布与数据集中实际单词分布的匹配程度。与损失类似,较低的困惑度表明模型的预测更接近实际的分布。" + ] + }, + { + "cell_type": "markdown", + "id": "e3d21e8b", + "metadata": {}, + "source": [ + "困惑度可以通过公式 `perplexity = torch.exp(loss)` 来计算。当我们将这个公式应用到之前计算的损失值时,得到的结果是 `tensor(47678.8633)`。" + ] + }, + { + "cell_type": "markdown", + "id": "31060ae7", + "metadata": {}, + "source": [ + "困惑度通常被认为比原始损失值更易于理解,因为它代表了模型在每一步中对有效词汇量的不确定性。在这个例子中,这意味着模型在词汇表中的 47,678 个单词或 token 中,不确定哪一个会被生成为下一个 token。" + ] + }, + { + "cell_type": "markdown", + "id": "3823685d", + "metadata": {}, + "source": [ + "在本节中,我们计算了两个小文本输入的损失,以作说明。下一节,我们将对整个训练集和验证集进行损失计算。" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 5.1.3 计算训练集和验证集损失" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "在本节中,我们首先准备了将在本章后面用于训练 LLM 的训练集和验证集。接着,我们计算了训练集和验证集的交叉熵,如图 5.8 所示,这是模型训练过程中的重要组成部分。" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**图 5.8 在前一节中,我们已经计算了交叉熵损失,现在我们将这种损失计算方法应用到我们即将用于模型训练的整个文本数据集上。**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![fig5.8](https://github.com/Pr04Ark/llms-from-scratch-cn/blob/trans01/Translated_Book/img/fig-5-8.jpg?raw=true)" + ] + }, + { + "cell_type": "markdown", + "id": "d4e10d71", + "metadata": {}, + "source": [ + "为了计算图 5.8 中展示的训练集和验证集的损失,我们使用了一个非常小的文本数据集——Edith Wharton 的短篇故事 \"The Verdict\",这是我们在第二章已经使用过的数据集。选择公共领域的文本,我们避开了任何与使用权相关的问题。此外,我们选择这样一个小数据集的原因是,它允许我们在标准的笔记本电脑上,即使没有高端的 GPU,也能在几分钟内执行代码示例,这对于教学目的来说非常有利。" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "对于对此感兴趣的读者,您也可以利用本书提供的附加代码,准备一个更大规模的数据集。这个数据集由 Project Gutenberg 的超过 60,000 本公共领域图书组成,并可以在这些数据上训练一个 LLM (详细内容请参见附录 D)。" + ] + }, + { + "cell_type": "markdown", + "id": "a8acee64", + "metadata": {}, + "source": [ + "**预训练 LLM 的成本**" + ] + }, + { + "cell_type": "markdown", + "id": "f1e93779", + "metadata": {}, + "source": [ + "为了更好地理解我们项目的规模,我们可以参考一下训练拥有 70 亿参数的 Llama 2 模型,这是一个相对知名且公开可用的 LLM。这个模型在昂贵的 A100 GPU 上运行了 184,320 个小时,处理了 2 万亿个 token。在撰写本文时,AWS 上运行一个 8xA100 云服务器的费用大约为每小时 30 美元。粗略估计,这样一个 LLM 的总训练成本大约为 690,000 美元(计算方式为 184,320 小时除以 8,然后乘以 30 美元)。" + ] + }, + { + "cell_type": "markdown", + "id": "0b93bbc9", + "metadata": {}, + "source": [ + "下面的代码将加载我们在第 2 章中使用过的短篇故事 \"The Verdict\":" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "d6926455", + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "file_path = \"the-verdict.txt\"\n", + "with open(file_path, \"r\", encoding=\"utf-8\") as file:\n", + " text_data = file.read()" + ] + }, + { + "cell_type": "markdown", + "id": "5d6c9e5d", + "metadata": {}, + "source": [ + "加载数据集后,我们可以检查数据集中的字符数和 token 数:" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "a6f673dc", + "metadata": { + "metadata": {} + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Characters: 20479\n", + "Tokens: 5145\n" + ] + } + ], + "source": [ + "total_characters = len(text_data)\n", + "total_tokens = len(tokenizer.encode(text_data))\n", + "print(\"Characters:\", total_characters)\n", + "print(\"Tokens:\", total_tokens)" + ] + }, + { + "cell_type": "markdown", + "id": "24b958a9", + "metadata": {}, + "source": [ + "输出如下:" + ] + }, + { + "cell_type": "markdown", + "id": "41fe0f35", + "metadata": {}, + "source": [ + "```\n", + "Characters: 20479\n", + "Tokens: 5145\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "821ba1c8", + "metadata": {}, + "source": [ + "尽管这段文本只有 5145 个 token,对于训练一个大型 LLM 来说,可能显得太少了。然而,正如我们之前提到的,这是出于教学目的,使我们能够在几分钟而非几周的时间内运行代码。此外,我们将在本章的最后,将 OpenAI 的预训练权重加载到我们的 GPTModel 代码中。\n" + ] + }, + { + "cell_type": "markdown", + "id": "189c247c", + "metadata": {}, + "source": [ + "接下来,我们将数据集分为训练集和验证集,并利用第二章中的数据加载器来为 LLM 训练准备批次数据。这个过程在图 5.9 中进行了直观的展示。" + ] + }, + { + "cell_type": "markdown", + "id": "e6c35863", + "metadata": {}, + "source": [ + "**图 5.9 在准备数据加载器的过程中,我们首先将输入文本分割为训练集和验证集。接着,我们对文本进行 token 化处理(为了简化,这里仅展示了训练集部分的处理过程),并将 token 化后的文本划分为用户指定长度的块(在此例中为 6)。最后,我们打乱各行的顺序,并将划分后的文本组织成批次(在此例中,批次大小为 2),这样我们就可以用它们进行模型训练了。**" + ] + }, + { + "cell_type": "markdown", + "id": "bed2f796", + "metadata": {}, + "source": [ + "![fig5.9](https://github.com/Pr04Ark/llms-from-scratch-cn/blob/trans01/Translated_Book/img/fig-5-9.jpg?raw=true)" + ] + }, + { + "cell_type": "markdown", + "id": "352860c9", + "metadata": {}, + "source": [ + "为了便于可视化,我们在图 5.9 中将最大长度设定为 6,这主要是由于空间限制。然而,在我们实际实现的数据加载器中,我们将最大长度设定为 LLM 所支持的 256 个 token 的上下文长度,这样可以让 LLM 在训练过程中接触到更长的文本。" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**使用可变长度训练**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "我们采用了相似大小的数据块来训练模型,这主要是出于简化和效率的考虑。然而,在实际操作中,使用不同长度的输入来训练 LLM 也是有益的,这有助于模型在使用时能更好地适应各种类型的输入。" + ] + }, + { + "cell_type": "markdown", + "id": "4e2d431e", + "metadata": {}, + "source": [ + "为了实现图 5.9 中展示的数据分割和加载,我们首先定义了一个 train_ratio,将 90% 的数据用于训练,其余的 10% 作为模型训练过程中的验证数据:" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "b4c6fbca", + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "train_ratio = 0.90\n", + "split_idx = int(train_ratio * len(text_data))\n", + "train_data = text_data[:split_idx]\n", + "val_data = text_data[split_idx:]" + ] + }, + { + "cell_type": "markdown", + "id": "6560b8c0", + "metadata": {}, + "source": [ + "使用 train_data 和 val_data 子集,我们现在可以创建相应的数据加载器,复用第二章中的 `create_dataloader_v1` 代码:" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "32f557f7", + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "from chapter02 import create_dataloader_v1\n", + "torch.manual_seed(123)\n", + "\n", + "train_loader = create_dataloader_v1(\n", + " train_data,\n", + " batch_size=2,\n", + " max_length=GPT_CONFIG_124M[\"context_length\"],\n", + " stride=GPT_CONFIG_124M[\"context_length\"],\n", + " drop_last=True,\n", + " shuffle=True\n", + " )\n", + "val_loader = create_dataloader_v1(\n", + " val_data,\n", + " batch_size=2,\n", + " max_length=GPT_CONFIG_124M[\"context_length\"],\n", + " stride=GPT_CONFIG_124M[\"context_length\"],\n", + " drop_last=False,\n", + " shuffle=False\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "c1839c4b", + "metadata": {}, + "source": [ + "在上述代码中,我们选择了较小的批量大小,以降低计算资源的消耗,因为我们处理的是一个非常小的数据集。然而,在实际操作中,使用 1024 或更大的批量大小来训练 LLM 是常见的做法。" + ] + }, + { + "cell_type": "markdown", + "id": "ef2e5b0f", + "metadata": {}, + "source": [ + "作为一项可选的检查,我们可以遍历数据加载器,以确保它们是正确创建的:" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "25ce9931", + "metadata": { + "metadata": {} + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loader:\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "\n", + "Validation loader:\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n" + ] + } + ], + "source": [ + "print(\"Train loader:\")\n", + "for x, y in train_loader:\n", + " print(x.shape, y.shape)\n", + " \n", + "print(\"\\nValidation loader:\")\n", + "for x, y in val_loader:\n", + " print(x.shape, y.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "我们可以看到如下输出:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```\n", + "Train loader:\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "Validation loader:\n", + "torch.Size([2, 256]) torch.Size([2, 256])\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "21880e54", + "metadata": {}, + "source": [ + "根据前述代码的运行结果,我们共得到了 9 个训练批次,每个批次包含 2 个样本,每个样本有 256 个 token。由于我们仅为验证过程分配了 10% 的数据,因此只有一个验证批次,其中包含 2 个输入示例。" + ] + }, + { + "cell_type": "markdown", + "id": "a0725e62", + "metadata": {}, + "source": [ + "正如我们预期的那样,输入数据(x)和目标数据(y)具有相同的形状(批次大小乘以每个批次中的 token 数量),因为目标就是输入数据向后移动一个位置,这一点我们在第二章中已经讨论过。" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "接下来,我们将实现一个实用函数,用于计算训练和验证加载器返回的特定批次的交叉熵损失:" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "a7bf3e7d", + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "def calc_loss_batch(input_batch, target_batch, model, device):\n", + " input_batch, target_batch = input_batch.to(device), target_batch.to(device) #A\n", + " logits = model(input_batch)\n", + " loss = torch.nn.functional.cross_entropy(\n", + " logits.flatten(0, 1), target_batch.flatten()\n", + " )\n", + " return loss" + ] + }, + { + "cell_type": "markdown", + "id": "063e4c17", + "metadata": {}, + "source": [ + "现在,我们可以使用这个用于计算单个批次损失的实用函数` calc_loss_batch`,来实现以下函数`calc_loss_loader`,该函数计算给定数据加载器采样的所有批次的损失:" + ] + }, + { + "cell_type": "markdown", + "id": "daa26ed3", + "metadata": {}, + "source": [ + "**代码列表 5.2 计算训练和验证损失的函数**" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "8ed33e8a", + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "def calc_loss_loader(data_loader, model, device, num_batches=None):\n", + " total_loss = 0.\n", + " if num_batches is None:\n", + " num_batches = len(data_loader) #A\n", + " else:\n", + " num_batches = min(num_batches, len(data_loader)) #B\n", + " for i, (input_batch, target_batch) in enumerate(data_loader):\n", + " if i < num_batches:\n", + " loss = calc_loss_batch(input_batch, target_batch, model, device)\n", + " total_loss += loss.item() #C\n", + " else:\n", + " break\n", + " return total_loss / num_batches #D" + ] + }, + { + "cell_type": "markdown", + "id": "8193f725", + "metadata": {}, + "source": [ + "默认情况下,`calc_loss_batch` 函数会遍历给定数据加载器中的所有批次,将各批次的损失累积在 `total_loss` 变量中,然后计算并平均所有批次的损失。另外,我们也可以通过 `num_batches` 参数来指定较少的批次数量,以便在模型训练过程中加快评估速度。" + ] + }, + { + "cell_type": "markdown", + "id": "d59aa004", + "metadata": {}, + "source": [ + "现在,我们将这个 `calc_loss_batch` 函数应用于训练集和验证集的加载器,看看它在实际操作中的表现:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5f08bc4c", + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\") #A\n", + "model.to(device)\n", + "train_loss = calc_loss_loader(train_loader, model, device) #B\n", + "val_loss = calc_loss_loader(val_loader, model, device)\n", + "print(\"Training loss:\", train_loss)\n", + "print(\"Validation loss:\", val_loss)" + ] + }, + { + "cell_type": "markdown", + "id": "a4d897af", + "metadata": {}, + "source": [ + "产生的损失值如下:" + ] + }, + { + "cell_type": "markdown", + "id": "1e531252", + "metadata": {}, + "source": [ + "```\n", + "Training loss: 10.98758347829183\n", + "Validation loss: 10.98110580444336\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "e3427743", + "metadata": {}, + "source": [ + "由于模型尚未经过训练,因此损失值相对较高。作为对比,如果模型能够学习到如何按照训练集和验证集中的顺序生成下一个 token,那么损失值将会接近于 0。" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "现在我们已经掌握了一种衡量生成文本质量的方法,接下来,我们将训练 LLM 以减少这种损失,从而使其在生成文本方面表现得更好,如图 5.10 所示。" + ] + }, + { + "cell_type": "markdown", + "id": "48abd6ac", + "metadata": {}, + "source": [ + "**图 5.10 我们已经回顾了文本生成过程,并实现了基本的模型评估技术以计算训练集和验证集的损失。接下来,我们将进入了解训练函数,并对 LLM 进行预训练。**" + ] + }, + { + "cell_type": "markdown", + "id": "1edd95f9", + "metadata": {}, + "source": [ + "![fig5.10](https://github.com/Pr04Ark/llms-from-scratch-cn/blob/trans01/Translated_Book/img/fig-5-10.jpg?raw=true)" + ] + }, + { + "cell_type": "markdown", + "id": "1721518a", + "metadata": {}, + "source": [ + "如图 5.10 所示,接下来的部分将重点放在 LLM 的预训练上。模型训练完成后,我们将采用不同的文本生成策略,并保存及加载预训练的模型权重。" + ] + } + ], + "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.14" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 06b0ed3b7a2b29fa660462b3fdf08ea14dcba964 Mon Sep 17 00:00:00 2001 From: Tsumugii24 <2792474059@qq.com> Date: Sat, 11 May 2024 17:28:44 +0800 Subject: [PATCH 3/5] update .gitignore uncomment .idea/ folder --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 2616d0f..a32870d 100644 --- a/.gitignore +++ b/.gitignore @@ -173,4 +173,4 @@ gpt2/ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ +.idea/ From 43d6737e07f1764ecdf27ff0af28d701a1aa41d7 Mon Sep 17 00:00:00 2001 From: Tsumugii24 <2792474059@qq.com> Date: Sat, 11 May 2024 17:29:21 +0800 Subject: [PATCH 4/5] add translation of 2.4 content --- .../ch02/2.4添加特殊上下文tokens.ipynb | 401 ++++++++++++++++++ 1 file changed, 401 insertions(+) create mode 100644 Translated_Book/ch02/2.4添加特殊上下文tokens.ipynb diff --git a/Translated_Book/ch02/2.4添加特殊上下文tokens.ipynb b/Translated_Book/ch02/2.4添加特殊上下文tokens.ipynb new file mode 100644 index 0000000..7eb7119 --- /dev/null +++ b/Translated_Book/ch02/2.4添加特殊上下文tokens.ipynb @@ -0,0 +1,401 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "3cdf73ca", + "metadata": {}, + "source": [ + "# 2.4 添加特殊的上下文tokens" + ] + }, + { + "cell_type": "markdown", + "id": "1019c5ac", + "metadata": {}, + "source": [ + "在上一节中,我们实现了一个简单的分词器,并将其应用于训练集中的一段。在本节中,我们将修改这个分词器来处理未知单词。" + ] + }, + { + "cell_type": "markdown", + "id": "7ba5b6a1", + "metadata": {}, + "source": [ + "我们还将讨论特殊上下文标记的使用和添加,这些标记可以增强模型对文本中上下文或其他相关信息的理解。例如,这些特殊标记可以包括未知单词和文档边界的标记。" + ] + }, + { + "cell_type": "markdown", + "id": "8b9bb7be", + "metadata": {}, + "source": [ + "特别是,我们将修改在上一节SimpleTokenizerV2中实现的词汇表和标记器,以支持两个新标记<|UNK|>和<|内文|如图2.9所示。" + ] + }, + { + "cell_type": "markdown", + "id": "e8457f8c", + "metadata": {}, + "source": [ + "**图2.9 我们在词汇表中添加特殊的标记来处理特定的上下文。例如,我们添加<|UNK|> token表示新的和未知的单词,这些单词不是训练数据的一部分,因此也不是现有词汇表的一部分。此外,我们还添加了一个<|内文|> token,我们可以使用它来分隔两个不相关的文本源。**" + ] + }, + { + "cell_type": "markdown", + "id": "490fa60b", + "metadata": {}, + "source": [ + "![fig2.20](https://github.com/datawhalechina/llms-from-scratch-cn/blob/main/Translated_Book/img/fig-2-20.jpg?raw=true)" + ] + }, + { + "cell_type": "markdown", + "id": "233806c3", + "metadata": {}, + "source": [ + "如图2.9所示,我们可以修改tokenizer以使用<|UNK|> token,如果它遇到一个不属于词汇表的单词。此外,我们在不相关的文本之间添加标记。例如,当在多个独立的文档或书籍上训练类似GPT的LLMs时,通常会在前一个文本源之后的每个文档或书籍之前插入一个令牌,如图2.10所示。\n", + "这有助于LLM理解,尽管这些文本源是为了训练而连接的,但它们实际上是不相关的。" + ] + }, + { + "cell_type": "markdown", + "id": "86ded03a", + "metadata": {}, + "source": [ + "**图2.10当处理多个独立的文本源时,我们在这些文本间添加叫做<|endoftext|>的tokens。这些<|endoftext|>tokens作为标记,标志着一个特定段落的开始和结束,这使得LLM能更有效地处理和理解文本。**" + ] + }, + { + "cell_type": "markdown", + "id": "acc76cd1", + "metadata": {}, + "source": [ + "![fig2.21](https://github.com/datawhalechina/llms-from-scratch-cn/blob/main/Translated_Book/img/fig-2-21.jpg?raw=true)" + ] + }, + { + "cell_type": "markdown", + "id": "5792917b", + "metadata": {}, + "source": [ + "现在让我们修改词汇表,以包含这两个特殊的token,以及<|endoftext|>,并将它们添加到我们在上一节中创建的唯一词表中:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "38439456", + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'preprocessed' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[4], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m all_tokens \u001b[38;5;241m=\u001b[39m \u001b[38;5;28msorted\u001b[39m(\u001b[38;5;28mlist\u001b[39m(\u001b[38;5;28mset\u001b[39m(\u001b[43mpreprocessed\u001b[49m)))\n\u001b[0;32m 2\u001b[0m all_tokens\u001b[38;5;241m.\u001b[39mextend([\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m<|endoftext|>\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m<|unk|>\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[0;32m 3\u001b[0m vocab \u001b[38;5;241m=\u001b[39m {token:integer \u001b[38;5;28;01mfor\u001b[39;00m integer,token \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(all_tokens)}\n", + "\u001b[1;31mNameError\u001b[0m: name 'preprocessed' is not defined" + ] + } + ], + "source": [ + "all_tokens = sorted(list(set(preprocessed)))\n", + "all_tokens.extend([\"<|endoftext|>\", \"<|unk|>\"])\n", + "vocab = {token:integer for integer,token in enumerate(all_tokens)}\n", + "print(len(vocab.items()))\n" + ] + }, + { + "cell_type": "markdown", + "id": "6c7a776a", + "metadata": {}, + "source": [ + "根据print语句的输出,新的词表大小为1161(上一节中的词表大小为1159)。" + ] + }, + { + "cell_type": "markdown", + "id": "7688ecd4", + "metadata": {}, + "source": [ + "作为额外的快速检查,让我们打印更新词汇表的最后5个词:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "f08e3a9d", + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'vocab' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[5], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, item \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(\u001b[38;5;28mlist\u001b[39m(\u001b[43mvocab\u001b[49m\u001b[38;5;241m.\u001b[39mitems())[\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m5\u001b[39m:]):\n\u001b[0;32m 2\u001b[0m \u001b[38;5;28mprint\u001b[39m(item)\n", + "\u001b[1;31mNameError\u001b[0m: name 'vocab' is not defined" + ] + } + ], + "source": [ + "for i, item in enumerate(list(vocab.items())[-5:]):\n", + " print(item)" + ] + }, + { + "cell_type": "markdown", + "id": "9bd79d47", + "metadata": {}, + "source": [ + "上面的代码打印如下内容:" + ] + }, + { + "cell_type": "markdown", + "id": "4eb990f9", + "metadata": {}, + "source": [ + "('younger', 1156)\n", + "('your', 1157)\n", + "('yourself', 1158)\n", + "('<|endoftext|>', 1159)\n", + "('<|unk|>', 1160)" + ] + }, + { + "cell_type": "markdown", + "id": "725cfe23", + "metadata": {}, + "source": [ + "根据上面的代码输出,我们可以确认这两个新的特殊token确实成功地合并到了词表中。接下来,我们相应地调整代码清单2.3中的tokenizer,如清单2.4所示:" + ] + }, + { + "cell_type": "markdown", + "id": "930dca4b", + "metadata": {}, + "source": [ + "**清单2.4一个处理未知单词的简单文本标记器**" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "31a26133", + "metadata": {}, + "outputs": [], + "source": [ + "class SimpleTokenizerV2:\n", + " def __init__(self, vocab):\n", + " self.str_to_int = vocab\n", + " self.int_to_str = { i:s for s,i in vocab.items()}\n", + " def encode(self, text):\n", + " preprocessed = re.split(r'([,.?_!\"()\\']|--|\\s)', text)\n", + " preprocessed = [item.strip() for item in preprocessed if item.strip()]\n", + " preprocessed = [item if item in self.str_to_int else \"<|unk|>\" for item in preprocessed] #A\n", + " ids = [self.str_to_int[s] for s in preprocessed]\n", + " return ids\n", + " def decode(self, ids):\n", + " text = \" \".join([self.int_to_str[i] for i in ids])\n", + " text = re.sub(r'\\s+([,.?!\"()\\'])', r'\\1', text) #B\n", + " return text\n" + ] + }, + { + "cell_type": "markdown", + "id": "273cda30", + "metadata": {}, + "source": [ + "与我们在上一节的代码清单2.3中实现的SimpleTokenizerV1相比,新的SimpleTokenizerV2将未知单词替换为<|UNK|>token。" + ] + }, + { + "cell_type": "markdown", + "id": "f7f3040c", + "metadata": {}, + "source": [ + "现在让我们在实践中尝试这个新的标记器。为此,我们将使用一个简单的文本示例,它是由两个独立且不相关的句子连接而成的:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "19a04bd4", + "metadata": {}, + "outputs": [], + "source": [ + "text1 = \"Hello, do you like tea?\"\n", + "text2 = \"In the sunlit terraces of the palace.\"\n", + "text = \" <|endoftext|> \".join((text1, text2))\n", + "print(text)" + ] + }, + { + "cell_type": "markdown", + "id": "bcb6a7dc", + "metadata": {}, + "source": [ + "输出如下:" + ] + }, + { + "cell_type": "markdown", + "id": "157b8c26", + "metadata": {}, + "source": [ + "'Hello, do you like tea? <|endoftext|> In the sunlit terraces of the palace.'" + ] + }, + { + "cell_type": "markdown", + "id": "c64915c5", + "metadata": {}, + "source": [ + "接下来,让我们使用SimpleTokenizerV2对我们之前在清单2.2中创建的vocab进行tokenizer:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "162d3403", + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'vocab' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[3], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m tokenizer \u001b[38;5;241m=\u001b[39m SimpleTokenizerV2(\u001b[43mvocab\u001b[49m)\n\u001b[0;32m 2\u001b[0m \u001b[38;5;28mprint\u001b[39m(tokenizer\u001b[38;5;241m.\u001b[39mencode(text))\n", + "\u001b[1;31mNameError\u001b[0m: name 'vocab' is not defined" + ] + } + ], + "source": [ + "tokenizer = SimpleTokenizerV2(vocab)\n", + "print(tokenizer.encode(text))\n" + ] + }, + { + "cell_type": "markdown", + "id": "9f532e55", + "metadata": {}, + "source": [ + "这将打印以下token ID:" + ] + }, + { + "cell_type": "markdown", + "id": "55d238cf", + "metadata": {}, + "source": [ + "[1160, 5, 362, 1155, 642, 1000, 10, 1159, 57, 1013, 981, 1009, 738, 1013, 1160]" + ] + }, + { + "cell_type": "markdown", + "id": "a7988b14", + "metadata": {}, + "source": [ + "我们可以看到token ID列表包含1159,即<|endoftext|>分隔符标记;以及两个1160,用于标记未知单词。" + ] + }, + { + "cell_type": "markdown", + "id": "ac7c9571", + "metadata": {}, + "source": [ + "让我们对文本进行去de-tokenize操作,以进行快速的健全性检查:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "643173b0", + "metadata": {}, + "outputs": [], + "source": [ + "print(tokenizer.decode(tokenizer.encode(text)))" + ] + }, + { + "cell_type": "markdown", + "id": "1f6c9917", + "metadata": {}, + "source": [ + "输出如下所示:" + ] + }, + { + "cell_type": "markdown", + "id": "203d93b6", + "metadata": {}, + "source": [ + "'<|unk|>, do you like tea? <|endoftext|> In the sunlit terraces of the <|unk|>.'" + ] + }, + { + "cell_type": "markdown", + "id": "3ca2a152", + "metadata": {}, + "source": [ + "通过将上面的de-tokenize文本与原始输入文本进行比较,我们知道训练数据集,Edith Wharton的短篇小说The Verdict,不包含单词\"Hello\"和\"palace\"。\n", + "\n", + "到目前为止,我们已经讨论了tokenization,这是处理作为LLMs输入的文本的重要步骤。根据LLM的不同,一些研究人员还会考虑其他的特殊token,例如:\n", + "\n", + "·[BOS](beginning of sequence):此标记标记文本的开始。LLM表示一段内容开始的位置。
\n", + "·[EOS](end of sequence):这个标记位于文本的末尾,在连接多个不相关的文本时特别有用,类似于<|内文|>.例如,当合并两个不同的维基百科文章或书籍时,[EOS]令牌指示一篇文章结束的位置和下一篇文章开始的位置。
\n", + "·[PAD](padding):当训练批量大小大于1的LLMs时,该批可能包含不同长度的文本。为了确保所有文本具有相同的长度,使用[PAD]标记扩展或“填充”较短的文本,直到批次中最长文本的长度。
\n" + ] + }, + { + "cell_type": "markdown", + "id": "c6120349", + "metadata": {}, + "source": [ + "注意,用于GPT模型的标记器不需要上面提到的任何标记,而只使用<|内文|> token for simplicity.的<|内文|”这是一个类似于上面提到的[EOS]令牌。此外,<|内文|“也是用来填充的。然而,正如我们将在后续章节中探索的那样,当在批量输入上训练时,我们通常使用掩码,这意味着我们不关注填充的令牌。因此,选择用于填充的特定令牌变得无关紧要。" + ] + }, + { + "cell_type": "markdown", + "id": "d3367570", + "metadata": {}, + "source": [ + "此外,用于GPT模型的tokenizer也不使用<|UNK|>用于词表外的单词的标记。相反,GPT模型使用字节对编码标记器,它将单词分解为子单词单元,这部分我们将在下一节中讨论。" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ce78d469", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "llm_from_scratch", + "language": "python", + "name": "llm_from_scratch" + }, + "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.14" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 6e69c618f3a13f49c0722b3a2a9fb995f3185bdb Mon Sep 17 00:00:00 2001 From: Tsumugii24 <2792474059@qq.com> Date: Sat, 11 May 2024 17:30:06 +0800 Subject: [PATCH 5/5] update img by adding necessary images in the book --- Translated_Book/img/fig-2-20.png | Bin 0 -> 88164 bytes Translated_Book/img/fig-2-21.png | Bin 0 -> 141903 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Translated_Book/img/fig-2-20.png create mode 100644 Translated_Book/img/fig-2-21.png diff --git a/Translated_Book/img/fig-2-20.png b/Translated_Book/img/fig-2-20.png new file mode 100644 index 0000000000000000000000000000000000000000..10f9e0de8d4e1b4480129a5054549dfb3a6a490f GIT binary patch literal 88164 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�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