OFA:迈向构建全能模型
OFA(One-For-All)是一个统一的多模态预训练模型,旨在将不同模态的理解和生成任务整合到单一框架中。通过利用基于指令的多任务预训练,OFA 旨在创建一个通用模型,能够处理多样的输入和输出,而无需为不同任务更改模型结构。
跨模态、架构与任务的统一框架
OFA 通过聚焦于统一的三大核心支柱——模态无关、任务无关以及任务的全面性,来实现通用能力。
模态统一
为了处理多样的输入,OFA 将非文本模态离散为 token。图像使用 VQ(向量量化)token 表示,边界框则通过分箱离散,遵循 pix2seq 方法。这使得模型能够将所有模态视为 token 序列。
架构统一
OFA 采用通用的 Transformer 编码器-解码器架构,类似于 T5 模型。为处理图像输入,模型使用 ResNet 的前三个块。为了提升训练稳定性和迁移性能,架构中加入了 Normformer。
任务统一
OFA 使用基于指令的多任务学习方法进行预训练。模型在八个不同任务上进行训练:
- Vision-Language Tasks (5): 视觉定位、定位式描述、视觉问答 (VQA)、图文匹配和图像描述。
- Vision Tasks (2): 检测和图像填充。
- Language Task (1): 文本填充。
指令以文本描述的形式插入,帮助模型区分这些任务,从而在基于新指令的情况下,实现对未见任务的零样本生成潜力。
模型变体与规模
OFA 在五种不同规模下发布,以满足各种部署和研究需求:
- OFA-Tiny: 33M 参数
- OFA-Medium: 93M 参数
- OFA-Base: 180M 参数
- OFA-Large: 470M 参数
- OFA-Huge: 930M 参数
性能与实验结果
OFA 在多模态和单模态基准测试中表现出竞争力,常常匹配或超越专用模型。
多模态能力
- Vision-Language Understanding: OFA-Huge 模型在 VQA 和 SNLI-VE 上的表现可与 Flamingo(80B 参数)和 CoCa(2B 参数)相媲美,并在视觉蕴含任务上达到最佳性能。
- Vision-Language Generation: OFA 在图像描述任务中,无论是交叉熵还是 CIDEr 优化,都实现了最新的(SoTA)性能。在视觉定位任务中,基础规模模型超越了之前的 SoTA,且性能随模型规模一致提升。
- Text-to-Image Generation: 由于在图像填充上的预训练,OFA 能生成图像代码并取得低 FID 分数,且在更大数据集上微调后进一步提升。
单模态能力
- Natural Language Understanding (NLU): 在 GLUE 基准上,OFA 与 RoBERTa 和 DeBERTa 竞争力相当。
- Natural Language Generation (NLG): OFA 在 Gigaword 摘要任务上表现出色,超越了之前的多模态预训练模型。
- Vision Understanding: 在 ImageNet 分类任务上,OFA 的表现与自监督视觉模型如 BeiT 和 MAE 相当。
组合泛化与迁移
OFA 展示了通过组合泛化将已学能力迁移到未见任务和领域的能力。
- Unseen Tasks: 研究者提出了“Grounded VQA”,一种结合 VQA 与定位式描述的新任务。仅通过更改指令,OFA 即可利用已有能力完成该新任务。
- Unseen Domains: OFA 能有效迁移到未见领域,例如在动画图像上进行视觉定位,这得益于其在动漫数据和通用领域视觉定位上的预训练结合。
结论
OFA 模型表明,单一的基于 Transformer 的框架即可统一任务和模态,为多模态表征学习中通用基础模型的开发提供了有前景的路径。