Transformer为什么如此有效 | 通用建模能力,并行

目录

1 更强更通用的建模能力

2 并行计算

3 大规模训练数据

4 多训练技巧的集成

Transformer是一种基于自注意力机制的网络,在最近一两年年可谓是大放异彩,我23年入坑CV的时候,我看到的CV工作似乎还没有一个不用到Transformer里的一些组件的,我不禁好奇,为什么Transformer如此有效呢?

Transformer最早提出是在2017年,发源于那篇著名的《Attention is all you need》大佬的文章标题就是这么接地气哈哈哈哈,不过吧,确实目前看来Attention is all my need,Transformer的提出最初是用于自然语言处理的

不过就在2020年底,CV探索者们将Transformer迁移到了计算机视觉领域,起初只是在分类任务上展露头角(开拓性工作VIT,全程Vision Transformer),后来各种变体工作的探索,使得Transformer在CV的很多下游任务上,如检测,分割等任务上都表现很好

既然有了统一的主干网络,科学家们就逐渐感觉CV和NLP的大一统会一点点成为可能。

不过今天这篇文章重点还是会放在Transformer为什么如此有效

1 更强更通用的建模能力

卷积网络得吭哧吭哧卷半天,有时候卷到后面前面的信息就忘记了,但Transformer咔嚓一下子就可以捕获全局像素信息

Transformer网络中的自注意力机制可以帮助模型自动捕捉输入序列中不同位置的依赖关系(而图片也可以变为序列),这种机制使得不需要卷积或循环的情况下降整个序列作为输入

正是因为具备这样的通用建模能力,Transformer 中的注意力单元可以被应用到各种各样的视觉任务中。

2 并行计算

在Transformer架构中,实现并行计算的关键在于自注意力(Self-Attention)机制。自注意力机制允许模型同时处理输入序列的所有元素(自注意力机制可以最后化为矩阵运算,实现并行运算),而无需像循环神经网络(RNN)那样按顺序迭代。这种特性使得Transformer可以有效地利用现代硬件(如GPU和TPU)进行并行计算。

3 大规模训练数据

之前很多工作都是有监督的,也就是说为了获取数据集我们需要做很多标记工作

因而我们都想着把数据直接丢给网络,让网络自己学习会有多香呢哈哈哈,方便做数据集的拓展

而Transformer之后的Bert等一系列无监督工作,方便了使用大规模数据获得卓越性能

而现在的Transformer通常使用大量的训练数据进行预训练。这使得模型可以学习到丰富的语言知识和语境信息。随着训练数据的增加,模型的性能通常也会得到显著提高

4 多训练技巧的集成

在训练过程中,采用了迭代了许多训练优化技巧,如学习率调整、批归一化,层归一化,梯度裁剪等,提高模型的训练速度和稳定性。

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

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

相关文章

解决 Git:This is not a valid source path/URL

由于sourcetree 可以获取不同仓库的代码,而我的用户名密码比较杂乱,导致经常会修改密码,在新建拉去仓库代码的时候sourcetree 不会提示你密码错误,直接提示 This is not a valid source path/URL。 在已存在的代码仓库&#xff0…

TDengine+OpenVINO+AIxBoard,助力时序数据分类

时间序列数据分析在工业,能源,医疗,交通,金融,零售等多个领域都有广泛应用。其中时间序列数据分类是分析时序数据的常见任务之一。本文将通过一个具体的案例,介绍 Intel 团队如何使用 TDengine 作为基础软件…

rocketmq消息发送源码学习

消息发送基本流程 消息发送流程主要的步骤:验证消息、查找路由、消息发送(包含异常处理机制)。 代码:同步消息发送入口 DefaultMQProducer#send public SendResult send(Message msg) throws MQClientException, RemotingExcep…

golang singleflight资料整理

https://www.cyningsun.com/01-11-2021/golang-concurrency-singleflight.html https://juejin.cn/post/7261897250648817701 https://segmentfault.com/q/1010000022916754 https://juejin.cn/post/6916785233509482509 https://segmentfault.com/a/1190000018464029

备忘录模式 行为型模式之八

1.定义 备忘录模式是一种行为型的软件设计模式,在不破坏封装的前提下,获取一个对象的内部状态,并在对象外保存该状态,当对象需要恢复到该状态时,对其进行恢复。 2.组成结构 原发器 (Originator&#xff0…

超详细!主流大语言模型的技术原理细节汇总!

1.比较 LLaMA、ChatGLM、Falcon 等大语言模型的细节:tokenizer、位置编码、Layer Normalization、激活函数等。 2. 大语言模型的分布式训练技术:数据并行、张量模型并行、流水线并行、3D 并行、零冗余优化器 ZeRO、CPU 卸载技术 ZeRo-offload、混合精度训…

pip安装或更新

在终端用pip安装时老是报错,把pip升级到最高版本还是不行 ERROR: Exception: Traceback (most recent call last): File "F:\software\anaconda\envs\tensorflow\lib\site-packages\pip\_vendor\urllib3\response.py", line 438, in _error_catcher yiel…

gcc和g++区别

一、什么是GNU编译器? GNU编译器(GNU Compiler Collection,简称GCC),是一套由自由软件基金会所发展的编程器。GCC支持多种编程语言,包括C、C、Objective-C、Fortran、Ada、以及其它一些语言。它是Linux系统和很多类U…

Zabbix监控硬盘S.M.A.R.T.信息教程

S.M.A.R.T.是"Self-Monitoring, Analysis, and Reporting Technology"的缩写,它是一种硬盘自我监测、分析和报告技术。硬盘S.M.A.R.T.信息的主要用途是帮助用户和系统管理员监测硬盘的健康状态和性能,例如温度、振动、读写错误率、坏道数量等&…

Linux 部署 MinIO 分布式对象存储 配置为 typora 图床

前言 MinIO 是一款高性能的对象存储系统,它可以用于大规模的 AI/ML、数据湖和数据库工作负载。它的 API 与Amazon S3 云存储服务完全兼容,可以在任何云或本地基础设施上运行。MinIO 是开源软件,也提供商业许可和支持 MinIO 的特点有&#x…

用Jmeter进行接口自动化测试的工作流程你知道吗?

在测试负责人接受到测试任务后,应该按照以下流程规范完成测试工作。 2.1 测试需求分析 产品开发负责人在完成某产品功能的接口文档编写后,在核对无误后下发给对应的接口测试负责人。测试负责人拿到接口文档需要首先做以下两方面的工作。一方面&#…

点云采样方法

随机采样,网格采样,均匀采样,集合采样。 网格采样:用规则的网格对点进行采样,不能精确的控制采样点的数量 均匀采样:均匀的采样点云中的点,由于其鲁棒性(系统的健壮性)而更受欢迎 点云降采样…

Windows11更新后Chrome无法打开解决方案

引言 最近更新了win11后,chrome突然抽风无法打开了,不知道是不是微软的锅,上网查询发现似乎有很多人最近碰到了相同的问题,试了试最为广泛传播的方案–更改manifest文件。然而在我这无效,索性直接重装,发现…

vscode搭建c/c++环境

1. 安装mingw64 2.vscode安装c/c插件,run插件 3.在workspace/.vscode文件夹下新建三个文件: 1)c_cpp_properties.json { "configurations": [ { "name": "Win32", "includePath": [ "${wor…

CentOS8的nmcli常用命令总结

nmcli常用命令 # 查看ip(类似于ifconfig、ip addr) nmcli# 创建connection,配置静态ip(等同于配置ifcfg,其中BOOTPROTOnone,并ifup启动) nmcli c add type ethernet con-name ethX ifname ethX…

vue怎样封装接口

Vue可以使用axios来发送HTTP请求,通过封装axios可以实现接口的统一管理和调用。下面是一个简单的封装接口的示例。 安装axios 在项目中安装axios依赖,可以使用npm或者yarn命令进行安装。 npm install axios --save创建api.js文件 在项目中创建一个ap…

BACnet /IP转MQTT网关

在工业自动化和楼宇自动化领域中,Modbus、MQTT和BACnet/IP是三种常用的通信协议。Modbus是一种串行通信协议,常用于连接工业电子设备;MQTT是一种基于发布/订阅模式的轻量级通信协议,适用于远程监测和控制系统;BACnet/I…

代码注释对于程序员重要吗?

程序员对代码注释可以说是又爱又恨又双标……你是怎么看待程序员不写注释这一事件的呢? 代码注释的重要性 代码注释是指在程序代码中添加的解释性说明,用于描述代码的功能、目的、使用方法等。代码注释对于程序的重要性主要体现在以下几个方面&#x…

JSON数据处理工具-在线工具箱网站tool.qqmu.com的使用指南

导语:无论是处理JSON数据、进行文本数字处理、解码加密还是使用站长工具,我们都希望能够找到一个功能强大、简便易用的在线平台。tool.qqmu.com作为一款瑞士军刀般的在线工具箱网站,满足了众多用户的需求。本文将介绍tool.qqmu.com的多项功能…

什么是网络流量监控

随着许多服务迁移到云,网络基础架构的维护变得复杂。虽然云采用在生产力方面是有利的,但它也可能让位于未经授权的访问,使 IT 系统容易受到安全攻击。 为了确保其网络的安全性和平稳的性能,IT 管理员需要监控用户访问的每个链接以…