本文目录
1 数据高效的自回归视觉模型训练
(来自悉尼大学,北京理工大学,北京华为诺亚方舟实验室)
1 DeLVM 论文解读
1.1 LVM 的相关背景
1.2 LVM 训练数据的不平衡和参数量冗余
1.3 使用数据增强策略训练 LVM
1.4 使用知识蒸馏策略训练 LVM
太长不看版
本文提出了一种只在序列化的视觉数据上面训练,不使用文本数据,且数据高效的大视觉模型,属于大视觉模型的行列。这类模型的特点是训练好之后,无需微调,即可迁移到多种不同的下游任务上面。当前的代表性工作就是大视觉模型 (Large Visual Model, LVM)[1]。LVM 依赖较大的模型尺寸 (通常 3B 以上),以及较大的训练数据 (约 400B tokens)。
本文提出
数据高效的大视觉模型 (Data Efficient Large Visual Model, DeLVM)
,是一种数据高效的自回归的视觉模型。DeLVM 相比于 LVM 的特点是显著减少了对模型尺寸和所需的训练数据的需求,从而为通用视觉模型进步减少了阻碍。
本文做了什么工作
研究了针对 LVM 的数据增强策略,尤其是在跨不同任务的长尾分布场景。证明了与 Re-Sampling 相比,简单的数据增强就能有很不错的效果。
使用知识蒸馏方法设计更小的 LVM,使得验证集损失明显降低,困惑度降低,精度提升。这说明 KD 能够提升尺寸较小的自回归 LVM 模型的性能,弥合其与大模型之间的差距。
1
数据高效的自回归视觉模型训练
论文名称:Data-efficient Large Vision Models through Sequential Autoregression (Arxiv 2024.02)
论文地址:
http://arxiv.org/pdf/2402.04841.pdf
代码地址:
http://github.com/ggjy/DeLVM
1.1 LVM 的相关背景
LVM 的相关背景如下图1所示。受 LLM 自回归训练范式的启发,LVM (Large Vision Model) 的目的是为视觉任务开发类似的大视觉模型。代表性工作 LVM[1]将图片转化成视觉句子 (visual sentences),从而实现对于不同视觉任务的建模。LVM 利用视觉橘子来统一建模原始图片和注释图片,为视觉领域通用模型的设计带来了新的视野。LVM 包含2部分:
VQGAN 分词器
,将图片转化成离散的 tokens;
自回归 Transformer 模型
,做序列自回归预测。
VQGAN 包括 Encoder,codebook,Decoder 和 Discriminator。在训练 VQGAN 模型时,Encoder 以图片作为输入并将其映射为一系列特征,继而再映射到 codebook 中的特定离散化向量。解码器根据这些离散化向量来重建原始图像。那么 Encoder 输出的这些离散化 tokens 的序列在使用 scan-line 排序之后,就可以使用自回归模型来建模了。
LVM 的架构一般是作用于 tokenization 过程之后。所有的 tokens 都会被喂入一个 casual Transformer 模型。它使用自回归预测的方式预测未来的 tokens 作为输出。在训练时,casual Transformer 的目标也是预测每个位置的下一个 token 是什么,且使用交叉熵损失作为目标函数。比如, 训练时候的输入序列是
, 希望 casual Transformer 预测的目标是
。
LVM 在下游任务上的推理过程使用 Visual Prompting。首先,将几个输入输出图像示例连接成视觉句子,作为任务的定义。然后,将新的 query 图像连接在最后,且测试图像也通过 VQGAN Encoder 进行标记。基于这个拼接的整体句子,自回归 Transformer 模型根据输入的序列 tokens 生成输出 tokens。最后,使用 VQGAN Decoder 解码成最终的输出图片。
图1:LVM 的训练和推理过程
1.2 LVM 训练数据的不平衡
训练一个可以执行多种不同下游任务的通用模型,且面对新的下游任务时,只需要给几个例子就能够解决新的这个任务,是计算机视觉领域向前迈进的关键一步。在自然语言处理 (NLP) 领域,通过自回归训练的大语言模型 (LLM),例如 GPT,已经表现出了强大的理解和生成自然语言的能力,尤其是在复杂的环境中。LLM 以语言作为媒介,通过 Prompt 和示例快速适应各种以语言为中心的下游任务。
在计算机视觉领域,不像语言任务那样输入输出的格式比较均匀,视觉任务的格式很丰富,也就为视觉领域通用模型的设计带来了巨大挑战。上面介绍的 LVM 就是一个很经典的例子。但是,LVM 也不是完美无缺的。比如其训练过程需要 1.64B 这么多的数据,导致了LVM训练过程比较复杂。
而且,不同任务的数据集尺寸也会有很大不平衡:一些任务的数据量较大,而另一些任务的数据量则不足。当不同任务的数据分布不均匀时,模型的整体性能会大大受损。比如,segmentation benchmark SA-1B[2]包含 11M 图片,相比于 keypoint detection benchmark COCO[3]的仅仅 0.2M 数据就会少很多。如果使用这两个数据集的组合来训练模型,那最后得到的模型就会没法做 keypoint detection 任务,因为 segmentation 的数据量太多了。
1.3 使用数据增强策略训练 LVM
LLM 的训练过程一般来讲只训练 1 Epoch 以防止对数据过拟合。但是 NLP 领域的大规模语料库很容易获得,CV 领域却不是这样。因此,作者探索了数据增强方法训练 LVM。
单任务模式
作者首先使用了一个包含 300M 参数的 causal LLaMA 模型来进行自回归建模。对于 VQGAN tokenizer,作者使用的是 Muse[4]的实现,它将每张图像转换为 256 个离散 tokens。VQGAN 的 codebook 大小为 8192,codebook 的 code 的维度是64。为了将 code 的维度与 Transformer 模型的维度对齐,作者在这两个模块之间插入一个可学习的线性层。
1 SA-1B 分割实验 (数据量充足)
对于数据量充足的 SA-1B[2]的各种子集,从 1% 到 10%。所有模型的 training steps 都是 12K。评测的指标是 SA-1B 的保留子集 (数据集的 1%) 的交叉熵损失和困惑度。
如下图2所示的前两个图展示了数据规模对于模型性能的影响。当在训练期间引入更多新数据之后,模型的性能显著提高。比如当使用数据从 1% 增加到 10% (0.34B tokens 增加到 3.43B tokens) 时,验证集损失减少 0.19,困惑度降低 22.4。也就是说,在分割任务中,增加训练数据量可以提升模型的性能。
图2:数据增强与引入新数据产生的效果类似。在 SA-1B 的子集和固定 12K training steps 的设置下训练了 LLAMA-300M 模型,数据集为 SA-1B 和 augmented COCO-Pose 数据集。在分割任务中,增加训练数据量可以提升模型的性能。在人体姿态估计任务中,对数据集做数据增强可以起到类似效果
2 COCO-Pose 人体姿态估计实验 (数据量不足)
对于数据量不足的 COCO-Pose 数据集而言,做人体姿态估计实验。这就需要对数据量进行扩张。作者使用数据增强技术来增强现有数据集。具体来说,对于数据集中的每个样本,作者都使用随机裁剪 (Random Crop) 和随机翻转 (Random Flip) 来生成几个增强版本。这些增强的样本由 VQGAN 模型进行 tokenization,并与原始数据集一起训练。数据增强的强度从 10 到 100 都有测评。
如下图2所示的后两个图展示了数据增强对于模型性能的影响。在人体姿态估计任务中,对数据集做数据增强也有助于提高模型的性能。随着数据增强程度的增加,验证集损失下降,困惑度减少。这个结果说明数据增强具有与引入新训练数据相似的效应,为有限数据下训练 LVM 模型提供了新的思路。
多任务模式
在实际场景中,我们的目标通常是训练一个通才 LVM 模型,能够处理多种任务,且无需微调其参数。但是,数据的不平衡为这个过程带来了挑战。有些任务有足够多数据,但是有些任务数据量有限。如果直接简单地把所有数据混合起来训练模型,就会影响整体性能。
作者探索的任务是图像分割,人体姿态估计和图像去雨。使用的数据集分别是 SA-1B (整体的10%),全部的 COCO-Pose 数据集,全部的 Rain13K[5]数据集。模型在训练过程中总共训练 35K iterations。为了评估模型的性能,作者使用 SA-1B 的保留子集以及 MPII[6]数据集,和 Test2800[7]数据集。
实验结果如下图3所示。作者在涉及3个任务的混合数据集上训练 LLaMA-300M,并比较了处理不平衡训练数据的3种实验设置。可以发现,与直接使用不平衡训练数据来训练相比,通过 Re-Sampling 减轻长尾分布的影响来平衡数据分布的做法会导致较差结果,尤其是在人体姿态估计和图像去雨任务里面。相反,使用数据增强结果较好,也是在人体姿态估计和图像去雨任务比较明显。值得注意的是,当使用不平衡数据时,在图像分割任务上产生了最好的结果,这也可能是因为这个任务训练数据最多的原因。
图3:通过数据增强在跨多任务之间来平衡数据集可以提升性能。在涉及3个任务的混合数据集上训练 LLaMA-300M,并比较了处理不平衡数据的3种设置。可以发现,与直接在不平衡数据集上进行训练相比,通过 Re-Sampling 减轻长尾分布的影响会导致较差的结果。相反,使用数据增强结果较好
如下图4所示,作者还可视化了使用不同平衡方案在数据集上训练的模型生成的推理结果。当使用不平衡数据进行训练时,该模型在图像分割任务中表现出色。然而,对于人体姿态估计和图像去雨的任务,训练数据较少,其性能就比较差。尤其是 Test case 2,尽管要求是图像去雨任务,但是模型好像被过量的分割数据给混淆了,所以依然输出了类似分割的结果。这说明了使用不平衡的训练数据并不能得到很好的 LVM 模型。当模型使用重采样平衡的任务数据进行训练时,得到的性能更差了,比如在图像分割和去雨任务中,有的结果很不满意,有的甚至干脆失败了。当使用数据增强来实现数据平衡时,训练的模型在所有3个任务中都表现较为出色。
图4:使用不同平衡方案在数据集上训练的模型生成的推理结果的可视化
1.4 使用知识蒸馏策略训练 LVM
前面的实验中作者发现,训练数据量大幅减少不会对模型的有效性产生不利影响。因此,这是否意味着模型的参数也存在冗余呢?因此,作者继续采用知识蒸馏 (Knowledge Distillation, KD) 技术提高小的 LVM 模型的性能。
知识蒸馏 (Knowledge Distillation, KD) 是一种提升模型性能的技术。KD 利用预先训练的更大的教师模型来指导更小、更有效的学生模型来模拟教师的输出。但是,之前的 KD 方法大多是为 CNN 和 Transformer 设计。DeLVM 进一步把 KD 方法扩展到了 LVM 模型。
单任务模式
作者首先使用了一个 LLaMA-1B 作为教师模型,并在图像分割和人体姿态估计任务上训练。然后训练了一个 LLAMA-300M 作为学生模型。
图5:KD 被证明有利于提高 LVM 的单任务性能。以 LLaMA-1B 作为教师模型,LLaMA-300M 作为学生模型,与从头开始训练学生模型相比,KD 的引入显著提高了图像分割和人体姿态估计任务的性能
LLAMA-1B 教师模型拥有最多的模型参数,在这两个任务上表现出卓越的性能,大大优于 LLAMA-300M。但是,随着 KD 的引入,性能差距明显减小。所有模型的推理结果如下图6所示。可以看到视觉结果与定量结果一致,表明 LLaMA-1B 模型作为教师模型,在其输出图像中的可视化细节做得更好。但是,LLaMA-300M 的模型在没有 KD 的情况下,推理结果的细节不够,并且这些模型被使用 KD 方法的模型超越了。
图6:所有模型单任务推理结果的可视化
多任务模式
作者首先使用了一个 LLaMA-1B 作为教师模型,用一个 LLAMA-300M 作为学生模型。通过使用3个数据集的组合发生进行知识蒸馏。数据集的组合是通过数据增强技术来实现平衡的。实验结果如下图7所示,即使在多任务场景的更实际和复杂的上下文中,KD 仍然提升了学生模型在所有任务上的性能。
图7:KD 还有助于提高 LVM 的多任务性能。以 LLaMA-1B 作为教师模型,LLaMA-300M 作为学生模型,在3个任务上评测了 KD 的有效性。KD 提升了学生模型在所有任务上的性能
前景分割任务
此外,作者还对蒸馏模型在前景分割任务上进行了定量的评估。任务的目标是将给定的查询图像二值分割成前景和背景。任务提示由3个示例图像对组成,然后是测试 (query) 图像。作者将这个 Prompt 输入给 DeLVM 模型,并要求其生成后面 256 个 tokens,再由解码器解码为输出图像。评测时为与之前工作一致,作者按照了 LVM[1]的方式,使用了 Pascal-5i[8]数据集作为 Benchmark。作者报告了 mean Intersection Over Union (mIOU) 结果,并分别在 Zero-Shot 和 Finetuning 的设置下检查了模型的性能。