点击下方卡片,关注
「集智书童」
公众号
导读
ViTs在大型数据集上进行了广泛预训练,已成为基础模型的重要组成部分,允许在下游任务上以最小的适应性实现卓越的性能。因此,对在各种领域,包括客户通常不愿共享数据的隐私敏感领域,对预训练ViTs进行适配的兴趣日益增长。现有的适配方法通常需要直接访问数据,这使得在这些约束下不可行。一个简单的解决方案可能是将预训练的ViT发送到客户端进行局部适配,但这引发了模型知识产权保护和客户端计算开销过大的问题。
为了解决这些问题,作者提出了一种新颖的分割适配(SA)方法,该方法在保护数据和模型的同时,能够有效地进行下游适配。SA受分割学习(SL)的启发,将预训练的ViT分割为前端和后端,仅将前端与客户端共享以进行数据表示提取。但与常规SL不同,SA用低比特量化值替换前端参数,防止模型直接暴露。SA允许客户端向前端和提取的数据表示添加双级噪声,确保数据保护。因此,SA结合了数据级和模型级分布外增强,以减轻噪声注入对适配性能的影响。
作者的SA专注于具有挑战性的小样本适配,并采用 Patch 检索增强以减轻过拟合。在多个数据集上的广泛实验验证了SA在性能上优于现有方法,并展示了其在对抗High-Level数据重建攻击的同时,在客户端侧以最小的计算成本防止模型泄露。
代码:https://github.com/ConditionWang/Split\_Adaptation
- 引言
近年来,预训练视觉Transformer(ViT)[13]已成为计算机视觉领域的主流基础模型,在包括图像分类[13]、语义分割[28, 50]和多模态理解[52]在内的多种视觉任务中表现出色。ViT在大规模预训练过程中被赋予了通用语义知识,这些知识可以轻松地迁移到其他领域,包括敏感领域,如医疗保健[41]、金融[10]和制造业[8]。然而,将这些预训练的ViT适应于这些敏感领域的下游任务极具挑战性。
在现实场景中,模型自适应通常遵循双边框架,其中预训练模型托管在服务器上,而训练数据存储在客户端。在非敏感领域,训练数据可以直接与服务器共享,从而进行有效的自适应。现实世界的例子包括用户上传图像以访问OpenAI的CLIP模型API[40]进行数据表示,或者上传数据以微调GPT-3.5模型[3]。然而,在敏感领域,数据通常与个人隐私[12, 14]、知识产权(IP)[19, 47]和伦理问题[15]紧密相关,因此任何形式的公开曝光、共享或转移都是严格禁止的。在这种情况下,一种替代解决方案可能涉及将模型发送到客户端进行局部自适应,如联邦学习[11, 27, 46]中所述。然而,大型预训练模型的获取成本高昂,涉及复杂的架构设计、在大规模高质量数据集上的广泛预训练以及长时间占用专门的计算和存储资源。因此,这些模型对其所有者来说具有宝贵的知识产权,他们不太可能免费共享或转让[47]。此外,鉴于这些预训练模型包含数十亿个参数,客户端的自适应将产生巨大的计算和存储成本。
据作者所知,目前已有少数初步尝试在保护数据和模型的前提下实现预训练模型的有效下游适应。例如,分割学习(SL)[1, 44]将机器学习模型划分为由不同方管理的多个部分,这可以在一定程度上保护模型免受完全暴露。此外,SL仅需要通信中间表示,避免了原始数据的泄露。然而,SL存在一些关键缺陷。一方面,新兴的恶意攻击,如数据重建攻击(DRA)[16, 23, 38, 53, 54],可以从这些中间表示中推理出敏感信息。另一方面,标准的SL将模型训练放在客户端,给客户端带来了高昂的计算成本。除了SL之外,最近提出了一种称为远程调优(OT)[49]的方法,该方法涉及服务器向客户端发送一个模拟器——预训练模型的简化版本。然后,客户端可以使用自己的数据进行微调,通常采用参数高效的调整技术,如 Adapter 调整[5]。训练完成后,客户端将这些 Adapter 上传回服务器,它们被集成到预训练模型中。然而,尽管OT保护了数据,但模拟器的参数完全暴露,允许攻击者基于模拟器轻松创建高性能模型。此外,OT的适应高度依赖于客户端对 Adapter 调整的巨大计算和存储需求。
为解决在敏感领域适应预训练ViT的挑战,作者提出了一种新颖的分割适应(SA)方法,如图1所示。与SL类似,SA将预训练的ViT分为两个部分:前端和后端。服务器将前端发送到客户端,以实现数据表示提取和模型训练。然而,与SL不同,SA创新性地使用量化将前端参数替换为低比特值,防止直接暴露原始参数。为了额外的数据保护,客户端将随机噪声注入接收到的前端及其提取的数据表示。这种注入的噪声不可避免地损害了后续的适应,因此SA包括数据级和模型级的数据分布外增强,以提高模型在遇到随机噪声时的泛化能力。SA特别设计用于具有挑战性的小样本适应场景,其中它使用 Patch 检索增强技术生成多样化的表示,有助于缓解过拟合。在四个数据集上进行的广泛实验表明,SA在适应性能方面显著优于其他最先进的方法。此外,SA有效地防御了High-LevelDRAs并防止模型泄露。特别是,SA的有效性仅依赖于客户端的小型计算成本。
总之,作者的贡献包括:
- • 作者专注于解决一个实际且重要的问题——在保护数据和模型的同时,对预训练的ViT进行下游任务的适配。解决此问题能够使预训练模型在敏感领域得到更广泛的应用。
- • 作者提出了分割自适应(SA)方法,该方法创新性地利用模型分割和量化来保护数据和模型在下游任务自适应过程中的安全。SA专注于具有挑战性的小样本场景,其中SA使用 Patch 检索增强来对抗过拟合。
- • 作者在多个数据集和最先进的 Baseline 方法上进行了广泛的实验,结果表明SA在实现优越的适应性的同时确保了数据和模型的安全性。
- 相关工作
2.1. 分割学习
分割学习(SL)[44]是一种在多方计算框架中广泛使用的协作学习方法。SL通过将机器学习(ML)模型分割成多个部分,每个部分由不同的参与者管理来运作。这种方法允许不同参与者更有效地利用计算资源。更重要的是,SL通过仅传输中间数据表示而非原始数据来增强隐私性。许多实际例子已经证明了SL在各种领域(包括医疗保健[1, 44]、金融[1, 42]和边缘计算[17, 18])中训练和调整ML模型的有效性。尽管取得了这些成功,但越来越多的对抗性攻击揭示了SL中隐私泄露的脆弱性,其中最严重的是数据重建攻击(DRA)[23]。DRA旨在从相应的模型表示中恢复原始数据。在SL的背景下,已经观察到多种DRA,其中一些基于优化来模仿真实表示(例如,FSHA[38]和PCAT[16]),而另一些则利用生成模型通过利用内在语义来恢复原始数据(例如,Ginver[54]和FORA[53])。因此,需要新的SL方法来更好地保护数据隐私。
2.2 视觉Transformer适配
视觉Transformer(ViT)[13]通常使用大规模数据进行预训练,以学习通用的语义和知识。代表性的预训练方法包括监督学习和自监督学习(SSL),例如SAM[28]在大量的像素级标注数据集上进行训练;各种自监督学习方法,如对比学习[4, 6, 21, 40]和辅助任务训练[22, 37, 57]。由于这种广泛的预训练,将预训练的ViT应用于不同的下游任务已成为主流范式。最常见的方法是对整个模型进行微调,这需要大量的计算和内存资源。另一种广泛使用的方法是线性检测[29],它只训练一个任务模块,同时保持ViT冻结,但突出的缺点是性能较差。最近,提出了更多参数高效的微调方法,如 Adapter 微调[5]、 Prompt 微调[26]和前缀微调[51]。然而,这些方法仍然需要直接访问任务数据。与上述方法不同,一种称为离场微调[49]的新方法可以在不直接访问数据的情况下有效工作。然而,大量的训练发生在数据所有者一方,存在模型泄露的高风险,这使得它在现实场景中不实用。
- 研究方法
3.1. 前言
3.1.1 视觉Transformer
视觉Transformer(ViT)[13]建立在序列注意力编码器层之上。具体来说,每个编码器层由一个多头自注意力(MSA)块和一个多层感知器(MLP)块组成。在每个块之前应用层归一化(LN),在每个块之后放置残差连接。MLP包含两个线性层,中间使用GELU激活。为了处理2D图像,ViT将图像
Reshape 为
个平坦的 Patch
,其中
和
分别是图像的高度、宽度和通道数,
是每个 Patch 的像素分辨率。对于ViT的第一层,为了统一向量维度,使用一个可训练的线性投影层,其神经元权重为
,将每个向量化的 Patch 映射到维度
。在这种情况下,第一层Transformer的输入为:
其
中
其中,
是一个分类 Token ,属于
空间,
是位置编码。然后,对于以下每一层,输入序列
被输入到 MSA 模块的每个头中,以获得三个线性投影矩阵: Query
,键
,和值
。接着,对注意力分数
应用 Softmax 函数进行归一化,输出
为:
假设MLP中的两个线性层分别由
和
参数化,则输出计算如下:
最后,MSA和MLP模块通过残差连接相连,因此作者得到每个Transformer层的最终输出:
其中
3.1.2. 问题表述
在将预训练的ViT应用于特定的下游任务时,作者考虑了一种代表性的客户端-服务器框架,其中客户端向服务器请求进行适应性调整。客户端拥有任务适应性数据集
𝓍
,其中
是样本数量,在实践中,作者假设
较小,甚至属于少样本情况,每个样本都来自边缘输入分布
,并带有边缘任务分布
。在服务器端,参数化为
的预训练ViT
假设由
个注意力层组成,每个层由
参数化,即
。此外,作者假设服务器拥有另一个数据集
,该数据集来自公共领域,具有边缘输入和任务分布,分别为
和
。在现实场景中,客户端和服务器拥有的数据集是不同的但相关的,即
,但
,其中
计算互信息。
任务性能目标。预训练的ViT自适应旨在获得一个以
参数化的下游任务模块
,当与
结合时,能够在客户端数据分布上实现尽可能好的性能。当然,这种自适应还允许对
进行微调,如果它能够提高下游任务的性能。在这种情况下,目标被定义为,
是一个损失函数,用于衡量模型在特定数据分布下的性能。
隐私保护目标。除了上述标准目标外,还应解决服务器-客户端框架固有的隐私问题,即在假设服务器和客户端可能为半诚实的情况下,应在适应过程中保护预训练模型和客户端数据。一方面,适应过程应禁止客户端窃取性能良好的 Agent 模型或以较低的成本获取它们;另一方面,应避免在服务器端进行任何客户端数据的重建。
3.2. 建议的分割自适应概述
为了在保护预训练的ViT和客户端数据的同时实现有效适应,作者提出了一种称为分割适应(SA)的方法,如图2所示。作者的SA方法首先将预训练的ViT
分为两部分:前端
和后端
。原始的
并未发送给客户端,而是利用模型量化将量化版本
发送给客户端。为了减轻前端量化的影响,SA包括来自数据和模型层面的分布外(OOD)增强,以增强前端和后端的跨分布泛化能力。至于客户端,它首先对收到的
添加随机噪声,并采用 Patch Level 的检索-替换策略生成更多客户端数据表示,以帮助缓解小样本适应中的过拟合问题。在将这些增强表示上传到服务器进行最终适应之前,再次添加噪声以进行保护。
3.3. 服务器端模型拆分
在
的开始阶段,预训练的 ViT 在第
层(
)被分为前端
和后端
。然后前端被分配给客户端进行表示提取。尽管作者通过实验发现前端的表现不佳(第 4.3 节),但作者仍然希望保护它不被泄露原始模型参数。量化[20, 34]作为一种代表性的模型压缩方法,可以显著降低计算和内存成本,同时不牺牲模型性能。由于量化通过使用低精度值表示模型权重和激活来实现,它有可能保护模型。然而,标准的量化需要从目标任务中抽取一定量的数据,这在作者的问题中对于服务器来说是不可访问的。在这种情况下,剩下的选择是利用服务器数据集
来量化模型,但需要专门的设计来增强量化模型的跨分布泛化能力。因此,作者提出了一种增强技术,通过
生成用于量化的 OOD 数据。
3.3.1. 分布外增强量化
在实践中,作者必须考虑极端情况,其中客户端数据集与服务器数据集存在显著差异,它们可能只共享一般语义。因此,作者的增强技术应该生成与
具有较大差异的OOD数据。受信号处理启发,作者注意到存在一种称为希尔伯特变换(HT)的技术,它只捕捉图像中最尖锐的边缘。直观上,尖锐的边缘包含最一般的语义,这使得HT适合作者的问题。在标准信号处理中,将信号应用HT会导致频域中相位偏移
[36]。在视觉域中,作者可以通过傅里叶变换将图像
转换到频域,使用谱指数
,然后负
需要乘以虚数单位
,而正
需要乘以
,即:
和
分别表示傅里叶变换和逆变换,而
是一个符号函数。然而,纯HT仅提供具有黑色背景的新图像。为了使HT生成的图像多样化,作者将其频域中的幅度替换为原始图像的幅度。这样生成的图像比标准的幅度交换增强方法[32, 45]要好得多(请参考图3进行视觉比较)。
为了实现有效的量化,作者采用最流行的均匀对称量化[20]来实施
,其中将浮点值
通过缩放因子
投影到
位整数值
。
将值转换为整数的round()函数以及将输出约束在min到max范围内的clamp(·,min,max)函数。直观上,缩放因子Δ直接影响到量化后的模型性能。先前的研究[7, 34]尝试了多种测量方法来量化模型输出的变化,并据此确定最优的缩放因子。在这些研究中,作者遵循Yuan等人[55]的方法,选择一个Hessian引导的指标来确定缩放因子。假设预训练的ViT
配备了一个在服务器数据集
上调整的任务模块
,模型性能可以通过一个损失
来衡量(以下描述中省略
和
以简化使用的符号)。然后,如果作者认为量化对模型参数引入了小的扰动
,即
,作者可以通过泰勒级数展开来分析量化对任务损失的影响:
梯度
和 Hessian 矩阵
。因此,最优缩放因子是那些对应于量化影响最小化的因子,即
。当然,为整个模型确定并采用一个通用的缩放因子过于粗糙,无法取得良好的效果,因此作者应用分层重建方法 [31] 实现细粒度量化,然后方程 (7) 的搜索优化可以近似为:
和
分别表示
层在量化前后的输出,而
表示矩阵的Hadamard积。
借助增强的邻域数据,前端可以量化并提高跨分布泛化能力。具体来说,作者首先在服务器数据集
上进行基于HT的数据增强,得到
。然后,通过在合并数据集
上优化公式(8),经验地确定前端
中每层的最佳缩放因子,最终获得一个量化后的前端
。
3.3.2. 分布外量化感知调优
为了实现更好的适应性,后端还需要抵抗原始模型和量化模型之间不可避免的参数差异,以及作者在第3.4节中将要介绍的客户端注入的噪声。因此,作者提出了一种OoD量化感知调整技术,以增强后端在遇到OoD数据和前端时的抵抗能力。
为了模拟潜在的OOD前端,作者首先将合并的服务器数据集
划分为
个子集,并将这些子集表示为
。接下来,每个子集
被用来量化原始前端,以获得量化版本
。然后,让作者使用单个量化前端
来介绍如何调整后端。首先,由于后端是用浮点值表示的,并且调整也是使用浮点值进行的,因此量化前端提取的数据表示应通过反量化转换回浮点值:
通过这种方式,作者可以通过使用缩放因子
对第
层的输出进行反量化来获得浮点表示
。请注意,由于式(6)中四舍五入和钳位函数的范围限制,
与原始前端
提取的原始表示
不同。作者接下来的设计旨在调整后端以抵抗这种差异。最直接的方法是将浮点表示
前向传递到后端,并使用任务损失进行调整。然而,这种调整会使后端过度拟合服务器数据集
。作者通过表示混合策略解决这个问题。具体来说,对于特定的数据样本
,作者将其输入到量化的前端
和原始前端
,以提取表示
,
。在将
反量化为浮点形式
之后,作者获得一个混合表示:
其中
服从广泛使用的贝塔分布
。然后,考虑所有可用的量化前端,作者可以通过以下损失函数调整后端:
请注意,
源于将
输入到前端
,并在
的完整集合上量化。
3.4. 客户双层噪声表示提取
在作者的SA模型中,经过OOD增强量化(第3.3.1节)后,量化前端
将被发送至客户端,然后客户端可以将其数据转发给
以提取表示并发送给服务器。然而,在共享表示时存在数据重建的风险,因此作者提出了一种双层噪声表示提取机制来防御此类攻击。
直观而言,数据重建防御的关键是使用服务器未知的模型来提取表示。因此,作者允许客户端向接收到的前端
注入一定程度的随机噪声。对于前端每一层,作者注入一个乘性噪声
和一个加性噪声
,这些噪声是从两个高斯分布中采样的,即
和
(其中
控制噪声程度),并将其添加到模型参数中。
接下来,客户端将其数据集
输入到带噪声的前端
中,以提取表示
。然而,共享这些表示仍然是不安全的。作者发现,SA级噪声可以增强在表示层上常规噪声混淆[24]的防御效果,这使得可以向表示中添加较小程度的拉普拉斯噪声
以获得更好的保护。
3.5. 基于 Patch 检索增强的模型自适应
在少样本适应场景中,例如服务器端的后端调整(第3.3.2节),适应过程也面临着过拟合的挑战,但这里的过拟合是由于可用客户端数据的限制。为了应对这些挑战,作者设计了一种基于 Patch Level 的检索增强方法,以生成更多的客户端数据表示。
作者的 Patch 级检索增强灵感来源于不同图像可能包含相似 Patch 的直觉。如第3.1.1节所述,ViT中每层的表示数据具有维度
,可以表示为
(为了简化,作者省略了一些符号)。然后,作者可以从所有客户端数据表示(在添加拉普拉斯噪声之前)形成
个检索集,每个检索集对应一个 Patch ,即
,其中
。有了这些集,对于每个XC的增强,作者随机选择
个 Patch (请参阅补充材料中的敏感性分析)
(下标
满足
)并将它们从相应的检索集中删除。接下来,每个
从其相应的检索集中检索最相似的 Patch
。
其中
。在检索所有选定的 Patch
之后:作者将它们替换为检索到的 Patch
,在原始表示
中形成一个新的表示
。请注意,选定的 Patch 是随机确定的,导致在增强运行中生成的表示存在差异。为了生成足够的增强表示,作者对所有客户端数据表示运行增强
次,并生成一个增强表示集,
,其中表示
为原始表示,增强表示为
。上述 Patch 检索增强由客户端运行,并在上传到服务器之前,对所有
中的表示添加拉普拉斯噪声(第3.4节)。
在接收到表示后,服务器使用第
层的缩放因子
通过公式(9)将它们反量化为浮点形式,并启动适应过程。为了进一步缓解由于客户端数据有限导致的过拟合问题,与Split Learning不同,作者只允许在后台进行High-Level特征学习,以防止Low-Level特征产生偏差。然后,服务器随机初始化一个任务模块
,并使用已调优的后台
(在第3.3.2节中已调优)通过以下损失函数对其进行调整:
为了保护客户端的标签,服务器将任务模块的输出发送到客户端,允许在客户端计算任务损失
,然后将其发送回服务器。
- 实验
4.1 实验设置
数据集。ImageNet [9] 是最广泛使用的来自公共领域的图像数据集,因此作者使用其测试集作为服务器数据集。对于客户端数据集,作者使用 CIFAR-100 [30]、Places365 [35] 和 DomainNet [39]。Places365 是一个包含 365 个类别的场景识别数据集。DomainNet(D.Net)是一个具有挑战性的多领域数据集,包括六个领域。作者选择最小的领域——Clipart(Cl)用于小样本适应场景。
实现细节。作者在三种预训练模型架构上进行了实验:ViT-Large [13]、DeiTBase [43] 和 Swin-L [33](DeiT-Base 和 Swin-L 的实验结果见补充材料)。对于 Places365 数据集,目标任务模块由两个线性层组成,而对于其他数据集,则由一个线性层组成。作者将2/3的 Backbone 模型划分为前端,其余1/3为后端。前端及其内部激活被量化为8位。每个量化操作使用从服务器数据集或子集中随机抽取的32个数据样本,批大小为4。采用学习率为
的 Adam 优化器。OOD 量化感知调优的迭代次数设置为1,而最终适配设置为100次迭代。所有实验均重复运行3次,使用三个种子,并报告平均性能和标准差。
Baseline 方法。本文将SA与最先进的下游任务自适应方法进行了比较,包括线性检测[29]、微调、分割学习[44]、离线调优[49]和LN-TUNE[2]。为了评估数据保护的有效性,作者将最先进的数据重建攻击方法FORA[53]扩展到了ViT。更多细节请参阅补充材料。
评估指标。为了评估目标任务适应的有效性,作者使用分类准确率来衡量性能。至于数据重建结果的质量测量,作者采用三个指标:SSIM [48](S)、PSNR [25](P)和LPIPS [56](L)。
4.2 sA在任务适应性方面的有效性
作者为每个客户端数据集或领域创建了三种少样本自适应场景:每类3次、5次和10次,实验结果如表1所示。
作者可以很容易地观察到,作者的自适应算法(SA)总是能显著超越所有其他 Baseline 方法。特别是,像微调(Fine Tuning)、LN-TUNE和离线调优(Offsite Tuning)等方法在性能上远远落后于SA,这可能是由于Low-Level特征调优导致的过拟合。在性能上最接近SA的方法是分割学习(Split Learning),但它的最大问题是隐私泄露,作者将在第4.3节中讨论。
在表2中,作者还提供了每种方法的客户端内存和计算成本(假设前三种方法是在客户端执行的),从中作者可以观察到SA的成本甚至是最小的。请注意,SA在客户端没有进行训练,因此作者将表示提取时间视为表2中的训练时间。
4.3 sA在服务器预训练ViT和客户端数据保护中的有效性
为了保护隐私,作者首先测试了SA的量化前端是否能够生成具有良好下游任务性能的高质量模型。作者考虑了三种最有潜力的变化:1)直接在量化前端调整任务模块(量化前端);2)在原始前端调整任务模块,尽管在实际情况中这种情况是不可能的(原始前端);3)从其他模型附加后端,并在量化前端和辅助后端上调整任务模块(辅助后端)。实验结果如表3所示,其中所有变化的表现都远逊于表1中的线性检测和作者的SA。在这种情况下,作者相信SA可以在很大程度上保护预训练模型。
然后作者启动FORA [53]来评估作者的SA的数据保护能力。为了进行公平的比较,只有Split Learning与SA进行比较,因为只有它要求客户端与服务器共享中间数据表示。实验结果如表5所示。首先,作者可以直观地观察到,
的重构结果比Split Learning的要差得多。然后,三个指标也显示了相同的现象,即与Split Learning相比,FORA在攻击SA时只能恢复质量低得多的图像。总之,作者的SA提供了强大的客户端数据保护。更多关于噪声程度的实验可以在补充材料中找到。
4.4 消融研究
作者在CIFAR-100、Places365和DomainNet-Cl上进行了全面的消融研究,针对5-shot适应。
基于希尔伯特变换的数据增强。作者分离了在前端量化以及后端调优('SA w/o HT Aug')中使用HT数据增强的应用。与表4中的完整SA相比,无HT数据增强的变体表现更差,这证明了其在提升适应性能方面的增益。
分布外量化感知调优。作者设计了两种变体:一种是不使用分布外量化感知调优('SA w/o OOD QAT'),另一种是仅使用在完整服务器数据集上特征化的量化前端
('SA w/o QAT')。与完整SA相比,可以验证表示混合量化感知调优和模拟分布外前端在缓解量化引起的性能下降方面的有效性。
Patch检索增强。作者没有使用Patch检索增强,并观察模型性能的变化。表4中“^SA w/o PR Aug'”与“SA”之间的显著差异表明,作者的增强方法在此处对性能提升具有关键作用。
双层噪声表示提取。作者分别脱离了模型高斯噪声('SA w/o Model Noise')和表示拉普拉斯噪声('SA w/o Laplace Noise')的使用,实验结果如表6所示。模型噪声和表示噪声在数据保护中发挥的协同作用大于它们简单的总和。
- 结论
在本工作中,作者提出了分割自适应(SA)方法,用于在保护服务器-客户端框架中的数据和模型的前提下,对预训练的ViT进行下游任务的适配。将ViT分为前端和后端后,SA创新性地使用模型量化来保护前端。SA还允许客户端对量化的前端和提取的数据表示引入双级噪声,以实现数据保护。因此,SA利用数据级和模型级增强来减轻量化和噪声的影响。此外,SA提出了 Patch 检索增强,以解决少样本适配中的过拟合问题。大量实验验证了SA在任务适配和数据-模型保护方面的优越性。
参考
[1]. Split Adaptation for Pre-trained Vision Transformers
扫码加入👉
「集智书童」
交流群
(备注:
方向
学校/公司+
昵称
)