生成式AI和LLM的革命:Transformer架构

news2024/11/22 15:08:46

近年来,随着一篇名为“Attention is All You Need”论文的出现,自然语言处理(NLP)领域经历了一场巨大的变革。2017年,在谷歌和多伦多大学发表了这篇论文后,Transformer架构出现了。这一架构不仅显著提升了NLP任务的性能,还引发了生成式人工智能能力的爆炸性增长。

Transformer架构的强大之处

Transformer架构的核心优势在于其能够学习句子中所有单词的相关性和上下文,而不仅仅是相邻单词之间的关系。通过应用注意力权重,模型可以学习输入中每个单词与其他单词的相关性,无论它们在输入中的位置如何。这使得模型能够理解句子的整体意义和上下文,从而提高了语言编码的能力。

“The teacher taught the student with the book.”以这句话为例,Transformer架构中,会学习每个单词之间的相关性,并且得到注意力权重。
下图是注意力图,有助于说明每个单词与其他单词之间的注意力权重。

Transformer架构的组成部分

最直接的就是拿出这张最经典的图表了,来自 “Attention is All You Need”论文。

编码器(Encoder)和解码器(Decoder)

Transformer架构分为两个主要部分:编码器(Encoder,上图左边)和解码器(Decoder,上图右边)。把上边的图简化一下:

标记化(Tokenization)和嵌入层(Embedding Layer)

在将文本输入模型进行处理之前,首先需要对单词进行标记化(Tokenization),因为大模型处理的是Token,不是单词。这一步将单词转换为数字,这个数字就是通常说的Token。

重要的是,一旦你选择了一个标记器(tokenizer)来训练模型,你在生成文本时必须使用相同的标记器(tokenizer)。

下图是两种不同的tokenizer:

然后,输入将被传递到嵌入层(Embedding Layer),该层是一个可训练的高维向量空间(trainable vector embedding space),每个Token表示为一个向量并占据该空间内的唯一位置。

下图是一个Embedding Layer的例子,每个TokenID被映射到这个向量空间的一个向量(Vector)上,论文中这个向量(Vector)的大小是512.

大模型将嵌入空间中彼此接近的Token联系起来,并且将Token之间的距离计算为一个角度,数学地理解语言。

当将Token Vector添加到编码器或解码器的基础时,同时还添加了位置编码(positional encoding)到Postiion embedding中。通过添加位置编码,保留了有关单词顺序的信息,不会丢失句子中单词位置的相关性。一旦将输入令牌和位置编码相加,就会将结果向量传递给自注意力层(Self-Attention Layer)。

自注意力机制(Self-Attention Layer)

自注意力机制是Transformer架构的关键特性之一。该层分析输入序列中令牌之间的关系,使模型能够关注输入序列的不同部分,从而更好地捕捉单词之间的上下文依赖关系。

多头自注意力(Multi-Head Self-Attention)

Transformer架构实际上具有多头自注意力(Multi-Head Self-Attention)。这意味着多个自注意力权重(attention weights)集(或称头)是并行独立学习的,每个头会学习语言的不同方面。例如,一个头可能关注句子中人物实体之间的关系,另一个头可能关注句子的活动,第三个头可能关注单词是否押韵。

全连接前馈网络( Fully-Connected Feed-Forward Network)

所有的注意力权重(attention weights)应用到输入数据后,输出将通过一个全连接的前馈网络(Fully-Connected Feed-Forward Network)进行处理。该层的输出是一个逻辑向量,与标记器词典(tokenizer dictionary)中每个Token的概率得分成比例。

然后,这些逻辑值被传递到一个softmax层,归一化为每个单词的概率得分。这个输出包括词汇表中每个单词的概率,所以这里可能有成千上万的分数。

Transformer架构的革命性影响

Transformer架构的出现改变了NLP的游戏规则。它不仅解决了传统RNN架构的局限性,还显著提高了生成式任务的性能。通过并行处理输入数据,并利用更大的训练数据集,Transformer架构能够高效地扩展使用多核GPU进行训练。更重要的是,它能够学习并关注处理单词时的语义,这一点在《Attention is All You Need》论文中得到了详细阐述。

总结

Transformer架构已经成为现代NLP任务的基础。通过其独特的自注意力机制和多头注意力,Transformer不仅提高了模型对语言的理解能力,还大大增强了生成式人工智能的能力。随着技术的不断发展,我们可以期待Transformer架构将在更多领域发挥更大的作用。

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

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

相关文章

.net 连接达梦数据库开发环境部署

.net 开发环境部署 1. 环境准备 测试工具 Visual Studio2022 数据库版本 dm8 2. 搭建过程 1 )创建新项目 2 )选择创建空项目 3 )配置新项目 4 )右键 DM1 新建一个项 5 )加 载 驱 动 , 新 建 …

移动恶意软件的崛起

一.介绍 随着手机的出现,我们的日常生活发生了变化,无论是我们的工作方式还是我们过去相互交流的方式,一切都随着移动技术的进步而改变。但是,随着技术的进步,恶意软件也被引入,随着时间的推移它也变得更加…

用excel能做出这些报表吗?

用excel能做出这些报表吗? 有什么办法不安装OFFICE也能显示出来?

免费【2024】springboot 城市交通管理系统的设计与实现

博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

labview四字节转浮点数

1.labview四字节转浮点数 2.Labview怎么把串口接收到的数据转换成浮点数? Labview怎么把串口接收到的数据转换成浮点数?

SeaCMS海洋影视管理系统远程代码执行漏洞复现

SeaCMS海洋影视管理系统远程代码执行漏洞复现 Ⅰ、环境搭建Ⅱ、漏洞复现Ⅲ、漏洞分析 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责&…

maven引入了jar包但在class文件里找不到jar包里的类

在工作当中遇到的这个问题,别人引入的jar包,我代码里报错 maven clean 和 maven install 都不管用 检查过了pom文件 检查了maven仓库路径下是否有这个cn.hutool的jar包 都没有找到问题 最终解决办法是手动引入 步骤一:点击左上角file->…

湖仓一体架构解析:数仓架构选择(第48天)

系列文章目录 1、Lambda 架构 2、Kappa 架构 3、混合架构 4、架构选择 5、实时数仓现状 6、湖仓一体架构 7、流批一体架构 文章目录 系列文章目录前言1、Lambda 架构2、Kappa 架构3、混合架构4、架构选择5、实时数仓现状6、湖仓一体架构7、流批一体架构 前言 本文解析了Lambd…

【leetcode】两数之和【简单】( 注释详解:C++map/ C哈希表)

本题为函数题&#xff0c;函数头固定如下&#xff1a; C: vector<int> twoSum(vector<int>& nums, int target)C: int* twoSum(int* nums, int numSize, int target, int* returnSize) 下面是时间复杂度为O&#xff08;n&#xff09;的代码 CAC代码&#x…

大厂面试官问我:ConcurrentHashMap底层原理?【后端八股文十五:Java集合合集】

本文为【Java集合 合集】初版&#xff0c;后续还会进行优化更新&#xff0c;欢迎大家关注交流~ hello hello~ &#xff0c;这里是绝命Coding——老白~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#…

IDEA Maven使用国内镜像,解决Could not transfer artifact org.xxx问题

文章目录 一、前言二、遇到问题三、分析问题四、使用国内镜像五、重新编译验证 一、前言 遇到这个问题&#xff0c;有两种解决办法 IDEA Maven使用HTTP代理&#xff0c;解决Could not transfer artifact org.xxx问题IDEA Maven使用国内镜像&#xff0c;解决Could not transfer …

数据结构——链式二叉树(C语言版)

链式二叉树的结构 ⽤链表来表⽰⼀棵⼆叉树&#xff0c;即⽤链来指⽰元素的逻辑关系。 通常的⽅法是链表中每个结点由三个域组成&#xff0c;数据域和左右指针域&#xff0c;左右指针分别⽤来给出该结点左孩⼦和右孩⼦所在的链结点的存储地址。 由上图可见&#xff0c;链式二叉树…

详细介绍BIO、NIO、IO多路复用(select、poll、epoll)

BIO、NIO、IO多路复用 BIO(Blocking IO)NIO(Non-blocking IO) 同步非阻塞IOIO多路复用selectpollepoll Redis的IO多路复用 BIO(Blocking IO) 最基础的IO模型&#xff0c;当进行IO操作时&#xff0c;线程会被阻塞&#xff0c;直到操作完成。 比如read和write&#xff0c;通常IO…

string indices must be integers

string indices must be integers 目录 string indices must be integers 【常见模块错误】 【解决方案】 常见原因及解决方法 具体案例分析 总结 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出…

python基础---2.流程控制及函数

&#x1f388;个人主页&#xff1a;靓仔很忙i &#x1f4bb;B 站主页&#xff1a;&#x1f449;B站&#x1f448; &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;python &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&…

Godot入门 07 世界构建2.0

添加基础节点Node&#xff0c;重命名为Coins&#xff0c;整理场景树&#xff0c;拖动Coin到Coins节点下。 添加基础节点Node&#xff0c;重命名为Platforms&#xff0c;整理场景树&#xff0c;拖动Platform到Platforms节点下。 添加游戏背景 设置当前图层名称为Mid 添加图层元…

sql基础查询

1.基础查询语法 distinct去重 例子&#xff1a; 尽量不写* 影响效率

智慧校园行政办公:优化车辆保险费用管理的新选择

在智慧校园的行政办公系统中&#xff0c;车辆保险费用管理功能扮演着不可或缺的角色&#xff0c;它专注于校园内公务用车的保险费用的系统化与自动化管理&#xff0c;旨在提升财务管理的透明度&#xff0c;减少人为失误&#xff0c;优化保险支出。这一功能的核心在于信息的准确…

Javascript面试基础6【每日更新10】

Gulp gulp是前端开发过程中一种基于流的代码构建工具&#xff0c;是自动化项目的构建利器;它不仅能对网站资源进行优化&#xff0c;而且在开发过程中很多重复的任务能够使用正确的工具自动完成 Gulp的核心概念:流 流&#xff0c;简单来说就是建立在面向对象基础上的一种抽象的…

【前端 14】Vue常见指令

Vue常见指令 Vue.js 是一个构建用户界面的渐进式框架&#xff0c;它通过一系列简洁的指令&#xff08;Directives&#xff09;来增强HTML的功能&#xff0c;使得开发者能够更加方便地构建出响应式的Web应用。本文将详细讲解Vue中的几个核心指令&#xff1a;v-bind、v-model、v…