量化交易软件:神经网络变得轻松11
来源:哔哩哔哩     时间:2023-08-04 16:16:33

概述

在 2018 年 6 月,OpenAI 提出了 GPT 神经网络模型,该模型立即在多种语言类测试中展现出极佳结果。 GDP-2 于 2019 年出现,而 GPT-3 则于 2020 年 5 月提出。 这些模型展示了神经网络生成相关文本的能力。 尚有其他实验涉及生成音乐和图像的能力。 这一模型的主要缺点与它们涉及的计算资源相关。 在配备 8 颗 GPU 的计算机上训练第一个 GPT 花费了一个月的时间。 为了解决新问题,使用预先训练的模型,可部分弥补这一缺陷。 但考虑到模型的规模,需要大量资源来维持模型的运行。

编辑切换为居中


(资料图)

1. 理解 GPT 模型

从概念来讲,GPT 模型是在之前研究的变换器基础上构建的。 主要思路是基于大数据针对模型进行无监督预训练,然后再依据相对少量的标记数据进行微调。

分两步训练的原因在于模型规模。 像 GPT 这样的现代深度机器学习模型涉及大量参数,可多达数亿个。 因此,这种神经网络的训练需要大量的训练样本。 当采用监督学习时,创建带标记的训练样本集合是件劳动密集型工作。 与此同时,网站上有许多不同的数字化和无标记文本,这些文本非常适合模型的无监督训练。 然而,统计数据表明,无监督学习相较监督学习,其结果要差很多。 因此,在无监督训练之后,可依据相对少量的标记数据样本针对模型进行微调。

无监督学习可令 GPT 学习语言类模型,而针对特定任务,可依据标记数据进一步训练,从而调整模型。 因此,为了执行不同的语言类任务,可以复制并微调一个预训练的模型。 该限制基于采用无监督学习的原始语言集合。

实践表明,这种方法对于广泛的语言问题能产生良好的效果。 例如,GPT-3 模型能够针对给定主题生成连贯流畅的文本。 不过,请注意,指定的模型包含 1750 亿个参数,按顺序依据 570GB 的数据集合上进行了预训练。

尽管 GPT 模型是为处理自然语言类而开发的,但它们在音乐和图像生成任务中也表现出色。

理论上,GPT 模型可与任何数字化数据序列配合使用。 唯一的前置需求是无监督的预学习需要足够的数据和资源。

2. GPT 与之前研究的变换器之间的区别

赫兹量化来研究 GPT 模型与之前研究的变换器有何区别。 首先,GPT 模型未使用编码器,因为它们仅使用解码器。 当没有编码器时,模型不再拥有“编码器 - 解码器自关注”内层。 下图展示了 GPT 变换器模块。

编辑

与经典的变换器相似,GPT 模型中的模块在彼此之上构建。 每个模块针对关注机制都有自己的权重矩阵,并具有完全连接的前馈层。 模块的数量决定了模型的规模。 模块堆栈可能会很庞大。 GPT-1 和最小的 GPT-2(小型 GPT-2)有 12 个模块;GPT-2 特大型有 48 个,而 GPT-3 则有 96 个模块。

与传统语言类模型类似,GPT 仅能够发现与序列中先前元素的关系,但无法窥视未来。 但它与变换器不同,GPT 不使用元素的掩码 — 代之,它更改了计算过程。 GPT 会重置 Score 矩阵中后续元素的关注比率。

同时,GPT 可被归类为自回归模型。 每次迭代都会生成一个序列令牌。 生成的令牌会被添加到输入序列中,并馈入模型进行下一次迭代。

与经典变换器一样,自关注机制内的每个令牌都会生成三个向量:一个 query,一个 key,和一个 value。 在自回归模型当中,在每次新迭代里,输入序列仅能由 1 个令牌更改,因此每个令牌无需重新计算向量。 因此,GPT 中的每一层只在序列有新元素时计算向量。 每个变换器模块都保存其向量,以备后用。

这种方式令模型能够在接收最终令牌之前逐词生成文本。

当然,GPT 模型采用多目击者关注机制。

3. 实现

在开始之前,我们来简要地复习一下算法:

令牌的输入序列会被馈入到变换器模块之中。

针对所有自关注目击者的一个序列。 进而,对于每个关注的目击者,2-5 中的动作是相同的。

令牌向量乘以相应的权重矩阵 W(已训练),可计算每个令牌的三个向量(query,key,value)。

将 'query' 和 'key' 相乘,赫兹量化可判定序列元素之间的依赖性。 在此步骤,将序列中每个元素的向量 'query' 乘以序列中当前元素和所有先前元素的 'key' 向量。

在每个 query 的上下文中,使用 SoftMax 函数对获得的关注得分矩阵进行常规化。 序列的后续元素则设置了零关注分数。

作为第 3 步和第 4 步的结果,赫兹量化获得了平方矩阵 Score,该平方矩阵的大小依据序列中元素的数量来确定,在其内每个 'query' 的上下文中所有元素的合计为 “1”。

将常规化的关注分数乘以序列相应元素的 'value' 向量,然后与结果向量相加,我们可以得到序列 (Z) 的每个元素的关注校正值。

接下来,赫兹量化基于所有关注目击者的结果断定加权 Z 向量。 为此,将来自所有关注目击者的校正后的 “value” 向量串联到单一向量,然后乘以正在训练的 W0 矩阵。

所得张量会被添加到输入序列,并进行常规化。

多目击者自关注机制后随前馈模块的两个完全连接层。 第一层(隐藏)包含的神经元数量比之含有 ReLU 激活函数的输入序列多 4 倍。 第二层的尺寸等于输入序列的尺寸,且神经元不使用激活函数。

完全连接层的结果与张量求和,其张量将被馈入前馈模块。 然后将生成的张量常规化。

标签: