0

0

Transformer技术原理综述

WBOY

WBOY

发布时间:2023-06-04 17:03:20

|

2178人浏览过

|

来源于51CTO.COM

转载

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

Transformer技术原理综述

1、前言

最近,AIGC(AI-Generated Content,人工智能生成内容)发展迅速,不仅被消费者追捧,而且备受技术和产业界关注。2022年9月23日,红杉美国发表文章《生成式AI:一个创造性的新世界》,认为 AIGC会代表新一轮范式转移的开始。2022年10月,Stability AI发布开源模型Stable Diffusion,可以根据用户输入的文字描述(称为提示词,prompts)自动生成图像,即文生图(Text-to-Image). Stable Diffusion、DALL-E 2、Midjourney、文心一格等可以生成图片的AIGC模型引爆了AI作画领域,AI作画风行一时,标志人工智能向艺术领域渗透。下图展示了由百度“文心一格”平台创作的“未来机甲”主题作品。


Transformer技术原理综述

图1 由百度“文心一格”平台创作的AI画作

AIGC领域的迅猛发展,离不开深度神经网络的进步。具体地说,是Transform模型的出现,赋予了神经网络更加强大的全局计算能力,减少了网络训练耗时,提高了网络模型的表现能力。当前表现较为优秀的AIGC领域模型,其技术底层架构中均包含Attention和 Transform技术。

2、发展历史

2.1 深度神经网络

以深度神经网络为代表的信息技术的发展,推动了人工智能领域的进步与拓展。2006年,Hinton等人利用单层的RBM自编码预训练使得深层的神经网络训练得以实现;2012年,Hinton和Alex Krizhevsky设计的AlexNet神经网络模型在ImageNet竞赛中实现图像识别分类,成为新一轮人工智能发展的起点。当前流行的深度神经网络是仿照生物神经网络所提出的概念。在生物神经网络中,生物神经元层层传递接收到的信息,多个神经元信息汇总得到最终的结果。使用类比生物神经单元设计的逻辑神经单元构建的数学模型被称为人工神经网络。在人工神经网络中,逻辑神经单元被用来探索输入数据和输出数据间的隐藏关系,当数据量较小时,浅层的神经网络就可以满足一些任务的要求,然而,随着数据规模的不断扩大,深度神经网络开始显示出其得天独厚的优势。

2.2 注意力机制

注意力机制(Attention Mechanism)由Bengio团队于2014年提出并在近年广泛的应用在深度学习中的各个领域,例如在计算机视觉方向用于捕捉图像上的感受野,或者NLP中用于定位关键token或者特征。大量实验证明,添加了注意力机制的模型在图像分类、分割、追踪、增强以及自然语言识别、理解、问答、翻译中均取得显著的效果提升。

注意力机制仿照视觉注意力机制而来。视觉注意力机制是人类大脑的一种天生的能力。当我们看到一幅图片时,先是快速扫过图片,然后锁定需要重点关注的目标区域。比如当我们观察下述图片时,注意力很容易就集中在了婴儿脸部、文章标题和文章首句等位置。试想,如果每个局部信息都不放过,那么必然耗费很多精力,不利于人类的生存进化。同样地,在深度学习网络中引入类似的机制,可以简化模型,加速计算。从本质上理解,Attention是从大量信息中有筛选出少量重要信息,并聚焦到这些重要信息上,忽略大多不重要的信息。


Transformer技术原理综述

图2 人类注意力机制示意图

3、技术详解

百家CMS微商城
百家CMS微商城

百家CMS微商城从诞生开始,就坚持着简单实用的原则,基于目前最流行的WEB2.0的架构(php+mysql),拥有成熟、稳定的微电商技术解决方案。基于完整的会员等级制度,完善的微商城购物流程,订单管理、优惠券、搜索、购物车等功能。采用跨平台机制,可同时对接微信公众号平台和支付宝服务窗,兼容微博、手机QQ等平台;丰富的支付方式、支持微信支付、支付宝支付、货到付款、余额支付、网银支付等。并且拥有完整的

下载

智能Transformer模型抛弃了传统的CNN和RNN单元,整个网络结构完全是由注意力机制组成。在本章节中,我们会首先介绍 Transformer模型的总体流程,之后详细介绍其中涉及的位置编码信息和Self-Attention计算。

3.1 流程总述


Transformer技术原理综述

图3 注意力机制流程图

如上图所示,Transformer由Encoder模块和Decoder模块两个部分组成,Encoder和Decoder都包含N个block。以执行翻译任务为例,Transformer的工作流程大体如下:

第一步:获取输入句子的每一个单词的表示向量X,X由单词自身Embedding和单词位置的Embedding相加得到。

第二步:将得到的单词表示向量矩阵传入Encoder模块中,Encoder模块对于输入数据采用Attention方法进行计算。经过N个Encoder模块后可以得到句子所有单词的编码信息矩阵,每一个Encoder模块输出的矩阵维度与输入完全一致。

第三步:将Encoder模块输出的编码信息矩阵传递到Decoder模块中,Decoder会依次根据当前翻译过的单词i翻译下一个单词i+1。与Encoder结构相同,Decoder结构也使用Attention方法进行计算。在使用的过程中,翻译到单词i+1的时候需要通过Mask操作遮盖住i+1之后的单词。

3.2 Self-Attention计算

Transform模型的核心是注意力计算,其可以通过公式表示为

Transformer技术原理综述

其中,Q,K,V分别表示Query,Key,Value,这三个概念取自于信息检索系统,举个简单的搜索的例子来说。当你在某电商平台搜索某件商品时,你在搜索引擎上输入的内容便是Query,然后搜索引擎根据Query为你匹配Key(例如商品的种类,颜色,描述等),然后根据Query和Key的相似度得到匹配的内容(Value)。

self-attention中的Q,K,V也是起着类似的作用,在矩阵计算中,点积是计算两个矩阵相似度的方法之一,因此上述公式中使用了Q矩阵乘以K矩阵的转置进行相似度的计算。为了防止内积过大,需要除以d的平方根,最后对结果施以softmax激活函数。

3.3 位置编码

Transformer中除了单词自身的Embedding,还需要使用位置Embedding表示单词出现在句子中的位置。因为Transformer不采用RNN的结构,而是使用全局信息,不能利用单词的顺序信息,而这部分信息对于NLP或CV而言均非常重要。所以Transformer中使用位置Embedding保存单词在序列中的相对或绝对位置。

位置Embedding用PE表示,PE的维度与单词Embedding是一样的。PE可以通过训练得到,也可以使用某种公式计算得到。在Transformer中采用了后者,计算公式如下:

Transformer技术原理综述

其中,pos表示单词在句子中的位置,d表示PE的维度,其大小与单词自身Embedding相同,2i表示偶数的维度,2i+1表示奇数维度。

4、总结

Transformer的重点是Self-Attention结构,通过多维的Attention结构,网络可以捕获单词之间多种维度上的隐藏关系,然而Transformer本身是不能利用单词的顺序信息的,因此需要在输入中添加位置Embedding,用以存储单词的位置信息。与循环神经网络相比,Transformer网络可以比较好地并行训练,与卷积神经网络相比,Transformer网络计算两个位置之间的关联所需的操作次数不随距离增长,可以突破卷积神经网络受限于感受野大小的计算距离。同时,Transformer网络可以产生更具可解释性的模型。我们可以从模型中检查注意力分布,各个注意头(attention head)可以学会执行不同的任务。

相关专题

更多
C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

10

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

29

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

13

2026.01.22

PHP特殊符号教程合集
PHP特殊符号教程合集

本专题整合了PHP特殊符号相关处理方法,阅读专题下面的文章了解更多详细内容。

11

2026.01.22

PHP探针相关教程合集
PHP探针相关教程合集

本专题整合了PHP探针相关教程,阅读专题下面的文章了解更多详细内容。

8

2026.01.22

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

55

2026.01.22

Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

9

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
麻省理工大佬Python课程
麻省理工大佬Python课程

共34课时 | 5.2万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号