小白程序员必看:轻松入门大模型核心技术Transformer(收藏版)
Transformer作为机器学习领域的重要技术架构是ChatGPT、GPT-4等大语言模型的基础。本文从高层视角解释Transformer的工作原理不依赖代码与数学公式避免晦涩的专业术语帮助读者直观理解其功能与实现方式包括输入处理、令牌嵌入、注意力机制、多头注意力等核心概念以及编码器、解码器、编码器-解码器等不同架构类型。什么是 TransformerTransformer 是一类神经网络架构非常适合处理以序列为输入的任务。这类序列中最常见的例子就是句子可以看作一组有序的单词。这类模型的目标是为序列中的每个元素生成一个数值表示其中包含该元素及其上下文的关键信息。生成的数值表示可输入到后续网络中用于执行生成、分类等多种任务。通过构建这种高信息量的表示模型能让下游网络更好地理解输入序列内部的模式与关系从而提升输出的连贯性与上下文相关性。Transformer 的核心优势在于能够有效处理序列中的长距离依赖计算效率高支持并行处理序列这使其在机器翻译、情感分析、文本生成等任务中尤为适用。Transformer 的输入是什么要将输入传入 Transformer我们必须先将其转换为令牌序列token sequence即用一组整数来表示输入内容。由于 Transformer 最初应用于自然语言处理NLP领域我们先以此场景为例。将句子转换为令牌序列的最简单方法是定义一个作为查找表的词典把单词映射为整数。我们可以预留一个特定数值用来表示词典中未包含的单词从而保证每个单词都能被赋予一个整数值。在实际应用中这种文本编码方式较为简单粗糙。例如cat和cats虽然是同一种动物的单复数形式却会被当作完全不同的令牌处理。为解决这一问题研究者提出了 ** 字节对编码Byte-Pair Encoding** 等多种分词策略先将单词拆分为更小的单元再建立索引。此外通常还会加入特殊令牌来表示句子开头、结尾等信息为模型提供更多上下文。我们通过下面的例子来更好地理解分词过程“Hello there, isn’t the weather nice today in Drosval?”其中Drosval是 GPT‑4 根据提示词生成的虚构地名“你能创造一个听起来属于 David Gemmell 的 Drenai 世界的虚构地名吗”。特意选用这个词是因为它不应该出现在任何现有模型的词典中。使用 Hugging Face Transformers 库中的bert-base-uncased分词器这句话会被转换为如下令牌序列表示每个单词的整数会因具体的模型训练与分词策略而不同。对其进行解码后我们可以看到每个令牌对应的单词有趣的是我们可以看到结果与原始输入并不完全一致。模型添加了特殊令牌缩写被拆分为多个令牌虚构地名也被表示为若干个片段chunk。由于使用了不区分大小写的模型所有大小写信息也都丢失了。不过尽管我们以句子作为示例Transformer 并不局限于文本输入该架构在视觉任务上也表现出色。为了将图像转换为序列ViT 的作者将图像切分为互不重叠的 16×16 像素块并将其拼接成长向量后输入模型。如果在推荐系统中使用 Transformer一种可行的方式是将用户最近浏览的 n 个物品的 ID 作为输入序列传入网络。只要能为特定领域生成有意义的输入令牌表示就可以将其送入 Transformer 网络。令牌嵌入在得到表示输入的整数序列后我们将其转换为嵌入embedding。嵌入是一种便于机器学习算法处理的信息表示方式它将信息表示为一组数值以压缩形式捕获被编码令牌的语义。初始时嵌入被初始化为随机数值序列在训练过程中逐渐学习到有意义的表示。但这类嵌入存在一个固有缺陷不考虑令牌出现的上下文。这主要体现在两个方面。根据任务不同在对令牌进行嵌入时我们通常还需要保留令牌的顺序信息这在自然语言处理等领域尤为重要否则模型会退化为词袋模型。为解决这一问题我们会对嵌入加入位置编码positional encoding。尽管位置编码的实现方式有多种但其核心思想是使用另一组嵌入表示每个令牌在输入序列中的位置并与令牌嵌入相加融合。另一个问题是令牌的含义会根据其周围的令牌而发生变化。请看下面两个句子It’s dark, who turned off the light?Wow, this parcel is really light!在这里单词light出现在两种不同的语境中含义完全不同但根据分词策略的不同它很可能会被映射成同一个令牌得到相同的嵌入向量。在 Transformer 中这一问题是通过 ** 注意力机制attention mechanism** 来解决的。从概念上理解什么是注意力Transformer 架构中最重要的机制或许就是注意力机制。它让网络能够判断输入序列中哪些部分对当前任务最为重要。对于序列中的每个令牌注意力机制都会找出在当前语境下哪些其他令牌对理解它是关键的。在讲解注意力在 Transformer 中的具体实现之前我们先从简单的角度理解它在概念上要达成什么目标以便建立直观认识。一种理解方式是注意力是一种将每个令牌的嵌入替换为包含上下文信息的嵌入的方法而不是不管语境如何都使用完全相同的嵌入。如果我们知道哪些令牌与当前令牌相关就可以通过对这些相关嵌入做加权平均更一般地说是线性组合来捕捉上下文信息。我们用之前见过的其中一个句子举一个简单的例子来看看这一过程。在应用注意力机制之前序列中的嵌入向量不包含相邻词的上下文信息。因此我们可以将单词light的嵌入向量表示为如下的线性组合。在这里我们可以看到权重只是**单位矩阵**。 在应用注意力机制后我们希望学习到一个权重矩阵使得我们可以用类似下面的方式来表示 **light** 对应的嵌入。这一次我们会为与当前令牌最相关的序列部分分配更大的权重从而保证新的嵌入向量能够捕捉到最重要的上下文信息。包含当前上下文信息的嵌入有时被称为上下文嵌入contextualised embeddings这也是我们最终想要得到的结果。现在我们已经从宏观上理解了注意力机制的目标接下来将在本节中讲解它的具体实现方式。注意力是如何计算的注意力机制有多种类型主要区别在于计算线性组合权重的方式。这里我们介绍原论文中提出的缩放点积注意力scaled dot-product attention这也是最常用的方法。本节中假设所有嵌入都已加入位置编码。回顾一下我们的目标是通过原始嵌入的线性组合得到上下文嵌入。我们先从简单情况出发假设所有必要信息都可以被学习到的嵌入向量表示我们只需要计算权重。为了计算权重必须先确定哪些令牌之间是相关的。为此我们需要定义两个嵌入之间的相似度。表示这种相似度的一种方法是使用点积我们希望学习到的嵌入能让分数越高表示两个单词越相关。由于我们需要为每个令牌计算它与序列中其他所有令牌的相关性因此可以将这一过程推广为矩阵乘法从而得到权重矩阵这类矩阵通常被称为注意力分数。 为了使所有权重之和为 1我们还会应用 SoftMax 函数。 然而矩阵乘法可能会产生极大的数值导致 SoftMax 函数在面对较大的注意力分数时输出极小的梯度进而在训练过程中引发梯度消失问题。 为解决这一问题会在应用 SoftMax 之前将注意力分数乘以一个缩放因子。现在我们可以将注意力分数与原始嵌入矩阵相乘从而得到上下文嵌入矩阵这等价于对嵌入向量进行线性组合。尽管模型有可能学到足够复杂的嵌入来生成注意力分数与后续的上下文嵌入但我们需要将大量信息压缩到通常维度较小的嵌入空间中。 因此为了让模型的学习任务稍微简单一些我们引入更多可学习参数。不再直接使用嵌入矩阵而是将其经过三个独立的线性层矩阵乘法处理这能让模型更好地“关注”嵌入中的不同部分。如下图所示从图中可以看到这些线性投影被标记为 Q、K 和 V。在原论文中这三个投影分别被命名为 Query查询、Key键和 Value值据说是受到信息检索领域的启发。就我个人而言我从未觉得这个类比有助于理解因此通常不会过多关注它。我在这里沿用这套术语只是为了与文献保持一致并明确表明这三个线性层是相互独立的。 现在我们已经理解了这一过程的工作原理可以将注意力计算看作一个拥有三个输入的独立模块这三个输入会分别被送入 Q、K 和 V。当我们将同一个嵌入矩阵同时输入到 Q、K 和 V 时这种结构称为自注意力self-attention。什么是多头注意力在实际应用中我们通常会并行使用多个自注意力模块使 Transformer 能够同时关注输入序列的不同部分 —— 这就是多头注意力multi-head attention。多头注意力的思想非常简单将多个独立的自注意力模块的输出拼接concatenate在一起然后输入到一个线性层中。该线性层让模型学习如何融合来自每个注意力头的上下文信息。在实际应用中每个自注意力模块使用的隐藏维度通常设置为原始嵌入维度除以注意力头数以保持嵌入矩阵的形状不变。Transformer 还由哪些部分组成尽管提出 Transformer 的那篇论文标题为《Attention is all you need》如今已广为人知但这个说法容易让人产生误解 ——Transformer 并非只由注意力机制构成它还包含其他组件。一个 Transformer 模块还包含以下部分**前馈神经网络FFN**一种两层神经网络会独立作用于批次和序列中的每个令牌嵌入。前馈网络模块的作用是为 Transformer 引入额外的可学习参数用于保证上下文嵌入具有区分度且分布合理。原始论文使用了GeLU激活函数但前馈网络的具体结构会随架构不同而变化。**层归一化Layer Normalisation**用于提升深度神经网络包括 Transformer的训练稳定性。它对每个序列的激活值进行归一化避免训练过程中激活值过大或过小从而防止出现梯度消失、梯度爆炸等与梯度相关的问题。这种稳定性对训练极深的 Transformer 模型至关重要。**跳跃连接Skip connections**与 ResNet 架构类似Transformer 使用残差连接来缓解梯度消失问题提升训练稳定性。尽管 Transformer 整体架构自提出以来变化不大但层归一化模块的位置会根据具体实现有所不同。原始架构现在称为post-layer norm如下所示如下图所示在近年的主流架构中最常见的布局是前置层归一化pre-layer norm它将归一化模块放在跳跃连接内、自注意力模块与前馈网络模块之前。Transformer 的不同类型有哪些尽管如今已经出现了许多不同的 Transformer 架构但大多数可以归为三大类。编码器架构Encoder Architectures编码器模型的目标是生成上下文嵌入可用于分类、命名实体识别等下游任务。因为其注意力机制能够对整个输入序列进行关注这也是本文到目前为止所讲解的架构类型。最流行的纯编码器 Transformer 系列是 BERT 及其各种变体。将数据经过一个或多个 Transformer 模块后我们会得到一个复杂的上下文嵌入矩阵它为序列中的每个令牌都生成一个嵌入。然而在分类这类下游任务中我们只需要输出一个预测结果。传统做法是取第一个令牌并将其传入一个分类头classification head分类头通常包含 Dropout 层和线性层。这些层的输出可以再经过 SoftMax 函数转换为类别概率。下图展示了其大致结构。解码器架构Decoder Architectures解码器架构与编码器架构几乎完全相同核心区别在于解码器架构使用了掩码自注意力层或称因果自注意力层。这使得注意力机制只能关注输入序列中当前位置及之前的元素意味着生成的上下文嵌入仅会考虑上文信息。主流的纯解码器模型包括 GPT 系列。这通常通过使用二进制下三角矩阵对注意力分数进行掩码并将未掩码的元素替换为负无穷来实现在经过后续的 SoftMax 运算后这些位置的注意力分数会被置为 0。我们可以更新之前的自注意力示意图来体现这一点如下所示。由于解码器架构只能关注当前位置及之前的内容因此通常被用于自回归任务例如序列生成。不过与编码器相比在使用上下文嵌入进行序列生成时还需要考虑一些额外因素。下图展示了一个示例。我们可以注意到虽然解码器会为输入序列中的每个令牌生成上下文嵌入但在生成序列时我们通常会将最后一个令牌对应的嵌入作为后续层的输入。此外在对 logits 应用 SoftMax 函数后如果不做任何过滤得到的将是模型词表中所有令牌的概率分布—— 这个规模可能非常大我们通常希望通过各种过滤策略减少候选数量最常见的方法包括**温度系数调节Temperature Adjustment**温度是一个在 SoftMax 内部使用的参数用于控制生成文本的随机性。它通过调整输出单词的概率分布决定模型输出的创造性或集中程度。温度越高分布越平坦输出越多样。**Top-P 采样Top-P Sampling**该方法根据给定的概率阈值筛选下一个令牌的候选集并只在这些候选上重新归一化概率分布。**Top-K 采样Top-K Sampling**该方法将候选限制为概率或 logit最高的K 个令牌具体取决于实现。在调整或缩小下一个令牌的候选概率分布后我们可以从中采样得到预测结果 —— 这本质上就是从多项分布中抽样。预测出的令牌会被拼接到输入序列中再重新送入模型直到生成指定数量的令牌或模型输出结束令牌stop token—— 一种表示序列终止的特殊令牌。编码器–解码器Encoder-decoder架构Transformer 最初被提出时是用于机器翻译的架构通过编码器 解码器共同完成任务先用编码器生成中间表示再用解码器将其转换为目标输出格式。虽然编码器–解码器架构如今不那么常见但如 T5 这类模型证明了问答、摘要、分类等任务都可以被建模为序列到序列问题并用这种方式解决。编码器–解码器架构的核心区别在于解码器使用编码器–解码器注意力encoder-decoder attention。在注意力计算中它使用编码器的输出作为K 和 V使用解码器模块的输入作为Q。这与自注意力中所有输入都使用同一个嵌入矩阵的情况不同。除此之外整体生成过程与纯解码器架构非常相似。我们可以通过下图直观理解编码器–解码器架构。为简化图示我使用了原论文中的后置层归一化post-layer norm版本即层归一化位于注意力模块之后。结论希望本文能帮助你直观理解 Transformer 的工作原理以相对易懂的方式拆解其中的细节并为揭开现代 Transformer 架构的神秘面纱提供一个良好的起点如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包✅ 从零到一的 AI 学习路径图✅ 大模型调优实战手册附医疗/金融等大厂真实案例✅ 百度/阿里专家闭门录播课✅ 大模型当下最新行业报告✅ 真实大厂面试真题✅ 2026 最新岗位需求图谱所有资料 ⚡️ 朋友们如果有需要《AI大模型入门进阶学习资源包》下方扫码获取~① 全套AI大模型应用开发视频教程包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点② 大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通③ 大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。④ AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。⑤ 大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。⑥ 大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。以上资料如何领取为什么大家都在学大模型最近科技巨头英特尔宣布裁员2万人传统岗位不断缩减但AI相关技术岗疯狂扩招有3-5年经验大厂薪资就能给到50K*20薪不出1年“有AI项目经验”将成为投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。以上全套大模型资料如何领取
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2425992.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!