2.1 理解词语嵌入

88 阅读4分钟

2.1 理解词语嵌入

深度神经网络模型包含llms无法处理纯文本直接,因为纯文本是categorical数据,无法和数学操作兼容用于神经网络的训练。因此我们需要一种方法来表示文字作为连续值向量。

注意:堵住如果不熟悉向量和张量在计算上下文中,可以学习appendix A,section A2.2.

把数据转换为向量格式通常被称作嵌入embedding,使用一个特定的神经网络层或者另外一个预训练的神经网络模型,我们可以嵌入不同的数据类型,比如视频、语音、文本,如图2.2所示。但是,重要的是注意到不同数据格式需要不同的嵌入模型。例如,一个嵌入模型设计用来文本则不适合嵌入音频或者视频数据

at its core, 一个嵌入表示映射从离散对象,比如单词、图像、甚至整个文档,映射到一个连续高维向量空间的一个,嵌入的主要目的就是转换非数值的数据到自然神经网络能处理的数据格式。

虽然词语嵌入是最常见的文本嵌入形式,但同样存在针对句子、段落或整篇文档的嵌入方式。句子或段落嵌入在检索增强生成(Retrieval-Augmented Generation)中广受欢迎。这种技术将文本生成(如生成内容)与信息检索(如搜索外部知识库)相结合,在生成文本时获取相关信息。不过该技术已超出本书讨论范围。由于我们的目标是训练类似GPT的大语言模型(这类模型通过逐词学习来生成文本),因此将重点聚焦于词语嵌入的研究。

已经开发了几种算法和框架来生成词嵌入。较早和最流行的示例之一是Word2Vec方法。Word2Vec训练的神经网络架构通过预生成词嵌入给定目标词,记录单词的上下文,反之亦然。主要思想Wod2Vec的背后是出现在相似上下文中的单词往往具有相似的含义。因此,当投影到二维词嵌入中时出于可视化目的,相似的术语被聚集在一起,如图2.3所示。

词嵌入可以有不同的维度,从1到数千。更高的维度可能会捕捉到更微妙的关系,但以计算为代价-理论效率。

虽然我们可以使用预训练模型(如 Word2Vec)为机器学习模型生成嵌入,但 LLM 通常会生成自己的嵌入,这些嵌入是输入层的一部分,并在训练期间进行更新。 作为 LLM 训练的一部分优化嵌入而不是使用 Word2Vec 的优点是,嵌入针对特定任务和手头数据进行了优化。 我们将在本章后面实现这样的嵌入层。 (LLM 还可以创建上下文化的输出嵌入,正如我们在第 3 章中讨论的那样。)

不幸的是,高维嵌入对可视化提出了挑战,因为我们的感官知觉和常见的图形表示本质上被限制在三个或更少的维度,这就是为什么图 2.3 在二维散点图中显示二维嵌入的原因。然而,当使用 LLM 时,我们通常使用具有更高维度的嵌入。对于 GPT-2 和 GPT-3,嵌入大小(通常称为模型隐藏状态的维度)根据特定的模型变体和大小而变化。这是性能和效率之间的权衡。最小的 GPT-2 模型(1.17 亿和 1.25 亿参数)使用 768 维的嵌入大小来提供具体示例。最大的 GPT-3 模型(1750 亿参数)使用 12,288 维的嵌入大小。

接下来,我们将逐步介绍准备 LLM 使用的嵌入所需的步骤,包括将文本拆分为单词、将单词转换为标记以及将标记转换为嵌入向量。