当前位置: 首页 > news >正文

LLM架构自注意力机制Transformers architecture Attention is all you need

使用Transformers架构构建大型语言模型显著提高了自然语言任务的性能,超过了之前的RNNs,并导致了再生能力的爆炸。
在这里插入图片描述

Transformers架构的力量在于其学习句子中所有单词的相关性和上下文的能力。不仅仅是您在这里看到的,与它的邻居每个词相邻,而是与句子中的每个其他词。将注意力权重应用于这些关系,以便模型学习每个词与输入中的其他词的相关性,无论它们在哪里。
在这里插入图片描述

这使得算法能够学习谁有这本书,谁可能有这本书,以及它是否与文档的更广泛的上下文相关。这些注意力权重在LLM训练期间学到,您将在本周晚些时候了解更多。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这个图被称为注意力图,可以用来说明每个词与每个其他词之间的注意力权重。在这个风格化的例子中,您可以看到单词“book”与单词“teacher”和“student”强烈地连接或关注。
在这里插入图片描述

这被称为自注意力,这种跨整个输入学习注意力的能力显著地提高了模型编码语言的能力。
在这里插入图片描述

现在您已经看到了Transformers架构的一个关键属性,自注意力,让我们从高层次看看模型是如何工作的。这是一个简化的Transformers架构图,这样您可以从高层次关注这些过程发生的地方。Transformers架构分为两个不同的部分,编码器和解码器。
在这里插入图片描述

这些组件相互协作,并且它们有许多相似之处。此外,请注意,您在这里看到的图是从原始的“Attention is All You Need”论文中派生出来的。注意模型的输入是在底部,输出是在顶部,在可能的情况下,我们将尝试在整个课程中保持这一点。

现在,机器学习模型只是大型的统计计算器,它们使用数字而不是单词。因此,在将文本传递到模型进行处理之前,您必须首先对单词进行标记。简单地说,这将单词转换为数字,每个数字代表模型可以使用的所有可能单词的字典中的位置。您可以选择多种标记化方法。

例如,匹配两个完整单词的令牌ID,
在这里插入图片描述

或使用令牌ID表示单词的部分。
在这里插入图片描述

正如您在这里看到的。重要的是,一旦您选择了一个标记器来训练模型,您在生成文本时必须使用相同的标记器。现在您的输入表示为数字,您可以将其传递给嵌入层。这一层是一个可训练的向量嵌入空间,一个高维空间,其中每个令牌都表示为一个向量,并在该空间内占据一个唯一的位置。
在这里插入图片描述

词汇表中的每个令牌ID都与一个多维向量匹配,直觉是这些向量学会编码输入序列中单个令牌的含义和上下文。嵌入向量空间在自然语言处理中已经使用了一段时间,像Word2vec这样的上一代语言算法使用了这个概念。如果您不熟悉这个,不用担心。您将在整个课程中看到这方面的例子,本周末的阅读练习中还有一些链接到其他资源。

回顾样本序列,您可以看到在这个简单的情况下,每个单词都与一个令牌ID匹配,每个令牌都映射到一个向量。在原始的Transformers论文中,向量的大小实际上是512,所以比我们可以放到这个图像上的要大得多。
在这里插入图片描述

为了简单起见,如果您想象一个向量大小只有三个,您可以将单词绘制到一个三维空间中,并看到这些单词之间的关系。您现在可以看到如何关联嵌入空间中彼此靠近的单词,
在这里插入图片描述

以及如何计算单词之间的距离作为一个角度,
在这里插入图片描述

这使得模型具有数学上理解语言的能力。当您将令牌向量添加到编码器或解码器的基础时,您还添加了位置编码。
在这里插入图片描述

模型并行处理每个输入令牌。因此,通过添加位置编码,您保留了关于单词顺序的信息,并且不会丢失单词在句子中的位置的相关性。一旦您将输入令牌和位置编码相加,您就将结果向量传递给自注意力层。

在这里插入图片描述

在这里,模型分析输入序列中的令牌之间的关系。正如您之前看到的,这使得模型能够关注输入序列的不同部分,以更好地捕获单词之间的上下文依赖关系。在训练期间学到并存储在这些层中的自注意力权重反映了输入序列中每个单词与序列中所有其他单词的重要性。

在这里插入图片描述

但这不仅仅发生一次,Transformers架构实际上具有多头自注意力。这意味着多组自注意力权重或头部并行独立地学习。注意力层中包括的注意力头数因模型而异,但范围在12-100之间是常见的。
在这里插入图片描述

直觉是每个自注意力头将学习语言的不同方面。例如,一个头可能会看到我们句子中的人实体之间的关系。
在这里插入图片描述

而另一个头可能专注于句子的活动。
在这里插入图片描述

而另一个头可能专注于其他属性,例如单词是否押韵。
在这里插入图片描述

重要的是要注意,您不会提前指定注意力头将学习的语言方面。每个头的权重都是随机初始化的,只要有足够的训练数据和时间,每个头都会学习语言的不同方面。虽然一些注意力图很容易解释,就像这里讨论的例子,但其他的可能不是。

现在所有的注意力权重都已经应用到您的输入数据,输出通过一个完全连接的前馈网络进行处理。
在这里插入图片描述

这一层的输出是与每个令牌在分词器字典中的概率得分成比例的logits向量。

然后,您可以将这些logits传递给最终的softmax层,其中它们被标准化为每个单词的概率得分。这个输出包括词汇表中每个单词的概率,所以这里可能有成千上万的分数。
在这里插入图片描述

一个单一的令牌将有一个比其他所有令牌更高的分数。这是最有可能预测的令牌。但是,正如您在课程后面将看到的,您可以使用多种方法从这个概率向量中选择最终的选择。

参考

https://www.coursera.org/learn/generative-ai-with-llms/lecture/3AqWI/transformers-architecture

相关文章:

LLM架构自注意力机制Transformers architecture Attention is all you need

使用Transformers架构构建大型语言模型显著提高了自然语言任务的性能,超过了之前的RNNs,并导致了再生能力的爆炸。 Transformers架构的力量在于其学习句子中所有单词的相关性和上下文的能力。不仅仅是您在这里看到的,与它的邻居每个词相邻&…...

计算机网络 QA

DNS 的解析过程 浏览器缓存。当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的 IP 地址(曾经访问过该域名并且没有清空缓存)系统缓存。当浏览器缓存中无域名对应的 IP 地址时,会自动检测用户计算机…...

安果天气预报 产品介绍

软件介绍版本号 2.0.5 安果天气预报:全世界覆盖,中国定制 想要查找北京、上海、纽约、东京还是巴黎的天气?一款简约的天气预 报应用为你呈现。专注于为用户提供纯净的天气体验,我们不发送任何打扰的通知。包含空气质量、能见度、…...

net start Mysql 启动服务时 ,显示“Mysql服务正在启动 Mysql服务无法启动 服务没有报告任何错误

一、问题 有时候,输入net start Mysql 启动服务时 mysql>net start Mysql 显示 Mysql服务正在启动 Mysql服务无法启动 服务没有报告任何错误 二、原因 由于mysql的默认端口是3306,因此在启动服务的时候,如果此端口被占用,就会出…...

DAY24

题目一 啊 看着挺复杂 其实很简单 第一种方法 就是纵轴是怪兽编号 横轴是能力值 看看能不能打过 逻辑很简单 看看能不能打得过 打过的就在花钱和直接打里面取小的 打不过就只能花钱 这种方法就导致 如果怪兽的能力值很大 那么我们就需要很大的空间 所以引出下一种做法 纵…...

Redis过期数据的删除策略

1 介绍 Redis 是一个kv型数据库,我们所有的数据都是存放在内存中的,但是内存是有大小限制的,不可能无限制的增量。 想要把不需要的数据清理掉,一种办法是直接删除,这个咱们前面章节有详细说过;另外一种就是…...

如何使用CSS实现一个拖拽排序效果?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 实现拖拽排序效果的CSS和JavaScript示例⭐ HTML 结构⭐ CSS 样式 (styles.css)⭐ JavaScript 代码 (script.js)⭐ 实现说明⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦…...

leetcode 118.杨辉三角

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;https://leetcode.cn/problems/pascals-triangle/description/ 代码&#xff1a; class Solution { public:vector<vector<int>> generate(int numRows) {// 先开空间vector<vector<int>> v;v.…...

微服务框架之SpringBoot面试题汇总

微服务框架之SpringBoot面试题汇总 什么是Spring Boot&#xff1f; 多年来&#xff0c;随着新功能的增加&#xff0c;spring变得越来越复杂。Spring项目&#xff0c;我们必须添加构建路径或添加Maven依赖关系&#xff0c;配置应用程序服务器&#xff0c;添加spring配置。因此&…...

Promise详解

目录 一、前言&#xff1a;为什么会出现Promise?二、Promise是什么?2.1 Promise的初体验 三、使用Promise的好处?3.1 指定回调函数的方式更加灵活3.2 可以解决回调地狱问题&#xff0c;支持链式调用 四、Promise实例对象的两个属性五、resolve函数以及reject函数六、Promise…...

Oracle 查询(当天,月,年)的数据

Trunc 在oracle中&#xff0c;可利用 trunc函数 查询当天数据&#xff0c;该函数可用于截取时间或者数值&#xff0c;将该函数与 select 语句配合使用可查询时间段数据 查询当天数据 --sysdate是获取系统当前时间函数 --TRUNC函数用于截取时间或者数值&#xff0c;返回指定的…...

什么是梯度下降

什么是梯度下降 根据已有数据的分布来预测可能的新数据&#xff0c;这是回归 希望有一条线将数据分割成不同类别&#xff0c;这是分类 无论回归还是分类&#xff0c;我们的目的都是让搭建好的模型尽可能的模拟已有的数据 除了模型的结构&#xff0c;决定模型能否模拟成功的关键…...

开黑啦kook 机器人开发 PHP swoole Liunx 服务器(宝塔)

安装环境 PHP 拓展 直接使用 宝塔一键安装 &#xff08;Windows系统不支持&#xff09; 设置命令行的PHP版本避免执行脚本时 获取不到 swoole 检查swoole是否安装成功 获取官方SDK GitHub - kaiheila/php-bot: 开黑啦机器人的php版本https://github.com/kaiheila/php-bot 配…...

Vue 中hash 模式与 history 模式的区别

hash 模式&#xff1a; - 地址中永远带着 # 号&#xff0c;不美观。 - 兼容性比较好。 - 通过手机 app 分享地址时&#xff0c;如果 app 效验严格&#xff0c;该地址会被标记为不合法。 history 模式&#xff1a; - 地址干净&#xff0c;美观。 - 兼容性和 hash 模式相比…...

Dockerfile推送私有仓库的两个案例

一&#xff0c;编写Dockerfile制作Web应用系统nginx镜像&#xff0c;生成镜像nginx:v1.1&#xff0c;并推送其到私有仓库。 具体要求如下&#xff1a; &#xff08;1&#xff09;基于centos基础镜像&#xff1b; &#xff08;2&#xff09;指定作者信息&#xff1b; &#xff…...

【指标】指标公式大全,款款经典(建议珍藏)!-神奇指标网

三、指标源码&#xff1a; 1、连续三天高开高走的选股公式 count(o〉ref(c,1&#xff09;andc>o&#xff0c;3)3&#xff1b; 2、连续3天每天的最低价都比前一天高 count&#xff08;l〉ref(c,1&#xff09;,3)3&#xff1b; 3、周量缩小50%或40&#xff05;或n&#x…...

面试题目收集

Zset排行榜功能如何设计key&#xff1f; key就设计成排行榜的名字&#xff0c;比如下面插入或者更新数据 Long zadd(final String key, final double score, final String member) key : 排行榜的名字 memeber : 用户 score : 用户的分数 项目…...

创建R包-2.1:在RStudio中使用Rcpp制作R-Package(更新于2023.8.23)

目录 0-前言 1-在RStudio中创建R包项目 2-创建R包 2.1通过R函数创建新包 2.2在RStudio通过菜单来创建一个新包 2.3关于R包创建的说明 3-添加R自定义函数 4-添加C函数 0-前言 目标&#xff1a;在RStudio中创建一个R包&#xff0c;这个R包中包含C函数&#xff0c;接口是Rc…...

chatGPT如何解释泽众PerformanceRunner性能测试工具?

PerformanceRunner 是一个性能测试工具&#xff0c;可以帮助测试人员进行性能测试。它的主要功能包括&#xff1a; 1. 脚本录制和回放&#xff1a; PerformanceRunner可以录制 HTTP/HTTPS 通信协议的脚本&#xff0c;并能够回放模拟真实用户的行为。通过录制和回放&#xff0c…...

LA@向量组线性相关性

文章目录 向量组线性相关性线性相关线性无关多向量向量组线性相关单向量向量组的线性相关性单位向量向量组线性相关性双向量向量组的线性相关性双向量线性相关的几何意义三向量线性相关的几何意义包含零向量的向量组线性相关概念迁移:线性方程组和线性相关齐次线性方程组和向量…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...