Datawhale大语言模型-Transformer以及模型详细配置

Datawhale大语言模型-Transformer以及模型详细配置

Transformer模型

当前主流的大语言模型都基于 Transformer 模型进行设计的。Transformer 是由多层的多头自注意力(Multi-head Self-attention 模块堆叠而成的神经网络模型。原始的 Transformer 模型由编码器和解码器两个部分构成,而这两个部分实际上可以独立使用,例如基于编码器架构的 BERT 模型 [13] 和解码器架构的 GPT 模型 [14]。

与 BERT 等早期的预训练语言模型相比,大语言模型的特点是使用了更长的向量维度、更深的层数,进而包含了更大规模的模型参数,并主要使用解码器架构,对于 Transformer 本身的结构与配置改变并不大。

下面对Transformer的每一个模块进行介绍

位置编码

  • 可以通过训练学校得到,也可以事先指定
  • 在输入词嵌入当中引入位置编码,将绝对或者相对位置信息注入

前馈层网络

  • 用于学习复杂的函数关系和特征
    F F N ( X ) = σ ( X W U + b 1 ) W D + b 2 FFN(X)=\sigma(XW^U+b_1)W^D+b_2 FFN(X)=σ(XWU+b1)WD+b2

注意力机制

一种基于相似度的查表

  • 计算query与key的相似度
    e i j = q i T k j e_{ij}=q_i^Tk_j eij=qiTkj
  • 相似度规范化
    α i j = e x p ( e i j ) ∑ j ′ e x p ( e i j ′ ) \alpha_{ij}=\frac{exp(e_{ij})}{\sum_{j'}exp(e_{ij'})} αij=∑j′exp(eij′)exp(eij)
  • 对value进行加权求和
    o i = ∑ j α i j v i o_i=\sum_{j}\alpha_{ij}v_i oi=j∑αijvi

多头自注意力

该部分属于是Transformer当中的核心创新技术

  • 多头自注意力机制能够直接建模任意距离的词元之间的交互关


    多头自注意力机制通常由多个自注意力模块组成。在每个自注意力模块中,对于输入的词元序列,将其映射为相应的查询(Query, 𝑸)、键(Key, 𝑲)和值(Value,𝑽)三个矩阵。然后,对于每个查询,将和所有没有被掩盖的键之间计算点积。这些点积值进一步除以 D \sqrt D D 进行缩放(𝐷 是键对应的向量维度),被传入到 softmax函数中用于权重的计算 。进一步,这些权重将作用于与键相关联的值,通过加权和的形式计算得到最终的输出。在数学上,上述过程可以表示为:
    Q = X W Q K = X W K V = X W V A t t e n s t i o n ( Q , K , V ) = s o f t m a x ( Q K T D ) V Q=XW^Q\\ K=XW^K\\ V=XW^V\\ Attenstion(Q,K,V)=softmax(\frac{QK^T}{\sqrt D})V Q=XWQK=XWKV=XWVAttenstion(Q,K,V)=softmax(D QKT)V
    与单头注意力相比,多头注意力机制的主要区别在于它使用了 𝐻 组结构相同但映射参数不同的自注意力模块。输入序列首先通过不同的权重矩阵被映射为一组查询、键和值。每组查询、键和值的映射构成一个"头",并独立地计算自注意力的输出。这使得自注意力的计算可以更好的基于硬件去进行优化,这也是其成为主流的大语言模型的方法之一

编码器

将输入变换为隐藏层的特征

  • 将每个输入词元都编码成一个上下文语义相关的表示向量
  • 编码器结构由多个相同的层堆叠 而成,其中每一层都包含多头自注意力模块前馈网络模块
    X l ′ = LayerNorm ⁡ ( MHA ⁡ ( X l − 1 ) + X l − 1 ) , X l = LayerNorm ⁡ ( FFN ⁡ ( X l ′ ) + X l ′ ) , \begin{array}{l} \boldsymbol{X}{l}^{\prime}=\operatorname{LayerNorm}\left(\operatorname{MHA}\left(\boldsymbol{X}{l-1}\right)+\boldsymbol{X}{l-1}\right), \\ \boldsymbol{X}{l}=\operatorname{LayerNorm}\left(\operatorname{FFN}\left(\boldsymbol{X}{l}^{\prime}\right)+\boldsymbol{X}{l}^{\prime}\right), \end{array} Xl′=LayerNorm(MHA(Xl−1)+Xl−1),Xl=LayerNorm(FFN(Xl′)+Xl′),

解码器

将隐藏层的特征变换为自然语言序列

与编码器不同,解码器需要引入掩码自注意力(Masked Self-attention)模块 ,用来在计算注意力分数的时候掩盖当前位置之后的词,以保证生成目标序列时不依赖于未来的信息

在训练过程中,解码器可以通过一次前向传播,让每个词元的输出用于预测下一个词元

Y l ′ = LayerNorm ⁡ ( MaskedMHA ⁡ ( Y l − 1 ) + Y l − 1 ) , Y l ′ ′ = LayerNorm ⁡ ( CrossMHA ⁡ ( Y l ′ , X L ) + Y l ′ ) , Y l = LayerNorm ⁡ ( FFN ⁡ ( Y l ′ ′ ) + Y l ′ ′ ) , \begin{aligned} \boldsymbol{Y}{l}^{\prime} & =\operatorname{LayerNorm}\left(\operatorname{MaskedMHA}\left(\boldsymbol{Y}{l-1}\right)+\boldsymbol{Y}{l-1}\right), \\ \boldsymbol{Y}{l}^{\prime \prime} & =\operatorname{LayerNorm}\left(\operatorname{CrossMHA}\left(\boldsymbol{Y}{l}^{\prime}, \boldsymbol{X}{L}\right)+\boldsymbol{Y}{l}^{\prime}\right), \\ \boldsymbol{Y}{l} & =\operatorname{LayerNorm}\left(\operatorname{FFN}\left(\boldsymbol{Y}{l}^{\prime \prime}\right)+\boldsymbol{Y}{l}^{\prime \prime}\right), \end{aligned} Yl′Yl′′Yl=LayerNorm(MaskedMHA(Yl−1)+Yl−1),=LayerNorm(CrossMHA(Yl′,XL)+Yl′),=LayerNorm(FFN(Yl′′)+Yl′′),

大语言模型的参数配置

考虑因素如下

  • 归一化方法
  • 位置编码
  • 激活函数
  • 注意力计算

归一化

为了应对训练过程当中不稳定这一问题,深度学习方法通常会采用特定的归一化策略来加强神经网络训练过程的稳定性。

激活函数

前馈网络中激活函数的选择对于大语言模型的表现至关重要。通常来说,激活函数主要是为神经网络中引入非线性变化,从而提升神经网络的模型能力

位置编码

由于 Transformer 模型中自注意力模块具有置换不变性,因此仅使用注意力机制无法捕捉序列中的顺序关系 ,从而退化为"词袋模型"。为了解决这一问题,需要引入位置编码(Position Embedding, PE)对于序列信息进行精确建模,从而将绝对或相对位置信息整合到模型中。

旋转位置编码

使用了基于绝对位置信息的旋转矩阵来表示注意力中的相对位置信息

为序列中每个绝对位置设置了特定的旋转矩阵 R θ , t R_{\theta,t} Rθ,t(位置索引为t)

代码内容实现

注意力机制

参考资料

DataWhale组队学习资料:https://www.datawhale.cn/learn/content/107/3295

Transformer动画演示:https://www.bilibili.com/video/BV1vN9gYZEj8/?spm_id_from=333.1387.favlist.content.click&vd_source=5a776c1236491cc434fff497ee1d79a5

相关推荐
Raink老师1 分钟前
【AI面试临阵磨枪-70】Agent 系统如何做分布式调度、跨服务协作、故障恢复?
人工智能·面试·职场和发展
tedcloud12313 分钟前
RTK部署教程:构建稳定的AI Workflow环境
服务器·javascript·人工智能·typescript·ocr
Raink老师15 分钟前
【AI面试临阵磨枪-71】如何用 AI 优化推荐系统、内容审核、广告创意、搜索体验?
人工智能·面试·职场和发展
AI医影跨模态组学17 分钟前
Biomarker Res(IF=11.5)安徽医科大学第一医院:基于机器学习的放射组学模型:子宫内膜癌患者的预后预测及机制探索
人工智能·深度学习·论文·医学·医学影像·影像组学
ftpeak23 分钟前
Mooncake:以 KVCache 为中心的分离式 LLM 服务架构
人工智能·ai·架构·ai编程·ai开发
lqqjuly27 分钟前
Transformer架构详解 - 第一、二部分:基础与核心思想、核心组件详解
深度学习·神经网络·自然语言处理
Terrence Shen28 分钟前
Hermes agent的tools是怎么落地应用的系列
人工智能·llm·agent·hermes
Raink老师43 分钟前
【AI面试临阵磨枪-72】电商全场景 AI Agent 设计(商品咨询 / 订单 / 物流 / 售后 / 退款)
人工智能·面试·职场和发展
仙女修炼史1 小时前
CNN更看重Texture还是shape:imagenet-trained cnns are biased
论文阅读·人工智能·cnn
视***间1 小时前
视程空间 AIR SC6N0-C-MB NX 16GB 规格详解与机器人/机器狗适配说明
人工智能·机器人·边缘计算·机器狗·ai算力·具身机器人·视程空间