参考链接
揭密Transformer:大模型背后的硬核技术-知乎
Attention中的Q,K,V是什么-知乎
Transformer
1. Embedding
Embedding,给大模型装上了嘴巴、眼睛和耳朵。
顺着这个技术路线,更多其它类型传感器的数据采集下来,也可以转化成向量,集成到大模型中去。
这样,最终大模型就能够像我们人类一样,理解各种各样的外界信息输入。
- 信息的向量化表示,把单词映射为实数域的向量
- 向量矩阵又叫词向量,是一个词的数学表述
- 用矩阵乘法,对数据量降维
- 对特征升维
2. Self Attention
Self Attention机制,就是将序列信息中各个元素间隐含的内在关联进行显性化表征的一种编码方式。
自身更需要关注哪些词?
获取语义结构,句法结构(词与词之间的关系,上下文信息)
Self Attention的三要素:查询词Quary 键Key 值Value
Encoder生成的是键和值
Decoder提供的是查询词
3. Multi-Head Self Attention
Multi-Head Self Attention, 相当于是“术业有专攻”,让每一个头的Self Attention机制都聚焦于一个特定维度的隐含内在关联,最后再把多个头的结果汇总进行编码,这样得到的结果,比同时关注多个维度得到的结果,效果要更好。
4. Transformer结构
从整体上来看,Transformer架构包括两个部分,左侧的Encoder(编码器),和右侧的Decoder(解码器)。
从逻辑上看,Transformer就是把一个输入序列X = (x1, x2, …, xn),先通过Encoder,转换成中间序列Z = (z1, z2, …, zn);然后再通过Decoder,将Z转换成输出序列Y=(y1, y2, …, ym)的过程。
5. Encoder
Encoder核心就是生成一个更优秀的词向量,更精准的表达一个词
词向量(嵌入层)语义信息 + 位置信息 + Self-Attention的句法、语义信息 = 输出更优秀的词向量
具体过程:
1、单词首先输入到词嵌入层 (Word Embedding,可以看做是一个查找映射表) ,来获取每个词的向量表示。
2、得到词向量后,叠加位置编码
3、通过注意力模块(self-attention/Multi-Head Attention),为词向量叠加句法特征(主谓宾),语义特征(具体含义)
编码器包括两个子层,self-Attention、feed forward
子层间的传输过程中都会有一个(残差网络+归一化)过程
各结构的作用:
- 残差网络
用于避免梯度消失问题 - 归一化层
用于标准化,限制区间,避免梯度爆炸 - Feed forward前馈层
线性变换(空间中的平移和扩大缩小)通过激活函数,可以变成非线性变换,非线性变换可以无限拟合空间中任何一种形态
6. Decoder
Decoder工作的基本逻辑是循环迭代预测下一个元素出现的概率,每次预测完一个元素,就把这一轮的预测结果做为输入,进行下一轮的预测,直到预测完所有的元素。
个人感觉,和RNN比较像。
总结
注意力机制其实就是提供了一种编码方式,让生成的词向量具有更丰富的结构信息。
词向量(嵌入层)语义信息 + 位置信息 + Self-Attention的句法、语义信息 = 输出更优秀的词向量
Transformer是应用了注意力机制的一种网络结构,具体结构为Encoder-Decoder,属于序列到序列模型
LLM Large Language Model
根据具体结构不同,大模型可以大致分为三个流派
Encoder-Only BERT派
- 分析故事的专家
- 完型填空模式
Decoder-Only GPT派
- 讲故事的专家
- 自回归训练
- 搜索空间小
GPT2->Gopher/Chinchilla->LLaMA
- Gopher:验证扩大模型规模处理复杂任务
- Chinchilla:增加数据比增加模型参数更有效
- LLaMA:更小参数量实现GPT级性能
Encoder-Decoder T5派
11B(110亿)的参数量,最早的NLP大一统大模型
该模型将所有的NLP任务限定为文本到文本问题,简化了模型适应不同任务的过程