2026/4/6 11:22:05
网站建设
项目流程
西安网站建设 北郊,在浙学网页设计与制作答案,手机网站添加微信方式,大门户网站提到大模型#xff0c;就绕不开Transformer——这个由谷歌DeepMind在2017年通过论文《Attention Is All You Need》横空出世的模型架构#xff0c;彻底颠覆了传统序列处理方式。它摒弃了循环神经网络#xff08;RNN#xff09;的串行结构#xff0c;完全基于注意力机制构建…提到大模型就绕不开Transformer——这个由谷歌DeepMind在2017年通过论文《Attention Is All You Need》横空出世的模型架构彻底颠覆了传统序列处理方式。它摒弃了循环神经网络RNN的串行结构完全基于注意力机制构建成为如今ChatGPT、BERT等主流大模型的“骨架”。对于刚入门大模型的程序员和小白来说吃透Transformer的核心逻辑就等于掌握了大模型技术的钥匙。本文将从应用场景到核心架构再到实操细节一步步拆解Transformer帮你快速入门。Transformer有多重要看这些应用场景就懂了Transformer的核心能力是处理“序列到序列”seq2seq的映射问题简单说就是把一段输入数据如文本、音频转化为另一段目标数据。这种强大的适配性让它在多个领域“大杀四方”你日常接触的很多技术都离不开它文本翻译从英语文献翻译成中文或小语种间的实时转换Transformer是谷歌翻译、百度翻译等工具的核心动力文本生成ChatGPT的对话生成、AI写作助手的文案创作、代码生成工具如GitHub Copilot的代码补全都依赖其强大的生成能力音频处理语音转文字如微信语音转文字、文字转语音如有声书合成以及语音识别中的噪声过滤都有它的身影序列分类电商平台的商品评论情感分析判断是好评还是差评、新闻稿件的自动分类都靠它实现生物医药基因序列的分析、蛋白质结构的预测Transformer正在助力生命科学的突破。核心优势总结相比传统RNNTransformer能轻松捕捉长文本中的依赖关系比如一句话开头和结尾的关联同时支持并行计算训练效率提升数倍而残差连接、多头注意力等设计还解决了深层网络的梯度消失问题——这也是它能支撑起百亿、千亿参数大模型的关键。模型架构原文中通过一张图清晰地展示了该模型的架构如图它主要由编码器和解码器两个部分组成编码器和解码器又分别是N个相同模块的堆叠。整个体系实际上是由多头注意力层、残差连接层、归一化层、前馈网络层的排列组合构成。文本信息经过三个阶段的处理词嵌入编码得到语义信息位置编码得到位置信息注意力编码上下文信息最终将得到一个抽象的包含了全部语义和上下文信息的向量通过该向量来预测可能的输出值。前置准备文字嵌入在处理序列问题时第一步永远是把序列处理为计算机可以理解的“数字”对于文本序列就是所谓词嵌入。假设有输入序列可被分词为对于其中的每个词可以将其转变为维度为的嵌入向量整个输入序列可以用输入矩阵表示从文本到向量已有很多成熟的模块且这部分并不是Transformer的核心创新点在此不做赘述可以参考本站其它教学学习。总之经过文字嵌入后句子中的每个词将被转化为独特的向量后续的计算将围绕词向量展开。QKV计算QKV矩阵的计算是注意力的核心首先说明单个字词的注意力计算示意图如下单个词向量分别乘以权重矩阵 、、得到 、、这三个新的词向量。可以把它们理解为query、key、和value其中query编码了要查询的值key编码了被查询的值value编码了具体的值权重矩阵 、、 是神经网络需要学习训练的部分。得到query、key、value三个向量后根据注意力计算公式就可以计算相似度权重权重代表上下文的每个词对当前词的影响程度随后再将上下文信息注入原始向量得到最后的编码向量。我们利用矩阵运算的性质将输入的序列的N个词“打包”成一个矩阵可以同样并行计算所有词的query、key、value向量而得到了三个新矩阵分别为Q、K、V矩阵。示意图如下在实际工程中借助GPU强大的并行计算能力可以很快的计算出所有输入词的QKV矩阵。而且可以发现需要学习的模型权重 、、 的形状是 分别指词向量维度和模型输出维度并没有对输入序列长度做约束借此就可以处理任意序列/可变长序列。注意力计算在得到QKV矩阵后就需要进行注意力的计算实际上计算公式有多种多样按原论文中的表述它们使用如下的缩放点积注意力来计算。缩放点积注意力模块缩放点积注意力算法是自注意力的一种实现形式它通过如下公式计算对于形状为的QKV矩阵来说作为查询矩阵和键矩阵的转置做矩阵乘法计算得到一个方阵这个方阵的每个元素表示的相似度或者说受哪个的上下文影响最大。得到方阵后对每个元素除以是键向量的维度D使得元素更加平缓因为 Softmax 对大数值敏感过大的点积会导致 Softmax 输出过于尖锐只有一个权重接近 1其余接近 0缩放后能让注意力更均衡让模型不会过度聚焦于某一个键而是广泛的学习全局信息。最后按行进行归一化把注意力分数变成概率分布矩阵的每一行概率和为1这时也相当于每行中的元素是一个权重值这个权重表示当前 query 对各个 key 的注意力权重当前 query 对各个 key 的注意力权重在后续计算中进行加权求和。具体的运算过程如下计算最后一步得所谓加权求和实际上利用了矩阵乘法的性质从示意图最右侧可以看出相当于用注意力分数的每一行点乘的每一列加和作为结果的值以第一个元素为例即输出矩阵第一个向量的第一个元素综合考虑了上下文所有词并按它们的影响程度权重计算这样新得到的词向量就抽象的融合了上下文信息。多头注意力模块所谓多头注意力就是将多个注意力层堆叠如果把单个注意力头类比为一个提取输入数据特征的评委那么多头注意力就相当于多个评委每个评委注意不同的侧重点再将多个评委的意见整合到一起这样做有利于模型学习到更加丰富的信息。此时就涉及到头数和单层输出维度的设置问题如果输入QKV矩阵依旧是那么每个注意力头都会输出一个矩阵这时拼接的话就会得到它的维度将会翻倍这对硬件有着巨大的挑战而且参数量暴增容易导致过拟合。在原论文中作者设置了头数是而单个头的输出维度是这里的 是单头时的维度。这么做相当于把原先单头注意力的QKV矩阵拆分成等份经过注意力计算后得到个输出矩阵将每个输出拼接总维度仍为在计算量和参数量不变的情况下很好的做到了多头注意力采集更丰富的信息。在实际的操作中会把QKV矩阵分别经过线性层处理得到符合形状的输入矩阵再经过注意力公式计算即可。下图是多头注意力的详细示意图多头注意力通过多视角拆分 - 并行计算 - 整合特征让模型能同时关注不同子空间的信息比如有的头关注语法有的头关注语义从而学习到更全面的表示提升模型性能。掩膜注意力模块上文我们看到对于一个序列来说通过几次矩阵运算就可以同时算出所有分词的特征向量并不需要等待上一个字符生成后再计算下一个字符这种并行计算方法大大提高了效率。不过在训练过程中我们不能一次性把已知答案所有的上下文全部输入现在需要设计一种方法让序列中字符在被计算后只包含它之前的上下文信息而不让它提前看到后文即可使用如下的掩码操作在QK矩阵计算相似度时人为地把结果矩阵地上三角部分设为这样在经过后上三角部分全变为0再计算注意力时可以看到第一个字符“我”向量与矩阵相乘时后两个字符相似度为0结果中只包含“我”向量地信息第二个字符“和”相乘时只包含“我”、“和”两个字符的信息最后“你”字符相乘时将包含全部上下文信息。通过这种方法我们巧妙地生成了每行词向量只包含它上文信息的矩阵在训练过程中并行地训练模型。交叉注意力模块核心问题如何将输入序列和输出序列对应在上文的讨论中我们通过编码器得到了包含输入序列上下文信息的矩阵也得到了包含已经输出序列的上下文信息矩阵在生成过程中我们期望设计一个模块能够根据输入序列和前一步生成的序列继续生成下一个字符那这就需要交叉注意力模块它负责把输入输出相联系。所谓交叉注意力就是该模块的QKV来自不同的部分在Transformer里是用编码器的输出来计算K、V矩阵用解码器的掩码注意力模块计算Q矩阵利用Q这三个KV计算注意力这个注意力的结果就包含了两个序列的相似度权重信息。交叉注意力就是要让 “输出序列生成” 既符合 “已生成输出的上下文”又对齐 “输入序列的语义”。例如编码器得到的矩阵让每个输入词向量带上了输入序列的上下文解码器掩码注意力输出的矩阵让已生成的个词向量带上了它的上下文那么交叉注意力的权重矩阵、、的形状都是得到QKV是计算示意图如下计算相似度矩阵再进行归一化处理得到最后用来计算注意力相当于加权求和形状为。该矩阵的每一行对应解码器中 “已生成的第 i 个目标词”而行向量的每一个维度则融合了编码器中与该目标词语义相关的源序列信息。后续的流程中将根据这个向量来预测序列的下一个可能的输出而交叉注意力模块则是将两个不同来源序列相对应的核心。总结Transformer所涉及的全部三种注意力机制注意力类型输入Q输入K,V学习目标编码器自注意力输入词自身所有输入词源语言内部关系解码器掩码注意力当前输出词已生成输出词目标语言内部关系解码器交叉注意力解码器状态编码器输出跨语言对齐映射需要明确的一点是如果的最简化无堆叠的的Transformer将需要个权重矩阵编码器多头注意力、解码器掩码注意力、解码器交叉注意力各三个权重矩阵。权重矩阵并不是立刻得到的而是通过神经网络不断训练优化得到的最终的训练目的将会使输入经过权重计算后得到的QKV矩阵最能代表我们设定的功能所求出的注意力也将最能反应序列的上下文信息而这几个权重则是Transformer的核心Transformer处理流程了解完Transformer的所有注意力模块后简略介绍一下模型的其它模以及数据的总体流程图。编码器对于文本序列来说将输入序列分词后进行词嵌入生成的词向量包含语义信息通过语义编码通常是正弦位置编码此时的词向量包含位置信息。这个位置信息是指这个词在句子中的哪个位置并不是“上下文的语义”位置对词向量分别乘以权重矩阵 、、得到QKV矩阵输入多头注意力模块根据注意力公式计算得到注意力词向量此时的向量将包含上下文信息每个向量的值都会受全文中词的影响注意力模块的输出会和第二步的输出进行一次残差连接并计算归一化残差操作将避免长距离传递的数据稀释将归一化矩阵输入一个前馈网络网络输出和前馈网络输入再进行一次残差连接其结果进行归一化。前馈层会增强模型的非线性表达能力增加泛化能力步骤3的输入和步骤5的输出矩阵形状一致因此步骤3~5组成的编码器模块可以首位相连堆叠N个在原论文中。解码器解码器部分的处理流程在训练和推理阶段略有不同在此分两部分讲解。训练训练时每条数据将以 “我爱你” - I love you对应同时输入编码器和解码器序列我爱你首尾分别增加起始符sos和终止符eos变成序列sos 我 爱 你 eos在编码器中生成带上下文语义的向量序列I love you首尾分别增加起始符sos和终止符eos变成序列sos I love you eos再经过掩码注意力得到的每一行向量只包含它前面的序列上下文而屏蔽后文最终交叉注意力的输出矩阵维度为 交叉注意力矩阵被送入前馈层前馈层对矩阵中的每一行对应目标序列中的每个词向量独立进行线性变换、激活函数运算等最终输出的结果维度还是 前馈层的输出经过线性变换和 函数得到每个位置预测下一个词的概率分布维度是 V 是词表大小将每个位置的预测结果与真实目标序列中对应位置的词进行比较使用损失函数并行计算所有位置的损失值再求和得到总的损失反向传播更新权重。推理模型训练完成后进行推理此时只知道输入序列我爱你需要模型自己来判断生成序列I love you这时需要自回归逐词生成序列我爱你在编码器中生成带上下文语义的向量此时解码器输入起始符sos;起始符sos经过掩码注意力模块生成序列上下文当然这里它并没有上文两个结果被送入交叉注意模块计算交叉注意力结果向量形状为该向量包含了输入序列的上下文语意和起始符语义经过前馈层得到预测下一个词的向量表示经过层输出模型所预测的下一个词的概率分布维度是 V 是词表大小。正常情况下这里将预测得到字符I将预测的词写入序列得到sos I把它再送入解码器的输入端循环步骤2~4直到生成终止符。损失函数最后简要介绍Transformer损失函数的计算方法在用于seq2seq任务时最常用是交叉熵损失模型输出结果经过Transformer解码器中的前馈网络、线性层和Softmax函数后会得到每个位置预测下一个词的概率分布。假设目标序列长度为 词表大小为那么预测结果是一个维度为的矩阵矩阵中第行第列的元素表示在目标序列的第个位置预测为词表中第个词的概率每一行概率最高的那个值将会作为模型的输出词。给定的真实目标序列可以表示为一个长度为 的向量每个元素是目标序列中对应位置词在词表中的索引。例如在机器翻译任务 “我爱你 → I love you” 中假设 “I” “love” “you” 在词表中的编号分别为 、、真实目标序列向量就是 。单个位置的交叉熵损失以目标序列第 个位置为例预测的概率分布为 设真实词的索引为 预测词的索引为 起初可能出现真实词和预测此不一致的情况。我们根据真实词的索引取出它对应位置的概率值 则该位置的交叉熵损失 为这意味着模型预测真实词的概率越高该位置的损失值就越低。训练的过程就是让模型预测的最大概率词和真实词更加接近。平均交叉熵损失最后将目标序列所有位置的交叉熵损失求和再除以序列长度 得到平均交叉熵损失即训练时使用的损失值 举例说明假设目标序列长度 词表大小 模型预测结果为给定的真实目标序列为 词表索引从 开始那么• 矩阵第一行是模型预测的在该位置最可能输出词表中的哪个词。已知应该输出的真实词对应索引1概率为但模型预测的最大概率词对应索引2概率为因此我们要加损失调整模型参数该位置的损失为 • 第 个位置损失 同理但这一行模型正确的预测到了词表中第四个值出现的概率最大• 第 个位置损失 同理。平均交叉熵损失通过计算损失利用反向传播算法将损失值反向传播到整个Transformer模型更新模型中的可训练参数使模型预测结果不断接近真实目标序列提升模型性能。在实际应用中还可能结合一些正则化方法如L1、L2正则化来防止模型过拟合进一步优化训练效果。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】为什么要学习大模型我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年人才缺口已超百万凸显培养不足。随着AI技术飞速发展预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。大模型入门到实战全套学习大礼包1、大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通2、大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。3、AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。4、大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。5、大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。适用人群第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…学习是一个过程只要学习就会有挑战。天道酬勤你越努力就会成为越优秀的自己。如果你能在15天内完成所有的任务那你堪称天才。然而如果你能完成 60-70% 的内容你就已经开始具备成为一名大模型 AI 的正确特征了。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】