Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

ChatGPT爆火之后,视觉研究者坐不住了?谷歌将ViT参数扩大到220亿

视觉模型有很大的提升空间,研究者们在以往的 LLM 中学到经验教训,认为扩展是一个很有前途的方法。来自谷歌的研究者将 ViT 扩展到 22B 参数量,这是迄今为止报道的最大的视觉主干。

自然语言处理类似,对预训练视觉主干的迁移提高了模型在各种视觉任务上的性能。更大的数据集、可扩展的架构和新的训练方法都推动了模型性能的提升。

然而,视觉模型仍然远远落后于语言模型。具体来说,迄今为止最大的视觉模型 ViT 只有 4B 参数,而入门级语言模型通常超过 10B 参数,更别说具有 540B 参数的大型语言模型

为了探索 AI 模型的性能极限,Google Research 最近在 CV 领域的一项研究,率先将 Vision Transformer 参数量扩展到了 22B,提出 ViT-22B,与之前类似的模型参数量 4B 相比,可以说这是迄今为止最大的稠密型 ViT 模型。

图片

论文地址:https://arxiv.org/pdf/2302.05442.pdf

对比之前最大的 ViT- G 和 ViT-e,表 1 给出了比较结果,由下表可得,ViT-22B 主要是扩展了模型的宽度,使得参数量更大,深度和 ViT-G 一样。

图片当前的 ViT 大模型

正如这位知乎网友所说,难道是谷歌在 ChatGPT 上输了一局,势必要在 CV 领域争口气?

图片

如何做到的?原来研究早期,他们发现在扩展 ViT 的过程中,出现了训练不稳定性,并且可能会带来架构变化。然后研究人员仔细设计模型,并且以前所未有的效率来实现模型并行训练。ViT-22B 的质量是通过一套全面的任务来评估的,从(少样本)分类到密集输出任务,在这些任务中,它达到或超过了当前 SOTA 水平。例如,即使用作冻结的视觉特征提取器,ViT-22B 在 ImageNet 上的准确率也达到了 89.5%。通过训练 text tower 来匹配这些视觉特征,它在 ImageNet 上实现了 85.9% 的零样本设置准确率。此外,该模型可以看作是一个教师,用作蒸馏目标,研究人员训练了一个 ViT-B 学生模型,在 ImageNet 上的准确率为 88.6%,达到了此类规模模型上 SOTA 水平。

模型架构

ViT-22B 是一种基于 Transformer 的编码器模型,类似于原始 Vision Transformer 架构,但包含以下三个主要修改,以提高效率和大规模训练的稳定性:并行层、查询 / 键(QK)归一化和 omitted biases。

并行层。正如 Wang 和 Komatsuzaki 研究所述,该研究设计了一个 Attention 和 MLP 并行结构:

图片

这可以通过组合 MLP 和注意力块的线性投影来实现额外的并行化。值得注意的是,用于查询 / 键 / 值投影的矩阵乘法和 MLP 的第一线性层被融合到一个单独的操作中,对于 MLP 的注意力外投影和第二层线性层也是如此。

QK 归一化。训练大模型的一个困难是模型的稳定性,在将 ViT 扩展的过程中,研究人员发现在几千轮的 step 后训练损失呈发散性。特别是在 8B 参数的模型中这种现象尤为突出。为了稳定模型训练,研究人员采用 Gilmer 等人的方法,在点积注意力计算之前对查询和键应用 LayerNorm 归一化操作,以提升训练的稳定性。具体来说,注意力权重计算为:

图片

omitted biases。在 PaLM 之后,偏置项从 QKV 投影中移除,并且所有的 Layernorm 都在没有偏置的情况下应用,从而提高了加速器的利用率 (3%),且质量没有下降。然而,与 PaLM 不同的是,研究人员对 MLP 密集层使用了偏置项,即便如此,这种方式在兼顾质量的同时,速度没有下降。 

图 2 展示了一个 ViT-22B 编码器块。嵌入层在原有 ViT 的基础上进行了 patch 提取、线性投影和添加位置嵌入等操作。研究人员使用多头注意力池化来聚合头中的每个 token 表示。

图片

ViT-22B 使用 14 × 14 的 patch,图像分辨率为 224 × 224。ViT-22B 采用了一种学习到的一维位置嵌入。在对高分辨率图像进行微调期间,研究人员根据预训练的位置嵌入在原始图像中的位置执行二维插值

训练基础设施与效率

ViT-22B 使用 FLAX 库,实现方式是 JAX,并在 Scenic 中构建。它同时利用了模型和数据并行性。值得一提的是,研究人员使用了 jax. xmap API,它提供了对所有中间体的分片(例如权重和激活)以及芯片间通信的显式控制。研究人员将芯片组织成大小为 t × k 的 2D 逻辑网格,其中 t 是数据平行轴的大小,k 是模型轴的大小。然后,对于 t 组中的每个组,k 个设备获得相同批次的图像,每个设备只保留 1/k 的激活,并负责计算所有线性层输出的 1/k(详细内容如下)。

图片

图 3:异步并行线性操作(y = Ax):跨设备的重叠通信和计算的模型并行矩阵乘法。

异步并行线性操作。为了最大限度地提高吞吐量,必须考虑计算和通信。也就是说,如果希望这些操作在分析上等效于未分片的情况,就必须尽可能少地进行通信,理想情况下让它们重叠,这样就可以保持矩阵乘法单元(FLOP 的大部分容量所在)始终处于繁忙状态。

参数分片。该模型在第一个轴上是数据并行的。每个参数可以在这个轴上完全复制,也可以让每个设备保存它的一个块。研究人员选择从模型参数中分割一些大张量,以便能够拟合更大的模型和批量大小。

使用这些技术,ViT-22B 在 TPUv4 上训练期间,每个核每秒处理 1.15k token。ViT-22B 的模型 flops 利用率(MFU)为 54.9%,表明硬件的使用非常有效。请注意,PaLM 报告的 MFU 为 46.2%,而研究人员在相同硬件上为 ViT-e(仅数据并行)测量的 MFU 为 44.0%。

实验结果

实验探究了 ViT-22B 用于图像分类的评估结果。

表 2 结果显示,ViT-22B 在各种指标上仍有显著的改善。此外,研究表明,像 ViT-22B 这样的大型模型的 Linear probing 可以接近或超过具有高分辨率的小型模型的 full fine-tuning 性能,通常成本更小、更容易做到。

图片

研究进一步在细粒度分类数据集 iNaturalist 2017 上测试线性可分离性,将 ViT-22B 与其他 ViT 变体进行比较。研究测试了 224px 和 384px 的输入分辨率。结果如图 4。研究观察到 ViT-22B 明显优于其他 ViT 变体,特别是在标准的 224px 输入分辨率下。这表明 ViT-22B 中大量的参数对于从图像中提取详细信息是有用的。

图片

表 3 显示了 ViT-22B 对 CLIP、ALIGN、BASIC、CoCa、LiT 模型的零样本迁移结果。表 3 底部比较了三个 ViT 模型性能。

在所有的 ImageNet 测试集中,ViT-22B 取得了相当或更好的结果。值得注意的是,ObjectNet 测试集上的零样本结果与 ViT 模型大小高度相关。最大的 ViT-22B 将新的 SOTA 设置在具有挑战性的 ObjectNet 测试集中。

图片

Out-of-distribution (OOD)。研究构建了一个从 JFT 到 ImageNet 的标签映射,以及从 ImageNet 到不同分布外数据集的标签映射,即 ObjectNet、ImageNet-v2、ImageNet- R 和 ImageNet- A。

目前可以确认的结果是,与 ImageNet 上的改进一致,扩展模型增加了分布外性能。这适用于只看过 JFT 图像的模型,以及在 ImageNet 上进行微调的模型。在这两种情况下,ViT-22B 在更大的模型上都延续了 OOD 性能更好的趋势(图 5,表 11)。

图片

此外,研究人员还研究了 ViT-22B 模型在语义分割单目深度估计任务中捕获的几何和空间信息质量。

语义分割。研究人员在三个基准上评估 ViT-22B 作为语义分割主干:ADE20K、Pascal Context 和 Pascal VOC。从表 4 可以看出,当只看到少量分割掩码时,ViT-22B 主干迁移效果更好。

图片

单目深度估计。表 5 总结了研究的主要发现。从最上面的行(DPT 解码器)中可以观察到,与不同的主干相比,使用 ViT-22B 特性产生了最好的性能(在所有指标上)。通过将 ViT-22B 主干与 ViT-e(一个较小的模型,但在与 ViT-22B 相同的数据上进行训练)进行比较,研究发现扩展架构可以提高性能。

此外,将 ViT-e 主干与 ViT-L(与 ViT-e 类似的架构,但训练的数据更少)进行比较,研究发现这些改进也来自于扩展训练前的数据。这些发现表明,更大的模型和更大的数据集都有助于提高性能。

图片

该研究还在视频数据集上进行了探索。表 6 展示了在 Kinetics 400 和 Moments in Time 数据集上的视频分类结果,表明可以使用冻结的主干实现具有竞争力的结果。研究首先与 ViT-e 进行比较,ViT-e 拥有最大的先验视觉主干模型,由 40 亿个参数组成,并且也在 JFT 数据集上进行训练。我们观察到更大的 ViT-22B 模型在 Kinetics 400 上提高了 1.5 分,在 Moments in Time 上提高了 1.3 分。

最后研究注意到,通过完整的端到端微调,还有进一步改进的空间。

图片

更多技术细节请参阅原论文。

参考链接:https://www.zhihu.com/question/583748997

理论Transformer
相关数据
池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

分类数据技术

一种特征,拥有一组离散的可能值。以某个名为 house style 的分类特征为例,该特征拥有一组离散的可能值(共三个),即 Tudor, ranch, colonial。通过将 house style 表示成分类数据,相应模型可以学习 Tudor、ranch 和 colonial 分别对房价的影响。 有时,离散集中的值是互斥的,只能将其中一个值应用于指定样本。例如,car maker 分类特征可能只允许一个样本有一个值 (Toyota)。在其他情况下,则可以应用多个值。一辆车可能会被喷涂多种不同的颜色,因此,car color 分类特征可能会允许单个样本具有多个值(例如 red 和 white)。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

插值技术

数学的数值分析领域中,内插或称插值(英语:interpolation)是一种通过已知的、离散的数据点,在范围内推求新数据点的过程或方法。求解科学和工程的问题时,通常有许多数据点借由采样、实验等方法获得,这些数据可能代表了有限个数值函数,其中自变量的值。而根据这些数据,我们往往希望得到一个连续的函数(也就是曲线);或者更密集的离散方程与已知数据互相吻合,这个过程叫做拟合。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

语义分割技术

语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类。图像语义分割是AI领域中一个重要的分支,是机器视觉技术中关于图像理解的重要一环。

批次技术

模型训练的一次迭代(即一次梯度更新)中使用的样本集。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

知乎机构

知乎,中文互联网综合性内容平台,自 2010 年成立以来,知乎凭借认真、专业、友善的社区氛围,独特的产品机制,以及结构化、易获得的优质内容,聚集了中文互联网科技、商业、影视、时尚、文化等领域最具创造力的人群,已成为综合性、全品类,在诸多领域具有关键影响力的内容平台。知乎将AI广泛应用与社区,构建了人、内容之间的多元连接,提升了社区的运转效率和用户体验。知乎通过内容生产、分发,社区治理等领域的AI应用,也创造了独有的技术优势和社区AI创新样本。

zhihu.com
单目深度估计技术

单目深度估计是指从单张RGB图像中估计深度。

视频分类技术

视频分类指基于根据视频片段的语义内容(如人的动作或更复杂的活动)对视频片段进行自动标记。

暂无评论
暂无评论~