GiT: Towards Generalist Vision Transformer through Universal Language Interface
GiT: Towards Generalist Vision Transformer through Universal Language Interface
相关链接:arxiv github
关键字:Generalist Vision Transformer (GiT)、Universal Language Interface、Multi-task Learning、Zero-shot Transfer、Transformer
摘要
本文提出了一个简单而有效的框架,称为GiT,仅使用普通的ViT即可应用于各种视觉任务。受大型语言模型(LLMs)中广泛使用的多层Transformer架构(例如GPT)的普适性启发,我们寻求将其扩展应用作为强大的视觉基础模型(VFM)。然而,与语言建模不同,视觉任务通常需要特定的模块,如检测中的边界框头和分割中的像素解码器,这极大地阻碍了强大的多层Transformer在视觉领域中的应用。为了解决这个问题,我们设计了一个通用语言接口,使得成功的自回归解码能够熟练地统一各种视觉任务,从图像级别理解(例如标题生成)到稀疏感知(例如检测),再到密集预测(例如分割)。基于上述设计,整个模型仅由一种ViT组成,无需任何特定的添加,提供了显著的架构简化。GiT是一个多任务视觉模型,跨五个代表性基准联合训练而无需任务特定的微调。有趣的是,我们的GiT在通用表现方面树立了新的基准,并促进了任务之间的相互提升,与孤立训练相比有了显著的改善。这反映了LLMs中观察到的类似影响。通过进一步丰富27个数据集的训练,GiT在多种任务上实现了强大的零样本结果。由于它的设计简单,这种范式有望缩小视觉和语言之间的架构差距。代码和模型将在 https://github.com/Haiyang-W/GiT 上提供。
核心方法

GiT 的核心方法包括:
- 通用语言接口:设计了能够将图像和语言统一表示为标准词汇的token序列,简化了对于各种视觉任务的处理。
- 多任务模板和并行解码:提出了一种框架将图像划分为多个子区域,并通过并行解码来同时处理这些子任务,提高了处理效率。
- 模型架构:采用多层Transformer架构,并且在不依赖于视觉特定组件的情况下处理各种视觉任务,与大型语言模型架构一致。
实验说明
Object Detection (目标检测)
| Model | Specific Modules | Num | #Params | AP | AP50 | AP75 |
|---|---|---|---|---|---|---|
| Faster R-CNN-FPN | ResNet,RPN | 5 | 42M | 40.3 | - | - |
| GiT-Bsingle-task | None | 1 | 131M | 45.1 | 62.7 | 49.1 |
| GiT-Bmulti-task | None | 1 | 131M | 46.7 | 64.2 | 50.7 |
| GiT-Hmulti-task | None | 1 | 756M | 52.9 | 71.0 | 57.8 |
GiT 在目标检测任务中表现出色,即使在没有特定任务模块的情况下,其多任务训练的模型(GiT-Hmulti-task)也能达到最优表现。
Instance Segmentation (实例分割)
| Model | Specific Modules | Num | #Params | AP | AP50 | AP75 |
|---|---|---|---|---|---|---|
| Mask R-CNN | ResNet,RPN | 6 | 46M | 41.0 | 61.7 | 44.9 |
| GiT-Bsingle-task | None | 1 | 131M | 31.4 | 54.8 | 31.2 |
| GiT-Bmulti-task | None | 1 | 131M | 31.9 | 56.4 | 31.4 |
| GiT-Hmulti-task | None | 1 | 756M | 35.8 | 62.6 | 35.6 |
即使在实例分割任务中,GiT 的多任务训练模型仍然展示了突出的改善和潜力。
Semantic Segmentation (语义分割)
| Model | Specific Modules | Num | #Params | mIoU(SS) |
|---|---|---|---|---|
| DeepLabV3+ | ResNet,Decoder | 3 | 63M | 80.9 |
| GiT-Bsingle-task | None | 1 | 131M | 47.7 |
| GiT-Bmulti-task | None | 1 | 131M | 47.8 |
| GiT-Hmulti-task | None | 1 | 756M | 52.4 |
语义分割任务中,GiT 模型也能够在没有专门模块的情况下取得与专家系统相媲美的成绩。
Captioning (图像标题生成)
| Model | Specific Modules | Num | #Params | BLEU-4 | CIDEr |
|---|---|---|---|---|---|
| VL-T5 | Faster R-CNN | 3 | 440M | - | 116.5 |
| GiT-Bsingle-task | None | 1 | 131M | 33.7 | 107.9 |
| GiT-Bmulti-task | None | 1 | 131M | 35.4 | 112.6 |
| GiT-Hmulti-task | None | 1 | 756M | 36.2 | 118.2 |
图像标题生成任务显示,GiT 在多任务的训练下,取得了一致的优良表现。
结论
本论文介绍了一个基于简单的多层Transformer的通用视觉建模范式,该模型能够集成各种视觉中心任务,尤其是经常被忽视的对象级和像素级任务。类似于语言模型,所有视觉任务都通过通用语言接口结构化为自回归框架。GiT模型展现了与LLM类似的多任务能力,实现了多个基准上最好和相互增强的全面性能。也展现了强大的泛化能力,在27个公开可用数据集上的训练中实现了令人信服的零样本和少样本性能。
GiT在多个视觉任务中表现出色,不仅构建了一种新的通用视觉Transformer和语言接口的范式,而且还展示了跨任务增强和强大的零样本学习能力,为未来的研究提供了新的视角。
相关文章:
GiT: Towards Generalist Vision Transformer through Universal Language Interface
GiT: Towards Generalist Vision Transformer through Universal Language Interface 相关链接:arxiv github 关键字:Generalist Vision Transformer (GiT)、Universal Language Interface、Multi-task Learning、Zero-shot Transfer、Transformer 摘要 …...
纽约时报起诉OpenAI和微软将决定未来LLM的发展
《纽约时报》诉OpenAI和微软案对未来LLM发展的重大影响 案件背景 《纽约时报》(NYT)近期对OpenAI和微软提起诉讼,指控OpenAI未经授权使用其受版权保护的内容来训练其AI模型,包括ChatGPT。NYT声称,OpenAI使用了数百万篇其文章,这…...
IntelliJ IDEA 面试题及答案整理,最新面试题
IntelliJ IDEA中的插件系统如何工作? IntelliJ IDEA的插件系统工作原理如下: 1、插件架构: IntelliJ IDEA通过插件架构扩展其功能,插件可以添加新的功能或修改现有功能。 2、安装和管理: 通过IDEA内置的插件市场下载…...
T1.数据库MySQL
二.SQL分类 2.1 DDL 2.1.1数据库操作 1). 查询所有数据库 show databases ; 2). 查询当前数据库 select database(); 3)创建数据库 create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则] ; 4)删除数据库 drop database …...
idea中database的一些用法
1、查看表结构 方法1,右键,选这个 方法2 双击表后,看到数据,点DDL 方法3 写SQL时,把鼠标放在表名上,可以快速查看表结构 2、表生成对应的实体类 表中右键,选择这2个,选择生成的路…...
外卖点餐系统 |基于springboot框架+ Mysql+Java+JSP技术+Tomcat的外卖点餐系统 设计与实现(可运行源码+设计文档)
推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 骑手功能模块 商家功能模块 管理员功能登录前台功能效果图 用户功能模块 系统功能设…...
挑战杯 机器视觉的试卷批改系统 - opencv python 视觉识别
文章目录 0 简介1 项目背景2 项目目的3 系统设计3.1 目标对象3.2 系统架构3.3 软件设计方案 4 图像预处理4.1 灰度二值化4.2 形态学处理4.3 算式提取4.4 倾斜校正4.5 字符分割 5 字符识别5.1 支持向量机原理5.2 基于SVM的字符识别5.3 SVM算法实现 6 算法测试7 系统实现8 最后 0…...
Node.js 自带的 http 模块来实现一个简单的本地服务器
1.创建一个 server.js 文件: const http require(http); const fs require(fs); const path require(path);const server http.createServer((req, res) > {// 获取请求的文件路径const filePath path.join(__dirname, dist, req.url);// 读取文件内容并返…...
c++ 设计模式模版方法
最初版本 #pragma onceclass Library { public:void Step1(){}void Step3(){}void Step5(){} };class Appliacation { public:void Step2(){}void Step4(){} };int main() {Library lib;Appliacation app;lib.Step1();app.Step2();lib.Step3();app.Step4();lib.Step5(); }最终…...
踏上机器学习的征程:探索基础概念与学习模式
摘要: 机器学习是当今科技领域最具前沿和应用价值的技术之一,它正在改变我们对数据的理解和利用方式。本文将引导读者深入了解机器学习的基本概念,包括监督学习、无监督学习和半监督学习等,并通过生动的例子解释这些概念,帮助读者迈出学习机器学习的第一步。 导言: 随着…...
基于YOLO的自动驾驶目标检测研究综述
摘要:自动驾驶是人工智能发展领域的一个重要方向,拥有良好的发展前景,而实时准确的目标检测与识别是保证自动驾驶汽车安全稳定运行的基础与关键。回顾自动驾驶和目标检测技术的发展历程,综述了YOLO算法在车辆、行人、交通标志、灯光、车道线等目标检测上的应用,同时对比分…...
深度学习-解读GoogleNet深度学习网络
深度学习-解读GoogleNet深度学习网络 深度学习中,经典网络引领一波又一波的技术革命,从LetNet到当前最火的GPT所用的Transformer,它们把AI技术不断推向高潮。2012年AlexNet大放异彩,它把深度学习技术引领第一个高峰,打…...
【LeetCode: 2684. 矩阵中移动的最大次数 + dfs】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...
第五节:使用SMB开发WebSocket通信
一、概述 本节主要讲解在SMB中如何进行websocket快速开发,实现客户端连接、关闭、消息通讯等功能。 示例下载:https://download.csdn.net/download/lllllllllluoyi/88949743 二、创建WebSocket服务器 1、在csdnProject工程中新建一个消息流。 添加W…...
Nginx和Ribbon实现负载均衡的区别
Nginx和Ribbon的区别 1. Nginx服务器端负载均衡: 1、Nginx是客户端所有请求统一交给nginx,由nginx进行实现负载均衡请求转发,属于服务器端负载均衡。即请求有nginx服务器端进行转发。 3、Nginx是服务端的负载均衡,Ribbon是客户端…...
流畅的Python(十九)-动态属性和特性
一、核心要义 在Python中,数据的属性和处理数据的方法,统称属性。方法,只是可调用的属性。除了这两者之外,我们还可以创建特性(property),在不改变类接口的前提下,使用存取方法(即读值方法和设值方法)修改数据属性。 二、代码示例 0、相关知识点 #!/usr/bin/env…...
确保云原生部署中的网络安全
数字环境正在以惊人的速度发展,组织正在迅速采用云原生部署和现代化使用微服务和容器构建的应用程序(通常运行在 Kubernetes 等平台上),以推动增长。 无论我们谈论可扩展性、效率还是灵活性,对于努力提供无与伦比的用…...
【分布式websocket 】前端vuex管理客户端消息crud!使用localStorage来存储【第19期】
前言 聊天系统客户端是要存储消息的,因为所有所有的历史消息都从服务器拉的话一方面服务器压力大,另一方面也耗费用户流量。所以客户端存储消息是势在必行的。如何存储呢上一篇文章也写了,大概就是浏览器的话是localStorage或者IndexedDB。然…...
venv uvicorn python 虚拟服务器外网无法访问
python -m venv .venv source ./.venv/bin/activate pip install -r requirements.txt ./run.sh source ./.venv/bin/activate uvicorn main:app --reload 虚拟web服务器外网访问控制台启动命令用以下代码启动 uvicorn main:app --host 0.0.0.0 --port 8501 --reload 启动到后…...
一款博客网站源码
一款博客网站源码 源码软件库 为大家内置了主题 清爽又强大真正的永久可用的一条源码,该版本为整合版本,内置了Joe主题,搭建后直接启用即可~ 安装环境要求: PHP 7.2 以上 MySQL, PostgreSQL, SQLite 任意一种数据库支持ÿ…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
