公司动态

【强烈推荐收藏】Transformer到底解决了什么问题?NLP发展史上的里程碑解析

📅 2026/8/27 14:42:10
【强烈推荐收藏】Transformer到底解决了什么问题?NLP发展史上的里程碑解析
前言本文希望围绕“Transformer到底是解决什么问题的”这个角度阐述NLP发展以来遇到的关键问题和解法通过这些问题引出Transformer实现原理帮助初学者理解。近期小组内发起AI技术的学习分享单看 Transformer的相关资料太“干”了很难较快的理解其中的设计思路本文希望围绕“Transformer到底是解决什么问题的”这个角度阐述NLP发展以来遇到的关键问题和解法通过这些问题引出Transformer实现原理帮助初学者理解。一、人工智能的兴起1950 年计算机科学之父阿兰・图灵Alan Turing发表了一篇划时代的论文《计算机机械与智能》文中预言了创造出具有真正智能的机器的可能性。由于注意到 “智能” 这一概念难以确切定义他提出了一个模仿实验有a、b、c 三个玩家让c来根据a b 的回答猜测a、b的性别。a的工作是来迷惑c 让c尽可能错误b的工作是来配合c 让c尽可能正确现在将a换成电脑如果回答能和之前一样那么说明计算机a通过了图灵测试。关于这个问题后来进一步演化提出了著名的 “图灵测试”如果一台机器能够与人类展开对话通过电传设备且不能被参与测试的 30% 以上的人类裁判辨别出其机器身份那么则称这台机器具有人类智能。二、NLP发展如果让机器可以模仿人类进行一些思考性的工作那么理解人类自然语言那就是第一步。所以NLP自然语言处理是至关重要的一步。规则模型最早期的相关研究都是针对规则定义的模型这些规则的定义必须耗费大量的人力需要由专业的人去精心定制而且随着规则数的增加不得不去处理一些冲突的问题。最重要的是它不能回答规则库里头没有的问题。但是它的优点是 由于规则都是专业的人去定义的在某些特定的专业领域它会表现的比较高效花20%的人力就可以达到80%的成果。这种模型可以帮助我们解决很多重复性的工作比如电商客服、电话机器人等。但是如果我们想要一种通用模型可以服务于各行各业呢基于统计方法的模型在1980-1990这个年代人们开始利用基于统计概率的模型。基于马尔可夫假设一个词语出现的概率只和前面的n个词语有关 而与更早的词语或者往后的词语都无关。马尔可夫假设原理:https://www.au92.com/post/markov-assumption/因此自然就产生了二元模型一个词语出现的概率只和它前面的一次词语有关 和 n元模型一个词语出现的概率跟它前n-1个词语有关但是随着n的增大你所需要记录的概率分布就会呈现指数倍的增加这导致了n不可能无限放大放到模型上就是说不能有一个很长的上下文这个就是典型的长距离依赖问题基于神经网络的模型几乎在同一时期出现了基于神经网络的NLP模型比如我们熟知的CNN卷积神经网络RNN循环神经网络神经网络启发于我们人脑的工作逻辑其中著名的hebbian理论阐述了人脑神经元的形态又比如我们总习惯于顺序背诵古诗根据赫布学习规则Hebbian theory“同时激活的神经元会强化彼此连接”。在顺序背诵时前一个诗句对应的神经元集群激活会通过突触前增强pre-synaptic facilitation机制促进后续诗句对应神经元的激活形成链式神经回路。这种预测-验证的神经活动模式已被fMRI研究证实。RNN循环神经网络一个神经元的输出信号可能是另一个神经元的输入信号得易于这种结构人脑在处理序列化和结构化数据时非常高效RNN受这种结构的启发在序列化的数据处理方面获得了很大的成就一定程度上缓解了n元模型长距离依赖的问题但是并没有从根本上解决同时它也带来了自己新的问题那就是梯度消失-爆炸。什么是梯度消失-爆炸梯度消失误差信号在反向传播时越来越弱导致模型学不会长期规律。简单来说RNN的梯度消失就像“传话游戏越传越错”。反向传播反向传播英语Backpropagation缩写为BP是“误差反向传播”的简称是一种与最优化方法如梯度下降法结合使用的用来训练人工神经网络的常见方法。举个例子正向传播三个人在玩你画我猜游戏第一个人描述物品信息传给第二个人再由第二个人描述给第三个人第三个人说出画的是什么反向传播第三个人得知自己说和正确答案之间的误差发现他们在传递时的问题差在哪里向前面一个人说下次描述时可以怎么样更准确的传递信息就这样一直向前一个人告知。权重更新在反向传播的过程中三个人的默契一直在磨合然后描述的更加准确。关键原因RNN的“记忆链条”太长RNN循环神经网络像一条不断延长的锁链每个时间步时刻都在链子上加一节。比如处理句子我 昨天 吃了 一个 苹果RNN会把每个词依次连起来分析。问题出在反向传播当计算梯度时RNN需要从最后一个词苹果一路回传到第一个词我。这个过程就像传话游戏第5个人说“苹果”目标词第4个人告诉第3个人“误差要调整0.1”第3个人告诉第2个人“误差变成0.1×0.90.09”第2个人告诉第1个人“误差变成0.09×0.90.081”…如果每一步传递的误差都在衰减比如乘以0.9经过多步后开头的词如“我”收到的误差几乎为0导致它无法被正确调整。LSTM长短期记忆网络简单说就是LSTM是给关键信息开了个绿色通道。现有的翻译软件和语音助手很多也是使用了这个技术。LSTM结构是专门为解决RNN在学习长的的上下文信息出现的梯度消失、爆炸问题而设计的结构中加入了内存块。这些模块可以看作是计算机中的内存芯片——每个模块包含几个循环连接的内存单元和三个门(输入、输出和遗忘相当于写入、读取和重置)。信息的输入只能通过每个门与神经元进行互动因此这些门学会智能地打开和关闭以防止梯度爆炸或消失。但是基于RNN的变种都会存在一个问题由于模型在学习训练过程中依赖文本的输入顺序必须按时间步顺序计算无法并行处理序列。那么我们可以做的更好吗三、Transformer引子Transformer这个概念来自于Google研究团队在2017发表的一篇论文《Attention Is All You Need》从发布的名称来看这个理论将会统一NLP领域从此以后只需Attention。。。先讲下什么是 词嵌入Word Embedding将单词向量化映射为高维向量使得单词之间的语义关系可以在向量空间中得以体现。同一语境下的词语往往拥有相近的语义。比如可以把词嵌入比作字典里的每个词有一个独特的数字身份证但这个身份证不是随机的而是根据词的意思和用法生成的。相似的词在数字空间里位置相近。比如“猫”和“狗”都是宠物它们的向量可能比较接近而“猫”和“汽车”就离得远。而这个向量地图通过大量文本数据训练得到的模型学习词语的上下文比如Word2Vec、GloVe这些方法。例如通过预测周围的词模型调整词向量让经常一起出现的词向量更接近。那么是不是每次将词语映射到向量空间都需要重新训练模型呢当然不是训练好的模型就像一个字典比如猫狗鸡鸭这些词语无论在什么语境下都非常接近我们只需要通过查表的方式去完成映射就可以。但是如果是具备多语义的词语我们该如何处理呢那么就引出了 Transformer什么是TransformerTransformer结构也是参考我们人脑的思维方式我们人脑在获取信息时会选择性的划重点忽略掉一些无关紧要的东西。比如“我是一个浙江杭州的程序员我正在写一篇关于Transformer分享的文章”人类在看到这句话时的反应都会是 我在写Transformer文章和浙江杭州有什么关系呢因此我们自然而然的会把注意放在程序员和Transformer上。Transformer经典架构图上图是论文中 Transformer 的内部结构图左侧为 Encoder block右侧为 Decoder block。红色圈中的部分为Multi-Head Attention是由多个Self-Attention组成的可以看到 Encoder block 包含一个 Multi-Head Attention而 Decoder block 包含两个 Multi-Head Attention (其中有一个用到 Masked)。Multi-Head Attention 上方还包括一个 Add Norm 层Add 表示残差连接 (Residual Connection) 用于防止网络退化Norm 表示 Layer Normalization用于对每一层的激活值进行归一化。举例用Transformer做中英翻译可以看到Transformer 由 Encoder 和 Decoder 两个部分组成Encoder 和 Decoder 都可以有多个。训练一个模型的过程大体如下假设我们已经有一个训练好的模型Transformer 的预测工作流程大体如下Transformer工作原理Transformer的输入单词 Embedding单词的 Embedding 有很多种方式可以获取例如可以采用 Word2Vec、Glove 等算法预训练得到也可以在 Transformer 中训练得到。位置 Embedding因为 Transformer 不采用 RNN 的结构而是使用全局信息不能利用单词的顺序信息位置信息对于 NLP 来说非常重要。计算公式如下用这个公式的好处是能够适应比训练集里面所有句子更长的句子、可以让模型容易地计算出相对位置Transformer的核心机制自注意力Self-Attention意思就是它不依赖额外输入的信息即它只统计单词和其他单词之间的注意力相关性。自注意力机制可以让模型在处理序列数据比如一句话时动态关注不同位置的信息。它的实现可以简单理解为以下四步1.对每个输入词生成Q(query)、K(key)、V(value)向量。2.计算每个Q与所有K的转置缩放后得到注意力分数。3.用softmax归一化分数即每一行的和都变为 1得到权重。4.用权重对V加权求和得到每个词的输出。最终的公式简单地来讲假设我希望翻译的话就是前图的“我有一只猫”“我”的query向量q1发出疑问词“我”、“有”、“一只”、“猫”对翻译我都有什么贡献这4个词的key向量k1、k2、k3、k4分别跟q1进行相似性匹配具体为先跟q1乘得到的结果除以再进softmax函数得到权重值假设为w1、w2、w3、w4他们分别去跟v相乘后相加得到最终的z1 w1v1w2v2w3v3w4v4z2同理。多头注意力 Multi-Head Attention在上一步我们已经知道怎么通过 Self-Attention 计算得到输出矩阵 Z而 Multi-Head Attention 是由多个 Self-Attention 组合形成的下图是论文中 Multi-Head Attention 的结构图。Multi-Head Attention从上图可以看到 Multi-Head Attention 包含多个 Self-Attention 层首先将输入X分别传递到 h 个不同的 Self-Attention 中计算得到 h 个输出矩阵Z。下图是 h8 时候的情况此时会得到 8 个输出矩阵Z。换成人话来说就是我们矩阵图中的WqWk和Wv分别初始化了多个进行训练多个 Self-Attention得到 8 个输出矩阵 Z1 到 Z8 之后Multi-Head Attention 将它们拼接在一起 (Concat)然后传入一个Linear层得到 Multi-Head Attention 最终的输出Z。Multi-Head Attention 的输出可以看到 Multi-Head Attention 输出的矩阵Z与其输入的矩阵X的维度是一样的。上图左为二头的着色结果同样的”The animal didnt cross the street because it was too tired“这句话我们想知道翻译it的时候这个词跟什么词有关或者说哪个词对于翻译it更有效。从二头的着色结果来说我们从橙色知道it指代了The animal从绿色知道it的状态是tired从五头的着色我们可以知道it的更多信息这种关联性可以在翻译中给it更多的解释角度。举例在一句话中注意力往往要从多个角度进行分析比如 “大学生“是考研这个单词的主体”除了“表示考研在这个句子中的角色”上班、创业“都是考研这个词替代因此我们需要从不同的角度去进行学习防止它们过度的相似。我们可以给不同的注意力头选择不同的训练任务比如一些注意力头去做完形填空一些注意力头去预测下一个句子不同的注意力头之间的训练是并行的基于Transformer架构可以高效的训练超大规模的模型。如下示例 每个头都会关注到不同的信息https://colab.research.google.com/github/tensorflow/tensor2tensor/blob/master/tensor2tensor/notebooks/hello_t2t.ipynb#scrollToOJKU36QAfqOCAdd Norm 层的作用1.残差连接缓解梯度消失问题保留原始信息。2.**层归一化**加速训练提高模型稳定性和泛化能力。在Transformer中Add Norm 层是模型能够高效训练和表现优异的关键组件之一。Feed Forward的作用是Feed Forward 层也称为前馈神经网络的作用是对自注意力机制输出的特征进行进一步的非线性变换和特征提取1.**非线性特征变换**引入非线性激活函数增强模型的表达能力。2.**特征增强**对自注意力机制的输出进行进一步处理提取更丰富的特征。3.**独立处理每个位置**专注于每个位置的特征优化。4.**增加模型容量**通过额外的参数提高模型的拟合能力。EncoderEncoder block 接收输入矩阵 X(n×d) 并输出一个矩阵 O(n×d) 。通过多个 Encoder block 叠加就可以组成 Encoder。Decoder包含两个 Multi-Head Attention 层。第一个 Multi-Head Attention 层采用了 Masked 操作。通过 Masked 操作可以防止第 i 个单词知道 i1 个单词之后的信息。第二个 Multi-Head Attention 层的K, V矩阵使用 Encoder 的编码信息矩阵****C进行计算而Q使用上一个 Decoder block 的输出计算。这样做的好处是在 Decoder 的时候每一位单词都可以利用到 Encoder 所有单词的信息 (这些信息无需Mask)。最后有一个 Softmax 层计算下一个翻译单词的概率。Transformer 总结Transformer 与 RNN 不同可以比较好地并行训练。Transformer 本身是不能利用单词的顺序信息的因此需要在输入中添加位置 Embedding否则 Transformer 就是一个词袋模型了。Transformer 的重点是 Self-Attention 结构其中用到的 Q, K, V矩阵通过输出进行线性变换得到。Transformer 中 Multi-Head Attention 中有多个 Self-Attention可以捕获单词之间多种维度上的相关系数 attention score。最后为什么要学AI大模型当下⼈⼯智能市场迎来了爆发期并逐渐进⼊以⼈⼯通⽤智能AGI为主导的新时代。企业纷纷官宣“ AI ”战略为新兴技术⼈才创造丰富的就业机会⼈才缺⼝将达 400 万DeepSeek问世以来生成式AI和大模型技术爆发式增长让很多岗位重新成了炙手可热的新星岗位薪资远超很多后端岗位在程序员中稳居前列。与此同时AI与各行各业深度融合飞速发展成为炙手可热的新风口企业非常需要了解AI、懂AI、会用AI的员工纷纷开出高薪招聘AI大模型相关岗位。最近很多程序员朋友都已经学习或者准备学习 AI 大模型后台也经常会有小伙伴咨询学习路线和学习资料我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师给大家这里给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频全系列的学习资料这些学习资料不仅深入浅出而且非常实用让大家系统而高效地掌握AI大模型的各个知识点。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】AI大模型系统学习路线在面对AI大模型开发领域的复杂与深入精准学习显得尤为重要。一份系统的技术路线图不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点还能提供一条高效、有序的学习路径。但知道是一回事做又是另一回事初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性在这基础上找到高质量的学习资源不浪费时间、不走弯路又是重中之重。AI大模型入门到实战的视频教程项目包看视频学习是一种高效、直观、灵活且富有吸引力的学习方式可以更直观地展示过程能有效提升学习兴趣和理解力是现在获取知识的重要途径光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。海量AI大模型必读的经典书籍PDF阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。600AI大模型报告实时更新这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。AI大模型面试真题答案解析我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】