用最简单的话来解释大模型中的Transformer架构

news2025/1/17 4:13:39

开篇

我个人的观点是要想系统而又透彻地理解 Transformer,至少要遵循下面这样一个思路(步骤):

理解NLP基础

在探讨Transformers之前,了解自然语言处理(NLP)的一些基本知识至关重要。NLP使计算机能够理解和生成自然语言,文本的表征是其核心任务之一。传统的语言模型往往依赖于递归神经网络(RNN)处理序列数据,但RNN在长序列中表现较差。为了解决这一问题,必须引入先进的方法和架构。

Transformers的出现

Transformers架构于2017年首次提出,迅速改变了NLP领域。它的核心在于解决RNN无法并行化的缺陷,并利用自注意力机制来捕捉序列中各个词之间的关系。这种架构不仅提升了处理速度,同时也改善了上下文理解能力,极大增强了模型的表现。

Transformers的结构

Transformers由编码器和解码器组成。编码器负责处理输入信息,而解码器则生成最终输出。这一结构使得模型能够有效地进行信息处理,将多层编码器和解码器堆叠在一起,增加了模型的表达能力。位置编码的引入,让模型了解到输入序列中词的顺序,弥补了仅靠自注意力机制的局限。

动手实践

实践是深入理解Transformers的最佳方式。构建一个简单的Transformer模型,通过Python及深度学习框架,如TensorFlow或PyTorch,可以帮助对其原理有更直观的认识。从零开始,实现基本的自然语言生成任务,能够切身感受到Transformers的强大。

什么是Transformer

Transformer架构源于2017年谷歌团队的论文“Attention Is All You Need”。这一创新的模型,革命性地引入了自注意力机制,致力于解决处理长序列信息中的难题。传统的循环神经网络(RNN)在面对长数据序列时,常常面临信息遗失和效率低下的问题。然而,Transformer通过自注意力机制,捕捉了长距离依赖关系,使得这些缺陷得到了有效克服。

Transformer的意义体现在它的长距离依赖关系处理和并行计算,而这两点都离不开其提出的自注意图机制。

首先,Transformer引入的自注意力机制能够有效捕捉序列信息中长距离依赖关系,相比于以往的RNNs,它在处理长序列时的表现更好。

而自注意力机制的另一个特点时允许模型并行计算,无需RNN一样t步骤的计算必须依赖t-1步骤的结果,因此Transformer结构让模型的计算效率更高,加速训练和推理速度。

Transformer最开始应用于NLP领域的机器翻译任务,但是它的通用性很好,除了NLP领域的其他任务,经过变体,还可以用于视觉领域,如ViT(Vision Transformer)。

这些特点让Transformer自2017年发布以来,持续受到关注,基于Transformer的工作和应用层出不穷。包括当下最热门的AI大语言模型/聊天机器人,比如ChatGPT、文心一言、Bard等等。

这些AI大模型能生成“真假难辨”的新闻、专业论文等等,跟人类进行对话,生成代码等一系列复杂的任务。

比如,就拿这个题目的问题去问ChatGPT。我想让它给一个没有深度学习、知识的人介绍Transformer,看他如何作答。

如果觉得还是有不少专业词汇不理解,重新让它更通俗的解释Transformer。

Transformer中最重要的一个方面是自注意力机制,那么到底应该如何理解这个概念呢。

什么是注意力机制

首先来看注意力机制(Attention)用来干嘛?

我们人类在感知环境的时候(比如看一张图像或者一个句子),大脑能够让我们分清那部分是重要的,哪部分是次要的,从而聚焦更重要的方面以获得对应的信息。

而我们在设计神经网络模型

的时候,希望模型也能具有这样的能力。例如,预测一个句子中的单词时,使用一个注意力向量来估计它在多大程度上与其他元素相关。

简单的说,注意力机制描述了(序列)元素的加权平均值,其权重是根据输入的query和元素的键值进行动态计算的。具体地,在注意力机制中,有4个概念需要明确。

  • Query:Query(查询)是一个特征向量,描述我们在序列中寻找什么,即我们可能想要注意什么。
  • Keys:每个输入元素有一个键,它也是一个特征向量。该特征向量粗略地描述了该元素“提供”什么,或者它何时可能很重要。键的设计应该使得我们可以根据Query来识别我们想要关注的元素。
  • Values:每个输入元素,我们还有一个值向量。这个向量就是我们想要平均的向量。
  • Score function:评分函数,为了对想要关注的元素进行评分,我们需要指定一个评分函数f该函数将查询和键作为输入,并输出查询-键对的得分/注意力权重。它通常通过简单的相似性度量来实现,例如点积或MLP。

由此,权重通过softmax函数计算得出:

下图直观描述注意力如何作用在一系列单词上。对于每个单词,都有一个键和一个值向量。使用评分函数(在本例中为点积)将query与所有键进行比较以确定权重。最后,使用注意力权重对所有单词的值向量进行平均。(为了简单起见,softmax 没有可视化。) 

大多数注意力机制在使用哪些query、如何定义键、值向量,以及使用什么评分函数方面有所不同。Transformer 架构内部应用的注意力称为自注意力(self-attention)。在自注意力中,每个序列元素提供一个键、值和query。对于每个元素,根据其query作用一个注意力神经层,检查所有序列元素键的相似性,并为每个元素返回一个不同的平均值向量

自注意力机制的基础

自注意力机制,是Transformer架构中的关键环节。它的目标是使序列中的每个元素能够关注其他元素,这在处理自然语言时显得尤为重要。传统的序列处理方法往往只关注相邻元素,限制了信息的全面提取。自注意力机制突破了这一点,使得每个词能够通过关注其他词进行信息交互,形成了更加灵活和高效的处理方式。

缩放点积注意力的核心

缩放点积注意力是自注意力机制的核心概念。这种机制通过将一组查询(Q)、键(K)和值(V)矩阵结合起来进行计算。查询、键、值的维度相同,这样可以在同一维度内进行运算。具体来说,计算过程涉及到首先对查询和键进行点积操作,然后经过缩放处理,最后通过softmax函数归一化得到注意力权重。这个过程使得模型能够识别出序列中哪些词对于某个上下文最为重要。

多头注意力的提升

多头注意力机制在缩放点积注意力的基础上进一步提升了自注意力的效果。通过将多个独立的注意力头并行计算,模型能够从不同的子空间中提取信息。每个注意力头关注的方面各有不同,使得模型具备了多样化的信息捕捉能力。最终,这些不同的头的输出会被拼接并传入后续的层中,这一过程增强了模型对于上下文信息的理解能力。

具体来说,给定一个查询、键和值矩阵,我们将它们转换为h个子查询、子键和子值,然后分别输入给点击注意力模型,最后连接头部并将它们与最终的权重矩阵组合起来。

Transformer编码器

最初,Transformer 模型是为机器翻译而设计的。它是一个编码器-解码器结构,其中编码器将原始语言的句子作为输入并生成基于注意力的表征。而解码器关注编码信息并以自回归方式生成翻译的句子,就像 RNN一样。

编码器由N个相同的模块组成,输入x首先通过上面提到的多头注意力块。使用残差连接
将输出添加到原始输入,每一次都有归一化操作。

 

提一下位置编码

上面已经提到过,多头注意力模块是置换同变性的,并且无法区分一个输入是否出现在序列中的另一个输入之前。然而,在语言理解等任务中,位置对于解释输入单词非常重要。因此可以通过输入特征添加位置信息。Transformer通过向输入的每个嵌入(embedding)中添加一个向量完成位置编码(position encoding)。

最后说一下为什么说Transformer目前占绝对主导地位?

Transformer的无可替代性

在当今的科技界,Transformer的地位确立无疑。自从Bert以及GPT系列的开山鼻祖出现,它在大规模算力下展现的并行计算和序列数据关联能力被广泛证明。这些优势使其在工业应用中屹立不倒。例如,OpenAI的诸多AI产品均基于Transformer架构,证明了其强大的适应性与稳定性。

规模化与扩展性

Transformer架构的另一个显著优势在于其优秀的扩展性。只需通过简单的堆叠模型层数,即可显著提升效果。而相比之下,传统的CNN和RNN架构在增加层数时往往面临过拟合和训练困难等问题。Nvidia显卡H100的16896个FP32核,使得大规模模型训练成为可能,而Transformer特有的并行计算设施,使这一过程如鱼得水,达到了无与伦比的效率。

适应性与应用场景广泛

不仅如此,Transformer的通用性也是不容忽视的一大优点。从自然语言处理到图像识别、再到视频处理,Transformer在各类数据处理任务中均表现优异,几乎覆盖了当前主流的数据处理需求。其SOTA表现,使得其他架构望尘莫及。


与其他架构的比较

虽然近年来Mamba和RWKV等基于RNN的新型架构也取得了不少进展,但在大规模推广和应用上仍有所欠缺。Mamba的选择性状态空间模型和RWKV的时间复杂度优化虽然具备创新性,但在产业应用上,Transformer依然保持了不可动摇的领先地位。尤其在算力资源充分的条件下,Transformer只需要Decoder部分即可完成高效并行计算,使得其更具竞争力。

结语

Transformer在当代大模型开发中的主导地位毋庸置疑。无论是其经过验证的强大性能、优异的扩展性、广泛的适应性,还是与其他架构的对比,均证明了Transformer是当前工业应用和创业项目中减少风险的重要保障。当今的科技界纷纷选择Transformer作为首选架构,未来仍将是它的舞台。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2110242.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GEE数据集:美国国家结构清单(NSI)用于评估和分析自然灾害的点式结构清单

简介 国家结构清单 国家结构清单(NSI)是一个数据库系统,其中包含不同质量和空间覆盖范围的结构清单。 NSI 数据库的目的是促进存储和共享用于评估和分析自然灾害的点式结构清单。 洪水风险是主要用途,但每个结构都有足够的数据来…

prompt实用技巧-竞对分析-飞书发布会上多维表和低代码平台原型分析

prompt engineer 工程师的一天 ,竞品分析相关。 “作为企业软件咨询公司整理出uipath,salesforce,airtable,zapier的官网地址,功能点详情,优势,劣势 生成表格4*4,表头为:uipath,salesforce,airtable,zapier, 第一例为&…

Nvidia股价反弹,博雅分析师力挺“行业首选”

在周四的交易中,Nvidia(NVDA)股价成功收复部分失地,上涨1%,这一积极走势得益于博雅全球研究公司(美国银行全球研究)发布的一份看涨报告。博雅分析师重申了对Nvidia的“行业首选”评级&#xff0…

『功能项目』Unity本地数据库读取进入游戏【29】

本章项目成果展示 打开上一篇28Unity连接读取本地数据库的项目, 本章要做的事情是通过读取本地数据库登录进入游戏场景 首先创建一个脚本文件夹: 新建脚本:MySqlAccess.cs 编写脚本:MySqlAccess.cs using UnityEngine; using MyS…

自定义v-model的两种形式

1 使用update (1)在组件中使用v-model"value" (2)props中接收modelValue (3)然后在value值发生变化的时候:this.$emit("update:modelValue", this.value); (4&…

【压力测试】如何确定系统最大并发用户数?

一、明确测试目的与了解需求 明确测试目的:首先需要明确测试的目的,即为什么要确定系统的最大并发用户数。这通常与业务需求、系统预期的最大用户负载以及系统的稳定性要求相关。 了解业务需求:深入了解系统的业务特性,包括用户行…

大语言模型(LLM)如何更好地继续预训练(Continue PreTraining)

预训练(Pretraining)是一个非常消耗资源的工作,尤其在 LLM 时代。随着LLama2的开源,越来越多人都开始尝试在这个强大的英文基座模型上进行中文增强。但,我们如何才能保证模型在既学到「中文知识」的情况下,…

这本PyTorch官方出品的《Deep Learning With PyTorch》终于有了中文版!

导读: 一些线上或线下的关于PyTorch的课程和大学里的计划课程,以及大量的线上博客和教程,使得PyTorch学习起来更容易。然而,关于PyTorch的图书很少。随着本书的出版,我们最终有了一本关于PyTorch的官方权威著作。 它非…

下载适用于 Linux 的 MongoDB Shell教程

下载适用于 Linux 的 MongoDB Shell教程 下载地址 MongoDB Shell Download | MongoDB 2、往下拉,选择Linux对应的版本下载

怎么快速入门大模型技术——AI大模型学习方法

“ 师父领进门,修行在个人 ” 有两个成语,一个是事半功倍,一个是事倍功半;为什么会有这种情况?‍‍‍‍‍‍‍ 原因就是方式方法的问题,有些人掌握了正确的方法就会觉得做什么事都顺风顺水,事…

电脑黑屏开不了机怎么办?教你4招轻松解决

在使用电脑的过程中,有时候会遇到电脑黑屏开不了机的情况。这种问题确实让人感到困惑和焦虑,因为它意味着硬件故障或者系统问题。本文将针对电脑黑屏开不了机的原因进行分析,并提供相应的解决方法,帮助大家快速解决这一问题。 操作…

孙宇晨:区块链领域的时代先锋,每一步引领未来趋势

​孙宇晨,这位在区块链领域崭露头角的青年企业家,凭借着敏锐的洞察力和坚定的决心,成为了数字经济时代的领航者。他的每一步,都走在技术创新的最前沿,推动着区块链技术的发展与应用,给全球经济带来了深远的…

智慧水务:“六变形战士”,这很全面!

在当今快速发展的智慧城市建设中,‌水务管理作为城市运行的重要一环,‌其智能化、‌高效化的需求日益凸显。‌为了满足这一需求,‌一款全新的智慧水务平台——“六边形战士”应运而生,‌它以“生产管网营销运营调度APP”六大核心功…

测试CUDA __threadfence的行为

CUDA __threadfence测试 一.测试小结二.复现过程三.截图 测试CUDA __threadfence的行为 一.测试小结 测例0:没有任何同步,执行到leftt0时,left的数据未加载完成,出现long soreboard的stall 405次测例1:__threadfence会等待memory数据加载完成,leftt0没有出现long scoreboard的…

基于golang实现简单的文件监控

基于golang实现简单的文件监控 package mainimport ("log""syscall""unsafe" )type FileNotifyInformation struct {Action uint32Name string }func Fswatch(path string) (chan FileNotifyInformation, error) {handle, err : syscall.Crea…

vscode中暂存块功能不能用了

vscode中暂存文件修改可以按每一处暂存,而不用一次暂存整个文件的修改,今天发现这个功能不能用了,不知道啥原因,记录一下。

华晨宇火星演唱会三登鸟巢 升级国风四面台引期待

2024华晨宇火星演唱会北京站即将于9月7日、9月8日在鸟巢举办,今年华晨宇将再度带着四面台回归鸟巢,升级后的舞台将融入国风元素,为歌迷带来一场前所未有的视听盛宴。这将是他第三次踏足鸟巢的舞台,更是他音乐旅程的里程碑。 2018年…

性能测试经典案例解析——政务查询系统

各位好,我是 道普云 一站式云测试SaaS平台。一个在软件测试道路上不断折腾十余年的萌新。 欢迎关注我的主页 道普云 文章内容具有一定门槛,建议先赞再收藏慢慢学习,有不懂的问题欢迎私聊我。 希望这篇文章对想提高软件测试水平的你有所帮…

【最新综述】基于机器学习的超声焊接缺陷无损检测

Machine learning for ultrasonic nondestructive examination of welding defects: A systematic review ABSTRACT 近年来,机器学习(ML)在无损检测(NDE)数据自动分析中的应用大幅增加。其中一个值得关注的应用是使用…

JS_阿里云oss视频上传后,如何获取视频封面

当您需要获取视频封面、提取视频关键帧图像进行视频编辑,或者提取视频中特定场景帧图像用于视频监控等时,可以将视频上传至OSS存储空间,然后通过本文所示方法进行视频截帧。 使用示例 本文示例使用的Bucket为杭州地域名为oss-console-img-de…