图1
:
虎鲸
的三阶段微调工作流程能够快速自动地利用大型预训练模型来解决各种任务。
在阶段1中,给定目标数据
(
x
t
,
y
t
)
和预训练的Transformer主体
g
s
,
虎鲸
构造一个嵌入器架构
f
t
将输入映射到
g
s
的维度,以及一个预测器架构
h
t
将
g
s
的输出转换为目标输出,例如分类logits。
f
t
和
h
t
的权重是随机初始化的。
在阶段2中,
虎鲸
通过最小化嵌入式目标特征与某些模态内源特征之间的分布距离来学习
f
t
。
第三阶段,
虎鲸
微调
f
t
、
g
s
和
h
t
以最小化任务损失。
大型预训练模型的兴起是过去几年机器学习 (ML) 研究的一个标志。
利用迁移学习,这些模型可以将从大量未标记数据中学到的知识应用于下游任务,并在多种模式下表现出色,例如语言、视觉和语音处理
(例如,Radford & Narasimhan, 2018; Carion et al., 2020; Baevski et al., 2020)
。
现有研究集中在这些经过充分研究的领域内的
模态内迁移
——例如,BERT 模型
(Devlin et al., 2019)
通常仅适用于基于文本的任务,而视觉 Transformer
(Dosovitskiy et al., 2021)
仅适用于图像数据集。
但是,想象一下,如果我们可以使用预训练的 BERT 模型来解决基因组学任务,或者使用视觉 Transformer 来解决偏微分方程呢?
有效的
跨模态微调
可以对鲜为人知的领域产生巨大影响,例如物理和生命科学、医疗保健和金融。
事实上,在这些领域设计专门的网络具有挑战性,因为它需要领域知识和机器学习专业知识。
自动化机器学习 (AutoML)
(例如,Roberts et al., 2021; Shen et al., 2022)
和通用架构
(例如,Jaegle et al., 2022)
可用于简化此过程,但它们仍然需要从头开始训练模型,这对于数据稀疏的模态来说是困难的。
将在数据丰富的模态中预训练的模型应用于这些新问题可以潜在地减轻建模和数据方面的问题,从而减少开发高质量特定任务模型所需的人力。
我们深入研究了实际模态中的两个已建立的基准:用于求解偏微分方程的PDEBench
(Takamoto et al., 2022)
和用于对表格数据进行分类的OpenML-CC18
(Vanschoren et al., 2014)
。
我们进行了深入分析,以证明
Orca
如何使视觉和语言Transformer适应学习目标任务的有意义表示。
它与最先进的方法的性能相匹配,包括用于PDEBench的FNO
(Li et al., 2021)
,用于OpenML-CC18的AutoGluon
(Erickson et al., 2020)
和TabPFN
(Hollmann et al., 2022)
。
最后,我们与特定任务的跨模态方法进行了比较,这些方法将表格数据转换为文本
(Dinh et al., 2022)
或图像
(Zhu et al., 2021)
以重用现有模型。
结果清楚地表明
Orca
既更有效也更通用。
我们的代码已公开发布在https://github.com/sjunhongshen/ORCA。
单峰微调
是一种更灵活的迁移方法,可以应用于具有不同标签或输入空间的下游任务。
预训练模型用于语言
(例如,Jiang et al., 2020; Aghajanyan et al., 2021)
、视觉
(例如,Li et al., 2022; Wei et al., 2022)
、语音
(例如,Jiang et al., 2021; Chen et al., 2022)
、蛋白质
(Jumper et al., 2021)
和机器人技术
(Ahn et al., 2022)
等领域的模态内微调。
适配器网络
(He et al., 2022)
已经被开发出来以提高模态内微调的性能。
多模态微调
通过学习多个模态的嵌入来扩展单个预训练模型的适用模态
(例如,Radford et al., 2021; Hu & Singh, 2021; Kim et al., 2021; Alayrac et al., 2022)
,但这些方法仍然专注于适应
模态内
任务。
异构域适应 (HDA)
考虑源域和目标域之间不等价的特征空间。
虽然大多数 HDA 方法处理相同模态不同维度的数据迁移,例如不同分辨率图像之间的迁移,但确实有一些工作研究了跨模态文本到图像的迁移
(Yao et al., 2019; Li et al., 2020b)
。
然而,HDA 的一个关键假设是
目标任务和源任务相同
。
相反,我们考虑在具有
不同任务和标签集
的截然不同的模态之间进行更灵活的知识迁移,例如应用 Swin Transformer 来求解偏微分方程或应用 RoBERTa 来对心电图进行分类。
跨模态特定任务微调
是最近的一条研究方向,大多数工作都集中在 将语言模型迁移到其他模态,如视觉
(Kiela et al., 2019)
、指称游戏
(Li et al., 2020c)
、强化学习
(Reid et al., 2022)
和蛋白质序列
(Vinod et al., 2023)
。
这些工作提供了预训练模型跨模态迁移能力的初步证据。
然而,它们侧重于对单个模态进行手工定制,例如,通过添加临时编码器将代理消息
(Li et al., 2020c)
或决策轨迹
(Reid et al., 2022)
转换为符元。
即使不依赖于微调,像 LIFT
(Dinh et al., 2022)
这样的工作试图通过提示进行跨模态学习
(Liu et al., 2021a)
,仍然需要将任务临时转换为自然文本。
问题设置。
一个域
𝒟
由特征空间
𝒳
、标签空间
𝒴
和联合概率分布
P
(
𝒳
,
𝒴
)
组成。
在我们研究的跨模态设置中,目标(最终任务)域
𝒟
t
和源(预训练)域
𝒟
s
不仅在特征空间上有所不同,而且在标签空间上也存在差异,并且扩展到具有不同的概率分布,即
𝒳
t
≠
𝒳
s
、
𝒴
t
≠
𝒴
s
和
P
t
(
𝒳
t
,
𝒴
t
)
≠
P
s
(
𝒳
s
,
𝒴
s
)
。
这与域适应解决的转导迁移学习设置形成对比,在域适应中,源域和目标域共享标签空间和最终任务
(Pan & Yang, 2009)
。
给定从域
𝒟
t
中联合分布
P
t
采样的目标数据
{
x
i
t
,
y
i
t
}
i
=
1
n
t
,我们的目标是学习一个模型
m
t
,该模型能够正确地将每个输入
x
t
映射到其标签
y
t
。
我们有兴趣使用预训练的Transformer来实现这一点。
因此,我们假设可以访问一个使用源域
𝒟
s
中的数据
{
x
i
s
,
y
i
s
}
i
=
1
n
s
进行预训练的模型
m
s
。
然后,给定一个损失函数
l
,我们旨在基于
m
s
开发
m
t
,使得
𝔼
(
x
t
,
y
t
)
∼
P
t
[
l
(
m
t
(
x
t
)
,
y
t
)
]
最小化。
此问题公式没有明确定义模态,并且包括模态内和跨模态迁移。
鉴于我们希望探索的任务的普遍性和在数学上区分这两种设置的难度,我们依靠语义来做到这一点:直观地,跨模态数据(例如,自然图像与偏微分方程)彼此之间的差异大于模态内数据(例如,在两个地理位置拍摄的照片)。
将预训练模型应用于新的问题通常需要解决维度不匹配的问题。
为了使
Orca
适用于不同的输入/输出维度,我们将基于Transformer的学习器
m
分解为三个部分(图
1
阶段1):一个嵌入器
f
,它将输入
x
转换为一系列特征;一个模型主体
g
,它对嵌入的特征应用一系列预训练的注意力层;以及一个预测器
h
,它生成具有所需形状的输出。
Orca
使用预训练的架构和权重来初始化模型主体
g
,但用旨在将目标数据与预训练模型的嵌入维数匹配的层替换
f
和
h
。
下面,我们将详细描述每个模块。
自定义嵌入网络。
将与预训练模型兼容的特征空间表示为
𝒳
˙
。
对于最大序列长度为
S
且嵌入维度为
D
的Transformer,
𝒳
˙
=
ℝ
S
×
D
。
目标嵌入器
f
t
:
𝒳
→
𝒳
˙
旨在接收来自
𝒳
的任意维度的张量,并将其转换为
𝒳
˙
。
在
Orca
中,
f
t
由一个卷积层组成,该卷积层具有输入通道
c
i
n
、输出通道
c
o
u
t
、卷积核大小
k
和步长
k
,它将视觉Transformer中使用的图像块操作推广到一维和更高维的情况。
我们将
c
i
n
设置为
x
的输入通道,并将
c
o
u
t
设置为嵌入维度
D
。我们可以将
k
视为超参数,或者将其设置为输出形状(不包括通道维度
≤
S
)的乘积最小的值,以充分利用预训练模型的表示能力。
在后一种情况下,当我们展平卷积后输出张量的非通道维度,进行填充然后转置后,我们可以得到形状为
S
×
D
的序列特征。
最后,我们添加一个层归一化和位置嵌入以获得
x
˙
。
预训练Transformer主体。
模型主体
g
以嵌入
x
˙
∈
𝒳
˙
作为输入,并输出特征
y
˙
∈
𝒴
˙
;点号用于区分这些中间表示与原始输入和标签。
对于基于Transformer的
g
,输入和输出特征空间
𝒳
˙
,
𝒴
˙
均为
ℝ
S
×
D
。
自定义预测头。
最后,目标模型的预测头
h
t
必须以
y
˙
∈
𝒴
˙
作为输入并返回一个依赖于任务的输出张量。
不同的任务通常指定不同类型的输出,例如,在
ℝ
K
中的分类logits,其中
K
是类别数,或者空间维度与输入相同的密集映射,每个索引的logits对应于
K
个类别。
因此,定义特定于任务的输出模块并针对新问题对其进行微调至关重要。
在
Orca
中,我们使用了预测器的最简单实例。
对于分类,我们沿序列长度维度应用平均池化,以获得长度为
D
的1D张量,然后使用一个线性层将
D
映射到
K
。对于密集预测,我们将线性层应用于序列输出,因此生成的张量的形状为
(
S
,
k
ndim
(
𝒴
)
K
)
,其中
k
ndim
(
𝒴
)
是嵌入器卷积核步长为
k
的下采样因子。这将上采样到嵌入器下采样的相同因子。
然后,我们可以将张量塑造成所需的输出维度。
2
.
正式地,令
f
s
:
𝒳
s
→
𝒳
˙
表示预训练的源嵌入器(
m
s
中将原始数据转换为序列特征的部分)和
f
t
表示上一节中讨论的随机初始化的目标嵌入器。
我们可以学习
f
t
以最小化目标嵌入
(
f
t
(
x
t
)
,
y
t
)
的联合分布与源嵌入
(
f
s
(
x
s
)
,
y
s
)
的联合分布之间的距离。
衡量这种分布距离的方法有很多。
为了解它们是否会以不同的方式影响适应性,我们在第
3.4
节对三个代表性方法进行了预备性研究。