从零构建大模型之Transformer公式解读

Transformer关键核心代码解读 本篇文章介绍了transformer核心代码的原理,比如说self-attention,位置编码等 阅读详情

【引】收到图灵寄来的两本书《大模型应用开发极简入门》和《从零构建大模型》,重新点燃了自己深入理解大模型内部机制的热情,不能只知其然而不知其所以然,于是重温大模型核心的transformer架构, 尝试用25个公式进行解读,遂成此文。

Transformer是一种用于处理序列数据的深度学习模型,特别适用于自然语言处理任务。其独特之处在于它们的自我注意力机制。这种机制允许模型确定不同序列部件的重要性,关注输入序列中最相关部分的能力导致了各种自然语言处理任务的显著进步。

1.Transformer的编解码器框架

Transformer建立在一个编解码器框架的基础上,该框架旨在有效地处理序列数据,并通过一种称为自注意力机制来捕获长期依赖关系。编码器和解码器是Transformer的两个主要部件。可以将编码器想象成一个团队,处理所有来宾信息并将其组织成有意义的类别。它获取输入序列并创建编码,突出显示输入中有哪些部分彼此相关。另一方面,解码器就像是负责生成最终事件计划的团队,使用来自编码器的信息,并利用先前做出的决定,逐步生成输出序列。

每个编码器和解码器由多个相同的层组成,通常为十二层。每个编码器层有两个主要的子层: 一个多头自注意力机制和一个全连接的前馈网络。每个子层都有剩余的连接和层标准化,这有助于稳定和加快训练过程。解码器层是相似的,但有一个额外的多头注意力子层,允许参与编码器的输出。

1.1 编码器

编码器的核心是多头注意力机制。把它想象成一组专家,每个专家都关注输入序列的不同方面。多头注意力不再是单一的专家,而是将输入分成多个较小的注意头。每个头独立地将输入投影到查询、键和值向量中,计算注意力分数,并组合结果。然后将所有头的输出连接起来并进行转换以产生最终结果。这个过程允许模型捕获输入序列中的各种关系。

编码器遵循多头注意力机制,包括位置全连通的前馈神经网络。这个部分就像一个分析师,他接受专家提供的信息并对其进行改进。它由两个线性变换组成,中间有一个 ReLU 激活函数,对序列中的每个位置独立操作。这有助于将与会者信息转换为更丰富的表示形式,向模型添加非线性,并允许它学习复杂的模式。

编码器中的每个子层,包括多头注意力和前馈网络,随后是剩余连接和层归一化。剩余连接,也称为跳跃连接,通过允许梯度直接通过网络,有助于缓解渐变问题。这是通过将子层的输入添加到其输出来完成的。然后,层规范化通过规范化子层的输出来稳定并加快训练过程,从而确保值的分布保持一致。

1.2 解码器

解码器与编码器有一些相似之处,但也引入了一些关键的差异,以促进其在产生输出序列中的作用。就像编码器,解码器有多个相同的层,每一层都包含一个子层,其中包括多头注意力和一个前馈神经网络。编码器和解码器都使用剩余连接和层归一化来增强学习和保持稳定的梯度。

然而,在编码器和解码器之间存在着关键的区别。主要的区别是在每个解码器层中加入第三个子层,称为掩蔽多头注意力机制。这个额外的子层允许解码器专注于先前生成的token,同时保持序列生成的自回归特性。此外,解码器的多头注意力机制被设计用于处理两个信息源: 输入序列(来自编码器)和部分生成的输出序列。

掩蔽多头注意力机制是解码器所特有的。它的工作方式类似于编码器中使用的标准多头注意力,但包括一个额外的掩蔽步骤。这种屏蔽确保了解码器在训练期间不能在序列中查看未来的令牌,从而保留了模型的自回归特性。在注意力计算过程中,对输入序列应用一个掩模,将未来标记的注意力分数设置为负无穷大。这有效地防止了模型在生成当前令牌时考虑未来令牌,确保每个令牌仅基于过去令牌和编码的输入序列生成。

解码器的多头注意力子层,包括掩蔽的多头注意力和标准的多头注意力(注意编码器的输出) ,共同生成输出序列。掩蔽多头注意力允许模型一次产生一个token,而标准的多头注意力集成了来自编码器的信息,使得解码器能够产生连贯和上下文准确的输出。

1.3 注意力机制

注意力机制是Transformer高效运行的核心创新。它允许模型动态地关注输入序列的不同部分,使它能够捕获依赖关系,而不管依赖关系在序列中的距离如何。Transformer的注意力机制主要有两种: 自我注意力和交叉注意力。

自我注意,也称为内注意,用于编码器和解码器层。在自我注意中,序列中的每个元素都关注所有其他元素,包括它自己。这意味着,例如,一个句子中的每个单词都可以考虑其他每个单词,以构建更丰富的上下文表示。

交叉注意在解码器处理编码器输出时使用。这种机制允许解码器集中于输入序列的相关部分,同时生成输出序列中的每个令牌。在交叉注意力中,解码器序列的每个元素都注意到编码器输出的元素,整合来自输入序列的信息以产生最终输出。

自我注意和交叉注意的核心计算是缩放的点积。首先,将每个输入元素投影到三个向量中: Query (Q)、 Key (K)和 Value (V)。然后,在Query 向量上点积key向量,以计算注意力得分,这表明要在输入的不同部分放置多少注意力。这些点积按key向量维数的平方根进行缩放,以稳定训练过程中的梯度。按比例缩放的分数然后通过一个softmax函数将它们转换成概率,强调输入中最相关的部分。最后,value向量根据这些注意力得分加权,并相加得出每个输入元素的最终输出。

想象一下,你正在试图理解一个有多个人物和事件同时发生的故事。自注意力可以帮助你考虑每一个角色和每一个其他角色和事件,让你对故事有一个全面的理解。另一方面,交叉注意力专注于故事的具体细节,以确保随着你的进步,能将最相关的信息融入到你的理解中。

2. 注意力机制的数学公式

注意力机制决定了一个词在一个序列中应该给每个其他词多少注意力。这从注意力分数的计算开始。对于输入中的每个单词,我们需要确定它应该对其他每个单词给予多少关注。这是使用三个矩阵完成的: Query (Q)、 Key (K)和 Value (V)。

输入序列中的每个单词首先使用 W_Q、 W_K 和 W_V 的学习权重矩阵投影到这三个矩阵中:

这里,X 是输入序列矩阵,其中每一行对应一个单词嵌入。例如,如果你有一个包含10个单词的句子,并且每个单词都由一个512维向量表示,那么 X 就是一个10x512的矩阵。将输入序列 X 乘以这些权矩阵,将嵌入的每个单词投影到三个新的空间(Q、K和V)中,为注意力机制设置了阶段。

接下来,我们用查询向量 Q 和键向量 K 的点乘来计算注意力得分。这衡量了查询和关键向量之间的相似性:

这个操作生成一个原始注意力得分矩阵,其中每个元素代表一对单词之间的注意力得分。

  • Q 是从 XW_Q 获得的查询矩阵。Q 中的每一行表示序列中每个单词的查询向量。

  • K 是从 XW_K 得到的键矩阵。K 中的每一行表示序列中每个单词的关键向量。

  • K ^ T 是键矩阵的转置。转置 K 会交换它的行和列,这样我们就可以用 Q 来计算点乘。

因此,上述公式的结果是注意力得分矩阵。此矩阵中的每个元素表示输入序列中一对单词之间的注意力得分,指示一个单词应该给另一个单词多少关注。

然而,随着向量维数的增加,点积的值可能会变得非常大,导致在softmax操作期间出现较小的梯度。为了抵消这个影响,可以用键向量 d_k 的平方根来衡量注意力得分:

因此,如果每个键向量有64个维度,那么关键向量维度的平方根就是 sqrt {64} = 8。这个比例因子有助于稳定梯度,使softmax更加有效。softmax激活函数将得分转换为概率,确保得分总和为1,这突出了单词之间最重要的关系:

softmax操作使缩放后的分数归一化了。Softmax对每个缩放得分进行指数化,并将其除以指数化分数之和,将得分转换为概率。这强调了最相关的单词,同时确保所有概率的总和为1。

注意力机制的最后一步是使用这些注意力权重来计算值向量 V 的加权和:

在这里,注意力权重是从softmax激活函数中获得的注意力权重矩阵。每个元素代表注意到一个特定单词的概率。V 是从 XW_V 得到的值矩阵。V 中的每一行表示序列中每个单词的值向量。将注意力权重乘以 V 得到值向量的加权和。这个输出是每个单词的新表示形式,包含了整个输入序列的上下文。

Transformer不使用单一的注意力分数,而是使用多头注意力分数。这意味着输入序列被分成多个较小的部分,每个部分通过上述注意力机制独立处理, 每一部分都叫做头。对于每个头,我们有不同的权矩阵 W_ Q^i,W_K^i 和 W_V^i。在处理每个头之后,我们将它们的输出连接起来,并使用另一组权重 W_O 将它们投影回单个向量空间:

这种多头注意力允许模型同时关注序列的不同部分,捕获广泛的依赖关系。

3. FFN 的数学原理

在多头注意力之后,每个词的表示数据通过位置逐元素前馈网络进一步处理。这个网络独立操作每个单词的表示,并对每个单词应用相同的转换。前馈网络由两个线性变换组成,中间有一个ReLU激活函数:

这里 x 是注意力机制的输入,W _ 1和 W _ 2是权矩阵,b _ 1和 b _ 2是偏差。这种激活函数引入了非线性,使网络能够学习更复杂的模式。实际上,ReLU 就像一个看门人,不变地传递正值,但阻止负值,把它们变成零。

3.1 层归一化和残差连接

为了稳定和加速训练,编码器中的每个子层(多头注意力和前馈网络)后面都有一个残差连接和层归一化。

残差连接有助于缓解逐渐消失的梯度问题,并允许对更深的网络进行训练。基本思想是将子层的输入添加到其输出中。在数学上,它可以表示为:

这里:

  • X 是子层的输入(子层可以是多头注意力机制或前馈网络)。

  • Sublayer(x) 是处理 X后面的子层输出。这可能是多头注意力机制或前馈网络的输出。

  • X + Sublayer(x) 是剩余连接,它将原始输入 x 添加到子层的输出。这个增加帮助更容易地通过网络,防止他们变得太小(消失的梯度问题)或太大(爆炸的梯度问题)。

通过将输入 x 添加到子层的输出中,即使子层转换引入了重大更改,模型也可以确保原始信息得到保留。

将层归一化应用于剩余连接的组合输出,以标准化值。这个过程通过确保每一层的输入具有一致的值分布来帮助稳定训练。层归一化的公式是:

把条件分解一下:

  • Z 是层标准化的输入,在这个场景中是 x + Sublayer(x)。

  • mu 计算输入z 的均值

    ,其中 N 是 z 中的元素数(隐藏层的维度)。

  • Sigma 是输入 z 的标准差,计算方法如下:

  • epsilon是为了数值稳定性而添加的一个小常数,以防止除以零。

  • gamma是一个学习过的缩放参数,它允许模型调整规范化值。

  • bata是一个学习移位参数,允许模型调整规范化值。

归一化输出确保每个子层接收平均值为0和方差为1的输入,这有助于保持稳定的梯度,提高了训练过程的效率和有效性。

3.2 位置编码

Transformer同时处理序列中的所有令牌,而不是像递归模型(RNN)那样逐个处理。虽然这种并行处理是有效的,但这意味着模型本身并不理解令牌的顺序。为了给模型一个位置感,我们使用位置编码。此编码将有关序列中每个标记的位置的信息添加到其嵌入中。

位置编码是在编码器和解码器栈处理它们之前加入到输入嵌入中的数学表示。最常用的方法是使用不同频率的正弦和余弦函数来生成这些编码。位置编码的公式如下:

  • Pos 是令牌在序列中的位置(从0开始)。

  • i 是位置编码的维度索引。

  • d_model 是模型输入嵌入的维度,与位置编码的维度相同。

这些正弦和余弦函数确保序列中的每个位置都有唯一的编码。此外,使用不同的频率允许模型区分不同的位置,以一种既平滑又连续的方式。这对于模型有效地了解令牌的相对位置非常重要。

使用正弦函数和余弦函数有几个好处:

  • 周期性: 正弦函数和余弦函数是周期性的,这意味着它们在规则的时间间隔内重复它们的值。这种周期性对于捕获标记在不同长度序列中的相对位置非常有用。

  • 唯一编码: 每个位置(pos)都有一个独特的编码,因为每个维度的频率是不同的。这确保了模型能够区分不同的位置。

  • 平滑性: 正弦和余弦函数的平滑、连续变化使得模型更容易学习位置编码中的模式。

4. 编码器的数学原理

编码器将输入序列转换为一组经过编码的表示形式。首先,输入序列 X 嵌入到一个高维空间中。这种嵌入捕获了序列中每个单词的意思。为了帮助模型理解序列中每个单词的位置,我们向这些嵌入添加位置编码,结果是 X_pos:

接下来,这个组合序列通过多头注意力机制提供。这允许模型同时关注序列的不同部分,生成一个输出 Z_attn:

然后,我们将原始输入 X _ pos 添加回该输出(称为残差连接的过程) ,并应用层标准化来稳定训练。这样我们就得到了 Z _ add _ norm _ 1:


下一步是通过位置前馈网络传递这一结果,该网络应用了额外的变换。该网络的输出为Z_ffn:

我们再次将输入 Z _ add _ norm _ 1添加回这个输出,并应用层标准化来得到 Z _ encoder _ output:

这个最终输出 Z _ encoder _ output 是输入序列的经过编码的表示形式,准备由解码器处理。

5. 解码器的数学原理

解码器通过使用已编码的输入和先前生成的令牌生成输出序列。首先,输入序列 Y (右移)嵌入到一个高维空间。右移是指在开头插入一个特殊的开始标记(通常是‘ < SOS >’表示“启动顺序”) ,然后删除最后一个标记。然后在训练期间将这个移位序列用作解码器的输入。这样做的目的是确保解码器只能使用已经生成(或预测)的令牌,而不能使用任何未来的令牌,从而保持模型的自回归属性。

接下来,我们将位置编码添加到这些嵌入中,形成 Y _ pos:

该序列通过掩蔽的多头注意力机制传递,该机制阻止模型查看序列中的未来标记输出是 Z_masked_attn:

然后,我们将原始输入 Y _ pos 添加回这个输出,并应用层标准化得到 Z _ add _ norm _ 2:

接下来,该输出通过交叉注意力机制传递,该机制允许解码器将注意力集中在来自编码器的编码输入序列的相关部分。结果是 Z _ cross _ attn:

我们将输入 Z _ add _ norm _ 2添加回这个输出并应用层标准化,结果是 Z _ add _ norm _ 3:

这个输出通过另一个位置前馈网络传递,产生 Z _ ffn _ decder:

最后,我们将输入 Z _ add _ norm _ 3添加回这个输出,并应用层标准化来获得最终的解码器输出 Z _ decder _ output:

这个最终的输出,Z _ decder _ output,然后用来通过一个线性层和一个Softmax激活函数生成最终的输出序列。

6.一句话小结

本文从 Transformer 的整体结构开始,对每个组件的计算方式以数学公式表达, 一共25个公式,了解了这些数学原理, 无论是看开源代码还是手写Transformer都大有裨益。

ps. 当然,深入理解大模型的运行机制仍然是未来更好的开发基于大模型的应用,如果希望快速入门的话,《大模型应用开发极简入门》(第2版)或许是个不错的选择。

【关联阅读】

大模型核心技术原理: Transformer架构详解 四是,通用语言模型,如 GLM,该模型结合了自回归和自编码两种形式的模型,举个例子,“123456”是一串输入的序列,现在把 “3”、“5”、“6” 挖空,让模型去学习,那么,挖空以后换成一个 “ mask token” 告诉模型这个地方遮掉了一些内容,现在需要去预测出来遮掉的内容。一是,自编码模型,如 BERT,简单讲就是给到一句话,然后把这句话的内容挖空,当问及挖空的内容时,就把内容填回去,这其实是典型地用来做一个自然语言理解的任务,但做生成任务是非常弱的;本文由博客一文多发平台。 阅读详情

相关推荐

花了很久很多心思整理的解读大模型Transformer架构

针对第4步和第5步,举个例子,比如第四步输出了一个“中”,然后存储到第五步中,第五步会带着“中”这个字继续进入到大模型中进行计算,计算后第四步会输出一个“国”字,然后继续存储到第五步,此时第五步里面存储了“中国”,第五步下次会带着“中国”作为输入,继续让大模型进行计算。**背后的原理是对每个样本的特征进行归一化,使其均值为 0,方差为1。(标记文字的位置,这里为什么要标记位置呢,因为同样的字,比如我爱你和你爱我,位置不同,表示的含义不同,所以需要对输入的每一个文字,进行位置的标记)。,使模型更容易训练。

kiiy2的博客 1179

transformer算法解析

transformer的概述、详述,以及示例代码

benben044的专栏 4355

这是一篇很枯燥的技术文章,花了很久很多心思整理的解读大模型Transformer架构

已经记不清这是我第几次解读大模型Transformer架构了,从浅到深,包括自己之前解读完还会从0手写一个大模型出来,去训练,去微调。但是每一次解读后,都会有更深的感受和理解,今天花时间做了一次系统的整理,有需要今后想研究大模型的,可以收藏起来,以后慢慢看。看一次就懂很难,有些地方,需要慢慢读,慢慢品,研究的多了,相信下面这张图,你都能背着画下来了。

weixin_53880910的博客 988

Transformer 模型详解

概要 目前在序列建模和转换问题中,如语言建模和机器翻译,所采用的主流框架为Encoder-Decoder框架。传统的Encoder-Decoder一般采用RNN作为主要方法,基于RNN所发展出来的LSTM和GRU也被曾认为是解决该问题最先进的方法。但是RNN的主要缺陷在于并行训练的不足。针对机器翻译问题,原论文文(Attention is all you need)提出了一种“Transforme...

Wisimer 1万+

从零手搓AI大模型:深入理解Transformer核心原理与NumPy实现

Transformer架构作为现代AI大模型的核心基石,彻底改变了自然语言处理的技术范式。其核心原理基于自注意力机制,通过查询、键、值向量的交互计算,使模型能够动态捕捉序列中任意位置间的依赖关系。这种机制的技术价值在于突破了传统RNN的顺序计算限制,实现了高效的并行化训练,同时通过多头注意力机制从多个子空间捕获不同的语义信息。在实际工程应用中,Transformer已成为GPT、BERT等主流大模型的统一骨架,广泛应用于文本生成、机器翻译、代码补全等场景。本文聚焦于解码器部分的实现,通过NumPy从零构建缩

weixin_30905981的博客 424

什么是LLM大模型训练,详解Transformer结构模型

深度学习领域所谓的“模型”,是一个复杂的数学公式构成的计算步骤。ini代码解读复制代码y = ax + b该方程意味着给出常数a、b后,可以通过给出的x求出具体的y。ini 代码解读复制代码#a=1 b=1 x=1这个根据x求出y的过程就是模型的推理过程。在LLM中,x一般是一个句子,如“帮我计算23+20的结果”,y一般是:“等于43”。基于上面的方程,如果追加一个要求,希望a=1,b=1,x=3的时候y=10呢?这显然是不可能的,因为按照上面的式子,y应该是4。ini代码解读。

2401_86435672的博客 1180

AI生成未来 | 从零构建大模型之Transformer公式解读

《Transformer模型的数学原理与结构解析》摘要:本文详细解析了Transformer模型的数学原理和结构组成。Transformer通过自注意力机制处理序列数据,其核心由编码器-解码器框架构成。编码器采用多头注意力机制和全连接前馈网络,解码器则增加了掩蔽多头注意力机制。文章用25个数学公式阐述了注意力计算、层归一化、残差连接和位置编码等关键技术原理。具体分析了查询-键-值矩阵的注意力计算、前馈网络运算以及编解码器的完整处理流程,为理解Transformer工作机制和实现提供了理论基础。

csdn_xmj的博客 1046

Transformer模型理论介绍

在语言、机器翻译等核心序列任务中,RNN及其门控变体(LSTM, GRU)大家应该很熟悉了,也见的比较多了。传统循环神经在实际工程实现中,处理变长序列所需的繁琐对齐与填充操作,使其在计算资源利用率上大打折扣。随着深度学习迈向大规模预训练时代,Transformer 模型,完全抛弃了传统的循环结构,引入了自注意力机制(Self-Attention),这个就是它的核心。那么下文带你深入了解 Transformer 模型。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 405

25 个公式深度解读 Transformer 数学原理

解码器层是相似的,但有一个额外的多头注意力子层,允许参与编码器的输出。另一方面,交叉注意力专注于故事的具体细节,以确保随着你的进步,能将最相关的信息融入到你的理解中。解码器的多头注意力子层,包括掩蔽的多头注意力和标准的多头注意力(注意编码器的输出) ,共同生成输出序列。收到图灵寄来的两本书《大模型应用开发极简入门》和《从零构建大模型》,重新点燃了自己深入理解大模型内部机制的热情,不能只知其然而不知其所以然,于是重温大模型核心的 Transformer 架构, 尝试用 25 个公式进行解读,遂成此文。

图灵教育 546

Transformer大模型实战 语言相似性的影响

Transformer大模型实战:语言相似性的影响 关键词: Transformer:一种用于自然语言处理任务的深度学习架构,尤其擅长处理序列数据,如文本翻译、问答、文本生成等。 语言相似性

AI天才研究院 1088

Transformer大模型实战 了解替换标记检测任务

Transformer大模型实战 了解替换标记检测任务 1. 背景介绍 1.1 问题的由来 近年来,随着互联网的普及和信息技术的飞速发展,文本数据呈现爆炸式增长。如何从海量文本数据中提取有价值的信息,成为了自然语言处理领域

AI架构师小马 1188

大模型入门第二篇:Transformer 大白话——不碰数学公式

《Transformer架构:大模型背后的革命性技术》摘要 2017年Google发表的《Attention Is All You Need》论文提出的Transformer架构,彻底改变了AI领域。该架构的核心创新是注意力机制,使模型能像人类划重点一样处理信息,解决了传统RNN/LSTM顺序处理、遗忘上下文等问题。Transformer采用Encoder-Decoder结构,配合自注意力、多头注意力和位置编码等技术,实现了并行处理、长程依赖和强大扩展性。基于该架构衍生出BERT(仅用Encoder)和GP

爱片闲串,爱钓鱼,爱中医,爱分享 615

【AI大模型】核心基石:Transformer架构入门通俗完整解读

文章摘要: Transformer架构是AI大模型(如GPT、Llama等)的核心基石,彻底颠覆了传统RNN/LSTM的逐字计算模式,通过自注意力机制实现全局并行运算和长文本语义理解。本文用通俗语言拆解Transformer的核心模块:位置编码保留语序、多头注意力捕捉上下文关联、掩码机制确保生成逻辑、残差连接稳定训练,并搭配极简PyTorch代码演示Decoder架构的逐字生成过程。Transformer的并行性、可堆叠性和全局注意力优势,使其成为千亿参数大模型的基础。理解Transformer是掌握大模型

unber的博客 44

解读ViT:Transformer在视觉领域如何落地

视觉大模型ViT(Vision Transformer)将自然语言处理中的transformer架构引入计算机视觉领域。其核心是将图像分割为16x16的patch并展平为向量序列,通过线性投影映射到transformer的输入维度,加入位置编码后输入到transformer编码器。相比传统CNN,ViT能更好捕捉全局依赖关系,在大规模数据集上表现优异。关键处理包括:图像分块展平为序列、线性投影降维、可学习位置编码,最终通过[CLS] token进行分类预测。ViT证明了transformer在视觉任务中的潜

laumy的学习笔记 1147

WSL2部署Cadence Virtuoso IC25.1:Ubuntu 26.04排障实录

WSL2以轻量虚拟机结合完整Linux内核,为Windows桌面环境提供了原生级Linux运行能力,解决了传统虚拟机资源开销大、双系统切换低效的问题。对于依赖X11图形协议、FlexNet许可服务和特定动态库的EDA工具链而言,利用WSL2部署Linux发行版需要关注系统集成、显示通路与许可连通性。从技术原理看,图形层X Server的配置、动态库依赖的补齐以及license服务的主机名解析,共同构成EDA工具在WSL2中稳定运行的关键环节。在芯片设计场景中,设计工程师常需在Windows办公机与Linux

weixin_29597551的博客 214

从零开始:如何用Kimi OK Computer快速生成专业级数据分析报告和PPT(附实战案例)

本文详细介绍了如何利用Kimi OK Computer智能体模式,从零开始快速生成专业级数据分析报告和演示文稿。通过实战案例,解析了其任务规划、联网搜索、多工具协同和内容排版等核心能力,并提供了精准指令构造、工作流引导及成果精修的完整步骤,帮助用户高效完成从数据到成品的端到端交付。

weixin_29284201的博客 372

大模型面试准备(五):图解 Transformer 最关键模块 MHA

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何备战、面试常考点分享等热门话题进行了深入的讨论。合集在这里:《大模型面试宝典》(2024版) 正式发布!Transformer 原始论文中的模型结构如下图所示: 上一篇文章讲解了 Transformer 的关键模块 Positional Encoding(大家可以自行翻阅),本篇文章讲解一下 Transformer 的最重要模块 Multi-H

2201_75499313的博客 1830

薛定谔虚拟筛选实战:如何用PDB文件快速构建受体格点(避坑指南)

本文提供了薛定谔虚拟筛选实战指南,聚焦于如何从PDB文件快速、精准地构建受体格点。文章详细解析了可变残基的理性处理策略、基于配体尺寸的盒子量化设置方法,并分享了高级约束与排除体积的实战技巧,旨在帮助用户避开常见陷阱,提升虚拟筛选的成功率与效率。

weixin_28419039的博客 254

别再死记公式!用 “找信息” 的例子,讲清 Transformer QKV 到底在算什么

在 Transformer 架构主导的现代大模型时代,QKV(Query・Key・Value)三元组绝非简单的线性变换模块 —— 它是注意力机制的 “核心引擎”,更是模型实现 “动态信息筛选” 与 “全局关联建模” 的关键载体。看似基础的 “线性投影→点积计算→权重分配” 流程,实则暗藏着大模型理解输入、聚焦重点、整合信息的底层逻辑。本文将跳出 “公式表层解读”,从计算逻辑的数学本质与数据存储的维度关联两大视角,拆解 QKV 如何让注意力机制从 “理论概念” 落地为大模型的 “认知能力”,带你穿透 QK

优快云_224022的博客 1366

高通跃龙QCS6490部署yolov11_obb实战:QNN SDK工具链全解析与避坑指南

本文详细解析了在高通跃龙QCS6490平台上部署yolov11_obb模型的实战过程,重点介绍了QNN SDK工具链的使用与优化技巧。从环境配置、模型转换到性能调优,提供了全面的避坑指南和DSP加速配置建议,帮助开发者高效实现旋转框检测任务在边缘设备上的部署。

weixin_29232121的博客 305

利用LDA进行主题建模,用困惑度和一致性曲线选取最优主题数

如果困惑度和一致性曲线效果图较好,确定了主题数量后,再单独跑一下2里面的程序。2中topic为5是我主观设置的,不一定为最优。

m0_56327159的博客 4223

【AI大模型】Transformer架构位置编码

Transformer模型通过位置编码解决自注意力机制对输入顺序不敏感的问题。原始方案采用正弦/余弦函数编码,具有唯一性和相对位置的线性表示能力,可泛化到任意长度。其他方案包括可学习的嵌入向量、相对位置编码和旋转位置编码(RoPE),后者在现代大语言模型中广泛应用。位置编码通过将顺序信息与词向量相加注入模型,使Transformer能够感知元素位置、捕捉顺序关系并影响注意力分布,成为处理序列数据的关键设计。

woaiyitiaochaiya的博客 1052

【回眸】Tessy 单元测试软件使用指南(三)怎么打桩和指针赋值和测试

本文介绍了当使用Tessy对软件进行单元测试时如何打桩和指针相关测试的注意事项及操作要点,希望能给正在摸索Tessy的网友一点点启发。

啤酒鸭的物联网开发记录博客 1万+

Transformer模型全拆解:自注意力/多头注意力/前馈网络,看透大模型“基石”的底层逻辑(附公式推导+代码)

首先明确三个核心向量的来源和含义(假设输入序列的嵌入维度为d_modelQuery(查询向量,Q):代表“当前位置需要什么信息”,维度d_k(如64);Key(键向量,K):代表“当前位置提供什么信息”,维度d_k;Value(值向量,V):代表“当前位置的具体信息”,维度d_v(通常d_v = d_k它们的生成方式很简单:对输入序列的嵌入矩阵X(维度QXWQQ = X W_QQXWQ​KXWKK = X W_KKXWK​VXWVV = X W_VVXW。

2501_91798322的博客 2032

lammps 案例in文件汇总

进阶案例: 聚乙烯和石墨烯界面pull out模拟代码 反应力场reax/c设置方法及案例解析 石墨烯热导率模拟代码(NEMD方法) 圆锥形SiC纳米磨削单晶硅源代码 高熵合金FeNiCrCoCu纳米压痕模拟代码 fix indent命令实现纳米摩擦及摩擦力计算 Fe原子辐照轰击多层石墨烯模拟代码 铝基石墨烯复合物压缩变形in文件源代码 石墨烯自动卷曲到Fe纳米线模拟源代码 铝/石墨烯复合物结晶过程lammps模

lammps_jiayou的博客 9447

用C#+Avalonia写跨平台串口工具:Windows/macOS/Linux通吃,还能解析Modbus+画实时曲线

不管是串口还是蓝牙,核心操作都是“打开连接、发数据、收数据、关连接”,先定义一个// 通信设备接口:统一串口/蓝牙的操作// 连接状态变化事件(UI层订阅)// 接收数据事件(收到数据后触发)// 通信配置(不同设备配置不同,用泛型)// 通信设备接口:统一串口/蓝牙的操作 public interface ICommDevice : IDisposable {// 连接状态变化事件(UI层订阅) event Action < bool > OnConnectionChanged;

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 999
上一篇: 忆北邮同学生活及《超密集无线网络》译者序
下一篇: 十年,我译过的10本书
半吊子全栈工匠
半吊子全栈工匠 领域专家: 嵌入式与硬件开发技术领域 领域专家: 嵌入式与硬件开发技术领域
博客等级 码龄18年 4632粉丝 897原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值