手撕LLM | 从0开始讲解AI大模型底层技术原理

1.机器学习

机器学习(Machine Learning,ML)是实现人工智能的核心方法,是从有限的观测数据中"学习"(or"猜测")出一个具有一般性的规律,并利用这些规律对未知数据进行预测的方法。

传统的机器学习主要关注如何学习一个预测模型,一般需要首先将数据表示为一组特征(Feature),特征的表示形式可以是连续的数值/离散的符号等形式。

而后将这些特征输入到预测模型,并输出预测结果。这类机器学习可以看作是浅层学习(Shallow Learning),其重要特点是不涉及特征学习,其特征主要靠人工经验或者特征转换方法来提取。

1.1 机器学习的分类:根据学习范式分类

根据学习范式的不同,机器学习可分为有监督学习、无监督学习、自监督学习和强化学习

1.1.1 有监督学习 Supervised Learning

有监督学习(Supervised Learning):很像人通过刷题的学习过程?用带了标准答案的习题集去刷题,如果做错了就根据错误的原因反思改进。当新的题目到来时,便可根据过去刷题的经验来去写新的题目。

训练集要包括输入(特征)和输出(目标),其中,输出是人工标注的。

例子: 训练一个模型用于识别一个公司的财务报表是否有财务舞弊: 有1000份财务报表,每份报表上体现了资产负债率、现金流量等关键数据,我们用X指代。报表有500份舞弊的和500份没有舞弊的。

那么,我们就有一个1000个样本的训练数据集;X是每个训练样本的输入或者特征;该样本是否0舞弊则是由人工标注的输出或者目标。

对于每一份输入的训练数据,都是有一个确定的预期输出结果的,因此称为"有监督"。我们可以称这样的训练样本为"带标签的输入、输出对"。

利用这个训练数据集,我们对算法进行训练。整体而言,训练出了一个函数f(X),他"学习"了训练集中f(X1)=舞弊,f(X2)=正常,f(X3)=正常,f(X4)=舞弊,......,f(X1000)=舞弊的信息。

当我们给出一份新的报表时,他也可以帮我们判断这个报表是舞弊的还是正常的了。

有监督学习的步骤如下:

有监督学习的典型应用

1.分类(Classification) : 预测输入样本属于哪个类别或者类别的概率分布。典型的例子包括垃圾邮件分类、图像分类等。

2.回归(Regression) : 预测输入样本的数值输出,通常是连续的实数值。典型的例子包括房价预测、股票价格预测等。

3.目标检测(Obiect Detection) : 在图像或者视频中检测出目标物体的位置和类别。例如自动驾驶中识别出道路上的车辆、行人、交通标志等;或者人脸识别中判断出哪一部分是人脸。

4.序列生成(Sequence Generation) : 根据输入的序列生成输出的序列,如机器翻译、音乐生成等。

5.序列标注(Sequence Labeling) : 序列标注是一种常见的机器学习任务,其中输入数据通常是序列数据,例如文本、语音、生物信息学等。

有监督学习可以对输入的序列中的每个元素进行标签预测,如命名实体识别(Named Entity Recognition,NER,指自然语言处理中,能从文本中提取如人名、地名、组织名、日期、时间、金额等具有特定意义的实体或实体类别)、语音识别(Speech Recognition)等

常见的有监督学习的算法

常见的有监督学习算法包括线性回归(Linear Regression)、逻辑回归(LogisticRegression)、决策树(DecisionTrees)、支持向量机(Support VectorMachines)、随机森林(Random Forests)等。

1.1.2 无监督学习 Unsupervised Learning

无监督学习的基本定义

无监督学习(Unsupervised Learning)是机器学习中一种常见的学习范式,其目标是从未标记的数据中自动地发现数据中的结构、模式、关联或者表示,而无需使用人工标签或者先验知识的指导。

在无监督学习中,算法需要从数据中自动地进行学习,无需先知道数据的标签或者类别信息。

无监督学习面临的挑战在于缺乏带有标签的训练样本来指导学习过程,因此需要自动地从数据中发现模式和结构。

无监督学习的例子: 根据购物习惯,对客户进行分类。假设有一大组顾客的购物数据,包括他们的购买金额、购买时间、购买商品等信息。这些数据并没有被事先标记或分类。

通过应用无监督学习算法,如k-means聚类算法或层次聚类算法,我们可以自动识别出具有相似购物行为的顾客群体,并将他们分为不同的簇。

这些簇可以对应于不同的消费习惯、购买偏好或市场细分,从而可以帮助企业了解顾客行为并作出相应的业务决策。

<这么听起来,无监督学习和数据挖掘是不是有一点像?>这里是一个聚类问题。

无监督学习的例子: 压缩图片。图像通常由大量的像素点组成,每个像素点包含了图像的颜色信息。

图像压缩的目标是通过减少图像中的冗余信息,从而减小图像的存储空间或传输带宽,同时尽量保持图像的质量。数据降维是图像压缩的一种方式,通过减少图像数据的维度来达到压缩的目的。

无监督学习中的数据降维技术,如主成分分析(PrincipalComponentAnalysis,PCA)和自编码器(Autoencoder),可以用于图像压缩中。

例如,PCA可以通过将图像数据投影到低维空间中的主成分上来实现图像的降维压缩。

自编码器则可以通过学习图像的低维表示和重构图像来实现数据的降维和压缩。<图片压缩不是非得机器学习,但无监督学习确实可以实现图片压缩! >这里是一个降维问题。

无监督学习的典型应用

无监督学习的应用非常广泛,包括但不限于以下几个方面:

1.聚类(Clustering) : 将数据集中的样本根据相似性进行自动分类,形成不同的簇。典型的例子包括顾客分群、社交网络用户聚类等。

2.异常检测(Anomaly Detection) : 识别数据中的异常样本,这些样本与正常样本不同,可能是潜在的异常事件或异常行为。典型的例子包括反洗钱、信用卡欺诈检测等。

3.降维(Dimensionality Reduction) : 将高维数据映射到低维空间,保留数据的主要信息,去除冗余和噪音。典型的例子包括图像压缩等。

4.关联规则挖掘(Association Rule Mining) : 从大规模数据集中发现频繁出现的关联规则,用于发现数据中的潜在关联关系。典型的例子包括购物篮分析、推荐系统等。

常见的无监督学习的算法

聚类算法如K均值聚类(K-means clustering)

降维算法如主成分分析(PCA)、t-SNE等

异常检测算法如基于密度的异常检测(Density-based Anomaly Detection)、基于距离的异常检测(Distance-based Anomaly Detection)等。

无监督学习在许多实际应用中都有广泛的应用,如图像处理、自然语言处理、推荐系统等领域。

1.1.3 Tik Tok推荐算法: 一个有监督学习与无监督学习并用的例子

无监督学习和有监督学习都是机器学习的范式,两者经常在同一个算法中被一同使用。

TikTok等产品中使用的推荐算法通常是基于机器学习技术,包括了一系列的无监督学习和监督学习方法。

在推荐系统中,无监督学习方法可以用于从大量的未标记数据中学习用户行为模式、内容特征等信息,从而为用户提供个性化的推荐。

例如,TikTok的推荐算法可能通过无监督学习方法,如聚类(Clustering)、降维(Dimensionality Reduction)等,对用户上传的大量视频数据进行分析和处理,从中提取出视频的特征。

如视频的内容、情感、时长等,并根据用户的观看历史、行为偏好等信息,将相似的视频聚类在一起,从而实现相似内容的推荐。

监督学习方法也常常用于推荐算法中,通过使用标记的样本数据,如用户的历史行为数据(如点击、点赞、评论等)和用户的反馈(如用户的喜好、兴趣等),来训练模型进行推荐预测。

自监督学习本身是无监督学习的一种范式,因为它也不需要人工去打标签;但在体现出来的能力上,自监督学习和无监督学习非常不一样,因此在这里做单独介绍。

自监督学习主要是利用辅助任务(Pretext)从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征。

这样写会比较抽象,但可以参考下图:

左图展示了自监督学习和有监督学习的区别: 例如,一段文字: "白银说的话就像是一位癌症晚期患者说的话。

他都已经这样了,你为什么不顺从他,你总得给人留一段美好的回忆吧,最后的时光里。"

一个有监督任务就是判断这句话是否有害。这句话当然有害,但机器不可能自动学习出它有害,我们需要人工给他打上"有害"的标签。

但如果是无监督学习任务,例如完形填空,机器就可以这么做: 把上面这段文字先变成"白银说的话就像是一位癌症晚期患者说的话。

他都【Masked】经这样了,你为什么【Masked】顺从他,你总得给人留一段美好的回忆吧,最后的时光里。"输入给模型,要求模型去预测两个被遮掩的词是什么。

而被遮住的这两个词是一个Ground Truth,它不需要任何人做判断,根据输入给机器的原文我们就知道这两个Masked标识对应的得是"已"和"不"。

这样一来,机器就可以根据一个预训练任务,对输入的样本自动产生新的输入x',自动产生标注x",并且用于学习了。

不要看自监督学习好像很容易理解,事实上它是一个非常天才的想法。

1.1.4 强化学习 Reinforcement Learning

强化学习的基本定义

在强化学习中,Agent通过与环境的相互作用,观察环境的状态(State),执行不同的动作(Action),接收环境的反馈(奖励信号,奖励Reward)。

并根据反馈来调整其行为策略(Policy),从而逐渐学习如何在不同的环境中做出最优的决策。强化学习的关键特点包括以下几点:

1.Environment和State: 强化学习中的Agent与Environment进行交互,Agent通过观察Environment的State来感知环境的变化并进行决策。

(eg.我们开车的时候与我们所看到的路况进行交互,根据路上的行人、其他汽车、指示牌等的状态,选择怎么去打方向盘。那么整个汽车所在的公路就是Environment,公路上具体的路况就是State)

2.Action和Policy: Agent可以采取不同的Action来影响Environment的State。那么在什么样的State下,Agent要采取什么样的Action?

Agent是基于一定的策略Policy来选择要执行的Action的,而这个Policy往往是一个以当前State为自变量,要执行的Action为输出的一个函数。

(eg.我们在路上怎么打方向盘,就是Action。在什么样的路况下我们会怎么去打方向盘,就是Policy。我们打方向盘这件事情会影响环境的状态;而环境的状态改变又会返回来决定我们该怎么打方向盘。)

3.Reward和Goal: 环境向Agent提供奖励信号,用于反馈Agent的行为质量。Agent的目标是通过最大化预期的累积奖励,以此来学习如何做出最佳决策。

(eg.路边的其他车会向你打鸣告诉你你开的不好,违规了的话交警会对你处罚,这就是一个负的Reward。

你的Goal可能是以最快的速度最安全、不违规的到达目的地,你通过不断的与环境交互,学习出一个最佳的开车Policy,从而实现这个目标。)

4.试错学习和优化: 强化学习中的Agent通过与环境的交互来不断学习和优化其策略,这是一个不断试错的过程。

State和Action之间的往复交互是强化学习的主体部分,所以是Trial and Error Learning。强化学习的最终目标是一个好的策略。

5.价值决定策略: 价值,就是预期将来会得到的所有奖励之和。

(eg.下围棋的时候,如果一步棋决定了胜局,那么这步棋就特别有价值!)<价值有两个函数--State ValueFunction和Action Value Function>

强化学习不要求预先给定任何数据,而是通过接收环境对动作的奖励(反馈)获得学习信息并更新模型参数。

强化学习是除了监督学习和非监督学习之外的第三种基本的机器学习方法。

与监督学习不同的是,强化学习不需要带标签的输入输出对,同时也无需对非最优解的精确地纠正。

其关注点在于寻找探索(对未知领域的,Exploration)和利用(对已有知识的,Exploitation)的平衡

1.1.5 强化学习的典型应用

1. * 自动驾驶车辆*: 强化学习在自动驾驶领域中也得到了广泛应用,例如通过训练智能车辆在不同道路条件下学习驾驶策略,包括避免碰撞、减少能耗等。

(自动驾驶中既要用有监督学习的图像识别技术去理解当前的State,又要用RL的技术去不断优化驾驶策略)

2. * 游戏与游戏玩家*: 强化学习被广泛用于电子游戏中,例如通过训练智能代理在复杂的游戏环境中进行游戏策略决策,如围棋、国际象棋等。

同时,强化学习还可以用于训练游戏中的虚拟角色,使其能够自主学习和优化其行为策略。(eg.AlphaGo)

3.机器人控制: 强化学习在机器人领域中有广泛的应用,包括自主导航、机器人手臂控制、无人机控制等。

通过强化学习,机器人可以从与环境的交互中学习控制策略,以完成复杂的任务。

常见的强化学习的算法

强化学习的算法整体分为价值学习、策略学习、Actor-Critic Method.

1.2 机器学习的分类: 根据网络的深度和复杂性分类

1.2.1 浅层学习(Shallow Learning)

浅层学习通常指的是使用较少层次、较简单结构的机器学习模型,例如传统的线性回归、逻辑回归决策树、支持向量机等。

这些模型通常只有一层或者很少的层,且每一层的特征表示较为简单和浅显,不具备较强的抽象能力。

浅层学习的基本定义

浅层学习(Shallow Learning),也称为表面学习或者传统学习,是一种机器学习方法其主要通过构建浅层的、较简单的模型来进行模式识别、分类、回归等任务。

浅层学习方法通常包括传统的统计学习方法,如逻辑回归(LogisticRegression)、决策树(Decision Tree)、支持向量机(Support VectorMachine)、朴素贝叶斯(NaiveBayes)等。

以及一些非线性模型,如K近邻(K-NearestNeighbors)和随机森林(Random Forests)等。这些方法通常基于人工设计的特征(即特征工程),通过对特征进行处理和选择来构建模型,并利用这些模型进行预测和分类。

相对于深度学习(Deep Learning)而言,浅层学习通常采用较简单的模型架构和较少的层次结构,不涉及复杂的深层神经网络结构。

#浅层学习最大的特点就是特征是人工设计的,通过特征工程,去依据原始数据,决定模型的输入。

1.2.2 特征(Feature)

特征(Feature),是指从原始数据中提取出的、用于表示样本的属性或信息。(eg.想起有监督学习任务里我们提到的财务舞弊识别的例子了吗?一份财务报表有一堆信息,机器是看不懂的。

我们可能会利用财务报表,计算出资产负债率、流动比率指标,作为浮点数输入给机器。那么资产负债率和流动比率就是我们选出来的财务报表的特征!)

在机器学习模型中,特征被用作模型的输入,用于表示样本的不同属性,从而帮助模型进行学习和预测。因此,首先要将数据表现为一组特征,而后才能将其输入,进行机器学习。

#特征说白了就是你基于原始信息,具体给机器喂了些什么。

1.开始进入正题!seq2seq模型与注意力机制Attention!

需要的先验知识: MLP,RNN,第六章的基本知识。

#前面讲了那么多,终于我们开始学习一些和我们所能接触到的大语言模型更加接近的内容了!!读这一章前最好先弄明白什么是RNN噢。

细讲seq2seq对了解大语言模型有重大的意义: 它启发了序列自编码器,这对于后来出现的NLP的自监督学习很有意义。而且Encoder-Decoder的架构也在Transformer里出现。

#Attention在一开始是一个对基于RNN的seq2seq模型的改进技巧。当然,后面出现了放弃了RNN,只保留了Attention的剧情,大家应该都提前知道了。

1.1 seq2seq结构: 以其在NMT中的应用为例

seq2seq是一个很强大的模型,不但可以用来做机器翻译,还可以用来做很多NLP任务,比如自动摘要、对话系统等。

不过它最早是用来做机器翻译的,而且翻译确实是一个很经典的场景,所以这里我们先拿翻译举例。

神经机器翻译(NMT)用了seq2seg的结构,它的另一个常见的名字是编码-解码器(EncoderDecoder)结构。

叫seq2seq的原因,在于其输入和输出都是一个词序列。那就是sequence to sequence,即seq2seq。所以正确读音是/si:k-tu:-si:k/噢!不要读错了

编码器 Encoder: 读取输入文本,将输入的文本(词序列)整体编码成一个表示向量,而后交给Decoder进行解码。

在编码器中,输入的词会变成一个one-hot向量,而后经过Embedding层投射到一个(512维的)向量空间,随后输入到RNN的结构里面去

(这个RNN一般是LSTM,而且可以是双向等结构,而且可以有很多层,即把神经网络搞的很深,从而可以去提取更高级的特征)。

Context Vector: 经过了编码器中的RNN的一系列计算,输出来的对源文本整体的一个表示向量。

解码器Decoder: 接受编码器编码出的输入(以及标准答案的词序列),自行生成文字。在NMT中,Decoder的输出是预测出的词的序列,但输入在训练和预测时有所不同。

1.2 详解Decoder: 他就是个语言模型!

1.2.1 为什么训练和预测时的Decoder不一样?

Decoder在训练时是根据标准答案做输出,而预测时则是在自产自销。为什么要做这种区分呢?

这里其实涉及到两种不同的Decode方式:

根据标准答案来Decode的方式,我们称为Teacher Forcing。

根据上一步的输出作为下一步输入的Decode方式,Free Running。

"其实,free running的模式真的不能在训练时使用吗?--当然是可以的!从理论上没有任何的问题,又不是不能跑。但是,在实践中人们发现,这样训练太难了。

因为没有任何的引导,一开始会完全是瞎预测,正所谓"一步错,步步错",而且越错越离谱,这样会导致训练时的累积损失太大(「误差爆炸」问题,exposurebias),训练起来就很费劲。

这个时候,如果我们能够在每一步的预测时,让老师来指导一下,即提示一下上一个词的正确答案,decoder就可以快速步入正轨,训练过程也可以更快收敛。

因此大家把这种方法称为teacher forcing。所以,这种操作的目的就是为了使得训练过程更容易。"

1.2.2 计划采样 Scheduled Sampling

Decoder一上来就瞎预测自己来跑,就像是我们高中盲目刷题,在完全没有老师指导的情况下不断积累自己瞎ib写题产生的经验,可能越走越偏。

一直按照标准答案来训练,就像高中刷题时一直看着正确答案来写,如果真上了高考考场,没了标准答案,那就忽然蒙圈了。。

所以,更好的办法,也是更常用的办法,是老师只给适量的引导,学生也积极学习。

计划采样: 我们设置一个概率p,每一步,以概率p靠自己上一步的输入来预测,以概率1-p根据标准答案来预测。

1.2.3 贪心算法 VS Beam Search

1.2.3.1 Greedy Decoding

如果我们每一步都预测出概率最大的那个词,而后输入给下一步,那么这种方式我们就称之为GreedyDecoding.

但是Greedy Decoding这件事情肯定存在一些问题。

比如,你用你的手机输入法去打字的时候,它也是会猜你的下一个词,并且按概率排序的!那如果我们一直点击输入法给你推荐的第一个词......

eg.我用iPhone打了"不要"两个字,而后一直只点击苹果系统自带输入法推荐的第一个词。就有了下面这段文字:

不要再来了,我们的生活方式是什么时候回来呢,我们的生活方式是什么时候回来呢,我们的生活方式是什么时候回来呢,我们的生活方式是什么时候回来呢,我们的生活方式

嗯,甚至还循环起来了。这可真蠢!

这其实体现了贪心算法的一个问题:Greedy只能保证每一步是最优的,但却无法保证预测出来的句子整体是最优的。

特别是如果在t时刻贪心选择的词不是全局最优,会导致t时刻往后的所有预测词都是错误的,这样便就没有回头路了。

为了解决局部最优≠全局最优的问题,我们常常会采用BeamSearch方案。

1.2.3.2 Beam Search

Beam Search的思想是每一步都多选几个可能的序列作为候选,最后综合考虑,选出最优组合。具体方案如下:

在beam search的过程中,不同路径预测输出结束标志符的时间点可能不一样,有些路径可能提前结束了,称为完全路径。

我们会暂时把这些完全路径放一边,其他路径接着beamsearch。

Beam search的停止条件有很多种,可以设置一个最大的搜索时间步数,也可以设置收集到的最多的完全路径数。

当beam search结束时,需要从n条完全路径中选一个打分最高的路径作为最终结果。

Beam search作为一种剪枝策略,并不能保证得到全局最优解,但它能以较大的概率得到全局最优解,同时相比于穷举搜索极大的提高了搜索效率。

2.注意力机制 Attention

2.1 朴素seq2seq的信息瓶颈

朴素的seq2seq神经机器翻译模型中,我们用EncoderRNN的最后一个神经元的隐状态作为DecoderRNN的初始隐状态。

这里存在一个问题: Encoder的最后一个隐状态(Context Vector)承载了源句子的所有信息,成为整个模型的"信息"瓶颈。

注意力机制就是希望打破这个信息瓶颈。宏观来看,Attention直接把Decoder中的每一个隐层,和Encoder中的每一个隐层,都连接起来了!

2.2 Attention机制的直观理解

前面提到了,"Attention直接把Decoder中的每一个隐层,和Encoder中的每一个隐层,都连接起来了"这样的话,EncoderRNN的最后一个隐状态就不再是"信息"瓶颈了。

我们在解码的时候,是一个词一个词生成的。

对于每一个词,它不仅可以接受ContextVector作为辅助信息,也可以通过"直连"线路去获取EncoderRNN中的其他的隐状态的信息,从而Decoder的解码进行辅助。

参考右图中的Decoder的第二个时间步,我们以he为输入,并且综合考虑了il、a、m'、entarte的隐状态。

可见,"he"时刻的注意力主要分布在Encoder的第2和第4个词上,解码器最终做出了输出hit的决定。

2.3 Attention机制的数学表达

2.3.1 向量的点积操作

点积(Dot product)是线性代数中的一种运算,它是同维两个向量之间的一种运算方式,通常用符号"·"表示。

也就是说,点积将两个向量中对应位置的元素相乘后再求和。因此,点积的结果是一个标量(Scalar),表示两个向量的相似程度或者两个向量在同一方向上的投影长度。

总之,我们需要知道两件事: 1、点积的结果是一个标量 2、点积的结果反映了两个同维向量的相似程度

2.3.2 Attention机制的步骤

2.3.3 Attention机制带来的好处

想象机器要翻译这么一句话: The animal didn't cross the street because it was too tired

it指的是谁呢?是street,还是animal?根据下图,我们可以看到,解码器处理it这个词的时候,注意力机制能够让it和"The animal"关联起来,并将其融入到it的编码中。

在seq2seq架构中,Attention机制可以带来以下好处:

1.解决了信息瓶颈问题: 在传统的seq2seq模型中,编码器将整个源序列编码为一个固定长度的向量。

而Attention机制可以让解码器在每个时间步上,根据源序列中不同位置的信息进行不同程度的"聚焦",充分利用源序列中的信息,提高型的表现。

2.提高处理长序列的能力,提升模型的泛化性能: Attention机制可以使模型对输入序列的长度更加鲁棒,不会因为输入序列长度的变化而影响模型的性能。

这是因为Attention机制会根据不同的输入序列长度自适应地调整"聚焦"的程度,使得型可以有效地处理不同长度的输入序列。

3.增加模型的可解释性: Attention机制可以让我们更加直观地理解模型在生成每个输出时"关注"了源序列中的哪些部分。

并且可以通过可视化Attention权重来直观地观察模型的注意力分配情况,从而更好地调试和优化模型。例子可以参考上面的可视化图。

4.提高翻译效果: 在机器翻译任务中,Attention机制可以将源序列中与目标序列有关联的部分显式地"聚焦",从而提高翻译效果。例子同样参考The animal didn't cross the street because itwas too tired的翻译。

5.有助于缓解梯度消失问题,因为Decoder的每一时间步都和所有Encoder的隐状态相连了。

自从seq2seq和NMT横空出世以来,机器翻译取得了巨大的进展。

从前的机器翻译的至高点--SMT(统计机器翻译)都是极其复杂的,涉及到大量的特征工程,海量的专家知识,无数的资源积累,繁多的功能模块,还需要庞大的人力去维护。

现在直接被一个很深很深的神经网络干翻在地!大量特征工程师&语言专家失业SOS!

3.还有一些想说的

3.1 SMT确实牛逼,但还有一些问题

seq2seq用于神经翻译,在性能上肯定是非常优秀的,但它依然存在一些问题

1.领域不匹配。很多时候,我们在Wikipedia、论文、新闻稿等这种比较正式的语料库中训练,那么用来翻译Twitter,甚至在游戏国际服里和外国人的交流这种口语或者非正式语料时,就会有问题。

2.长文本的翻译,目前介绍的都只是翻译一个句子,句子相对来说还是比较短的,如果要翻译一篇论文或一本书,那么怎样考虑非常长距离的上下文依赖关系?

3.对一些惯用语、俚语等翻译容易闹笑话(说曹操,曹操到;笑死我了;等等)讲这些的目的其实还是想要铺垫后面的预训练大语言模型。

3.2 Attention开始变为深度学习的一种通用技术

现在,Attention已经变成了DL的一个的通用技术,并不局限于seq2seq和机器翻译。其一般的定义是:

#我把Attention的矩阵运算给折叠了,因为基本是纯数学。

3.3 Attention机制中点积操作的矩阵运算

我们在seq2seq里首次提到了注意力机制,我们知道了在Attention机制中,点积操作用于计算输入序列和输出序列中每个位置的相关性得分。

在seg2seq里参与点积的分别是Encoder中每个时间步的隐状态和Decoder中每个时间步的隐状态。

因此注意力机制的计算过程其实很简单,就是两个矩阵的乘法运算。

AI大模型全套学习资源【点击蓝字获取】

相关推荐
AI大模型36 分钟前
万字长文!从 0 到 1 搭建基于 LangGraph 的 AI Agent
langchain·llm·agent
Baihai_IDP1 小时前
OpenAI 开源模型 gpt-oss 是在合成数据上训练的吗?一些合理推测
开源·llm·openai
聚客AI2 小时前
🧠深度解析模型压缩革命:减枝、量化、知识蒸馏
人工智能·深度学习·llm
CodeDevMaster2 小时前
Claude Code Router:一键接入多种AI模型的智能路由器
llm·ai编程·claude
302AI4 小时前
编程能力超越 Claude Opus 4?DeepSeek V3.1最新版本实测
llm·ai编程·deepseek
老顾聊技术7 小时前
老顾深度解析【字节跳动的AI项目DeerFlow】源码之工程结构(六)
llm·agent
亚马逊云开发者7 小时前
在 Amazon Bedrock 中结合 RAG 与 MCP 高效缓解提示词膨胀问题
llm
数据智能老司机7 小时前
MCP 实战——MCP 服务器的身份验证与部署
llm·agent·mcp
数据智能老司机7 小时前
MCP 实战——高级服务器架构
llm·agent·mcp