ToB企服应用市场:ToB评测及商务社交产业平台

标题: 大语言模型LLM-三种模型架构 [打印本页]

作者: 天津储鑫盛钢材现货供应商    时间: 2024-8-20 15:37
标题: 大语言模型LLM-三种模型架构
Transformer

transfomer可以并行地计算?

transformer中encoder模块是完全并行的,而decoder不是完全并行的。
模型布局

使用原文表达如下:the encoder maps an input sequence of symbol representations \((x_1, x_2, \cdots, x_n)\) to a sequence of continuous representations $\pmb z = (z_1, z_2, \cdots, z_n) $. Given $\pmb z $, the decoder then generates an ouput sequence \((y_1, y2, \cdots, y_m)\) of symbols one element at a time.
因此在推理过程中,transformer网络布局中的decoder模块是自回归模式的,不能并行计算。
注: 自回归模式:之前时刻生成的,将作为当前时刻的输入(或此中一部分),并一起用来预测当前时刻的输出。如此循环直至竣事
Attention机制

使用原文表达如下:“An attention function can be described as mapping a query and set of key-value pairs to an output where query, keys, values and output are all vectors. The output is computed as a weightd sum of the values, where the weight assigned to each value is computed by compatibility function of the query with the corresponding key.”

Self-Attention机制

直观理解

以“The animal didn’t cross the street because it was too tired”为例阐明,下面图阐明,是序列中每个单词都与序列中所有的单词都要计算一遍它们之间的某种相似度。而这种计算相似度量与序列中单词顺序无关,因此是可以并行的

实际计算

创建querys, keys, values
随机初始化三个矩阵\(W_Q, W_K, W_V \in \mathbb{R}^{d \times d}\)(假设矩阵维度都是这样的),也是transformer中需要训练的参数。输入序列特性表示\(x_1, x_2, \cdots, x_n\),按行摆放,就构成了输入特性\(X \in \mathbb{R}^{n \times d}\),那么就将输入的\(n\)个特性序列都转换为对应的\(n\)个query vector, \(n\)个key vector, \(n\)个value vector, 矩阵化表示这些为                                         Q                            =                            X                            W                            _                            Q                            ,                            K                            =                            X                            W                            _                            K                            ,                            V                            =                            X                            W                            _                            V                                  Q=XW\_Q, K=XW\_K, V=XW\_V                     Q=XW_Q,K=XW_K,V=XW_V
这里的\(Q,K,V\)可以看成都是输入的\(n\)个特性的 不同表示,与原始的特性保持着逐一对应关系,好比\(W_Q, W_K, W_V\)都是单元矩阵,那么\(Q,K,V\)就与\(X\)完全一致了。\(softmax(QK^T)\)就表示了输入的\(n\)个特性两两之间的相似性关系,而输出就是依据这个相似度量矩阵,对value vectors进行加权均匀。因此序列每个位置的输出,都可以看出输入序列转换后表示的加权均匀,加权系数是由当前位置特性与序列所有位置的特性相似度确定的(这里的特性都是转换后的特性),即                                        z                            _                            i                            =                            s                            o                            f                            t                            m                            a                            x                            (                                     f                            r                            a                            c                                       Q                                           K                                  T                                                                      s                               q                               r                               t                               d                                      )                            _                            i                            V                                  z\_i=softmax(\\frac{QK^T}{\\sqrt{d}})\_i V                     z_i=softmax(fracQKTsqrtd)_iV
从实际计算过程也可以看出encoder是可以并行计算的。更过细的阐明可以参考[1,2]
Encoder Attention层的网络布局

一般由self-attention op, residual op, norm op, feedforward op(linear op, activation op)这几种层操纵构成,其它各种模型Attention层可能实现不同,大多数是这些op组成布局及顺序不同而已,本质上没有区别。由于Transformer是Attention开山祖师,因此这里展示一下其网络布局。
注:有一段时间各人密集讨论Transformer论文与代码实现不一致。所以这个论文中网络布局示意图是一个大致介绍,具体实现照旧要看实验结果。结果好才是王道。

encoder-decoder Attention机制

问题1: Transformer中decoder各个层中的,的K,V来着哪里? encoder模块的最后输出,照旧decoder层与coder层对应的K,V呢?
答案1:是Transformer中encoder模块最后输出
起首,原文阐明了这一点(但是decoder中的K,V不便是encoder的输出)
the encoder maps an input sequence of symbol representations \((x_1, x_2, \cdots, x_n)\) to a sequence of continuous representations $\pmb z = (z_1, z_2, \cdots, z_n) $. Given $\pmb z $, the decoder then generates an ouput sequence \((y_1, y2, \cdots, y_m)\) of symbols one element at a time.
其次,参考https://github.com/huggingface/blog/blob/main/encoder-decoder.md图示,很清楚展示了,decoder模块中的,K,V是encoder模块输出\(Z\)经过decoder模块各个层的\(W_{K}^{l}, W_{V}^{l}\)映射得到。

最后,通过下面代码可以看出,在训练过程中,decoder输入包括

因此Transformer中decoder各个层中的K,V都来着encoder模块的输出,即输入经过encoder模块编码后的特性。
  1. class EncoderDecoder(nn.Module):
  2.     """
  3.     A standard Encoder-Decoder architecture. Base for this and many
  4.     other models.
  5.     """
  6.     def __init__(self, encoder, decoder, src_embed, tgt_embed, generator):
  7.         super(EncoderDecoder, self).__init__()
  8.         self.encoder = encoder
  9.         self.decoder = decoder
  10.         self.src_embed = src_embed
  11.         self.tgt_embed = tgt_embed
  12.         self.generator = generator
  13.         
  14.     def forward(self, src, tgt, src_mask, tgt_mask):
  15.         "Take in and process masked src and target sequences."
  16.         return self.decode(self.encode(src, src_mask), src_mask,
  17.                             tgt, tgt_mask)
  18.    
  19.     def encode(self, src, src_mask):
  20.         return self.encoder(self.src_embed(src), src_mask)
  21.    
  22.     def decode(self, memory, src_mask, tgt, tgt_mask):
  23.         return self.decoder(self.tgt_embed(tgt), memory, src_mask, tgt_mask)
复制代码
问题2:这个与之前的Attention不同之处是什么?
答案2:encoder中的Attention是self-attiention,放到中-英翻译任务中,是中文词这种同一种符号之间的Attention,而decoder层中的encoder-decoder Attention则是中文符号与英文符号之间的Attention,有一点“跨域”的味道。
问题3:Encoder-Decoder mask?
论文紧张在Decoder模块提到了对Attention操纵时,要Mask,之所以这样,是由于推理过程是自回归模式的,当宿世成token是无法与之后生成的token建立接洽的。而训练过程这个decoder完备输出是知道的,为了在训练过程中,制止位置靠前的token与靠后的token建立接洽,影响模型训练参数的更新,从而导致训练与推理不一致。于是引入了Mask。
最后的最后

感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你。
由于这个行业不同于其他行业,知识体系实在是过于巨大,知识更新也非常快。作为一个平凡人,无法全部学完,所以我们在提拔技术的时候,起首需要明确一个目标,然后订定好完备的计划,同时找到好的学习方法,这样才气更快的提拔自己。
这份完备版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

二、640套AI大模型陈诉合集

这套包罗640份陈诉的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,照旧对AI大模型感兴趣的爱好者,这套陈诉合集都将为您提供宝贵的信息和启示。

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技范畴的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强盛的语言理解和生成本事,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

四、AI大模型贸易化落地方案


五、口试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些口试题都是总结当前最新、最热、最高频的口试题,而且每道题都有详细的答案,口试前刷完这套口试题资料,小小offer,不在话下。

这份完备版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4