异构计算与Transformer综述
异构计算与Transformer综述
英伟达最强异构平台
NVIDIA Grace Hopper Superchip 架构是第一个真正的异构加速平台,适用于高性能计算(HPC) 和AI工作负载。它利用 GPU 和 CPU 的优势加速应用程序,同时提供迄今为止最简单、最高效的分布式异构编程模型。科学家和工程师可以专注于解决世界上最重要的问题。
图 1. Grace Hopper 与 x86+Hopper 的最终用户应用程序性能模拟(来源:NVIDIA Grace Hopper 架构白皮书)
在本文中,您将全面了解 Grace Hopper 超级芯片,并重点介绍 NVIDIA Grace Hopper 带来的性能突破。
强大的可扩展 HPC 和大型 AI 工作负载的性能和生产力
NVIDIA Grace Hopper Superchip 架构将NVIDIA Hopper GPU的突破性性能与NVIDIA Grace CPU的多功能性结合在一起,在单个超级芯片中与高带宽和内存一致的 NVIDIA NVLink Chip-2-Chip (C2C)互连相连,并且支持新的NVIDIA NVLink 切换系统。
图 2. NVIDIA Grace Hopper Superchip 逻辑概述
NVIDIA NVLink-C2C 是一种 NVIDIA 内存一致性、高带宽和低延迟的超级芯片互连。它是 Grace Hopper Superchip 的核心,提供高达 900 GB/s 的总带宽。这比加速系统中常用的 x16 PCIe Gen5 通道高 7 倍。
NVLink-C2C 内存一致性提高了开发人员的生产力和性能,并使 GPU 能够访问大量内存。CPU 和 GPU 线程现在可以同时透明地访问 CPU 和 GPU 驻留内存,使您能够专注于算法而不是显式内存管理.
内存一致性使您能够仅传输所需的数据,而不是将整个页面迁移到 GPU 或从 GPU 迁移出来。它还通过启用来自 CPU 和 GPU 的本机原子操作(native atomic operations)来启用跨 GPU 和 CPU 线程的轻量级同步原语(lightweight synchronization primitives)。具有地址转换服务 (ATS:Address Translation Services ) 的 NVLink-C2C 利用 NVIDIA Hopper 直接内存访问 (DMA) 复制引擎来加速跨主机和设备的可分页内存的批量传输。
NVLink-C2C 使应用程序能够超额订阅( oversubscribe) GPU 的内存,并在高带宽下直接使用 NVIDIA Grace CPU 的内存。每个 Grace Hopper Superchip 具有高达 512 GB 的 LPDDR5X CPU 内存,GPU 可以直接高带宽访问比 HBM 可用内存多 4 倍的内存。结合
NVIDIA NVLink 开关系统,在多达 256 个连接
NVLink 的 GPU 上运行的所有 GPU 线程现在可以在高带宽下访问高达 150 TB 的内存。第四代 NVLink 支持使用直接加载、存储和原子操作访问对等内存,使加速应用程序能够比以往更轻松地解决更大的问题。
与 NVIDIA 网络技术一起,Grace Hopper 超级芯片为下一代 HPC 超级计算机和人工智能工厂提供了配方。客户可以承担更大的数据集、更复杂的模型和新的工作负载,从而比以前更快地解决它们。
NVIDIA Grace Hopper 超级芯片的主要创新如下:
- 英伟达 Grace CPU:
- 多达 72 个 Arm Neoverse V2 内核,每个内核具有 Armv9.0-A ISA 和 4 个 128 位 SIMD 单元。
- 高达 117 MB 的 L3 缓存。
- 高达 512 GB 的 LPDDR5X 内存,提供高达 546 GB/s 的内存带宽。
- 多达 64 个 PCIe Gen5 通道。
- NVIDIA 可扩展一致性结构 (SCF) 网格和分布式缓存,内存带宽高达 3.2 TB/s。
- 单个 CPU NUMA 节点可提高开发人员的工作效率。
NVIDIA Hopper GPU:
- 与 NVIDIA A100 GPU 相比,多达 144 个带有第四代张量核心、Transformer Engine、DPX 和 3 倍高 FP32 和 FP64 的 SM。
- 高达 96 GB 的 HBM3 内存提供高达 3000 GB/s 的速度。
- 60 MB 二级缓存。
- NVLink 4 和 PCIe 5。
英伟达 NVLink-C2C:
- Grace CPU 和 Hopper GPU 之间的硬件一致性互连。
- 高达 900 GB/s 的总带宽,450 GB/s/dir。
- 扩展 GPU 内存功能使 Hopper GPU 能够将所有 CPU 内存寻址为 GPU 内存。每个 Hopper GPU 可以在超级芯片内寻址多达 608 GB 的内存。
NVIDIA NVLink 切换系统:
- 使用 NVLink 4 连接多达 256 个 NVIDIA Grace Hopper 超级芯片。
- 每个连接 NVLink 的 Hopper GPU 都可以寻址网络中所有超级芯片的所有 HBM3 和 LPDDR5X 内存,最高可达 150 TB 的 GPU 可寻址内存。
性能、可移植性和生产力的编程模型
具有 PCIe 连接加速器的传统异构平台要求用户遵循复杂的编程模型,该模型涉及手动管理设备内存分配和与主机之间的数据传输。
NVIDIA Grace Hopper Superchip 平台是异构的且易于编程,NVIDIA 致力于让所有开发人员和应用程序都可以访问它,而不受所选编程语言的影响。
Grace Hopper Superchip 和平台的构建都是为了让您能够为手头的任务选择正确的语言,而NVIDIA
CUDA LLVM 编译器API 使您能够将您喜欢的编程语言带到具有相同代码级别的 CUDA 平台 -生成质量和优化作为
NVIDIA 编译器和工具。
NVIDIA 为 CUDA 平台(图 3)提供的语言包括加速标准语言,如 ISO C++、ISO Fortran 和 Python。该平台还支持基于指令的编程模型,如 OpenACC、OpenMP、CUDA C++ 和
CUDA Fortran。NVIDIA HPC SDK支持所有这些方法,以及一组丰富的用于分析和调试的加速库和工具。
图 3. NVIDIA Grace Hopper Superchip 编程模型
NVIDIA 是 ISO C++ 和 ISO Fortran 编程语言社区的成员,这使得符合 ISO C++ 和 ISO Fortran 标准的应用程序能够在 NVIDIA CPU 和 NVIDIA GPU 上运行,无需任何语言扩展。有关在 GPU 上运行符合 ISO 标准的应用程序的更多信息,请参阅使用标准并行 C++ 进行多 GPU 编程和使用 Fortran 标准并行编程实现 GPU 加速。
该技术在很大程度上依赖于 NVIDIA NVLink-C2C 和 NVIDIA 统一虚拟内存提供的硬件加速内存一致性。如图 4 所示,在没有 ATS 的传统 PCIe 连接
x86+Hopper 系统中,CPU 和 GPU 具有独立的每进程页表,系统分配的内存不能直接从 GPU 访问。当程序使用系统分配器分配内存但页面条目在 GPU 的页表中不可用时,从 GPU 线程访问内存将失败。
图 4. 具有不相交页表的 NVIDIA Hopper 系统
在基于 NVIDIA Grace Hopper Superchip 的系统中,ATS 使 CPU 和 GPU 能够共享单个每个进程的页表,从而使所有 CPU 和 GPU 线程能够访问所有系统分配的内存,这些内存可以驻留在物理 CPU 或 GPU 内存上。CPU 堆、CPU 线程堆栈、全局变量、内存映射文件和进程间内存可供所有 CPU 和 GPU 线程访问。
图 5. NVIDIA Grace Hopper 超级芯片系统中的地址转换服务
NVIDIA NVLink-C2C 硬件一致性使 Grace CPU 能够以缓存行粒度缓存 GPU 内存,并使 GPU 和 CPU
无需页面迁移即可访问彼此的内存。
NVLink-C2C 还可以加速 CPU 和 GPU 在系统分配内存上支持的所有原子操作。范围内的原子操作得到完全支持,并且可以跨系统中的所有线程实现细粒度和可扩展的同步。
运行时在第一次接触时使用物理内存支持系统分配的内存,无论是在 LPDDR5X 还是 HBM3 上,取决于 CPU 或
GPU 线程是先访问它。从操作系统的角度来看,Grace CPU 和 Hopper GPU 只是两个独立的 NUMA 节点。系统分配的内存是可迁移的,因此运行时可以更改其物理内存支持以提高应用程序性能或应对内存压力。
在 NVIDIA Grace Hopper 上,这些应用程序明显受益于 NVLink-C2C 提供的更高带宽、更低延迟、更高原子吞吐量和内存一致性硬件加速,无需任何软件更改。
Superchip 架构特点
以下是 NVIDIA Grace Hopper 架构的主要创新:
- NVIDIA Grace CPU
- NVIDIA Hopper GPU
- NVLink-C2C
- NVLink Switch System
- Extended GPU memory
- NVIDIA Grace CPU
随着 GPU 的并行计算能力每一代都增加三倍,快速高效的 CPU 对于防止现代工作负载的串行和仅 CPU 部分主导性能至关重要。
NVIDIA Grace CPU 是第一款 NVIDIA 数据中心CPU,它是从头开始构建的,用于创建 HPC 和 AI超级芯片。Grace 提供多达 72 个带有Armv9.0-A ISA的 Arm Neoverse V2 CPU 内核,以及每个内核 4×128 位宽的 SIMD 单元,并支持 Arm 的Scalable Vector Extensions 2 (SVE2) SIMD 指令集。
NVIDIA Grace 提供领先的每线程性能,同时提供比传统 CPU 更高的能效。72 个 CPU 内核在SPECrate 2017_int_base上提供高达 370(估计)的分数,确保高性能以满足 HPC 和 AI 异构工作负载的需求。
图 6. Grace Hopper 超级芯片中的 NVIDIA Grace CPU 与 AMD Milan 7763 的最终用户应用程序性能和节能模拟显示,Grace CPU 的速度提高了 2.5 倍,而能耗降低了 4 倍
机器学习和数据科学中的现代 GPU 工作负载需要访问大量内存。通常,这些工作负载必须使用多个 GPU 将数据集存储在 HBM 内存中。
NVIDIA Grace CPU 提供高达 512 GB 的 LPDDR5X 内存,可在内存容量、能效和性能之间实现最佳平衡。它提供高达 546 GB/s 的 LPDDR5X 内存带宽,NVLink-C2C 以 900 GB/s 的总带宽可供 GPU 访问。
单个 NVIDIA Grace Hopper 超级芯片为 Hopper GPU 提供总计 608 GB 的快速可访问内存,几乎是 DGX-A100-80 中可用的慢速内存总量;上一代的八 GPU 系统。
图 7 所示的 NVIDIA SCF 使这成为可能,这是一种网状结构和分布式缓存,可提供高达 3.2 TB/s 的总二分带宽,以实现 CPU 内核、内存、系统 I/O 和 NVLink 的全部性能- C2C。CPU 内核和 SCF 缓存分区 (SCC) 分布在整个网格中,而缓存交换节点 (CSN) 通过结构路由数据并充当 CPU 内核、缓存内存和系统其余部分之间的接口。
图 7. SCF 逻辑概述
NVIDIA Hopper GPU
NVIDIA Hopper GPU是第九代 NVIDIA 数据中心 GPU。与前几代 NVIDIA Ampere GPU 相比,它旨在为大规模 AI 和 HPC 应用程序提供数量级的改进。Hopper GPU 还具有多项创新:
- 新的第四代张量核心在更广泛的 AI 和 HPC 任务中执行比以往更快的矩阵计算。
- 与上一代 NVIDIA A100 GPU 相比,新的 Transformer 引擎使 H100 在大型语言模型上的 AI 训练速度提高了 9 倍,AI 推理速度提高了 30 倍。
- 空间和时间数据局部性和异步执行的改进功能使应用程序能够始终保持所有单元忙碌并最大限度地提高能效。
- 安全多实例 GPU (MIG )将 GPU 划分为隔离的、大小合适的实例,以最大限度地提高较小工作负载的服务质量 (QoS)。
图 8. NVIDIA Hopper GPU 实现下一代 AI 和 HPC 突破
NVIDIA Hopper 是第一个真正的异步 GPU。其张量内存加速器 (TMA) 和异步事务屏障使线程能够重叠和流水线独立的数据移动和数据处理,使应用程序能够充分利用所有单元。
线程块集群、分布式共享内存和线程块重新配置等新的空间和时间局部性功能为应用程序提供了对更大量共享内存和工具的快速访问。这使应用程序能够更好地重用片上数据,从而进一步提高应用程序性能。
图 9. NVIDIA Hopper GPU 异步执行使独立数据移动与计算重叠(左)。新的空间和时间局部性功能提高了应用程序性能(右)
NVLink-C2C:用于超级芯片的高带宽、芯片到芯片互连
NVIDIA Grace Hopper 通过 NVIDIA
NVLink-C2C 将 NVIDIA Grace CPU 和
NVIDIA Hopper GPU 融合到单个超级芯片中,这是一个 900 GB/s 的芯片到芯片相干互连,可以使用统一的编程模型对 Grace Hopper 超级芯片进行编程。
NVLink Chip-2-Chip (C2C) 互连在 Grace CPU 和 Hopper GPU 之间提供高带宽直接连接,以创建 Grace Hopper
Superchip,该超级芯片专为 AI 和 HPC 应用程序的嵌入式加速而设计。
凭借 900 GB/s 的双向带宽,NVLink-C2C 以更低的延迟提供 7 倍于 x16 PCIe Gen 链路的带宽。NVLink-C2C 每传输比特仅使用 1.3 皮焦耳,比 PCIe Gen 5 节能 5 倍以上。
此外,NVLink-C2C 是一种连贯的内存互连,具有对系统范围的原子操作的本机硬件支持。这提高了对非本地内存的内存访问性能,例如 CPU 和 GPU 线程访问驻留在其他设备中的内存。硬件一致性还提高了同步原语的性能,减少了 GPU 或 CPU 相互等待的时间,并提高了总系统利用率。
最后,硬件一致性还简化了使用流行编程语言和框架的异构计算应用程序的开发。
NVLink 开关系统
NVIDIA NVLink 开关系统结合了第四代 NVIDIA NVLink 技术和全新的第三代 NVIDIA NVSwitch。NVSwitch 的单级最多可连接八个 Grace Hopper 超级芯片,胖树拓扑结构中的第二级最多可将 256 个 Grace Hopper 超级芯片与 NVLink 联网。Grace Hopper Superchip 对以高达 900 GB/s 的速度交换数据。
该网络拥有多达 256 个 Grace Hopper 超级芯片,可提供高达 115.2 TB/s 的全对全带宽。这是NVIDIA InfiniBand
NDR400 整体带宽的 9 倍。
图 10. NVIDIA NVLink 4 NVSwitch 的逻辑概述
第四代 NVIDIA NVLink 技术使 GPU 线程能够使用正常的内存操作、原子操作和批量传输来处理 NVLink 网络中所有超级芯片提供的高达 150 TB 的内存。MPI、NCCL或NVSHMEM等通信库在可用时透明地利用 NVLink 开关系统。
扩展 GPU 显存
NVIDIA Grace Hopper Superchip 旨在加速具有超大内存占用空间的应用程序,其容量大于单个超级芯片的 HBM3 和 LPDDR5X 内存容量。有
高带宽 NVLink-C2C 上的扩展 GPU 内存 (EGM) 功能使 GPU 能够高效地访问所有系统内存。EGM 在多节点 NVSwitch 连接系统中提供高达 150 TB 的系统内存。使用 EGM,可以分配物理内存以供多节点系统中的任何 GPU 线程访问。所有 GPU 都可以以 GPU-GPU NVLink 或 NVLink-C2C 的最低速度访问 EGM。
Grace Hopper Superchip 配置中的内存访问通过本地高带宽 NVLink-C2C 以 900 GB/s 的速度进行。远程内存访问是通过 GPU NVLink 执行的,并且根据正在访问的内存,还可以使用 NVLink-C2C(图 11)。借助
EGM,GPU 线程现在可以以 450 GB/s 的速度访问 NVSwitch 结构上的所有可用内存资源,包括 LPDDR5X 和 HBM3。
图 11. 跨 NVLink 连接的 Grace Hopper 超级芯片的内存访问来源:半导体行业观察
原文链接:https://developer.nvidia.com/blog/nvidia-grace-hopper-superchip-architecture-in-depth/
NVIDIA Grace Hopper Superchip Architecture In-Depth
By Jonathon Evans, Michael Andersch, Vikram Sethi, Gonzalo Brito and Vishal Mehta
+20
Like
Tags: CUDA, featured, Grace Hopper Superchip, HPC / Supercomputing, Technical Walkthrough
The NVIDIA Grace Hopper Superchip Architecture is the first true heterogeneous accelerated platform for high-performance computing (HPC) and AI workloads. It accelerates applications with the strengths of both GPUs and CPUs while providing the simplest and most productive distributed heterogeneous programming model to date. Scientists and engineers can focus on solving the world’s most important problems.
Figure 1. End-user application performance simulations of Grace Hopper vs x86+Hopper (Source: NVIDIA Grace Hopper Architecture whitepaper)
In this post, you learn all about the Grace Hopper Superchip and highlight the performance breakthroughs that NVIDIA Grace Hopper delivers. For more information about the speedups that Grace Hopper achieves over the most powerful PCIe-based accelerated platforms using NVIDIA Hopper H100 GPUs, see the NVIDIA Grace Hopper Superchip Architecture whitepaper.
Performance and productivity for strong-scaling HPC and giant AI workloads
The NVIDIA Grace Hopper Superchip architecture brings together the groundbreaking performance of the NVIDIA Hopper GPU with the versatility of the NVIDIA Grace CPU, connected with a high bandwidth and memory coherent NVIDIA NVLink Chip-2-Chip (C2C) interconnect in a single superchip, and support for the new NVIDIA NVLink Switch System.
Figure 2. NVIDIA Grace Hopper Superchip logical overview
NVIDIA NVLink-C2C is an NVIDIA memory coherent, high-bandwidth, and low-latency superchip interconnect. It is the heart of the Grace Hopper Superchip and delivers up to 900 GB/s total bandwidth. This is 7x higher bandwidth than x16 PCIe Gen5 lanes commonly used in accelerated systems.
NVLink-C2C memory coherency increases developer productivity and performance and enables GPUs to access large amounts of memory.CPU and GPU threads can now concurrently and transparently access both CPU– and GPU-resident memory, enabling you to focus on algorithms instead of explicit memory management.
Memory coherency enables you to transfer only the data you need, and not migrate entire pages to and from the GPU. It also enables lightweight synchronization primitives across GPU and CPU threads by enabling native atomic operations from both the CPU and GPU. NVLink-C2C with Address Translation Services (ATS) leverages the NVIDIA Hopper Direct Memory Access (DMA) copy engines for accelerating bulk transfers of pageable memory across host and device.
NVLink-C2C enables applications to oversubscribe the GPU’s memory and directly utilize NVIDIA Grace CPU’s memory at high bandwidth. With up to 512 GB of LPDDR5X CPU memory per Grace Hopper Superchip, the GPU has direct high-bandwidth access to 4x more memory than what is available with HBM. Combined with the NVIDIA NVLink Switch System, all GPU threads running on up to 256 NVLink-connected GPUs can now access up to 150 TB of memory at high bandwidth. Fourth-generation NVLink enables accessing peer memory using direct loads, stores, and atomic operations, enabling accelerated applications to solve larger problems more easily than ever.
Together with NVIDIA networking technologies, Grace Hopper Superchips provide the recipe for the next generation of HPC supercomputers and AI factories. Customers can take on larger datasets, more complex models, and new workloads, solving them more quickly than before.
The main innovations of the NVIDIA Grace Hopper Superchip are as follows:
- NVIDIA Grace CPU:
- Up to 72x Arm Neoverse V2 cores with Armv9.0-A ISA and 4×128-bit SIMD units per core.
- Up to 117 MB of L3 Cache.
- Up to 512 GB of LPDDR5X memory delivering up to 546 GB/s of memory bandwidth.
- Up to 64x PCIe Gen5 lanes.
- NVIDIA Scalable Coherency Fabric (SCF) mesh and distributed cache with up to 3.2 TB/s memory bandwidth.
- High developer productivity with a single CPU NUMA node.
- NVIDIA Hopper GPU:
- Up to 144 SMs with fourth-generation Tensor Cores, Transformer Engine, DPX, and 3x higher FP32 and FP64 throughout compared to the NVIDIA A100 GPU.
- Up to 96 GB of HBM3 memory delivering up to 3000 GB/s.
- 60 MB L2 Cache.
- NVLink 4 and PCIe 5.
- NVIDIA NVLink-C2C:
- Hardware-coherent interconnect between the Grace CPU and Hopper GPU.
- Up to 900 GB/s total bandwidth, 450 GB/s/dir.
- The Extended GPU Memory feature enables the Hopper GPU to address all CPU memory as GPU memory. Each Hopper GPU can address up to 608 GB of memory within a superchip.
- NVIDIA NVLink Switch System:
- Connects up to 256x NVIDIA Grace Hopper Superchips using NVLink 4.
- Each NVLink-connected Hopper GPU can address all HBM3 and LPDDR5X memory of all superchips in the network, for up to 150 TB of GPU addressable memory.
Programming model for performance, portability, and productivity
Traditional heterogeneous platforms with PCIe-connected accelerators require users to follow a complex programming model that involves manually managing device memory allocations and data transfer to and from the host.
The NVIDIA Grace Hopper Superchip platform is heterogeneous and easy to program, and NVIDIA is committed to making it accessible to all developers and applications, independent of the programming language of choice.
Both the Grace Hopper Superchip and the platform are built to enable you to pick the right language for the task at hand, and the NVIDIA CUDA LLVM Compiler APIs enable you to bring your preferred programming language to the CUDA platform with the same level of code-generation quality and optimizations as NVIDIA compilers and tools.
The languages provided by NVIDIA for the CUDA platform (Figure 3) include accelerated standard languages like ISO C++, ISO Fortran, and Python. The platform also supports directive-based programming models like OpenACC, OpenMP, CUDA C++, and CUDA Fortran. The NVIDIA HPC SDK supports all these approaches, along with a rich set of accelerated libraries and tools for profiling and debugging.
Figure 3. NVIDIA Grace Hopper Superchip programming models
NVIDIA is a member of the ISO C++ and ISO Fortran programming-language communities, which have enabled ISO C++ and ISO Fortran standard-compliant applications to run on both NVIDIA CPUs and NVIDIA GPUs without any language extensions. For more information about running ISO-conforming applications on GPUs, see Multi-GPU Programming with Standard Parallel C++ and Using Fortran Standard Parallel Programming For GPU Acceleration.
This technology relies heavily on the hardware-accelerated memory coherency provided by NVIDIA NVLink-C2C and NVIDIA Unified Virtual Memory. As shown in Figure 4, in traditional PCIe-connected x86+Hopper systems without ATS, the CPU and the GPU have independent per-process page tables, and system-allocated memory is not directly accessible from the GPU. When a program allocates memory with the system allocator but the page entry is not available in the GPU’s page table, then accessing the memory from a GPU thread fails.
Figure 4. NVIDIA Hopper System with disjoint page tables
In NVIDIA Grace Hopper Superchip-based systems, ATS enables the CPU and GPU to share a single per-process page table, enabling all CPU and GPU threads to access all system-allocated memory, which can reside on physical CPU or GPU memory. The CPU heap, CPU thread stack, global variables, memory-mapped files, and interprocess memory are accessible to all CPU and GPU threads.
Figure 5. Address Translation Services in an NVIDIA Grace Hopper Superchip system
NVIDIA NVLink-C2C hardware-coherency enables the Grace CPU to cache GPU memory at cache-line granularity and for the GPU and CPU to access each other’s memory without page-migrations.
NVLink-C2C also accelerates all atomic operations supported by the CPU and GPU on system-allocated memory. Scoped atomic operations are fully supported and enable fine-grained and scalable synchronization across all threads in the system.
The runtime backs system-allocated memory with physical memory on first touch, either on LPDDR5X or HBM3, depending on whether a CPU or a GPU thread accesses it first. From an OS perspective, the Grace CPU and Hopper GPU are just two separate NUMA nodes. System-allocated memory is migratable so the runtime can change its physical memory backing to improve application performance or deal with memory pressure.
For PCIe-based platforms such as x86 or Arm, you can use the same Unified Memory programming model as the NVIDIA Grace Hopper model. That will eventually be possible through the Heterogeneous Memory Management (HMM) feature, which is a combination of Linux kernel features and NVIDIA driver features that use software to emulate memory coherence between CPUs and GPUs.
On NVIDIA Grace Hopper, these applications transparently benefit from the higher-bandwidth, lower-latency, higher atomic throughput, and hardware acceleration for memory coherency provided by NVLink-C2C, without any software changes.
Superchip architectural features
Here’s a look at the main innovations of the NVIDIA Grace Hopper architecture:
- NVIDIA Grace CPU
- NVIDIA Hopper GPU
- NVLink-C2C
- NVLink Switch System
- Extended GPU memory
NVIDIA Grace CPU
As the parallel compute capabilities of GPUs continue to triple every generation, a fast and efficient CPU is critical to prevent the serial and CPU-only fractions of modern workloads from dominating performance.
NVIDIA Grace CPU is the first NVIDIA data center CPU, and it is built from the ground up to create HPC and AI superchips. Grace provides up to 72 Arm Neoverse V2 CPU cores with the Armv9.0-A ISA, and 4×128-bit wide SIMD units per core with support for Arm’s Scalable Vector Extensions 2 (SVE2) SIMD instruction set.
NVIDIA Grace delivers leading per-thread performance, while providing higher energy efficiency than traditional CPUs. The 72 CPU cores deliver up to a 370 (estimated) score on SPECrate 2017_int_base, ensuring high-performance to satisfy the demands of both HPC and AI heterogeneous workloads.
Figure 6. End-user application performance and energy saving simulations of the NVIDIA Grace CPU in the Grace Hopper Superchip vs AMD Milan 7763 shows that the Grace CPU is up to 2.5x faster while using 4x less energy
Modern GPU workloads in machine learning and data science need access to huge amounts of memory. Typically, these workloads would have to use multiple GPUs to store the dataset in HBM memory.
The NVIDIA Grace CPU provides up to 512 GB of LPDDR5X memory, which delivers the optimal balance between memory capacity, energy efficiency, and performance. It supplies up to 546 GB/s of LPDDR5X memory bandwidth, which NVLink-C2C makes accessible to the GPU at 900 GB/s total bandwidth.
A single NVIDIA Grace Hopper Superchip provides the Hopper GPU with a total of 608 GB of fast-accessible memory, almost the total amount of slow memory available in a DGX-A100-80; an eight-GPU system of the previous generation.
This is made possible by the NVIDIA SCF shown in Figure 7, a mesh fabric and distributed cache that provides up to 3.2 TB/s of total bisection bandwidth to realize the full performance of CPU cores, memory, system I/Os, and NVLink-C2C. The CPU cores and SCF Cache partitions (SCCs) are distributed throughout the mesh, while Cache Switch Nodes (CSNs) route data through the fabric and serve as interfaces between the CPU cores, cache memory, and the rest of the system.
Figure 7. SCF logical overview
NVIDIA Hopper GPU
The NVIDIA Hopper GPU is the ninth-generation NVIDIA data center GPU. It is designed to deliver orders-of-magnitude improvements for large-scale AI and HPC applications compared to previous NVIDIA Ampere GPU generations. The Hopper GPU also features multiple innovations:
- New fourth-generation Tensor Cores perform faster matrix computations than ever before on an even broader array of AI and HPC tasks.
- A new transformer engine enables H100 to deliver up to 9x faster AI training and up to 30x faster AI inference speedups on large language models compared to the prior generation NVIDIA A100 GPU.
- Improved features for spatial and temporal data locality and asynchronous execution enable applications to always keep all units busy and maximize power efficiency.
- Secure Multi-Instance GPU (MIG) partitions the GPU into isolated, right-sized instances to maximize quality of service (QoS) for smaller workloads.
Figure 8. NVIDIA Hopper GPU enables next-generation AI and HPC breakthroughs
NVIDIA Hopper is the first truly asynchronous GPU. Its Tensor Memory Accelerator (TMA) and asynchronous transaction barrier enable threads to overlap and pipeline independent data movement and data processing, enabling applications to fully utilize all units.
New spatial and temporal locality features like thread block clusters, distributed shared memory, and thread block reconfiguration provide applications with fast access to larger amounts of shared memory and tools. This enables applications to better reuse data while it’s on-chip, further improving application performance.
Figure 9. NVIDIA Hopper GPU asynchronous execution enables overlapping independent data-movement with computation (left). New spatial and temporal locality features improve application performance (right).
For more information, see NVIDIA H100 Tensor Core Architecture Overview and NVIDIA Hopper Architecture In-Depth.
NVLink-C2C: A high-bandwidth, chip-to-chip interconnect for superchips
NVIDIA Grace Hopper fuses an NVIDIA Grace CPU and NVIDIA Hopper GPU into a single superchip through the NVIDIA NVLink-C2C, a 900 GB/s chip-to-chip coherent interconnect that enables programming the Grace Hopper Superchip with a unified programming model.
The NVLink Chip-2-Chip (C2C) interconnect provides a high-bandwidth direct connection between a Grace CPU and a Hopper GPU to create the Grace Hopper Superchip, which is designed for drop-in acceleration of AI and HPC applications.
With 900 GB/s of bidirectional bandwidth, NVLink-C2C provides 7x the bandwidth of x16 PCIe Gen links at lower latency. NVLink-C2C also only uses 1.3 picojoules per bit transferred, which is greater than 5x more energy-efficient than PCIe Gen 5.
Furthermore, NVLink-C2C is a coherent memory interconnect with native hardware support for system-wide atomic operations. This improves the performance of memory accesses to non-local memory, such as CPU and GPU threads accessing memory resident in the other device. Hardware coherency also improves the performance of synchronization primitives, reducing the time the GPU or CPU wait on each other and increasing total system utilization.
Finally, hardware coherency also simplifies the development of heterogeneous computing applications using popular programming languages and frameworks. For more information, see the NVIDIA Grace Hopper Programming Model section.
NVLink Switch System
The NVIDIA NVLink Switch System combines fourth-generation NVIDIA NVLink technology with the new third-generation NVIDIA NVSwitch. A single level of the NVSwitch connects up to eight Grace Hopper Superchips, and a second level in a fat-tree topology enables networking up to 256 Grace Hopper Superchips with NVLink. A Grace Hopper Superchip pair exchanges data at up to 900 GB/s.
With up to 256 Grace Hopper Superchips, the network delivers up to 115.2 TB/s all-to-all bandwidth. This is 9x the all-to-all bandwidth of the NVIDIA InfiniBand NDR400.
Figure 10. Logical overview of NVIDIA NVLink 4 NVSwitch
The fourth-generation NVIDIA NVLink technology enables GPU threads to address up to 150 TB of memory provided by all superchips in the NVLink network using normal memory operations, atomic operations, and bulk transfers. Communication libraries like MPI, NCCL, or NVSHMEM transparently leverage the NVLink Switch System when available.
Extended GPU memory
The NVIDIA Grace Hopper Superchip is designed to accelerate applications with exceptionally large memory footprints, larger than the capacity of the HBM3 and LPDDR5X memory of a single superchip. For more information, see the NVIDIA Grace Hopper Accelerated Applications section.
The Extended GPU Memory (EGM) feature over the high-bandwidth NVLink-C2C enables GPUs to access all the system memory efficiently. EGM provides up to 150 TBs of system memory in a multi-node NVSwitch-connected system. With EGM, physical memory can be allocated to be accessible from any GPU thread in the multi-node system. All GPUs can access EGM at the minimum of GPU-GPU NVLink or NVLink-C2C speed.
Memory accesses within a Grace Hopper Superchip configuration go through the local high-bandwidth NVLink-C2C at 900 GB/s total. Remote memory accesses are performed through GPU NVLink and, depending on the memory being accessed, also NVLink-C2C (Figure 11). With EGM, GPU threads can now access all memory resources available over the NVSwitch fabric, both LPDDR5X and HBM3, at 450 GB/s.
Figure 11. Memory accesses across NVLink-connected Grace Hopper Superchips
NVIDIA HGX Grace Hopper
NVIDIA HGX Grace Hopper has a single Grace Hopper Superchip per node, paired with BlueField-3 NICs or OEM-Defined I/O and optionally an NVLink Switch System. It can be air– or liquid-cooled and has up to 1,000W TDP.
Figure 12. NVIDIA HGX Grace Hopper with InfiniBand
NVIDIA HGX Grace Hopper with InfiniBand
NVIDIA HGX Grace Hopper with Infiniband (Figure 13) is ideal for the scale-out of traditional machine learning (ML) and HPC workloads that are not bottlenecked by network communication overheads of InfiniBand, which is one of the fastest interconnects available.
Each node contains one Grace Hopper Superchip and one or more PCIe devices like NVMe solid-state drives and BlueField-3 DPUs, NVIDIA ConnectX-7 NICs, or OEM-defined I/O. With 16x PCIe Gen 5 lanes, an NDR400 InfiniBand NIC provides up to 100 GB/s of total bandwidth across the superchips. Combined with NVIDIA BlueField-3 DPUs, this platform is easy to manage and deploy and uses a traditional HPC and AI cluster networking architecture.
Figure 13. NVIDIA HGX Grace Hopper with InfiniBand for scale-out ML and HPC workloads
NVIDIA HGX Grace Hopper with NVLink Switch
NVIDIA HGX Grace Hopper with NVLink Switch is ideal for strong scaling giant machine learning and HPC workloads. It enables all GPU threads in the NVLink-connected domain to address up to 150 TB of memory at up to 900 GB/s total bandwidth per superchip in a 256-GPU NVLink-connected system. The a simple programming model uses pointer load, store, and atomic operations. Its 450 GB/s all-reduce bandwidth and up to 115.2 TB/s bisection bandwidth make this platform ideal for strong-scaling the world’s largest and most challenging AI training and HPC workloads.
NVLink-connected domains are networked with NVIDIA InfiniBand networking, for example, NVIDIA ConnectX-7 NICs or NVIDIA BlueField-3 data processing units (DPUs) paired with NVIDIA Quantum 2 NDR switches or OEM-defined I/O solutions.
Figure 14. NVIDIA HGX Grace Hopper with NVLink Switch System for strong-scaling giant ML and HPC workloads
Delivering performance breakthroughs
The NVIDIA Grace Hopper Superchip Architecture whitepaper expands on the details covered in this post. It walks you through how Grace Hopper delivers the performance breakthroughs shown on Figure 1 over what is currently the most powerful PCIe-based accelerated platforms powered by NVIDIA Hopper H100 PCIe GPUs.
Do you have any applications that would be perfect for the NVIDIA Grace Hopper Superchip? Let us know in the comments!
Acknowledgments
We would like to thank Jack Choquette, Ronny Krashinsky, John Hubbard, Mark Hummel, Greg Palmer, Ryan Wells, Alex Ishii, Jonah Alben, and the many NVIDIA architects and engineers who contributed to this post.
Transformer综述3万字译文
Transformer是一种基于注意力的编解码体系结构,它彻底改变了自然语言处理领域。受这一重大成就的启发,最近在将 Transformer 体系结构应用于计算机视觉(CV)领域方面进行了一些开创性的工作,这些工作已经证明了它们在各种CV任务中的有效性。凭借具有竞争力的建模能力,与现代卷积神经网络(CNN)相比,visual Transformers 在 ImageNet、COCO 和 ADE20k 等多个基准上取得了令人印象深刻的性能。
在本文中,我们对三个基本的 CV 任务分类、检测和分割的100多种不同 Vision Transformer 进行了全面的回顾,其中提出了一种分类法,根据它们的动机、结构和使用场景来组织这些方法。由于训练设置和面向任务的不同,我们还对这些方法在不同配置上进行了评估,以便进行简单直观的比较,而不仅仅是基准数据集上的对比。此外,我们还揭示了一系列重要但尚未开发的方面,这些方面可能使 Transformer 从众多体系结构中脱颖而出,例如,松散的高层语义嵌入,以弥合视觉和顺序转换器之间的差距。最后,对未来的研究方向提出了三点建议。
1 引言
Transformer作为一种基于注意力的结构,首次展示了在序列建模和机器翻译任务中的巨大力量。如图1所示,Transformer已经逐渐成为自然语言处理(NLP)的主要深度学习模型。最近最主要的模型是一些自监督Transformer,从足够的数据集预先训练,然后在小的和特定的下游任务上进行微调[2]-[9]。生成式预训练Transformer(GPT)系列[2]-[4]利用Transformer解码器执行自回归语言建模任务,而来自Transformer(BERT)[5]及其变体[6]、[7]的双向编码器表示作为构建在Transformer编码器上的自动编码器语言模型。
在计算机视觉(CV)领域,卷积神经网络(CNN)先于视觉Transformer模型成为一种占主导地位的范例[10]-[12]。受到NLP[1]、[13]中自我注意机制的巨大成功的启发,一些基于CNN的模型试图通过在空间[14]-[16]或通道水平[17]-[19]中增加一个自我注意层来捕捉长期依赖,而另一些模型则试图用全局[20]或局部自注意块[21]-[27]完全取代传统的卷积。尽管Cordonnier等人。从理论上证明了自注意机制的有效性和效率[24],但在主流基准上,这些纯注意力模型仍然不如当前最先进的(SOTA)CNN模型。
Transformer 在自然语言处理领域取得了巨大的成功,受此启发,基于注意力的模型在视觉识别领域受到了极大的关注。最近有许多文献将 Transformer 移植到CV任务中,并取得了类似的结果。例如,Cordonnier等人[28]从理论上证明了多头自注意和CNN之间的等价性,并利用补丁下采样和二次位置编码设计了一个纯变压器来验证他们的理论结论。Dosovitski等人。[29]提出了一种利用图像块作为输入进行图像分类的纯Transformer,并在多个图像分类基准上实现了SOTA。此外,Visual Transformers还在其他CV任务中获得了出色的性能,例如检测[30]、分割[31]、跟踪[32]、图像生成[33]和增强[34]。
如图1所示,继[29]、[30]之后,在过去的一年里,数百种基于Transformer的模型被提出用于各个领域。因此,系统的文献调查非常需要对这些新出现的视觉Transformer的性能进行识别、分类和批判性评估。考虑到读者可能来自不同的领域,我们将重点放在这些现有的视觉Transformer上,以完成三个基本的CV任务,包括分类、检测和分割。如图3所示,本文根据它们的任务、动机和结构特征将所有这些现有的方法归类为多个组。它们中的一些可能会部分重叠。例如,一些改进不仅提高了主干在图像分类中的性能,而且还提高了密集预测任务(即检测和分割)的性能,而且许多深度和层次的方法也通过CNN和注意力的改进来实现。
在本文之前,已经有些Transformer综述论文发表了。Tay等人[45]回顾NLP中Transformer的效率,Khan等人[46]和han等人的研究成果[47]总结了早期的视觉Transformer和注意力模型。对Transformer的最新评论是由Lin等人介绍的,它提供了对Transformer的各种变体的系统回顾,并粗略地提到了视觉应用[48]。不同的是,本文旨在提供更全面的审查,关注最新的视觉Transformer并将他们进行系统的分类:
(1)全面性与可读性:本文对超过100个 visual Transformers 进行综合回顾,关注其在三个基本CV任务(即分类、检测和分割)和数据流类型(即图像、点云、多数据流数据)上的应用。本文选取了比较有代表性的方法,对其进行了详细的描述和分析,并简要介绍了其他相关工作。我们不仅从单一的角度对每个模型进行了详尽的分析,而且从渐进分析、对比分析、多视角分析等意义上构建了它们之间的内在联系。
(2)直观比较:由于这些现有的visual Transformers针对不同的视觉任务遵循不同的训练方案和超参数设置,本文在不同的数据集和限制条件下进行了多个横向比较。更重要的是,我们总结了针对每个任务设计的一系列有潜力的组件,包括:(a)具有层次结构骨干的浅层局部卷积;(b)空间先验加速度与稀疏注意力颈部检测器;(c)用于分割的通用掩码预测方案。
(3)深入分析:我们进一步从以下几个方面作出远景规划:(a)在从顺序任务到视觉任务的转换过程;(b)Transformer与其他视觉网络的对应关系;(c)不同任务中采用的可学习嵌入(即类表征、对象查询、掩码嵌入)的相关性等方面提供了有意义的见解。最后,对未来的研究方向进行了展望。例如,编解码器Transformer主干可以通过学习嵌入来统一三个子任务。
本文的其余部分组织如下:
第二节,介绍了visual Transformers的结构和关键组件。第三节,总结了Transformer骨干网络的分类法,并简要讨论了它们在图像分类中的应用。
第五节,回顾了Transformer检测器,包括Transformer necks和backbone。
第六节,visual Transformers在分割领域的基本形态(即patch嵌入和query嵌入),主流应用及其变体。
第三-六节还通过指标简要对比了各个模型。
第七节,简要介绍了除了二维视觉识别以外,三维点云视觉识别的最近发展。
第八节,进一步概述了针对多种数据流类型(例如,多观、多模态、视觉语言预训练和视觉基础)的visual Transformers的融合方法。
第九节,提出了三个方面的进一步讨论,并指出了未来一些有前景的研究方向。
2 原始Transformer
最初的Transformer[1]首先应用于序列到序列自动回归的任务。与先前的序列转导模型[49]、[50]相比,这种原始的Transformer继承了编码器-解码器结构,但通过使用multi-head attention机制和point-wise feed-forward网络,完全放弃了递归和卷积。在接下来的小节中,我们将描述原始的Transformer架构及其四个关键组件。
A.多头注意力机制
作为Transformer的基本成分,注意机制能被分成两部分:
1)一个transformer层将输入序列 , 映射到三个不同的序列向量(query ,key 和value ),其中 和 是输入序列的长和维度。每个向量为:
其中,和是线性矩阵,是query和key的维度,是value的维度。query从投射而来,而key和value则从投射而来。这个双序列输入方案被称为cross-attention机制。具体来说,它可以被当作 的self-attention。除此之外,self-attention被应用到了编码器和解码器上,而cross-attention被作为了解码器之间的连接。
2)一个注意层,如图2所示,将query和相应的key集合在一起,然后赋值给value,更新输出向量,对应的公式为:
其中,注意的权重是使用query和key之间的点积操作生成的,比例因子和softmax操作用来将注意权重转换为一个归一化分布。最终权重被赋值给相应的value元素,然后得到最终的输出向量。
图2:注意力层的结构。左图:缩放点乘注意力机制,右图:多头注意力机制。
由于特征子空间的限制,单头注意力块(single-head attention block)的建模能力较粗糙。为了解决这一问题,如图2所示,Vaswani等人提出了一种多头自注意机制(multi-head self-attention ,MHSA),该机制将输入线性投影到多个特征子空间中,并由多个独立的注意头(层)并行处理。得到的向量被串联并映射到最终的输出。MHSA的流程可以表述为:
其中是头的数量,表示输出投射矩阵, 表示每个头的输出向量,,和是三个不同的线性矩阵组。
与卷积的稀疏连接类似,多头注意利用维向量将输入分离为个独立的注意头,并将每个注意头特征并行集成。在没有额外计算代价的情况下,多头注意力丰富了特征子空间的多样性。
B.Position-wise前馈网络
然后将MHSA的输出馈入两个连续的带有激活ReLU的前馈网络(FFN):
这个基于位置的前馈层可以被看作是一个基于点的卷积,它平等地对待每个位置,但在每个层之间使用不同的参数。
C.位置编码
由于Transformer/Attention对输入嵌入的操作是同时且独立的,因此忽略了序列的顺序。为了利用顺序信息,一种常见的解决方案是在输入后附加一个额外的位置向量,因此有了“位置编码”这个术语。位置编码有许多选择。例如,一个典型的选择是使用不同频率的正弦和余弦函数:
其中的和分别表示索引和向量的长度,是序列中每个元素的位置。
D.Transformer模型
图4显示了Transformer模型的整体编码器-解码器架构。具体来说,Transformer由 个连续的编码器块组成,每个编码器块由两个子层组成。1)一个MHSA层聚集了编码器嵌入的关系;2)基于位置的FFN层提取特征表示。对于解码器,它包含了编码器堆后面的六个连续块。与编码器相比,每个解码器块附加一个多头交叉注意层,对解码器嵌入和编码器的输出进行聚合,其中对应于前者,对应于后者,如 式(1) 所示。编码器和解码器的所有子层都采用了残差连接[11]和layer归一化[161]来增强Transformer的可扩展性。为了记录序列信息,在编码器和解码器堆栈的开始处的每个输入嵌入都附加了一个位置编码。最后,利用线性层和softmax操作对下一个词进行预测。
Transformer是一种自回归语言模型,起源于机器翻译任务。给定一个单词序列,Transformer将输入序列向量化为单词嵌入,并添加位置编码,然后将生成的向量序列提供给编码器。在训练过程中,如图4所示,Vaswani等人根据自回归任务规则设计了一个masking操作,即当前位置只能依赖于之前的位置输出。基于这种masking,Transformer解码器可以对输入的标签序列进行并行处理。在推理过程中,将经过相同操作处理的前一个预测词序列送入解码器,生成下一个预测词。
图4:2D Transformer
3 分类任务Transformer
受Transformer在NLP[2]-[5]中的显著发展的启发,一些研究者尝试将Transformer引入图像分类中。视觉Transformer(VIT)[29]首先在主流分类基准上实现了与传统CNN相似甚至更好的性能。这一部分全面回顾了40多个Transformer主干,并根据它们的动机和实现方式将其分为六大类,如图5所示。
在我们分类的基础上,我们首先介绍了Fully-Attentional Network [24] [28]和VIT[29],这是最初的用于图像分类的可视化Transformer。然后讨论了Transformer Enhanced CNN方法,即利用Transformer来增强对CNN主干的远程依赖性。Transformer具有很强的全局建模能力,但在早期忽略了局部信息。因此,CNN增强型Transformer方法利用适当的卷积感应偏置来增强Transformer,而局部注意力增强型Transformer方法则重新设计贴片分区和注意块,以增强Transformer的局部性并保持无卷积的架构。
此外,CNN在性能和计算效率上都从层次结构和深层结构中获得了经验上的好处[162]。受此启发,层次化变换和深度变换方法应运而生。前者用金字塔茎代替了固定分辨率的柱状结构,后者则避免了注意图的过度平滑,增加了深层注意图的多样性。此外,我们还回顾了当前可用的自我监督视觉Transformer的方法。最后,我们评估了这些Transformer的性能,分析了有希望的改进,并回答了一个常见的问题以供进一步研究。
A. Original Visual Transformer
VIT由Dosovitski等人提出,是第一个用于图像分类的Transformer主干[29]。由于Vanilla Transformer需要一个令牌序列输入,因此首先将输入图像分割成一系列不重叠的块,然后投影到块嵌入中。与Transformer的原始操作类似,每个面片都添加了一维可学习的位置编码以保留其空间信息,并且联合嵌入被馈送到编码器图6。
与BERT[5]类似,VIT插入一个学习的[class]嵌入,其在Transformer编码器的输出端的状态用作执行分类的表示。此外,2D插值补充了预先训练的位置编码,以在以任意分辨率馈送图像时保持补丁的一致顺序。通过使用大型私有数据集(由3亿张图像组成的JFT-300M)进行预训练,VIT在多个图像识别基准(即ImageNet、CIFAR-10和CIFAR-100)上取得了与大多数流行的CNN方法相似甚至更好的结果。VIT已经证明了Transformer在CV任务中的有效性,尽管它在训练数据不足的情况下无法很好地推广。
Fig6:ViT
B. Transformer Enhanced CNNs
如上所述Transformer有两个关键:MHSA和FFN。卷积层和MHSA之间存在近似值[28],Dong等人认为,Transformer可以借助跳跃连接和FFN[167]进一步减轻MHSA的强偏置。
最近,一些方法试图将Transformer集成到CNN中以增强表示学习。VTs[51]将输入图像的语义概念解耦到不同的通道中,并通过编码器块(即VT块)将它们紧密关联。这种VT块替代了最后的卷积阶段,以增强CNN模型的语义建模能力。与先前直接用注意力结构代替卷积的方法不同,Vaswani等人提出了一种概念上的重新定义,即具有MHSA的连续bottleneck block可以被表述为Bottleneck Transformer(BoTNet)[52]块。
采用相对位置编码[168]进一步模拟原始Transformer。基于ResNet[11],BoTNet在ImageNet基准上的参数设置类似,优于大多数CNN模型,并进一步证明了混合模型的有效性。
VTs:考虑到卷积平等地对待每个像素,Visual Transformer(VT)将输入图像的语义概念解耦到不同的channels,然后通过Transformer编码器块将他们关联起来。VT-block包含了三部分。1)一个tokenizer,通过使用一个scaling注意力层来将输入解耦为不同语义的视觉token集。2)一个Trandformer编码器,合并这些视觉tokens的语义信息。3)一个projector,使用一个tokens-image cross-attention层来实现原始像素空间特征的重合并。而且,其通过将ResNets[11]的最后一个卷积层替换为VT-blocks来构建一个Visual-Transformer-ResNets(VT-ResNets)。与标准的ResNet相比,VT-ResNet在ImageNet上获得了高于原来4.6-7%的更好准确度,并使用了更少的参数和FLOPs
BoTNet:与之前的基于注意力的模块相比,之前的模块只是在结构上用注意力块取代了最后阶段的卷积,Vaswani等人提出了一个概念性的重新定义,将具有自注意机制的连续bottleneck块视为Bottleneck Transformer(BoTNet)[44]块,尽管短连接形式有所不同。受到[22]-[24],[95]中相对位置编码[96]有效性的启发,BoTNet利用这种位置感知进一步逼近Transformer。基于ResNet-50,在ImageNet基准测试中,BoTNet的性能优于大多数参数设置相似的CNN模型,top1精度为84.7%,参数为75.1M。这种模拟Transformer的方法进一步证明了Transformer在标准卷积模型之上的有效性。
C. CNN Enhanced Transformer
Inductive bias被定义为关于数据分布和解空间的一组假设,其在卷积中的表现为局部性和平移不变性[169]。由于局部邻域内的协方差很大,并且在图像中逐渐趋于平稳,CNN可以在偏差的帮助下有效地处理图像。然而,当有足够的数据可用时,强偏差也限制了CNN的上限。最近的努力试图利用适当的CNN bias来增强Transformer。相关算法有DeiT[40]、ConViT[53]、CeiT[54]、LocalViT[55]、ResT[57]、CPVT[56]、CvT[36]、CoAtNet)[39]等。
DeiT: 为了缓解ViT对大数据集的依赖,Touvron等人提出了一种高效数据图像转换器(DeiT)[38],以提高其在ImageNet-1k上训练时的适用性。DeiT-B基于ViT-B[27],利用现有的数据增强和正则化策略,在ImageNet上获得了83.1%的top-1准确率。此外,teacher-student 策略应用于预训练,这是一个形式上类似于类token的蒸馏token,但由teacher的伪标记监督。根据经验,CNN是一个比Transformer更好的teacher,一个有趣的发现是,经过提炼的模型比它的teacher表现更好。这些观察结果可以用[98]来解释:CNN teacher可以通过知识蒸馏的方式将其归纳偏差以一种soft的方式传递给Transformer student。基于这种基于token的蒸馏方法,DeiT-B在无外部数据的情况下获得了85.2%的top-1准确率。此外,协同训练是否可以作为一种为Transformer集成归纳偏差的新方法,是值得研究的问题[99]。
ConViT:类似于基于双边注意的模型[22],[100],ConViT[45]在Transformer分支上附加一个并行卷积分支,通过Gated Positional Self-Attention (GPSA)柔和地施加卷积归纳偏差。具体来说,GPSA可以分为原始的自注意权值和模拟卷积权值。该算法首先初始化卷积层的局部性,然后通过调整学习门控参数显式地赋予每个注意head新的局部性。
CeiT & LocalViT: 除了柔和地学习归纳偏差的方法[38]、[45]外,还有一些直接的方法。CeiT[46]和LocalViT[47]通过直接在FFN中添加depth-wise卷积来提取位置。基于point-wise卷积和position-wise FFN的等价性,LocalViT将这个卷积版本的FFN扩展到一个inverted残差块[101],以构建一个depth-wise卷积框架。使用相同的操作,CeiT还重新设计了一个patch-to-tokens方案,并在Transformer的顶部附加一个Layer-wise Class token Attention (LCA),以聚合多级表示。这样,两者的性能都优于原来的DeiT[38]。
CPVT & ResT: 一些方法尝试利用卷积的固有位置信息来泛化分辨率不同的输入。从一个角度来看,ResT[49]假设位置编码和输入之间存在相关性。因此,它们之间的求和操作可以看作是对像素级输入进行加权的乘法,通过padding为1的3 × 3depth-wise卷积来实现。另一方面,根据[102]的观察,用零填充的卷积的边界可以对绝对位置信息进行编码,CPVT[48]用一系列卷积代替了位置编码。这两种方法都受益于这种卷积位置嵌入,特别是当模型很小时,ResT-Lite和PVT-Tiny分别提高了1.3%和1.4%。
Early Conv. & CoAtNet: 除了“internal”融合之外,目前更多的方法关注的是根据不同的视觉Transformer结构进行“apparent”组合。对于标准的柱状结构,Xiao等人将原来的patchify stem(单个不重叠的大核)替换为若干个重叠的stride为2的3 × 3核[50]。这个简单但强大的stem在ImageNet-1k上提高了1-2%的top-1精度,并促进了ViT的稳定性和下游任务的泛化。对于层次结构,Dai等人[37]研究了混合模型的最佳组合,以有利于性能权衡。通过比较一系列混合模型,他们提出了一个Convolution and Attention Network (CoAtNet),以结合CNN和Transformer的力量。具体来说,他们观察到depth-wise卷积可以自然地集成到注意块中,而浅层的垂直重叠卷积比原来的分层方法更有效。CoAtNet实现了跨多个数据集的最新SOTA性能。
D. Local Attention Enhanced Transformer
ViT[29]中的coarse patchify过程忽略了局部图像信息。除了卷积,研究人员提出了一种局部注意力机制,以动态关注相邻元素并增强局部提取能力。代表性方法之一是Swin Transformer[35]。类似于TSM[173](图7(a)),Swin利用沿空间维度的移位窗口来建模全局和边界特征。具体而言,两个连续的window-wise attention可以促进cross-window相互作用(图7(b)-(c)),类似于CNN中的感受野扩展。这种操作将计算量由降低至。其他相关算法TNT[59]、Twins[60]、ViL[61]、VOLO[44]可以参考具体论文。
Fig7
TNT: ViT[27]只关注全局的patch聚合,忽略了内部的相互作用。类似于Network In Network (NIN)系列[103],Han等人利用Transformer-iN-Transformer (TNT)[52]模型来聚合patch级和像素级表示。具体来说,每一层TNT由两个连续的块组成,内部块模拟每个patch内部像素级的交互作用,外部块从patch嵌入中提取全局信息。它们由一个线性投影层连接,该投影层将像素映射到相应的patch上。因此,TNT在浅层保存了比以前更丰富的局部特征。
Swin Transformer: Temporal Shift Module (TSM)[104]通过沿时间维度移动部分channels,促进了相邻帧之间的信息交换(图7(a))。与2D TSM类似,Liu等人提出了一个Shifted windows (Swin) Transformer[33],它利用沿空间维度的移位窗口来建模全局和边界特征。其中,采用分层结构进行空间减少和通道扩展,通过patch分区和patch合并操作来实现。此外,两个连续的window-wise注意层促进了跨窗口交互(图7(b)-(c)),这与CNN中的接受域扩展概念相似。它将注意层的计算复杂度从O(2n2C)降低到O(4M2nC),其中n和M分别表示patch长度和窗口大小。Swin Transformer在ImageNet-1K上获得84.2%的top-1精度,和在多个密集预测基准,如COCO和ADE20k得到了最新的SOTA。
Twins & ViL:作为一个local-global分离的Transformer, Twins[53]用一个Spatially Separable Self-Attention mechanism (SSSA)取代了Swin Transformer[33]的复杂设计。它在形式上类似于depth-wise的卷积[101]或windows-wise的TNT块[52]。其中,局部注意层对每个子窗口内的相邻patch进行聚合,增强细粒度特征;全局下采样注意层用于捕获长距离特征。另一种单独的形式是ViL[55],它将单个全局token替换为一系列局部嵌入(称为全局内存)。每个局部嵌入只与其他局部嵌入及其相应的二维空间邻居相互作用。受益于这样简单的形式,两者都获得了能够和Swin Transformer相比的性能。
VOLO: Vision outlook (VOLO)[42]使用outlook注意力专注于比其他基于注意力的模块更精细的特性。形式上,它由三种操作组成:unfold, linear-wights attention和 refold。尽管VOLO强调它是一个无CNN的模型,但该管道类似于patch-wise动态卷积。基于LV-ViT [41], VOLO将LV-ViT的top-1精度提高了0.4%-1.2%,这是ImageNet-1k基准测试中的一个新的SOTA,且无需外部数据。
E. Hierarchical Transformer
由于ViT[29]在整个Transformer层中采用具有固定分辨率的柱状结构,忽略了细粒度特征,并带来了沉重的计算成本。继分层模型之后,Tokens to Token ViT(T2T-ViT)首先引入了分层Transformer的范例,并采用overlapping unfold操作进行下采样。然而,这种操作带来了沉重的内存和计算成本。因此,Pyramid Vision Transformer(PVT)[41]利用非重叠的patch分区来减少特征大小。此外,PVT中的spatial-reduction attention(SRA)层被应用于通过学习低分辨率key-value pairs来进一步降低计算成本。在经验上,PVT使Transformer适应许多基准上的密集预测任务,这些基准需要大量输入和细粒度特征,并且具有计算效率。此外,PiT[64]和CvT[36]都分别利用池化和卷积来进行token下采样。具体而言,CvT[36]通过用卷积投影替换线性层来改进PVT[41]的SRA。基于convolutional bias,CvT[36]可以适应任意大小的输入,而无需位置编码。
T2T-ViT:分层Transformer的范例首先由Tokens-to-Token ViT (T2T-ViT) ViT[56]引入。在T2T-ViT中,使用layer-wise T2T 转换将邻近的tokens聚合成单个token。这种由重叠unfold操作实现的包围聚合可以同时实现层次结构和局部性。但是,由于转换层存在重叠冗余,给存储和计算带来了很大的负担。
PVT:分层Transformer的另一个例子是Pyramid Vision Transformer (PVT)[39]。如前所述,重复使用冗余tokens会导致T2T-ViT效率低下。与重叠unfold转换不同,PVT依赖于非重叠的patch分区来减少序列长度,并依赖于线性patch嵌入来保持通道维数一致。这种金字塔结构可以使Transform适应于需要大量输入和计算效率高的细粒度特征的密集预测任务。具体来说,spatial-reduction attention(SRA)层通过在每个注意块中学习低分辨率的键值对,显著降低了计算复杂度(图9)。PVT在许多基准上展示了分层Transformer的可用性。
PiT & CvT:类似于PVT[39]的收缩策略,PiT (pooling-based Vision Transformer)[57]和Convolutional Vision Transformer (CvT)[34]分别利用pooling和convolution来实现token嵌入。此外,CvT通过用卷积投影代替线性层,改善了PVT的SRA。基于卷积引入的这些局部上下文信息,CvT可以在不进行位置编码的情况下对变量输入进行泛化。
F. Deep Transformer
经验上,增加模型的深度是可以增强其学习能力[11]的。最近的工作将深度结构应用于Transformer,并进行了大量实验,通过分析cross-patch[67]和cross-layer[37]、[66]的相似性以及残差的贡献[42]来研究其可扩展性。在Deep Transformer中,来自较深层的特征往往不太具有代表性(attention collapse[66]),并且patch被映射到不可区分的潜在表示中(patch over-smoothing[67])。为了解决上述限制,这些方法从两个方面提出了相应的解决方案。
从模型结构的角度来看,Touvron等人在图像Transformers中提出了有效的Class-attention(CaiT[42]),包括两个阶段:1)没有class token的多个self-attention阶段。在每一层中,利用由small values初始化的可学习对角矩阵来动态更新channel权重,从而为channel调整提供一定的自由度;2) 最后class-attention阶段是冻结patch embeddings。之后的class token被插入到模型全局表示中,类似于具有编码器-解码器结构的DETR。这种显式分离基于这样一个假设,即class token对于前向传递中的patch embeddings梯度无效。通过蒸馏训练策略[40],CaiT在没有外部数据的情况下在imagenet-1k上实现了新的SOTA(86.5%的TOP1精度)。Deep Transformer遭受attention collapse和过度平滑问题的困扰,但仍在很大程度上保留了不同head之间注意力图的多样性。基于这一观察,Zhou等人提出了Deep Vision Transformer(DeepViT)[66],该Transformer聚合cross-head attention maps,并通过使用线性层重新生成新的注意力图,以增加跨层特征多样性。此外,Refiner[37]应用线性层来扩展注意力图的维度(间接增加head数量),以促进多样性。然后,采用分布式局部注意力(DLA)来实现对局部特征和全局特征的更好建模,这是通过影响注意力图的head-wise卷积来实现的。
从训练策略的角度来看,Gong等人提出了deep Transformer的三个Patch Diversity损失,这可以显著鼓励patch的多样性并抵消过度平滑问题[67]。类似于[175],patch-wise余弦损失最小化了patch之间的成对余弦相似性。patch-wise对比度损失通过其在早期层中的对应patch使较深的patch正则化。受Cutmix[176]的启发,patch-wise混合损失混合了两个不同的图像,并迫使每个patch只关注来自同一图像的patch,而忽略不相关的patch。与LV-ViT[43]相比,它们具有相似的损失功能,但动机不同。前者侧重于patch多样性,而后者侧重于关于token标记的数据增强。
CaiT: Touvron等人从结构方面提出了高效的Class-attention in image Transformers (CaiT[40]),其包括两个阶段。1)无类token的多个自注意阶段。在每一层中,利用使用小值初始化的可学习的对角矩阵动态更新channel权值,从而为channel调整提供一定的自由度。2)使用frozen patch嵌入的最后几个类注意阶段。稍后类token被插入到建模全局表示中,类似于带有编码器-解码器结构(图9(c))的DETR。这种显式的分离是基于类token对于正向传递中的patch嵌入梯度无效的假设。利用蒸馏训练策略[38],CaiT在不需要外部数据的情况下,在imagenet-1k上获得了新的SOTA (86.5% top-1精度)。
DeepViT & Refiner: Deep Transformer存在注意力崩溃和过度平滑问题,但仍在很大程度上保留了不同头部之间注意力map的多样性。基于这一观察,Zhou等人提出了Deep Vision Transformer(DeepViT),该方法利用线性层来聚合cross-head注意map,并重新生成一个新的cross-head注意map来增加cross-layer的特征多样性。而且,Refiner[35]应用一个线性层去扩展注意maps的维度(不直接地增加heads数量),以增强多样性。然后,一个Distributed Local Attention (DLA) 被用来更好地构建局部和全局特征,其是使用一个被注意map影响的head-wise卷积来实现的。最后,Refiner在ImageNet上获得了86%的top-1准确度,参数大小为81M。
Diverse Patch: 从训练策略方面来说,Gong等人提出三个用于深度Transformer的patch-wise的损失函数,能够显著提高patches的多样性且抵消过度平滑问题[60]。与[105]相似,一个patch-wise cosine损失最小化了patches中的成对cosine相似度。一个patch-wise对抗损失将更深的patches与其浅层的相关patches进行归一化。受Cutmix[106]启发,一个patch-wise mixing损失将两个不同的图像混合,使得每个patch只与相同图像的patches相关,忽略不相关的patches。与LV-ViT[41]相比,他们有着相似的损失函数,但动机不同。前者专注于patch的多样性,后者更注重token标签的数据增强。
G. Transformers with Self-Supervised Learning
自监督Transformer在NLP领域取得了巨大的成功[5],但视觉Transformer仍停留在监督的预训练阶段[35],[40]。最近的工作还试图以生成和判别的方式为ViT设计各种自监督学习方案。生成式的相关工作有iGPT[68]、BEiT[70]、dVAE[147]。判别式的相关工作有[72]、DINO[73]。
iGPT: 对于生成任务,Chen等人提出了 image Generative Pre-training Transformer (iGPT),用于视觉自监督学习。与ViT的patch嵌入不同,iGPT直接将图像的大小重置为更小的分辨率,然后将其拉平变为1D的像素序列,接着将最终序列输入到用于自回归像素预测任务的GPT-2[4]中。iGPT能够直接建模像素级信息,并能在低分辨率数据集中获得一个中等的准确度,但其需要相当大的计算(roughly 2500 V100-days for pretraining)。然而,生成视觉Transformer仍是一个值得进一步研究的有前景的方向。
BEiT: 比起直接生成原始的像素,Bao等人通过重新构造潜在空间中的masked图像,提出了一个BERT-style的视觉Transformer(BEiT)[63]。与BERT中的字典相似,基于variational autoencoder (dVAE) [107] 的图像tokenizer将图像向量化为离散的视觉tokens。这些tokens作为了预训练的伪标签集。然后,一个带有随机masked patches的图像被输入到一个Transformer backbone中。每个output-masked嵌入旨在通过在预训练过程中最大化后验概率对数似然函数来恢复其相关联的视觉token。这种方法中,BEiT避免了学习冗余的pixel-wise表示,优于最新的自监督方法(DINO[65] with 0.4%) 和 典型监督方法(DeiT-B[38] with 1.4%),在ImageNet-1K中获得了83.2%的top-1准确度。
MoCo v3: 对于判别任务,Chen等人[64]从基础开始,调查了几种基础组成对自监督ViT训练的影响(e.g., batch size, learning rate, and normalization)。通过对ViT准确度曲线的密集监测,他们观察到它“很好”,但是在训练过程中会遭受一些空间极具下降(term as dip),这对最终的性能有所影响。为了最终这个不稳定的原因,他们还监测了梯度幅度,发现在第一层(patch projection)的突然的梯度变化会延迟一组迭代,然后导致最终的准确度下降。因此,他们提出MoCo v3,一系列用于ViT的基础改善(e.g., freezing the patch projection layer, BatchNorm, and small patch size),使其优于ResNets,尤其是在大模型中
DINO: Caron[38]等人说明了蒸馏对于监督Transformer的有效性。最近,他们进一步将teacher-student方法使用到自监督学习中,并提出DINO[73]。DINO的核心概念可以总结为三点。一个有着额外中心和锐化层的momentum encoder被作为一个teacher模型,输出带有batch的平均表示的居中伪标签,其遗传自他们早期的SwAV[109]。一个没有预测head的online encoder,其作为一个student模型去拟合teacher的输出。一个标准的交叉熵损失来连接自训练和知识蒸馏。在线性评估中,DINO在ImageNet中取得了80.1%的准确度。更有意思的是,自监督ViT能够学习分割的繁荣特性,这一般是监督Transformer或CNN做不到的。
H. 讨论
算法评估和比较分析:在论文的分类法中,所有现有的监督模型被分为六类。表一总结了这些现有ViT在ImageNet-1k基准上的性能。为了客观直观地评估它们,论文使用以下三张图来说明它们在不同配置下在ImageNet-1k上的性能。图8(a)总结了2242个输入大小下每个模型的精度。图8(b)以FLOP为水平轴,重点关注其在更高分辨率下的性能。图8(c)侧重于具有外部数据集的预训练模型。根据这些比较结果,论文简要总结了在效率和可伸缩性方面的几项性能改进,如下所示:
与大多数结构改进方法相比,DeiT[40]和LV-ViT[43]等基本训练策略更适用于各种模型、任务和输入;局部性对于Transformer是必不可少的,这反映在VOLO[44]和Swin[35]分别在分类和密集预测任务上的优势;
卷积patchify stem(ViTc[58])和早期卷积阶段(CoAtNet[39])可以显著提高Transformer器的精度,尤其是对于大模型。论文推测原因是因为这些设计引入了比ViT中的non-overlapping patch projection更严格的高级特征[29];
deep Transformer,如Refined-ViT[37]和CaiT[42],具有巨大的潜力。随着模型尺寸与channel尺寸成二次增长,未来可以进一步研究deep Transformer中的相关权衡策略;
CeiT[54]和CvT[36]在训练中小型模型(0到40M)有显著优势,这表明轻量模型的这种混合注意力block值得进一步探索。
Fig8(a)
Fig8(b)&(c)
4 视觉Transformer发展趋势
视觉Transformer的发展趋势概述:Transformer backbones在过去的一年里出现了。当我们的系统与这些模型的时间轴相匹配时,我们可以清楚地追踪图像分类Transformer的发展趋势(图1)。作为一种自注意机制,视觉Transformer主要根据NLP中的原始结构(ViT[29]和iGPT[68])或CV中基于注意的模型(VTs[51]和BoTNet[52])重新设计。
然后,许多方法开始将CNN的层次结构或深层结构扩展到视觉Transformer。T2T ViT[63]、PVT[41]、CvT[36]和PiT[64]的共同动机是将层次结构转移到Transformer中,但它们执行下采样的方式不同。CaiT[42]、Diversity Patch[67]、DeepViT[66]和Refiner[37]专注于deep Transformer中的问题。此外,一些方法转向内部组件,以进一步增强先前Transformer中的图像处理能力,即位置编码[56]、[179]、[180]、MHSA[28]和MLP[167]。
下一波Transformer趋势是局部性范式。他们大多通过引入局部注意机制[35]、[44]、[59]、[60]或卷积[53]–[55]将局部性引入Transformer。如今,最新的监督Transformer正在探索结构组合[39],[58]和scaling定律[38],[181]。除了有监督的Transformer之外,自监督学习在视觉Transformer[68]–[70],[72]–[74]中占了很大一部分。然而,目前尚不清楚哪些任务和结构对CV中的自监督Transformer更有利。
关于替代方案的简要讨论:在视觉Transformer的开发过程中,最常见的问题是Transformer能否取代卷积。通过回顾过去一年的改善历史,这里没有替换方法效果更差的迹象。视觉Transformer已经从一个纯粹的结构回归到一种混合形式,全局信息逐渐回归到与局部信息混合的阶段。虽然Transformer可以等价于卷积,甚至比卷积具有更好的建模能力,但简单有效的卷积运算已经足以处理浅层的局部性和低层语义特征。未来,二者结合的想法将推动图像分类的更多突破。
5 检测任务Transformer
在本节中,作者详细介绍了用于目标检测的视觉 Transformer,它可以分为两类:作为颈部(neck)的 Transformer 和作为主干(backbone)的 Transformer。颈部检测器主要是基于 Transformer 结构的一种新表示,称为目标查询,即一组学习的参数均等地聚合全局特征。这些方法尝试在提高收敛速度或改进性能方面提供最佳融合范式。除了专门为检测任务设计的各种颈部外,一部分骨干检测器也考虑了特定的策略。最后,本文比较了它们之间的性能,然后分析了 Transformer 检测器的一些潜在的改进。
作者首先回顾 DETR,这是最开始的一个 Transformer 检测器,它提供了一个新的表示目标查询,将对象检测制定为一个集合预测问题。由于其对小物体的准确性低和收敛速度慢,人们从三个方面努力改进这种 Transformer 检测器:稀疏注意力、空间先验和结构重设计。此外,本文还回顾了自监督的应用。
最初的检测器:DEtection with TRansformer (DETR)
Fig.9 DETR
DETR是第一个端到端的 Transformer 检测器,它消除了手工设计的表示和非极大值抑制(NMS)后处理,通过引入目标查询和集合预测直接检测所有对象。具体地,DETR 使用编码器-解码器 Transformer 作为颈部,以及使用 FFN 作为预测头(如上图所示)。
稀疏注意力的 Transformer
在 DETR 中,解码器嵌入和全局特征之间的密集交互会消耗大量计算资源并减慢 DETR 的收敛速度。因此,一些努力旨在设计依赖于数据的稀疏注意力来解决这个问题,例如 Deformable DETR 和 ACT。接着作者描述了在稀疏注意力中的几个重要改进:Deformable DETR、ACT、SMCA、Conditional DETR、Two-Stage Deformable DETR 和 Efficient DETR。
Fig.10 Deformable DETR
重新设计结构的 Transformer
除了聚焦于交叉注意力的改进外,一些工作还重新设计了仅编码器的结构来直接避免解码器的问题。例如,TSP 继承了集合预测的思想,并放弃了解码器和目标查询。YOLOS 结合了 DETR 的编码器-解码器颈部和 ViT 的仅编码器主干,来重新设计仅编码器的检测器。
自监督学习的 Transformer 检测器
受到自然语言处理中取得成功的预训练 Transformer 的启发,Dai 等人提出无监督预训练DETR(UP-DETR)从三个方面辅助监督训练:
从给定图像中随机裁剪的一个 path 分配给所有目标查询。解码器的目标是定位 patch 位置。为了避免在预训练中对定位的过度偏见,提出了一个辅助重建任务来保留有判别性的特征。基于单个查询 patch,多查询定位将多个 patch 分配给不同的目标查询,以模仿多目标检测任务并加速收敛。每个 patch 查询都是通过掩码注意力和目标查询混洗独立预测的。UP-DETR 在小数据集上比 DETR 获得了更高的精度和更快的收敛速度,甚至在训练数据充足的情况下性能更好。
B. Transformer 骨干
作者在本文中回顾了许多用于图像分类的基于 Transformer 的主干。这些主干可以很容易地合并到各种框架中(例如,MaskR-CNN、RetinaNet、DETR 等)来执行密集预测任务。除了一般的改进外,它们中的一部分也有利于改进密集预测任务。层次结构将 Transformer 构造为一个从高分辨率到低分辨率的过程来学习多尺度特征,如 PVT。局部增强结构将主干构建为局部到全局的组合,以有效地提取短程和长程的视觉依赖性并避免二次计算开销,例如 Swin-Transformer、ViL 和 Focal Transformer。下表3在密集预测任务中比较了基于视觉 Transformer 框架的模型。基于 Transformer 的主干比当前 CNN 模型的性能高 2-6.8%,这证明了 Transformer 在密集预测方面的有效性。
Transformer 颈和 CNN 在 COCO 2017 验证集上的性能不同模型在密集预测任务的性能对比
与 FPN 类似,Zhang 等人通过结合非局部 [14] 和多尺度特征的特性,提出了一种专用于密集预测任务的特征金字塔 Transformer(FPT)[75]。它利用三个注意力组件来建模跨空间和尺度的交互,包括自注意力、自上而下的交叉注意力和自下而上的跨通道注意力。FPT 作为密集预测任务的通用主干,在许多 SOTA 模型上获得进一步提升。
C.讨论
本节在表2和表3中简要比较和分析了 Transformer 检测器。对于 Transformer 颈,本文只关注它们在单尺度特征结构中的 FLOPs,而不是多尺度特征,因为它们应用了不同的层数。从稀疏注意力(SA)的角度来看,Deformable DETR 减少了 8 GFLOPs 并缩短了 12 倍的训练时间,而 ACT-DC5 将计算成本从 187 GFLOPs 降低到 156 GFLOPs,并且性能损失很小。从空间先验(SP)的角度来看,one-stage 检测器显示地将空间先验与目标查询分开,带来快速收敛和高精度。SMCA 和 Conditional DETR 在 108 个训练 epoch 时分别达到了 42.7% 和 43% 的 mAP。two-stage 检测器和 TSP-RCNN 都用 proposals 替换了学习到的目标查询。这种本质上相同但结构上不同的方法显着提高了检测器的准确性。从多尺度 (MS) 特征的角度来看,它可以补偿 Transformer 在小物体检测上的性能。例如,Deformable DETR 和 SMCA 将 DETR 提高了 5.2% 和 3.1% 。仅编码器的结构减少了 Transformer 层数,但过度增加了 FLOPs,例如具有 537 GFLOPs 的 YOLOS-B。相比之下,编码器-解码器的结构是 GFLOPs 和层数之间的一个很好的权衡,但更深的解码器层可能会导致长时间的训练过程和过度平滑的问题。因此,将 SA 集成到具有 MS 和 SP 的深度解码器中值得进一步研究。
对于分类,有许多主干的改进,但很少有工作涉及密集预测任务。基于本文提出的分类法,很容易将现有方法分为两部分:分层的 Transformer 和局部增强的 Transformer。未来,作者预计 Transformer 主干将加入深度高分辨率网络来解决密集预测任务。
6 分割任务Transformer
Transformer 以两种方式广泛应用于分割:基于 patch 的 Transformer (patch-based Transformer)和基于查询的 Transformer (query-based Transformer)。后者可以进一步分解为带有目标查询的 Transformer(Transformer with object query) 和带有掩码嵌入的Transformer(Transformer with mask embedding)。
A.基于 patch 的 Transformer
为了扩展感受野,CNN 需要大量的解码器堆叠来将高级特征映射到原始空间分辨率。相比之下,依靠全局建模能力,基于 patch 的 Transformer 将输入图像视为 patch 序列,并将它们送到一个柱状 Transformer 编码器中。这种分辨率不变策略使 Transformer 能够仅包含一个相对简单的解码器,并为分割任务获得理想的性能。此外,一些工作(SETR、TransUNet、Segformer)尝试研究基于 patch 的 Transformer 与不同分割框架(Mask R-CNN、U-net)之间的最佳组合。
B.基于查询的 Transformer
查询(Query)是 Transformer 解码器输入和输出处的一个可学习的嵌入。与 patch 嵌入相比,查询嵌入可以更“公平”地整合每个 patch 的信息。有着集合预测损失的基于查询的 Transformer 能够删除其他手工制作的表示和后处理。最近,许多努力试图将这种表示推广到可以分为两类的分割任务。一类框架是由检测任务监督的目标查询所驱动。另一类的查询仅由分割任务监督,称为掩码嵌入。
1)用目标查询的 Transformer(Transformer with Object Queries)
Fig.11 Query-based frameworks for segmentation tasks.
基于目标查询的方法有三种训练方式:
基于 DETR 的预训练目标查询,一个带有查询的掩码头通过分割任务进一步细化(上图11(a)所示),如 Panoptic DETR。代替多阶段训练过程,目标查询由一些端到端框架中的检测和分割任务同时建模(上图11(b)所示),如 Cell-DETR、VisTR。
用混合级联网络构建不同任务分支之间的差距,其中检测框的输出用作掩码头的输入(上图11(c)所示),如 QueryInst。
2)用掩码嵌入的 Transformer(Transformer with Mask Embeddings)
另一类的 Transformer 框架努力使用查询直接预测掩码,本文将这种基于学习掩码的查询称为掩码嵌入。与目标查询不同,掩码嵌入仅由分割任务监督。如上图9(d)所示,两个不相交的查询集并行用于不同的任务,例如:ISTR 和 SOLQ。对于语义分割和无框框架,一些研究从基于查询的 Transformer 中删除对象查询,并直接通过掩码嵌入来预测掩码(上图9(e)),如 Max-DeepLab、Segmenter 和 Maskformer(严格意义上说 Maskformer 结合了 box-free 和 box-based 方法,使用 box-based 来增强 box-free 的效果)。
Fig. 12. An overview of mask head in Panoptic DETR.
Fig.13.IllustrationofMaskformer.
C.讨论
作为一项基础但仍具有挑战性的任务,分割也从不断发展的视觉 Transformers 中受益。本文根据三种不同的分割子任务(语义分割、实例分割和全景分割)总结了这些 Transformer。
下表4a侧重于语义分割任务的 ADE20K 验证集(170 个类别)。作者发现 Transformer 在有大量类而不是较小类的数据集上进行训练可以显示出巨大的性能改进。
下表4b侧重于评估实例分割任务的 COCO test-dev 2017 数据集。显然,带有掩码嵌入的 Transformer 在分割和检测任务中都超越了以往流行的模型。这些方法显著提高了 box 的准确率,但对分割只有轻微的改进,从而导致 和 的性能存在巨大差距。基于级联框架,QueryInst 在 Transformer 模型中获得了 SOTA 性能。因此,Transformer 与混合任务级联结构的结合值得进一步研究。
下表4c侧重于评估全景分割任务。Max-DeepLab 通常通过掩码预测的方式解决全景分割任务中的前景和背景,而 Maskformer 成功地将此方式用于语义分割并统一了语义和实例级分割任务。基于它们在全景分割领域的表现,可以得出结论:Transformer 可以将多个分割任务统一到一个具有掩码预测的无框框架中。
7 3D视觉识别Transformer
随着三维采集技术的快速发展,立体/单眼图像和LiDAR (Light Detection and测距)点云成为三维识别的热门感官数据。与RGB(D)数据不同,点云表示更注重距离、几何和形状信息。值得注意的是,这种几何特征非常适合变形金刚,因为它具有稀疏性、无序性和不规则性的特征。随着2D视觉Transformer的成功,开发了大量的3D分析方法。本节简要回顾了三维视觉Transformer的表示学习、认知映射和特别处理。
A.表示学习
与传统的手工设计的网络相比,视觉Transformer更适合于从点云学习语义表示,这种不规则和排列不变的性质可以转化为一系列具有位置信息的并行嵌入。鉴于此,Point Transformer[105]和PCT[106]首先证明了ViT对3D表示学习的有效性。前者将hierarchical Transformer[105]与下采样策略[203]合并,并将其先前的vector attention block[25]扩展到3D点云。
后者首先聚集相邻点云,然后在全局off-set Transformer上处理这些相邻嵌入,其中来自图卷积网络(GCN)的知识迁移被应用于噪声缓解。值得注意的是,由于点云的固有坐标信息,位置编码(ViT的重要操作)在两种方法中都有所减少。PCT直接处理坐标,无需位置编码,而Point Transformer添加了可学习的相对位置编码以进一步增强。
继[105]、[106]之后,Lu等人利用local-global聚合模块3DCTN[107]来实现局部增强和成本效率。给定多步长下采样组,使用具有max-pooling操作的显式图卷积来聚合每个组内的局部信息。将得到的组嵌入级联并馈送到改进的Transformer[105]、[106]中,用于全局聚合。Park等人提出了Fast Point Transformer[108],通过使用voxel-hashing邻域搜索、体素桥接相对位置编码和基于余弦相似性的局部关注来优化模型效率。
为了进行密集预测,Pan等人提出了一种定制的基于点云的Transformer主干(Pointformer)[109],用于在每个层中分别参与局部和全局交互。与以往的局部-全局形式不同,采用局部关注后的坐标细化操作来更新质心点而不是曲面点。局部-全局交叉注意力模型融合了高分辨率特征,然后是全局注意力。
Fan等人返回到Single-stride Sparse Transformer(SST)[110],而不是下采样操作,以解决小目标检测的问题。与Swin[35]类似,连续Transformer块中的移位组被用于分别处理每组token,这进一步缓解了计算问题。
在基于体素的方法中,Voxel Transformer(VoTr)[111]采用两步voxel Transformer来有效地操作空和非空体素位置,包括通过local attention和dilated attention。VoxSeT[112]进一步将self-attention分解为两个交叉关注层,一组潜在编码将它们链接起来,以在隐藏空间中保存全局特征。
一系列自监督Transformer也被扩展到3D空间,例如Point BERT[113]、Point MAE[114]和MaskPoint[115]。具体而言,Point BERT[113]和Point MAE[114]直接将先前的工作[70]、[71]转移到点云,而MaskPoint[115]通过使用与DINO(2022)[91]类似的对比解码器来改变生成训练方案,以进行自训练。基于大量实验,论文得出结论,这种生成/对比自训练方法使ViT能够在图像或点云中有效。
B.认知映射
在具有丰富表征特征的情况下,如何将实例/语义认知直接映射到目标输出也引起了人们的广泛关注。与二维图像不同,三维场景中的物体是独立的,可以用一系列离散的表面点直观地表示出来。为了弥补这一差距,一些现有的方法将领域知识转移到2D主流模型中。继[30]之后,3DETR[116]通过最远点采样和傅里叶位置嵌入将端到端模块扩展到3D目标检测,以用于object queries初始化。Group Free 3D DETR[117]应用了比[116]更具体和更强的结构。
详细地说,当object queries时,它直接从提取的点云中选择一组候选采样点,并在解码器中逐层迭代地更新它们。Sheng等人提出了一种典型的两阶段方法,该方法利用Channel-wise Transformer3D检测器(CT3D)[118]同时聚合每个提案中的点云特征的proposal-aware嵌入和channel-wise上下文信息。
对于单目传感器,MonoDTR[119]和MonoDETR[120]在训练过程中使用辅助深度监督来估计伪深度位置编码(DPE)。DETR3D[121]引入了一种多目3D目标检测范式,其中2D图像和3D位置都通过摄像机变换矩阵和一组3D object queries相关联。TransFusion[122]通过连续通过两个Transformer解码器层与object queries交互,进一步利用了LiDAR点和RGB图像的优点。
C.特别处理
受传感器分辨率和视角的限制,点云在现实场景中存在不完整、噪声和稀疏性等问题。为此,PoinTr[123]将原始点云表示为一组局部点云代理,并利用几何感知编码器-解码器Transformer将中心点云代理向不完整点云方向迁移。SnowflakeNet[124]将点云补全的过程公式化为类似雪花的生长,它通过point-wise splitting deconvolution策略从父点云逐步生成子点云。相邻层的skip-Transformer进一步细化父层和子层之间的空间上下文特征,以增强它们的连接区域。
Choe等人将各种生成任务(例如降噪、补全和超分辨率)统一为点云重构问题,因此称为PointRecon[125]。基于体素散列,它覆盖了绝对尺度的局部几何结构,并利用PointTransformerlike[105]结构将每个体素(query)与其相邻体素(value-key)进行聚合,以便从离散体素到一组点云集进行细粒度转换。此外,增强的位置编码适用于体素局部attention方案,通过使用L1损失的负指数函数作为朴素位置编码的权重来实现。值得注意的是,与masked生成自训练相比,补全任务直接生成一组完整点云,而不需要不完整点云的显式空间先验。
8 多元信息Transformer
在现实世界中,通常使用多个传感器,而不是单一传感器。为此,近年来的工作开始探索不同的融合方法,以有效地合作多感官数据流。与典型的CNN相比,Transformer具有非特定的嵌入和动态交互的注意机制,自然适合于多流数据融合。本节根据数据流来源详细介绍这些方法:同源流和异源流。
A.同源流
同源流是一组具有相似内在特征的多感官数据,如多视图、多多维、多模态的视觉流数据。根据融合机制的不同,可将其分为两类:交互融合和转移融合。
交互融合:CNN的经典融合模式采用channel级联操作。然而,来自不同模态的相同位置可能是各向异性的,这不适合CNN的平移不变偏差。相反,Transformer的空间级联操作使不同的模态能够超越局部限制进行交互。
对于局部交互,MVT[126]在空间上连接来自不同视图的patch嵌入,并通过使用模式不可知的Transformer来加强它们的交互。为了减轻多模态特征的冗余信息,MVDeTr[127]将特征图的每个视图投影到地平面上,并将多尺度可变形注意力[76]扩展到多视图设计。其他相关算法TransFuser[128]、COTR[129]可参考论文。
对于全局交互,Wang等人[130]利用共享主干提取不同视图的特征。代替COTR[129]中的逐像素/逐patch级联,提取的逐视图全局特征在空间上进行级联,以在Transformer中进行视图融合。考虑到不同相机视图之间的角度和位置差异,TransformerFusion[132]首先将每个视图特征转换为具有其相机视图的内部和外部的嵌入向量。这些嵌入然后被馈送到global Transformer中,该global Transformer的注意力权重用于帧选择,以便有效地计算。为了在3D检测中统一多传感器数据,FUTR3D[131]将类DETR解码器中的object queries投影到一组3D参考点中云。这些点云及其相关特征随后从不同的模态中采样并在空间上连接以更新object queries。
迁移融合:与Transformer编码器通过self-attention实现的交互式融合不同,另一种融合形式更像是通过交叉关注机制从源数据到目标数据的迁移学习。例如,Tulder等人[133]在中间主干特征中插入了两个协作的交叉注意力Transformer,用于桥接未配准的多视图医学图像。代替pixel-wise 注意力形式,进一步开发了token-pixel交叉注意力,以减轻繁重的计算。Long等人[134]提出了一种用于多视图图像深度估计的对极时空Transformer。
给定包含一系列静态多视点帧的单个视频,首先将相邻帧连接起来,然后将对极线扭曲到中心相机空间中。最终得到的帧volume作为源数据,通过交叉注意力与中心帧进行融合。对于空间对齐的数据流,DRT[135]首先通过使用卷积层显式地建模不同数据流之间的关系图。随后将生成的map输入到双路径交叉注意力中,以并行构建局部和全局关系,从而可以收集更多的区域信息用于青光眼诊断。
B.异源流
视觉Transformer在异质数据融合方面也表现出色,特别是在视觉语言表征学习方面。虽然不同的任务可能采用不同的训练方案,如监督学习/自我监督学习或紧凑/大规模数据集,但我们仅根据它们的认知形式将它们分为两个具有代表性的组:1) Visual-Linguistic Pre-Training和 2) and Visual Grounding。
视觉-语言预训练:由于有限的标注数据,早期的VLP方法通常依赖于现成的目标检测器[204]和文本编码器[5]来提取数据特定的特征以进行联合分布学习。给定图像-文本对,在视觉基因组(VG)上预先训练的目标检测器[205]首先从图像中提取一组以目标为中心的RoI特征。然后将用作视觉标记的RoI特征与用于预定义任务预训练的文本嵌入合并。基本上,这些方法分为双流和单流融合。双流方法包括ViLBERT[137]、LXMERT[138]。
单流方法包括VideoBERT[136]、VisualBERT[139]、VL-BERT[140]、UNITER[141]、Oscar[142]、Unified VLP[143]。然而,这些方法严重依赖于视觉提取器或其预定义的视觉词汇表,导致了降低VLP表达能力上限的瓶颈。一些算法如VinVL[145]、ViLT[144]、UniT[149]、SimVLM[150]尝试解决这个问题。除了传统的带有多任务监督的预训练方案外,另一条最新的对比学习路线已经开发出来。相关算法有CLIP[146]、ALIGN[148]、Data2Vec[151]。
Fig. 14. The overview of CILP
Visual Grounding:与VLP相比,Visual Grounding具有更具体的目标信号监督,其目标是根据目标对象的相应描述来定位目标对象。在图像空间中,Modulated DETR(MDETR)[152]将其先前的工作[30]扩展到phrase grounding预训练,该训练在一个描述中定位并将边界框分配给每个instance phrase。其他相关算法Referring Transformer[155]、VGTR[154]、TransVG[153]、LanguageRefer[157]、TransRefer3D[158]、MVT 2022[159]、TubeDETR[160]可以参考具体论文。
9 讨论与总结
A.总结最近的改进
基于之前的比较和讨论,作者简要总结了三个基本任务(分类、检测和分割)的最新改进。
对于分类,深的层次的 Transformer 主干可有效降低计算复杂度并避免深层中的特征过度平滑。同时,早期的卷积足以捕获低级特征,可以显着增强鲁棒性并降低浅层的计算复杂度。此外,卷积投影和局部注意机制都可以提高Transformer的局部性。前者也可能是一种替代位置编码的新方法。对于检测,Transformer 颈部受益于编码器-解码器结构,其计算量少于仅编码器的 Transformer 检测器。因此,解码器是必要的,但由于其收敛速度慢,因此只需要很少的堆叠即可。此外,稀疏注意力有利于降低计算复杂度并加速 Transformer 的收敛,而空间先验有利于Transformer的性能,收敛速度稍快。对于分割,编码器-解码器 Transformer 模型可以通过一系列可学习的掩码嵌入将三个分割子任务统一为掩码预测问题。这种无框的方法在多个基准测试中取得了最新的 SOTA (MaskFormer)。此外,基于框的 Transformer 的特定混合任务的级联模型被证实可以在实例分割任务中获得更高的性能。对于3D视觉,具有评分网络的局部分层Transformer可以有效地从点云数据中提取特征。全局建模能力使Transformer能够轻松聚合曲面点,而不是复杂的局部设计。此外,ViT可以处理3D视觉识别中的多传感器数据,如多视图和多维数据;视觉-语言预训练的主流方法已经逐渐放弃了预训练的检测器[144],并专注于基于大规模噪声数据集[148]的潜在空间中不同数据流之间的对齐[146]或相似性[151]。另一个问题是使下游视觉任务适应预训练方案,以进行zero-shot迁移[146];最近流行的多传感器数据融合架构是单流方法,它在空间上连接不同的数据流并同时执行交互。基于单流模型,最近的许多工作致力于寻找一个潜在空间,使不同的数据流语义一致。
B.视觉 Transformer 的讨论
尽管有大量的视觉 Transformer 模型和应用,但对视觉 Transformer 的“基本”理解仍然效率低下。因此,本文将重点关注一些关键问题,以帮助解决读者的困惑。
Transformer 如何弥合语言和视觉之间的鸿沟Transformer 最初是为机器翻译任务而设计的。在语言模型中,以句子的每个词为基本单元,代表高层次、高维的语义信息。这些词可以嵌入到低维向量空间表示中,因此称为词嵌入。在视觉任务中,图像的每个像素都是低级、低维的语义信息,与嵌入特征不匹配。因此,迁移到视觉任务的关键是构建图像到矢量的转换并保持图像的特征。例如,ViT 通过强松弛条件将图像转换为具有多个低级信息的 patch 嵌入,而 Early Conv. 和 CoAtNet 利用卷积来提取高级信息并减少 patch 中的冗余特征。
Transformer、自注意力与 CNN 的关系从卷积的角度来看,如上提到的 4.3 节,其归纳偏置主要表现为局部性、平移不变性、权重共享、稀疏连接。这种简单的卷积核可以有效地执行模板匹配,但由于其具有强烈的归纳偏差(因为很快就可以收敛学习好了),其上限低于 Transformer。
从自注意力机制的角度来看,如上提到的4.2和4.4节,当给定足够数量的头时,它理论上可以表达任何卷积层。这种全注意力操作可以交替地结合局部和全局级别的注意力,并根据特征的关系动态生成注意力权重。即便如此,它的实用性也较差,准确率低于 SOTA CNN,计算复杂度更高。
从Transformer的角度来看,Dong 等人证明当在没有短连接或 FFNs 的深层训练时,自注意力层会表现出对“令牌均匀性(token uniformity)”的强烈归纳偏见。得出的结论是,Transformer 由两个关键组件组成:一个 self-attention 层聚合了 token 的关系,一个 position-wise FFN 提取了输入的特征。尽管 Transformer 具有强大的全局建模能力,如4.3节和7.2.1节所述,卷积可以有效处理低级特征,增强 Transformer 的局部性,并通过填充附加位置特征。
不同视觉任务中的可学习到的嵌入
图15 可学习的嵌入分类 Transformer 模型采用可学习的嵌入来执行不同的视觉任务。从监督任务的角度来看,这些嵌入可以分为类标记、目标查询和掩码嵌入。从结构上看,它们之间是有内在联系的。最近的 Transformer 方法主要采用两种不同的模式:仅编码器结构和编码器-解码器结构。每个结构由三个层次的嵌入组成。从位置层次,学习嵌入在仅编码器的 Transformer 中的应用被分解为初始令牌(initial token)和后期令牌(later token),而学习的位置编码和学习的解码器输入嵌入被应用于编码器-解码器结构。
从数量层面来看,仅编码器的设计会应用不同数量的令牌。例如,ViT 家族和 YOLOS 将不同的数字标记附加到初始层,而 CaiT 和 Segmenter 利用这些标记来表示最后几层的不同特征。在编码器 - 解码器结构中,解码器的学习位置编码(目标查询或掩码嵌入)在显式 [28]、[137] 或隐式 [69] 中附加到解码器的输入中。与常数输入不同,Deformable DETR 采用学习嵌入作为输入并加入到编码器的输出。
Fig. 15. Taxonomy of the learnable embedding.
受多头注意力设计的启发,多初始的标记策略应该能进一步提高分类性能。然而,DeiT 表明这些额外的令牌会收敛到相同的结果,这对 ViT 没有好处。从另一个角度来看,YOLOS 提供了一种通过使用多个初始令牌来统一分类和检测的范式,但这种仅编码器的设计会导致计算复杂度过高。根据CaiT 的观察,后面的 class token 可以减少 Transformer 的一些 FLOPs 并略微提高性能(从79.9%到80.5%)。Segmenter 还展示了该策略在分割任务中的效率。
与带有仅编码器 Transformer 的多个后期令牌(later token)相比,编码器-解码器结构节省了更多的计算。它通过使用一小组目标查询(掩码嵌入)来标准化检测和分割领域中的 Transformer 方法。通过结合多个后期令牌和目标查询(掩码嵌入)的形式,像 Deformable DETR 这样的结构,它们对目标查询和可学习的解码器嵌入(相当于多个后期令牌)作为输入,可以将基于不同任务的可学习嵌入统一到 Transformer 编码器-解码器中。
C.未来的研究方向
Visual Transformer 方法取得了巨大的进步,并显示出在多个基准上接近或超过 SOTA CNN 方法的有希望的结果。然而,该技术太不成熟,无法颠覆卷积在 CV 领域的主导地位。基于 7.2 中的分析,作者指出了视觉 Transformer 的一些有前途的未来方向,以进一步进行整体串联。
1)集合预测:如上 7.2.3 节所述,由于损失函数的梯度相同,额外的类标记(token)将一致收敛。具有二分损失函数的集合预测策略已广泛应用于许多密集预测任务中的视觉 Transformer 里。如之前提到的,为分类任务考虑集合预测设计是很自然的,例如多类标记 Transformer 通过集合预测来预测混合 patch 图像,这类似于 LV-ViT 的数据增强策略。此外,在集合预测策略中的一对一标签分配导致早期过程中的训练不稳定,这可能会降低最终结果的准确性。使用其他标签分配和损失来改进集合预测可能有助于新的检测框架。
2)自监督学习:自监督 Transformer 预训练规范了NLP领域,并在各种应用中取得了巨大成功。作为 CV 中的自监督范式,卷积孪生网络采用对比学习来执行自监督预训练,这与 NLP 中的基于 mask 的自编码器不同。最近,一些研究尝试设计一种自监督的视觉 Transformer,以弥合视觉和语言之间预训练方法的差距。他们中的大多数继承了 NLP 中的掩码自编码器或 CV 中的对比学习方案。但是,没有像 NLP 中的 GPT-3 那样革命性的用于视觉 Transformer 的特定监督方法。如上 7.2.3 节所述,编码器-解码器结构可以通过学习的解码器嵌入和位置编码来统一视觉任务。用于自监督学习的编码器-解码器 Transformer 值得我们进一步研究。
D.总结
在 ViT 证明了其在 CV 任务中的有效性后,视觉 Transformer 受到了相当多的关注,并削弱了 CNN 的主导地位。在本文中,本文全面回顾了 100 多个 Transformer 模型,这些 Transformer 模型已先后应用于各种视觉任务中,包括分类、检测和分割。对于每个任务,提出了一种具体的分类法来组织最近开发的 Transformer 方法,并在各种流行的基准上对它们的性能进行了评估。通过对这些方法的综合分析和系统比较,本文总结了具有显著改进的方法,讨论了视觉 Transformer 的三个基本问题,并进一步提出了未来有希望的几个潜在研究方向。
参考文献链接
https://developer.nvidia.com/blog/time-magazine-names-nvidia-instant-nerf-a-best-invention-of-2022/
https://mp.weixin.qq.com/s/pSz94W2ZqgQzvUaeb8etXw
https://mp.weixin.qq.com/s/ykIO6EHkyemtABJ03Qo6IQ