青训营X豆包MarsCode 技术训练营第三课

82 阅读2分钟

ChatGPT 的结构:Encoder-Decoder

Encoder-Decoder 编码器-解码器架构

image.png 另外,encoder-decoder 并非指一种具体的模型结构,它是一种宽泛的模型设计架构

  • 这种编解码结构不仅仅局限于 NLP 领域,它也可以应用于图像处理、音频处理等领域,例如图像领域的对抗生成模型 GAN 等。
  • 我们知道,GPT 采用了 decoder 架构,丢弃了其中的 encoder 部分,其中的具体结构是 Transformer。但是,编解码架构的内部设计还可以采用循环神经网络( RNN )这种模型结构。当然,如果未来有更好的设计,也可以替换为别的具体模型结构。
  • GPT 中的编解码架构

image.png

image.png 假设最后一层的 Transformer 输出了 M × NM × N 维的 tensor,如上图中的紫色部分,其中MM表示 token 的个数,NN表示每个 token 的维度,同时假设在 BPE 算法的 token 词表中,总共有 KK个 token。那么,最后一层线性层可以设计为M × N → KM × N → K的一个函数映射,得到一个 KK 维向量,如上图中的黄色部分。一般来讲,这个向量的维度可能达到几万维到几十万维不等,它的长度和词表中有多少 token 是相等的。

对这个 KK 维向量进行解码,就可以得到输出的结果。

解码得到输出 Token

贪婪搜索 Greedy Search

这种根据向量最大值寻找对应索引的操作叫做 argmaxargmax。按照最大概率值选择模型输出的 token,这种方法叫做贪婪搜索(Greedy Search)  。

束搜索 Beam Search

核搜索 Nucleus Search

在 Beam Search 中,选择多少个可选 token 也有一定的策略,例如,上面我们设定了只选择概率值最大的 2 个值。或者换个思路,我们可以设定,把模型输出的 KK 维概率分布值按从大到小的方式排列,若前 T 个概率值加起来大于 top_p(介于 0~1 之间的值),则以这 T 个值作为最终的抽取范围。

温控搜索 Temperature Search

GPT 是一个解码器

image.png

Mask 掩码层

ChatGPT 采用了稀疏自注意力机制,根据跨步分解(Strided Factorized)和固定分解(Fixed Factorized)两种方式屏蔽掉某些 token 位置的注意力计算,采取的也是 Mask 的方式。

总结

  • ChatGPT 模型基于 encoder-decoder 模型架构进行建模。
  • ChatGPT 模型采用核搜索、温控搜索结合的方式生成输出结果,并基于 temperature 调节生成结果的随机性,值越大,随机性越强,值越小,生成的内容越固定。
  • ChatGPT 主要采用 Mask 掩码的方式,屏蔽掉不参与注意力计算的 token 位置。