Transformer模型:人工智能界的全能跨界王

智创 AI 新视界 -- 基于 Transformer 架构的 AI 模型优化(16 - 11) 本文聚焦基于 Transformer 架构的 AI 模型优化。阐述其核心原理与架构优势,以医学文献分析、新闻文本处理等为例说明多头注意力机制及并行计算特性。介绍模型压缩技术(剪枝与量化)及训练算法改进(自适应学习率与对抗训练),包括多语言翻译、图像识别、文本生成、社交媒体情感分析等案例与对应代码。探讨优化面临的挑战与机遇,提出跨领域融合等问题,结尾设置互动环节并引出后续文章主题。 阅读详情

导读:

Transformer源自于AI自然语言处理任务;在计算机视觉领域,近年来Transformer逐渐替代CNN成为一个热门的研究方向。此外,Transformer在文本、语音、视频等多模态领域也在崭露头角。本文对Transformer从诞生到逐渐壮大为AI各领域主流模型的发展过程以及目前研究进展进行梳理,见证Transformer的过人之处。


一、Transformer的诞生

1、Transformers的前身:RNN Encoder-Decoder

早在2014年,seq2seq问题是通过两个循环神经网络组合成一个编码器-解码器模型来解决的。通过机器翻译任务中的一个简单示例来演示它的架构,以法语-英语句子对为例,输入是“je suis étudiant”,输出是“I am a student”。首先,“je”通常伴随着一个可以学习或固定的常量向量hE0,被送入RNN编码器。之后输出向量hE1(隐藏状态1),与输入序列中的第二个元素“suis”一起作为RNN编码器的下一个输入,此操作的输出hE2和“étudiant”再次输入编码器,为该训练样本生成最后一个编码隐藏状态hE3。hE3向量依赖于输入序列中的所有标记,因此它应该代表整个短语的含义。出于这个原因,它也被称为上下文向量。上下文向量是RNN解码器的第一个输入,它应该生成输出序列的第一个元素“I”(实际上,解码器的最后一层通常是softmax,但为了简单起见,只保留每个解码器步骤的结果)。此外,RNN解码器会产生隐藏状态hD1。将hD1和之前的输出“I”送回解码器,希望将“am”作为第二个输出。这个生成输出并将其反馈回解码器的过程一直持续到我们生成EOS(句子标记的结尾),表示我们的工作已经完成。

图1 RNN Encoder-Decoder示意图

这种RNN编码器-解码器的结构可能看起来很简单,但事实证明它对许多NLP任务非常有效。事实上,谷歌翻译自2016年以来一直在使用它。然而,RNN编码器-解码器模型确实存在很多缺点。

2、RNN存在的问题1:长序列的向量表示

如上所述的RNN方法对于较长的句子效果不是特别好。试想一下,整个输入序列的含义由一个固定维度的上下文向量来表示,这对于“Je suis étudiant”这种短句来说已经足够好了,但是如果输入是一些非常长的句子,包含几十个甚至几百个单词,那将其编码为上下文向量是很困难的。能有效的解决这个问题的方案就是Attention——注意力机制。

图2 传统RNN编码器-解码器(左)和带注意力的RNN编码器-解码器(右)示意图

Attention背后的基本思想很简单:我们不是只将最后一个隐藏状态(上下文向量)传递给解码器,而是将来自编码器的所有隐藏状态都传递给解码器。在之前示例中,Attention会将hE1、hE2和hE3都传给解码器。解码器将通过softmax层确定它们中的哪些被关注。除了添加这个额外的结构之外,基本的RNN编码器-解码器架构保持不变,但是当涉及到更长的输入序列时,加入Attention的模型表现得更好。

3、RNN存在的问题2:并行能力

困扰RNN的另一个问题与名称中的R有关。根据定义,循环神经网络中的计算是顺序的。模型必须等待上一步完成才能继续下一步,这意味着RNN只能顺序计算而无法并行化,所以模型训练时间和运行推理时间都显著增加。

用CNN来替代RNN用于文本处理是解决RNN无法并行化问题的一个不错的方案,主要优势在于减少文本时序的计算。然而CNN的每个卷积核只能看到其中一段文本的内容,对于长文本任务,需要堆叠很多层才能看到文本全局的内容,这样一来模型需要做得更大。

4、Transformers诞生:Attention is All You Need

Transformer最初出现在谷歌团队2017年的论文《Attention Is All You Need》中,从字面上理解Transformer采用了带有注意力的编码器-解码器模型。它的出现解决了RNN和CNN在处理序列时的各种问题。那么它是如何运作的?首先,输入序列wi经过预处理的元素都作为输入提供给编码器。与RNN不同的是,它是并行完成的。编码器有多个层(例如,在原始的Transformer论文中,它们的数量是六层)。之后使用hi来标记每个wi的最后一个编码器层的最终隐藏状态。解码器通常也包含多个层,层数与编码器的层数相同。所有隐藏状态hi将作为输入送到解码器的六层中的每一层,这就是Transformer的Encoder-Decoder Attention,它在本质上与我们上面讨论的Attention机制非常相似。(如图3,具有两层的编码器,并行处理三元素输入序列(w1、w2和w3)。每个输入元素的编码器还通过其自注意力子层接收有关其他元素的信息,从而捕获句子中单词之间的关系)

预处理层存在于编码器和解码器中,预处理分为两部分:首先,是熟悉的词嵌入,这是大多数NLP模型的主要内容。这些词嵌入可以在训练期间学习,或者可以使用现有的预训练模型嵌入。第二,在没有顺序RNN架构的情况下如何确定每个输入序列的位置?预处理层的第二个作用就是将位置信息编码到向量中,就像我们用词嵌入嵌入词标记的含义一样。生成的后处理向量携带有关单词的含义及其在句子中位置的信息,被传递到编码器和解码器层。

图3 具有两层编码器的Transformer-Encoder结构示意图

引入self-attention的目的是为了学习句子中不同词之间的关系,通俗讲,就是它允许序列中的每个元素相互交互,并找出他们应该更关注谁。Self-Attention层包括Encoder Self-Attention和Decoder Self-Attention。如何计算注意力呢?由线性代数相关的知识我们可以知道,对于相同维度的两个向量,可以通过点积的方法来获得其相关性。其中,用X标记注意力层输入的向量空间。有三个来自于编码器或解码器的向量QKV。Q是一个查询向量,即我们指定我们想要关注的信息类型;V是类似于向量X的线性组合(与X维度不一样);K索引由值Vⁿ捕获的信息类型。我们在训练期间想要学习的是三个嵌入矩阵,Wᴷ,WV和Wᴬ。

K=XWᴷ

V=XWⱽ

Q=XWᴬ

为了确定哪些值应该得到最多的关注,采用解码器的查询Q与编码器的所有键K的点积。结果的softmax会给出各个值V的权重(权重越大,attention越大)。这种机制称为点积注意力,由以下公式计算:

编码器自注意力的计算在每个编码器层内进行,较低编码器层的值V将最接近原始输入标记,而较深层的自注意力将涉及更多抽象结构。

图4 Transformer结构示意图

二、Transformer强在何处

1、在NLP领域

在上一节中,介绍了RNN在处理长文本序列中的两个问题:顺序结构导致无法捕捉长序列上下文信息、并行处理序列困难。Transformer的出现为RNN的Encoder-Decoder结构加入了注意力机制,抛弃RNN顺序结构,实现长序列的并行处理,完美的解决了这两个问题。在AI领域。我们都想要一个通用模型来准确、快速地解决不同的任务,而Transformer模型就是目前序列到序列任务的通用模型。

2、在CV领域

近几年,Transformer也替代CNN成为计算机视觉领域中一个热门的研究方向,那么来自NLP领域的Transformer是如何实现在视觉领域超越CNN结构呢?我们知道Transformer总是对序列进行操作,因此将图像拆分为很多个“小块”并将每个“小块”展平为向量就能得到图像的序列表示,那么用Transformer来处理图像也成为可能。

图5 示例图

CNN非常擅长特征提取,但是对于CNN,上面这两张图片几乎是一样的。CNN不会编码不同特征的相对位置。要想编码这些特征的组合就需要大型滤波器。例如:编码“眼睛高于鼻子和嘴巴”的信息就需要更大的滤波器。

为了捕捉图像中的远距离依赖,CNN需要大的感受野,也就需要更大的卷积核。增加卷积核的大小可以增加网络的表示能力,但这样做也会损失使用局部卷积结构获得的特征和统计效率。

Transformer相较于CNN最大的优势就是注意力机制,注意力机制在某些方面与CNN相似。注意力机制在每个位置都会进行一次计算,把这个位置的信息和其他位置的信息结合起来,同时还能忽略周围大多数不相关的信息。但与CNN不同的是,“其他信息”不需要在附近。(注意力机制不是“局部的”。)而且注意力机制的当前位置不是预定义的,也不是固定的(不像CNN具有固定的“windows”,尺寸规定为3x3或其他)。它们是基于所有输入进行动态计算。以为图片添加标题为例,只有专注于图像的相关部分才能生成有意义的标题,这就是注意力机制所做的事情。它允许捕获序列元素之间的“长期”信息和依赖关系,有助于对跨图像区域的长距离、多级依赖性进行建模。在图6中可以看到一个自注意力模块取代了卷积层,模型能够与远离其位置的像素进行交互。因此Transformer的自注意力机制有效解决CNN卷积结构的一些局限性。

大模型发展的历史脉络:从RNN、Transformer到多模态AI 从RNN、LSTM到Transformer,再到当今席卷各个领域的大模型,我们见证了人工智能在短短数十年间的飞跃式发展。架构创新(如自注意力机制)提供了质变契机,大规模预训练和海量数据赋予模型前所未有的知识获取能力,模型规模和算力提升不断发掘出AI更多的潜能。与此同时,每一次重大突破的背后都有人才的辛勤耕耘:无论是“三巨头”奠基深度学习,还是各大团队推动Transformer及后续模型登上舞台。可以预见,大模型将在未来相当长一段时间内继续主导AI研究与应用的发展。 阅读详情

相关推荐

AI大模型专题:落地为王

今天分享的是深度研究报告:《(报告出品方:华安证券)页。

GPT20236688的博客 805

人工智能---什么是Transformer?

Transformer是一种强大的神经网络架构,最初由Google的研究人员在论文《Attention is All You Need》中提出,用于自然语言处理任务,特别是在机器翻译方面取得了巨大成功。Transformer的核心思想是完全基于自注意力机制(self-attention mechanism)来实现序列到序列(sequence-to-sequence)的学习。它在自然语言处理(NLP)和其他序列到序列任务中表现出色,逐渐成为该领域的主流模型。近些年也逐渐在自动驾驶领域有所应用。

智能汽车人的博客 3955

深度学习实战24-人工智能(Pytorch)搭建transformer模型,真正跑通transformer模型,深刻了解transformer的架构

大家好,我是微学AI,今天给大家讲述一下人工智能(Pytorch)搭建transformer模型,手动搭建transformer模型,我们知道transformer模型是相对复杂的模型,它是一种利用自注意力机制进行序列建模的深度学习模型。相较于 RNN 和 CNN,transformer 模型更高效、更容易并行化,广泛应用于神经机器翻译、文本生成、问答等任务。

微学AI的博客 6158

人工智能 Transformer 技术详解

尽管如此,Transformer 技术仍在不断发展,各种变体模型和最新的研究进展正致力于克服这些限制,并将其强大的能力扩展到更广泛的应用领域,预示着人工智能技术的未来发展将更加令人期待。除了这些模型之外,还有许多针对特定任务或性能优化的 Transformer 变体,例如 Transformer-XL(用于处理更长的序列)、Reformer(通过哈希和局部敏感哈希降低计算复杂度)、Swin Transformer(用于视觉任务的层次化 Transformer)等。键向量代表每个标记包含的信息;

专栏 629

Article:AI领域2021年度总结与2022年度展望:多模态人工智能起飞、万亿参数模型的爆发、生成模型在音乐电影制作上的进展、Transformer架构正在以一己之力统一AI江湖、AI法律监管

​ Article:AI领域2021年度总结与2022年度展望:多模态人工智能起飞、万亿参数模型的爆发、生成模型在音乐电影制作上的进展、Transformer架构正在以一己之力统一AI江湖、AI法律监管 目录 AI领域2021年度总结与2022年度展望:多模态人工智能起飞、万亿参数模型的爆发、生成模型在音乐电影制作上的进展、Transformer架构正在以一己之力统一AI江湖、AI法律监管 《developments that are primed to change the face of AI i

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 4044

AI大模型探索之路-训练篇7:大语言模型Transformer库之HuggingFace介绍

在的官方网站上,您可以发现一个丰富的开源宝库,其中包含了众多机器学习爱好者上传的精选模型,供大家学习和应用。此外,您也可以将自己的模型分享至社区,与他人共同进步。HuggingFace因其开放和协作的精神被誉为机器学习界的GitHub。在这里,用户能够轻松获取到Transformers库里各式各样的组件资源,助力各类机器学习项目的实现和发展。

寻道AI,探索AI无限可能! 6810

【近源攻击】badusb制作

BadUSB是利用伪造HID设备执行攻击载荷的一种攻击方式。HID(Human InterfaceDevice)设备通常指的就是键盘鼠标等与人交互的设备,用户插入BadUSB,就会自动执行预置在固件中的恶意代码。BadUsb插入后,会模拟键盘鼠标对电脑进行操作,通过这些操作打开电脑的命令终端,并执行一条命令,这条命令将从指定网址下载其他代码并于后台静默运行。这些代码功能包括:窃取信息、反弹shell、发送邮件等,从而实现控制目标机或者窃取信息的目的。

qinjilll的博客 2549

手把手教你用LangChain4j打造一个“会追问”的AI客服:以航空货运下单为例

本文详细介绍了如何使用LangChain4j构建一个能够主动追问的航空货运AI客服系统。通过对话状态管理、信息缺口识别和渐进式引导等核心技术,实现高效的多轮对话交互。文章包含从交互设计到代码实现的完整指南,特别强调了提示词(Prompt)在优化AI行为中的关键作用,帮助开发者打造更智能的客服解决方案。

weixin_28731223的博客 154

Keil5保姆级安装指南:从破解到STM32开发环境配置(附常见错误解决方案)

本文提供Keil5从安装到STM32开发环境配置的完整指南,包含破解步骤、常见错误解决方案及多芯片支持配置。详细讲解环境预检、核心安装、许可证管理及高效开发环境设置,帮助开发者快速搭建嵌入式开发平台。特别针对安装和卸载过程中的关键问题提供专业解决方案。

weixin_30369041的博客 124

JAVA审批流程,一个简单表结构设计方案By OU

一、表结构设计1.流程表(process)用于存储审批流程的基本信息。字段名类型描述idBIGINT主键,流程IDname流程名称TEXT流程描述DATETIME创建时间DATETIME更新时间statusTINYINT(1)流程状态(0: 停用, 1: 启用)2.节点表(process_node)用于管理流程中的每个审批节点。字段名类型描述idBIGINT主键,节点IDprocess_idBIGINT流程ID,外键关联process.id。

1901

从Canny到深度学习:边缘检测指标进化史(含ODS/OIS/AP的数学推导)

本文系统梳理了边缘检测评估指标的演进历程,从经典的Canny算子到深度学习时代,重点解析了ODS、OIS和AP三大核心指标的设计哲学与数学推导。文章深入探讨了基于PR曲线的评估体系,揭示了不同指标(如ODS与OIS)在阈值优化上的差异,并分析了AP指标在边缘检测任务中的优势与局限,为算法研究和模型评估提供了实用指南。

b9c0d的博客 199

Claude Code 源码一夜流出:会看热闹的人很多,会读源码的人很少

摘要:Claude Code源码意外泄露后,作者分享了高效的源码学习方法:1)Fork仓库保存代码;2)使用Qoder的Repo Wiki功能生成结构化文档和UML图;3)基于Wiki创建可复用的Skill。这种方法比直接让AI总结代码更系统深入,并推荐了可视化学习项目辅助理解。文章强调实践的重要性,提供了具体工具和操作指南。

719

ANSYS——“There is at least 1 small equation solver pivot term”问题的解决办法

ANSYS——“There is at least 1 small equation solver pivot term”问题的解决办法

python_AI_fans的博客 1万+

【系统架构设计师-2024下半年真题】案例分析-参考答案及部分详解(完整回忆版)

根据h中描述,为了保证高可靠性,有ping/echo,心跳机制两种策略,从资源利用率问为啥心跳更好。王工觉得使用ping/echo好,但李工觉得从系统资源利用率来说,使用心跳机制好 1、针对质量属性可以使用ping/echo和心跳模式实现,分别简述ping/echo和心跳的实现原理。 2、张工认为心跳策略比较适合,简述为什么?

数据知道的博客 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: GPT-4引领:AI新浪潮的转折点
下一篇: Python实战:GPT-2驱动的机器学习模型构建指南
fengbeely
博客等级 码龄2年 957粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值