Scaling Vision Transformers to 22 Billion Parameters

Scaling Vision Transformers to 22 Billion Parameters

主要贡献

  • Vision Transformer(ViT)的大规模扩展:尽管Transformer架构在自然语言处理(NLP)领域取得了巨大成功,但在计算机视觉(CV)领域,尤其是图像和视频建模方面,尚未实现与语言模型相当的规模扩展。论文提出了ViT-22B,这是一个具有220亿参数的Vision Transformer模型,是目前最大的密集ViT模型。

  • 训练稳定性和效率:在扩展ViT模型到22亿参数的过程中,作者遇到了训练不稳定性的问题。为了解决这个问题,他们提出了一些架构上的改进,如并行层、查询/键(QK)归一化以及省略某些偏置项,这些改进使得模型能够在保持训练稳定性的同时,实现高效的并行训练。

  • 下游任务的性能提升:通过在各种下游任务上的广泛实验,论文展示了ViT-22B在图像分类、语义分割、单目深度估计和视频分类等任务上的性能提升。特别是,即使在作为冻结特征提取器的情况下,ViT-22B也能在ImageNet上达到89.5%的准确率。

  • 模型的公平性、鲁棒性和人类视觉对齐:论文还探讨了模型规模增加对模型公平性、鲁棒性和与人类视觉感知对齐的影响。研究发现,随着模型规模的增加,ViT-22B在这些方面的表现有所改善,例如在形状/纹理偏差方面达到了前所未有的87%。

  • 模型的可解释性和透明度:论文通过使用特征归因分析方法,如集成梯度(Integrated Gradients),来理解ViT-22B如何做出预测,这有助于提高模型的透明度和可解释性。

Method

论文通过以下几个关键步骤解决了在计算机视觉领域扩展Vision Transformer(ViT)模型的问题:

  1. 架构改进:
  • 并行层:将注意力和多层感知器(MLP)块并行处理,而不是顺序处理,以实现额外的并行化。

    y ′ = LayerNorm ( x ) , y = x + MLP ( y ′ ) + Attention ( y ′ ) . \begin{aligned}&y^{\prime}=\text{LayerNorm}(x),\\&y=x+\text{MLP}(y^{\prime})+\text{Attention}(y^{\prime}).\end{aligned} y=LayerNorm(x),y=x+MLP(y)+Attention(y).

  • QK-Norm:在计算注意力权重之前,对查询(Q)和键(K)进行LayerNorm归一化,以防止注意力权重的发散,从而提高训练稳定性。

    1 s o f t m a x [ 1 d L N ( X W Q ) ( L N ( X W K ) ) T ] , \begin{aligned}\mathbf{1}\\\mathbf{softmax}\left[\frac{1}{\sqrt{d}}\mathrm{LN}(XW^{Q})(\mathrm{LN}(XW^{K}))^{T}\right],\end{aligned} 1softmax[d 1LN(XWQ)(LN(XWK))T],

Scaling Vision Transformers to 22 Billion Parameters_2024-07-21_

  • 省略偏置项:在QKV投影和LayerNorms中移除偏置项,以提高硬件利用率,同时保持或提高模型质量。

Scaling Vision Transformers to 22 Billion Parameters_2024-07-21_

  1. 训练基础设施和效率:
  • 使用JAX和FLAX库实现ViT-22B,利用模型和数据并行来处理大规模模型。

  • 开发异步并行线性操作,以最大化矩阵乘法单元的利用率,同时最小化通信开销。

  • 参数分片,允许在多个设备上分布模型参数,以适应更大的模型和批量大小。

  1. 实验和评估:
  • 在大规模数据集(如扩展的JFT数据集)上训练ViT-22B,并在多种下游任务上评估其性能。

  • 使用线性探测、锁定图像调整(Locked-image Tuning)和冻结图像特征提取器等技术,将ViT-22B应用于图像分类、语义分割、单目深度估计和视频分类任务。

  • 分析模型在公平性、人类视觉对齐、鲁棒性、可靠性和校准方面的表现。

  1. 模型蒸馏:
  • 通过知识蒸馏技术,将ViT-22B的知识压缩到较小的ViT模型中,以提高模型的可用性和部署效率。
  • 通过这些方法,论文成功地训练了一个规模达到220亿参数的ViT模型,并在多个视觉任务上展示了其有效性。此外,论文还探讨了模型规模增加带来的其他好处,如改善公平性、提高与人类视觉感知的对齐程度以及增强模型的鲁棒性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NVidia 的 gpu 开源 Linux Kernel Module Driver 编译 安装 使用

见面礼,动态查看gpu使用情况,每隔2秒钟自动执行一次 nvidia-smi $ watch -n 2 nvidia-smi 1,找一台nv kmd列表中支持的 GPU 的电脑,安装ubuntu22.04 列表见 github of the kmd source code。 因为 cuda sdk 12.3支持最高到 ubu…

【JavaEE】AQS原理

本文将介绍AQS的简单原理。 首先有个整体认识,全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架。常用的ReentrantLock、Semaphore、CountDownLatch等都有实现它。 本文参考: 深入理解AbstractQueuedSynchronizer只需…

Haproxy服务

目录 一.haproxy介绍 1.主要特点和功能 2.haproxy 调度算法 3.haproxy 与nginx 和lvs的区别 二.安装 haproxy 服务 1. yum安装 2.第三方rpm 安装 3.编译安装haproxy 三.配置文件详解 1.官方地址配置文件官方帮助文档 2.HAProxy 的配置文件haproxy.cfg由两大部分组成&…

HTML2048小游戏

源代码在效果图后面 效果图 源代码 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>2048 Game&l…

UDP客户端、服务端及简易聊天室实现 —— Java

UDP 协议&#xff08;用户数据包协议&#xff09; UDP 是无连接通信协议&#xff0c;即在数据传输时&#xff0c;数据的发送端和接收端不建立逻辑连接&#xff0c;简单来说&#xff0c;当客户端向接收端发送数据时&#xff0c;客户端不会确认接收端是否存在&#xff0c;就会发出…

使用llama-cpp-python制作api接口

文章目录 概要整体操作流程技术细节小结 概要 使用llama-cpp-python制作api接口&#xff0c;可以接入gradio当中&#xff0c;参考上一节。 llama-cpp-python的github网址 整体操作流程 下载llama-cpp-python。首先判断自己是在CPU的环境下还是GPU的环境下。以下操作均在魔搭…

鑫创SSS1700USB音频桥芯片USB转IIS芯片

鑫创SSS1700支持IIC初始外部编&#xff08;EEPROM选项),两线串行总线&#xff08;I2C总线&#xff09;用于外部MCU控制整个EEPROM空间可以通过MCU访问用于主机控制同步的USB HID外部串行EEPROM&#xff08;24C02~24C16&#xff09;接口&#xff0c;用于客户特定的USB视频、PID、…

【QT】定时器事件 - QTimerEvent QTimer

qt 系统 - 定时器 定时器1. QTimerEvent2. QTimer3. 获取系统日期及时间 定时器 Qt 中在进行窗口程序的处理过程中&#xff0c;经常要周期性的执⾏某些操作&#xff0c;或者制作⼀些动画效果&#xff0c;使用定时器就可以实现。所谓定时器就是在间隔⼀定时间后&#xff0c;去执…

TCP重传机制详解

1.什么是TCP重传机制 在 TCP 中&#xff0c;当发送端的数据到达接收主机时&#xff0c;接收端主机会返回⼀个确认应答消息&#xff0c;表示已收到消息。 但是如果传输的过程中&#xff0c;数据包丢失了&#xff0c;就会使⽤重传机制来解决。TCP的重传机制是为了保证数据传输的…

C语言编译报错:error: expected declaration or statement at end of input(缺了括号)

文章目录 报错信息分析解决步骤&#xff1a; 排查 报错信息 /userdata/testOtherPrj/20240715_box_circuit_breaker/test/external/modbus_vendorA/src/vendor_a_modbus.c: In function ‘VendorA_PowerStop’: /userdata/testOtherPrj/20240715_box_circuit_breaker/test/exte…

python3.10.4——CentOS7安装步骤

目录 1.CentOS7中默认有python2.7.5 2.安装前置依赖程序 3.在python官网下载linux系统安装包 4.解析、编译安装python3.10.4 5.创建软链接 6.修改yum相关配置 7.重新检查python版本号 1.CentOS7中默认有python2.7.5 2.安装前置依赖程序 yum install wget zlib-devel bz…

HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号3

基础认证题库请移步&#xff1a;HarmonyOS应用开发者基础认证题库 注&#xff1a;有读者反馈&#xff0c;题库的代码块比较多&#xff0c;打开文章时会卡死。所以笔者将题库拆分&#xff0c;单选题20个为一组&#xff0c;多选题10个为一组&#xff0c;题库目录如下&#xff0c;…

给Wordpress添加评分功能到评论表单

今天要 给你的 Wordpress 添加评分功能到评论表单 吗&#xff1f; 评分功能效果图 什么类型的网站需要评分&#xff1f; 资源站教程站其他&#xff0c;我也没想到。。。 但我这个网站&#xff0c;因为是电影类的网站&#xff0c;好像还是有点需要的&#xff0c;所以&#xf…

使用C#手搓Word插件

WordTools主要功能介绍 编码语言&#xff1a;C#【VSTO】 1、选择 1.1、表格 作用&#xff1a;全选文档中的表格&#xff1b; 1.2、表头 作用&#xff1a;全选文档所有表格的表头【第一行】&#xff1b; 1.3、表正文 全选文档中所有表格的除表头部分【除第一行部分】 1.…

【大数据面试题】37 Doris 是怎么保证性能的?

一步一个脚印&#xff0c;一天一道大数据面试题 博主希望能够得到大家的点赞收藏支持&#xff01;非常感谢 点赞&#xff0c;收藏是情分&#xff0c;不点是本分。祝你身体健康&#xff0c;事事顺心&#xff01; Doris 是当下大热的 MPP 数据库&#xff0c;下面来聊聊它如何保证…

汽车电动空调系统

1.电动空调系统概述 电动汽车制冷空调系统与传统汽车制冷空调系统基本原理一样&#xff0c;区别在于电动汽车空调系统采用电动空调压缩机。电动空调压缩机由驱动电机&#xff0c;压缩机&#xff0c;控制器集成。 电动空调压缩机的驱动电机采用体积小&#xff0c;质量轻&#x…

oceanbase架构、功能模块、数据存储、特性、sql流转层等概念详解

一、架构图 OceanBase 数据库采用无共享&#xff08;Shared-Nothing&#xff09;分布式集群架构&#xff0c;各个节点之间完全对等&#xff0c;每个节点都有自己的 SQL 引擎、存储引擎、事务引擎&#xff0c;运行在普通 PC 服务器组成的集群之上&#xff0c;具备高可扩展性、高…

3、宠物商店智能合约实战(truffle智能合约项目实战)

3、宠物商店智能合约实战&#xff08;truffle智能合约项目实战&#xff09; 1-宠物商店环境搭建、运行2-webjs与宠物逻辑实现3-领养智能合约初始化4-宠物领养实现5-更新宠物领养状态 1-宠物商店环境搭建、运行 https://www.trufflesuite.com/boxes/pet-shop 这个还是不行 或者…

C语言:数组-学习笔记(万字笔记)——翻新版

目录 前言&#xff1a; 1、 数组的概念 1.1 什么是数组 1.2 为什么学习数组&#xff1f; 2. ⼀维数组的创建和初始化 2.1 数组创建 2.2 数组的初始化 2.3 数组的类型 2.3.1 什么是数组类型&#xff1f; 2.3.2 数组类型的作用 3、 一维数组的使用 3.1 数组下标 3.2 数…

收银系统源码-千呼新零售收银视频介绍

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…