add second chapter

This commit is contained in:
skindhu 2024-10-25 10:30:23 +08:00
parent 85dac6bf8b
commit ea9eee7ff5
4 changed files with 43 additions and 1 deletions

View File

@ -39,7 +39,49 @@
> | 音频 | 一维时序信号 | CNN+频谱图、RNN、Transformer | 频率、音调、时序依赖 |
> | 视频 | 时空序列数据 | 3D CNN、RNN+CNN、Video Transformer | 时空特征、动作捕捉 |
嵌入的本质是将离散对象(如单词、图像或整个文档)映射到连续向量空间中的点。嵌入的主要目的是将非数值数据转换为神经网络能够处理的格式。
虽然单词嵌入是最常用的文本嵌入形式但也存在句子、段落或整篇文档的嵌入。句子和段落嵌入常被用于检索增强生成技术。检索增强生成结合了文本生成与从外部知识库中检索相关信息的过程这是一种超出本书讨论范围的技术。由于我们希望训练类似于GPT的LLM这些模型以逐字的方式生成文本因此本章将重点放在单词嵌入上。
> [!TIP]
>
> 个人思考这里聊一下检索增强技术RAG目前已经广泛应用于特定领域的知识问答场景。尽管GPT在文本生成任务重表现强大但它们依赖的是预训练的知识这以为着它们的回答依赖于模型在预训练阶段学习到的信息。这就导致了几个问题
>
> + **知识的有效性:** 模型的知识基于它的预训练数据因此无法获取最新的信息。比如GPT-3 的知识截止到 2021 年,无法回答最新的事件或发展。
> + **模型大小的限制:** 即使是大型模型,所能存储和运用的知识也是有限的。如果任务涉及特定领域(如医学、法律、科学研究),模型在预训练阶段可能没有涵盖足够的信息。
> + **生成的准确性:**生成模型可能会凭空编造信息(即“幻觉现象”),导致生成内容不准确或虚假。
>
> 而检索增强技术正是为了解决上述不足它大致原理为将外部知识库如文档、数据库、互联网等进行向量化后存入到向量数据库中。当用户提交一个查询时首先将这个查询也编码成一个向量然后去承载外部知识库的向量数据种检索检索技术有很多种与问题相关的信息。检索到的信息被作为额外的上下文信息输入到LLM中LLM会将这些外部信息与原始输入结合起来以更准确和丰富的内容生成回答。想要进一步了解RAG技术及其应用可以参考[RAG 专区](https://waytoagi.feishu.cn/wiki/PUUfwNkwqielBOkbO5RcjnTQnUd)
生成单词嵌入的算法和框架有很多。其中Word2Vec是较早且最受欢迎的项目之一。Word2Vec通过预测给定目标词的上下文或反之训练神经网络架构以生成单词嵌入。Word2Vec的核心思想是出现在相似上下文中的词通常具有相似的含义。因此当将单词投影到二维空间进行可视化时可以看到相似的词汇聚在一起如图2.3所示。
<img src="../Image/chapter2/figure2.3.png" width="75%" />
词嵌入可以具有不同的维度从一维到数千维。如图2.3所示,我们可以选择二维词嵌入进行可视化。更高的维度可能捕捉到更细微的关系,但代价是计算效率的降低。
虽然我们可以使用预训练模型(例如 Word2Vec为机器学习模型生成嵌入但 LLMs 通常会生成自己的嵌入,这些嵌入是输入层的一部分,并在训练过程中进行更新。将嵌入作为 LLM 训练的一部分进行优化,而不直接使用 Word2Vec有一个明确的优势就是嵌入能够针对特定的任务和数据进行优化。我们将在本章后面实现这样的嵌入层。此外LLMs 还能够创建上下文化的输出嵌入,这一点我们将在第三章中讨论。
高维嵌入在可视化中面临挑战,因为我们的感官感知和常见的图形表示本质上只限于三维或更少的维度,这也是图 2.3 采用二维散点图展示二维嵌入的原因。然而,在处理 LLMs 时,我们通常使用的嵌入的维度远高于图 2.3 所示的维度。对于 GPT-2 和 GPT-3嵌入的大小通常称为模型隐状态的维度会根据具体的模型变体和大小而有所不同。这是性能与效率之间的权衡。以具体示例为例最小的 GPT-2 模型117M 和 125M 参数)使用 768 维的嵌入大小,而最大的 GPT-3 模型175B 参数)则使用 12,288 维的嵌入大小。
本章接下来的部分将系统地介绍准备 LLM 使用的嵌入所需的步骤这些步骤包括将文本拆分为单词、将单词转换为token以及将token转化为嵌入向量。
## 2.2 文本分词
本节将讨论如何将输入文本拆分为单个token这是创建 LLM 嵌入所需的预处理步骤。这些token可以是单个单词或特殊字符包括标点符号具体如图 2.4 所示。
<img src="../Image/chapter2/figure2.4.png" width="75%" />
我们即将用于 LLM 训练的文本数据集是一部由 Edith Wharton 创作的短篇小说《判决》,该作品已在网上公开,因此允许用于 LLM 训练任务。该文本可在 Wikisource 上找到,网址是 https://en.wikisource.org/wiki/The_Verdict您可以将其复制并粘贴到文本文件中。我已将其复制到名为 "the-verdict.txt" 的文本文件中,以便使用 Python 的标准文件读取工具进行加载。
```python
# Listing 2.1 Reading in a short story as text sample into Python
with open("the-verdict.txt", "r", encoding="utf-8") as f:
raw_text = f.read()
print("Total number of character:", len(raw_text))
print(raw_text[:99])
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 720 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 815 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 293 KiB