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

transformer_01

一、传统RNN存在的问题

1.序列前序太长,每个xi要记住前面的特征,而且一直在学,没有忘记,可能特征不能学的太好

2.串行,层越多越慢,难以堆叠很多层;

3.只能看到过去,不能看到未来

搞个双向的,然后把两个方向学到的特征拼接,那么对于xi影响最大的是xi-1和xi+1吗?是相邻的两个吗,不一定,所以也不太合理

二、重大事件 

1.2017年 attention is all your need  出现,RNN退出历史舞台

2.2018 年 transformer  更空出世,bert 和GPT1 

transformer究竟是干什么的?通俗上说就是:1是平淡无奇的特征,2是特征鲜明的特征,transformer的功能就是把1输入进去,然后输出2.

没有transformer之前的算法  训练模型就是训练参数,更新参数,但是transformer不仅更新参数,还可以根据上下文信息更新数据,transformer站的高看的远,考虑全文

三. self-attention

假设x1,x2是两个向量,它们两个的关系就是算内积 ,x1.x2=0表示没关系,x1.x2=表示关系特别大。

transformer中 不是简单算内积,而是构建三个向量参数  q,k,v,q相当于问,k相当于答,比如词 thing ,mathines编码后的特征是x1,x2,则x1和x1的关系是 q1.k1,x1和x1的关系是 q1.k2,x2和x2的关系是 q2.k2,x2于x1的关系是 q2.k1,怎么得到q,k,v呢?

q,k,v都是需要设计一个wx+b(w,b都是先初始化,再通过训练更新)的矩阵,通过和向量矩阵x1x2  全连接 计算得来的。参数值是通过训练得到的。transformer本质就是提特征。最后得到w,b,q,k,v ,怎么得到v呢?

value 表示自身特征,表示对自身的认知。也是需要学习的,输出attention value

向量维度越大,得到内积就越大,这是不合适的,需要排除特征维度的影响。所以要归一化,将值变成概率,dk是特征的维度。

比如想得到500维的特征向量,那就可以分5个头,也就是5组q,k,v,最后拼接,就可以得到更丰富的特征。

此例子中,我打你  ,你打我,两句话中的词 的特征是不变的,也就是说transformer对位置特征不敏感,所以需要加入位置信息

加入one-hot的位置编码,特征与对应位置的编码做加法就可以了

可以堆叠多层self-attention吗?可以模仿15年出世的resnet残差结构来实现,因为每一次的self-attention的输入和输出维度都一样,所以可以堆叠多层。

self-attention相当于encoder层,会得到每一个词的特征,那输出就是要利用这个学出来的特征去做事,比如翻译,就是decoder层了。左边的encoder部分每个词都通过self-attention学到了特征,右边decoder部分每一个词要提供q, encoder提供k,v ,q1k1=v1,q1k2=v2,q1k3=v3,q1k4=v4, 这就是cross-attention,decoder需要self-attention吗?要,只不过是只需要算后面和前面的关系,即算q2和q1的关系,不需要算q1和q2的关系,因为算去q1的时候,还没有q2呢,只能从后往前看,不能从前往后看,所以加入MASK机制遮挡后面看不到的

input: 输入一个词   

input Embedding  :词嵌入,即把词变成一个特征向量

norm:BN,批处理

add:残差链接

feed forward: 全连接     linear  也是全连接

注意:decoder部分 既有self-attention,又有cross-attention

多模态就是要学习各种特征,实际上就是cross- attention

bert  : 自监督  ,随机遮挡15%的词,然后预测这些词

相关文章:

transformer_01

一、传统RNN存在的问题 1.序列前序太长,每个xi要记住前面的特征,而且一直在学,没有忘记,可能特征不能学的太好 2.串行,层越多越慢,难以堆叠很多层; 3.只能看到过去,不能看到未来 搞…...

JavaSE入门---认识方法

文章目录 什么是方法?方法定义实参和形参的关系没有返回值的方法 方法重载方法签名 什么是方法? 在编程中某段功能的代码可能频繁使用到,如果在每个位置都重新实现一遍,会有一些缺点,比如: 使程序变得繁琐…...

编译[Bug]——too few arguments for template template parameter “Tuple“ detected

项目场景: 当使用高版本的cuda去安装低版本pytorch,并且编译用低版本pytorch写的cuda算子时,或者说是VS的版本过高如2022和2019,都有可能会出现某个.h文件或者.c文件报错,如: error: too few arguments f…...

网工内推 | 南天软件,base北京,需持有CCIE认证,最高25k

01 北京南天软件有限公司 招聘岗位:IPT运维工程师 职责描述: 负责客户Cisco语音网络IPT ,CUCM的日常运维,扩容和项目支持,支持路由交换,无线等项目,实施工作以及相关实施文档。 任职要求: 1、…...

Unity有限状态机的简易实现

本人嘴笨,不会说。 该代码实现一个功能较为齐全的有限状态机,可用于大部分的应用场景。 大致实现几个功能 状态更新状态转换状态消息处理全局状态转换和反转状态(转换为前一个状态) 代码分为 状态类状态管理类枚举(…...

什么是NetApp的DQP和如何安装DQP?

首先看看什么是DQP,DQPDisk Qualification Package,文字翻译就是磁盘验证包。按照NetApp的最佳实践,要定期升级DQP包,保证对最新磁盘和磁盘扩展柜的兼容。 本文主要介绍7-mode下如何升级DQP,至于cluster mode另外文章…...

Vue之Vue的介绍安装开发实例生命周期钩子

博主心得: keyup必须与change一起使用v-on.click可以直接写成clickclick“setVal”里的setVal换成数字之后有惊喜VS Code是真的狗,一些报错根本不会直接显示总结:VS code太狗了 1.vue介绍 1.1 什么是vue vue是一个构建用户界面UI的渐进式jav…...

【计网】计算机网络概述

目录 一、计算机网络的概念 二、计算机网络的组成 1、从组成部分上看 2、从工作方式上看 3、从功能组成上看 三、计算机网络的功能 1、数据通信 2、资源共享 3、分布式处理 4、提高可用性 5、负载均衡 四、计算机网络的分类 1、按分布范围 1.广域网 2.城域网 3.…...

初识Java 14-1 测试

目录 测试 单元测试 JUnit 测试覆盖率 前置条件 断言 Java提供的断言语法 Guava提供的更方便的断言 契约式设计中的断言 DbC 单元测试 Guava中的前置条件 本笔记参考自: 《On Java 中文版》 测试 ||| 如果没有经过测试,代码就不可能正常工作…...

react常用的hooks有哪些?

React常用的Hooks包括以下几种: 1.useState:用于在函数组件中创建和管理状态。它返回一个数组,第一个值是当前状态的值,第二个值是更新状态的函数。 使用时,首先通过解构赋值获取状态值和更新函数,并设置初…...

Nacos config 配置中心详解

目录 一、Nacos启动 1.预备环境准备 2.下载编译后压缩包方式 3. 启动服务器 二、 配置管理 多配置格式编辑器 编辑DIFF 示例代码 监听者查询 配置的版本及一键回滚 命名空间管理 登录管理 修改默认用户名/密码方法 关闭登录功能 会话时间 三、启动配置管理 添加依赖&#xff1a…...

C++ UDP通信

#pragma once #ifndef XUDP_H #define XUDP_H#ifdef WIN32 #include <windows.h> #define socklen_t int #else #include <arpa/inet.h> #define closesocket close //替换close函数 #include <unistd.h>#include<iostream> #endifclass XUdp { pub…...

自由程序员想接私活?那你还不得知道这几个接单平台!最后一个就是宝藏!!

相信喜欢搞钱的程序员都知道&#xff0c;平常在平台上接点私活&#xff0c;利用闲暇时间接单是搞钱的常用套路&#xff0c;可是你确定你选对平台了吗&#xff1f;不管你是刚准备接单的小白&#xff0c;还是已经干了一段时间的老油条&#xff0c;都建议你看完本期文章&#xff0…...

二叉树与递归的相爱相杀

数据结构之二叉树 一、基于二叉树的基础操作1.二叉树的构建2.二叉树的遍历①前序遍历&#xff08;深度遍历&#xff09;②中序遍历③后序遍历④层序遍历判断一棵二叉树是否是完全二叉树&#xff08;基于层序遍历的思想&#xff09; 3.二叉树的数量问题①求二叉树结点个数②求二…...

Docker 安装 reids

docker run -itd --name myredis -p 6379:6379 redis --requirepass “123456” --restartalways --appendonly yes...

opensl学习——base16编码解码、base64编码解码、ASCII码表、扩展ASCII码

文章目录 ASCII表概述base家族简单说明 Hex(十六进制)编码、Base32编码、Base64编码、base256编码base16编码与解码base64编码概述转换过程不足 3 字节处理方法例子一,不足3字节&#xff0c;只有一个字节例子二,不足3字节&#xff0c;只有两个字节 base64示例代码1代码分析 acl…...

gazebo各种插件

类别 libgazebo_ros_api_plugin.so&#xff1a;提供与Gazebo仿真环境进行通信的API接口。 libgazebo_ros_block_laser.so&#xff1a;模拟激光传感器的插件。 libgazebo_ros_bumper.so&#xff1a;模拟碰撞传感器的插件。 libgazebo_ros_camera.so&#xff1a;模拟相机传感器的…...

C语言Free空指针会怎样?

在C语言中&#xff0c;使用free函数释放一个空指针是安全的&#xff0c;不会引发任何错误或异常。具体来说&#xff0c;当使用free函数释放一个空指针时&#xff0c;free函数会忽略这个空指针&#xff0c;并且不会执行任何操作。这是因为free函数只对有效的指针进行内存释放操作…...

软件测试全套教程,软件测试自学线路图

软件测试&#xff1a; 软件测试是为了发现程序中的错误而执行程序的过程。 通俗的说&#xff0c;软件测试需要在发布软件之前&#xff0c;尽可能的找软件的错误&#xff0c;尽量避免在发布之后给用户带来不好的体验&#xff0c;并要满足用户使用的需求。 现在市面上这么多软…...

禁止浏览器缩放

禁止浏览器缩放 1. 页面中添加如下代码&#xff1a;2. css单位统一使用rem&#xff0c;如下&#xff1a; 两个条件即可实现&#xff1a; 1. 动态修改html属性fontsize的值&#xff1b; 2. css单位统一使用rem。 1. 页面中添加如下代码&#xff1a; // 定义基准字体 new functi…...

DreamTalk多语言支持深度分析:从中文到德语的语音驱动生成

DreamTalk多语言支持深度分析&#xff1a;从中文到德语的语音驱动生成 【免费下载链接】dreamtalk Official implementations for paper: DreamTalk: When Expressive Talking Head Generation Meets Diffusion Probabilistic Models 项目地址: https://gitcode.com/gh_mirro…...

OpenAvatarChat终极部署指南:如何构建企业级数字人对话系统

OpenAvatarChat终极部署指南&#xff1a;如何构建企业级数字人对话系统 【免费下载链接】OpenAvatarChat 项目地址: https://gitcode.com/gh_mirrors/op/OpenAvatarChat OpenAvatarChat是一款革命性的模块化交互数字人对话框架&#xff0c;为开发者提供了从本地推理到云…...

经手100万+终端后,聊聊校园门锁Sub-1G和Cat.1怎么选

做校园联网门锁项目的人大概都遇到过这个纠结&#xff1a;组网方案到底选Sub-1G还是4G Cat.1&#xff1f;我们团队&#xff08;KEENZY中科易安&#xff09;经手了100万在线终端的运行数据&#xff0c;可以明确地说——两种方案没有绝对的优劣&#xff0c;只有场景是否匹配。选错…...

NVIDIA CUDA 在深度学习中的代码结构分析与性能优化

1. 深度学习场景下 CUDA 代码结构概述1.1 CUDA 在深度学习中的应用场景CUDA&#xff08;Compute Unified Device Architecture&#xff09;是 NVIDIA 推出的通用并行计算架构&#xff0c;通过利用 GPU 的大规模并行处理能力来加速深度学习工作负载。在深度学习领域&#xff0c;…...

告别PPT超时焦虑:PPTTimer让演讲时间管理变得如此简单

告别PPT超时焦虑&#xff1a;PPTTimer让演讲时间管理变得如此简单 【免费下载链接】ppttimer 一个简易的 PPT 计时器 项目地址: https://gitcode.com/gh_mirrors/pp/ppttimer 还在为PPT演示超时而烦恼吗&#xff1f;每次演讲都像和时间赛跑&#xff0c;担心讲得太快或太…...

为OpenClaw智能体工作流配置Taotoken作为统一模型服务源

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为OpenClaw智能体工作流配置Taotoken作为统一模型服务源 在构建基于智能体&#xff08;Agent&#xff09;的自动化工作流时&#x…...

希捷ST20000NM007D深度评测:20TB企业级硬盘,兼顾容量与稳定的实用之选

在企业存储领域&#xff0c;“容量”与“稳定”始终是核心诉求。随着大数据、云存储、边缘计算的快速发展&#xff0c;企业对存储设备的要求愈发严苛——既需要足够大的空间承载海量数据&#xff0c;又要保证724小时不间断运行的稳定性&#xff0c;同时还要控制功耗与运营成本。…...

英雄年代怀旧版官网下载:正版复刻国战经典,热血回归

英雄年代怀旧版官网下载&#xff1a;正版复刻国战经典&#xff0c;热血回归《英雄年代怀旧版》&#xff08;又名《风爆远征英雄年代怀旧版》&#xff09;是安徽游昕运营、盛趣正版授权的复古国战 MMORPG 手游&#xff0c;1:1 复刻 2004 年端游原版内容&#xff0c;剔除魔神、暗…...

从零到通:在华为eNSP模拟器上玩转Telnet+AAA,一篇搞定远程管理核心交换机

从零到通&#xff1a;在华为eNSP模拟器上玩转TelnetAAA&#xff0c;一篇搞定远程管理核心交换机 刚接触华为网络设备的朋友们&#xff0c;是否曾被密密麻麻的命令行界面吓到&#xff1f;其实只要掌握几个核心配置&#xff0c;就能像专业网管一样优雅地远程管理交换机。今天我们…...

Python之rf-phate包语法、参数和实际应用案例

一、RF‑PHATE 包核心功能 RF‑PHATE 是一个有监督降维与可视化包&#xff0c;核心是把随机森林&#xff08;RF&#xff09;特征重要性与 PHATE&#xff08;基于热扩散的流形嵌入&#xff09; 结合&#xff0c;生成标签导向的低维嵌入&#xff0c;凸显与响应变量相关的结构、抑…...