常州手机网站效果,做网站用的图片怎样压缩,什么是网络营销公司,在线美工文章目录 说明一 LLM 简介二 Transformer 架构2.1 Transformer的架构组成2.1.1 输入嵌入 (Input Embedding)2.1.2 编码器 (Encoder) 的结构解码器 (Decoder) 的结构2.1.3 输出层 (Output Layer)结构 2.2 编码和解码器的独立输入理解 三 注意力机制 说明
本文适合初学者#x… 文章目录 说明一 LLM 简介二 Transformer 架构2.1 Transformer的架构组成2.1.1 输入嵌入 (Input Embedding)2.1.2 编码器 (Encoder) 的结构解码器 (Decoder) 的结构2.1.3 输出层 (Output Layer)结构 2.2 编码和解码器的独立输入理解 三 注意力机制 说明
本文适合初学者大佬请路过。
一 LLM 简介
大预言模型(Large Language Models、LLM)是一种由包含数百亿以上参数的深度神经网络构建的语言模型使用自监督学习方法通过大量无标注文本进行训练。GPTGenerativePre-trainedTransformer是一种大语言模型是生成式人工智能的重要框架。GPT模型是基于Transformer架构的人工神经网络在未标记文本的大型数据集上进行预训练能够生成新颖的类人内容。大语言模型的应用领域非常广泛涵盖机器翻译、摘要生成、对话系统、文本自动生成等诸多领域。然而大语言模型的使用也存在一些挑战和问题。首先虽然大语言模型能够生成高度连贯和自然的文本但没有自我意识和理解能力。其次大语言模型的大规模训练数据集也使得其模型庞大而复杂对计算资源要求较高导致训练和部署成本相对较高。
二 Transformer 架构
自然语言处理Natural Language Processing,NLP)技术的发展是一个逐步迭代和优化的过程。Transformer的出现标志着自然语言处理进入一个新时代特别是随着BERT和GPT等模型的推出大幅提升了自然语言的理解和生成能力。Transformer架构是一种基于注意力机制的深度学习模型由谷歌的研究人员在2017年提出被广泛应用于自然语言处理任务如机器翻译、文本分类、情感分析等。目前的聊天模型都是基于Transformer架构开发的。ChatGPT的后端是基于GPT模型的GPT模型通过在大规模文本数据上进行无监督预训练来学习语言的统计特征和语义。它使用自回归的方式即基于前面已经生成的词来预测下一个词来学习词之间的语义和语法关系以及句子和文本的整体上下文信息。 Transformer架构由编码器Encoder和解码器Decoder组成其中编码器用于学习输入序列的表示解码器用于生成输出序列。GPT主要采用了Transformer的解码器部分用于构建语言模型。
2.1 Transformer的架构组成 2.1.1 输入嵌入 (Input Embedding)
在Transformer模型中首先对输入文本进行处理以得到合适的文本表示。因为计算机无法直接处理自然语言它需要将我们的输入转换为它能理解的数学形式换言之他会把每个词或字符编码成一个特定的向量形式。 输入嵌入input Embedding文本中的每个单词都被转换为一个高维向量这个转换通常是通过预训练的词嵌入模型如Word2Vec、GloVe等完成的。位置嵌入Positional Embedding标准的Transformer模型没有内置序列顺序感知能力因此需要添加位置信息。这是通过位置嵌入完成的它与词嵌入具有相同的维度并且与词嵌入相加。 输入序列模型接收一个 token 序列作为输入例如 “I love NLP”。嵌入查找 每个 token 通过查找嵌入矩阵被转换为一个 d_model 维的向量。嵌入矩阵的维度为 (vocab_size, d_model)其中 vocab_size 是词汇表大小。 位置编码添加 生成与输入序列长度相同的位置编码矩阵维度为 (seq_len, d_model)。位置编码与 token 嵌入逐元素相加得到最终的输入表示。
数学表示 X Embedding ( i n p u t ) PositionalEncoding X \text{Embedding}(input) \text{PositionalEncoding} XEmbedding(input)PositionalEncoding
2.1.2 编码器 (Encoder) 的结构
每个编码器层包含以下子层多头自注意力机制 (Multi-Head Self-Attention)、前馈神经网络 (Feed-Forward Network) 多头自注意力机制 (Multi-Head Self-Attention) 线性变换输入 X 通过三个不同的线性层生成 Q (查询)、K (键)、V (值) 矩阵。每个头的维度为 d k d m o d e l / h d_k d_model / h dkdmodel/h其中 h 是头数。 注意力计算计算缩放点积注意力 Attention ( Q , K , V ) softmax ( Q K T d k ) V \text{Attention}(Q, K, V) \text{softmax}(\frac{QK^T}{\sqrt{d_k}})V Attention(Q,K,V)softmax(dk QKT)V。并行计算 h 个注意力头将结果拼接后通过线性层投影。 残差连接和层归一化 X attention LayerNorm ( X Attention ( X ) ) X_{\text{attention}} \text{LayerNorm}(X \text{Attention}(X)) XattentionLayerNorm(XAttention(X))
前馈神经网络 (Feed-Forward Network)
两层线性变换第一层将维度从 d_model 扩展到 d_ff (通常 2048 或 4096)。第二层将维度压缩回 d_model。之间使用 ReLU 激活函数。残差连接和层归一化 X out LayerNorm ( X attention FFN ( X attention ) ) X_{\text{out}} \text{LayerNorm}(X_{\text{attention}} \text{FFN}(X_{\text{attention}})) XoutLayerNorm(XattentionFFN(Xattention))
解码器 (Decoder) 的结构
每个解码器层包含三个子层掩码多头自注意力 (Masked Multi-Head Self-Attention)、编码器-解码器注意力 (Encoder-Decoder Attention) 掩码多头自注意力 (Masked Multi-Head Self-Attention)的掩码机制防止解码器在训练时偷看未来的 token通过将未来位置的注意力分数设置为 -∞ 实现。
计算过程与编码器自注意力类似但增加了掩码。
编码器-解码器注意力 (Encoder-Decoder Attention)Q 来自解码器K 和 V 来自编码器的最终输出允许解码器关注输入序列的相关部分。前馈神经网络:结构与编码器中的前馈网络相同。
2.1.3 输出层 (Output Layer)结构
线性投影将解码器输出投影到词汇表大小的维度。Softmax 激活生成每个 token 的概率分布。 P ( w ) softmax ( W o X decoder b o ) P(w) \text{softmax}(W_o X_{\text{decoder}} b_o) P(w)softmax(WoXdecoderbo)
2.2 编码和解码器的独立输入理解
对于Transformer的输入处理部分从架构图上编码器和解码器部分都有输入因为在Transformer模型中编码器Encoder和解码器Decoder各自有独立的输入。通常在有监督学习的场景下编码器负责处理输入样本而解码器负责处理与之对应的标签这些标签在进入解码器之前同样需要经过适当的预处理这样的设置允许模型在特定任务上进行有针对性的训练。
三 注意力机制
注意力机制就如字面含义一样就像我们生活中一样当开始做某一个事情时通常会集中注意力在某些关键信息上从而忽略其他不太相关的信息。对于计算机来说transformer就是通过注意力机制解析上下文和理解不同语义之间的关系。 原始句子The Animal didn’t cross the street because it was too tired。译为因为动物太累了所以没有过马路。 it指代的是The Animal然而如果改变句子中的一个词将tired替换为narrow得到的新句子是The Animal didnt cross the street because it was too narrow由于街道太窄动物没有过马路在这个新的句子中it指the street。因此模型需要能够理解当输入的句子改变时句子中的词义也可能会随之改变。这种灵活性和准确性在Transformer模型中得到了体现。 Attention机制的工作原理可以这样形象化地描述模型把每个词编码成一个向量然后把这些向量送入模型中。在这里每个词都会像发送条“询问”一样去问其他词“咱们之间的关系紧密吗”如果关系紧密模型就会采取一种行动反之则会采取另一种行动。不仅每个词都会发出这样的“询问”而且也会回应其他词的“询问”。通过这样的一问一答互动模型能够识别出每两个词之间的紧密关系。一旦这种关系被确定模型就会把与该词关系更紧密的词的信息“吸收”进来与其进行更多的信息融合。这样比如在翻译任务中模型就能准确地识别it应该翻译为animal因为它的向量已经融合了与animal这个词紧密相关的信息。 所以注意力机制的核心就是要做重构词向量这样一件事。对于上面形象化的描述中可以抽取出注意力机制的三要素 Q即Query可以理解为某个单词像其他单词发出询问。K即Key可以理解为某个单词回答其他单词的提问。V即Value可以理解为某个单词的实际值表示根据两个词之间的亲密关系决定提取出多少信息出来融入自身。 在 T r a n s f o r m e r Transformer Transformer模型中 Q 、 K Q、K Q、K和 V V V是通过输入向量表示Transformer(x)与相应的权重矩阵 W q 、 W k 、 W v W_q、W_k、W_v Wq、Wk、Wv进行矩阵运算得到的。这些权重矩阵最初是通过数学方法进行初始化的然后在模型多轮训练的过程中逐渐更新和优化。目标是使得传入的数据与这些权重矩阵相乘后能够得到最优化的Q、K和V矩阵。以Q为例其第一个元素是通过输入向量x的第一行与权重矩阵W的第一列进行点乘和求和运算得到的。因此在Q矩阵中的第一行实际上有这样的意义它包含第一个词与输入x的第一行对应)在查询其他词时所需的关键信息。同样地K和V矩阵的计算逻辑与此相似。在K矩阵的第一行中存储的是第一个词在回应其他词的查询时所需的信息。而V矩阵的第一行所包含的是第一个词自身携带的信息。在通过Q和K确定了与其他词的关系后这些存储在V中的信息被用来重构该词的词向量。在获取到Q、K、V之后Attention执行如下操作 Attention ( Q , K , V ) softmax ( Q K T d k ) V \text{Attention}(Q, K, V) \text{softmax}(\frac{QK^T}{\sqrt{d_k}})V Attention(Q,K,V)softmax(dk QKT)V。公式中除以 d k d_k dk是为了避免在计算向量的内积时因为向量矩阵过大计算出来的数值比较大。 而非单纯的因为词之间的紧密程度这一问题。计算词的紧密程度 为什么 Q K T QK^T QKT矩阵就能表达词与词之间关系的紧密程度这种计算方式在数学上叫向量的内积。向量的内积在向量的几何含义上表达的是**内积越大两个向量就更趋向于平行的关系也就表示两个向量更加相似当内积为0时两个向量就会呈现垂直的关系表示两个向量毫不相关。**对于Attention机制中这种Q和K一问一答的形式问的就是两个词之间的紧密程度所以可以通过内积的方式来衡量两个词之间的相似性。在这个过程中可能都注意到了它对自己也进行了提问并且自己也给出了回答为什么要这样做呢例如The Animal didn’t cross the street because it was too tired因为动物太累了所以没有过马路it正常来说作为代词指代“它”但在这个句子中我们希望它指代是The Animal所以它不把自己在这个句子中的重要性表现出来不对自己的信息进行重构的话它可能就没有办法改变自己原有的意思也就无法从原本的意思“它”改为指代The Animal。也就是因为这种操作,所以在Transformer中的注意力机制被叫作Self-Attention自注意力机制。当衡量句子之间的紧密关系的结果出来之后那么如何重构V为解决如何量化决定哪些词贡献了多少信息。我们可以使用softmax函数对每一行进行归一化处理softmax操作实质上是在量化地均衡各个词的信息贡献度。 当得到了每个词之间的信息贡献度概率之后重构V的过程转换成计算过程。从每个词中都会拿出部分信息最终得到Z通过这种计算形式得到的Z矩阵每个位置就包含所有与之有关系的信息。这就是Transformer中自注意力机制中的计算过程。