AI 模型与平台

data2vec:自监督学习中的一个里程碑

mm
将 Unite.AI 添加到您在 Google 上的首选来源

机器学习模型在训练中大量依赖于标记数据,传统上,使用标记数据训练模型可以获得准确的结果。然而,使用标记数据的主要缺点是标记成本随着训练数据规模的增加而增加。高昂的标记成本是开发人员的主要障碍,尤其是在处理大型项目和大量训练数据时。

为了解决标记问题,开发人员提出了SSL或自监督学习的概念。自监督学习是一种机器学习过程,其中模型通过自身学习输入数据的一部分来学习输入数据的其他部分。自监督学习模型的目标是利用数据之间的关系,而不是使用标记数据的监督信号。

除了自监督学习外,还有其他方法和模型可以在不使用标记数据的情况下训练机器学习模型。然而,大多数这些方法都有两个主要问题

  1. 它们通常专门针对单一模态,如图像或文本。
  2. 它们需要大量的计算资源。

这些限制是普通人能够比依赖单一模态的AI模型更有效地从单一类型的数据中学习的主要原因。

为了解决单一模态的问题,Meta AI发布了data2vec,第一种自监督的高性能算法,用于从三个不同的模态中学习模式:图像、文本和语音。通过data2vec算法的实现,文本理解可以应用于图像分割问题,也可以部署在语音识别任务中。

在本文中,我们将深入讨论data2vec模型。我们将更详细地讨论模型的方法概述、相关工作、架构和结果,以便您能够更好地理解data2vec算法。

data2vec介绍:核心思想

虽然自监督学习的基本概念在所有模态中都是一样的,但实际目标和算法却因模态的不同而有所不同。为单一模态设计模型是自监督学习算法不能在不同模态中有效工作的原因。

为了克服单一模态模型和算法带来的挑战,Meta AI发布了data2vec,一个使用相同学习方法的算法,无论是计算机视觉、NLP还是语音。

data2vec算法背后的核心思想是使用输入的掩码视图来预测完整输入数据的潜在表示,并使用标准的Transformer架构来实现自我蒸馏。因此,data2vec算法预测的潜在表示不仅包含特定时间步的信息,还包含来自整个输入数据的其他信息。

为什么AI行业需要data2vec算法?

自监督学习模型使用人类注释的标签来构建训练数据的表示,这是NLP和计算机视觉技术进步的主要原因。这些自监督学习表示是为什么任务如语音识别和机器学习在其模型中使用无监督学习的原因。

到目前为止,这些自监督学习算法专注于个别模态,导致学习偏差和模型中的特定设计。个别模态的自监督学习算法在计算机视觉和NLP等不同AI应用中带来了挑战。

例如,在语音处理中,可以定义一个自监督学习任务的语音单元词汇。在计算机视觉中,开发人员可以对输入进行回归,学习离散的视觉标记,或者学习对数据增强不变的表示。虽然这些学习偏差很有用,但很难确认这些偏差是否会推广到其他模态。

data2vec算法是自监督学习行业的一个重要里程碑,因为它旨在改进多个模态,而不是仅仅一个。此外,data2vec算法不依赖于重构输入或对比学习。

因此,世界需要data2vec的原因是data2vec算法有潜力加速AI的进步,并有助于开发能够无缝地学习其周围不同方面的AI和ML模型。科学家希望data2vec算法能够使他们开发出更适应性强的AI和ML模型,这些模型能够执行超出当前AI模型能力的高级任务。

什么是data2vec算法?

data2vec是一个统一的框架,旨在跨不同数据模态(包括图像、语音和文本)实现自监督机器学习。

data2vec算法旨在开发能够更好地学习环境中的一般模式的ML模型,方法是保持不同模态的学习目标一致。data2vec模型统一了学习算法,但仍然为每个模态单独学习表示。

通过data2vec算法的引入,Meta AI希望使多模态学习变得有效且更简单。

data2vec算法如何工作?

data2vec算法将潜在目标表示的学习与掩码预测相结合,尽管它使用多个网络层作为目标来泛化潜在表示。模型特定地训练一个现成的Transformer网络,该网络随后用于教师或学生模式。

在教师模式下,模型首先构建输入数据的表示,这些表示作为学习任务的目标。 在学生模式下,模型对输入数据的掩码版本进行编码,然后使用完整的输入数据来预测这些表示。

上图表示data2vec模型如何使用相同的学习过程来处理不同的模态。在第一步中,模型生成输入数据的表示(教师模式)。然后,模型使用掩码版本的输入来回归这些表示。

此外,data2vec算法使用输入数据的潜在表示,因此可以将其视为模态特定设计的简化版本,例如通过对输入进行归一化或学习固定的一组视觉标记。但是,data2vec和其他算法之间的关键区别在于,data2vec算法使用自我注意力来使其目标表示上下文化和连续。相比之下,其他自监督学习模型使用基于局部上下文的固定目标集。

data2vec:模型方法

data2vec模型通过预测输入数据的模型表示来训练,给定输入的部分视图。如图所示,狗的脸被遮挡,语音笔记的特定部分被遮挡,文本中的单词“with”被遮挡。

模型首先对训练样本的掩码版本进行编码(学生模式),然后对输入的未遮挡版本进行编码,以使用相同的模型但仅当其参数化为模型权重的指数移动平均(教师模式)时构建训练目标。

模型架构

data2vec模型使用标准的Transformer架构,具有模态特定的输入数据编码。对于计算机视觉任务,模型使用ViT策略将图像编码为16×16像素的补丁序列,每个补丁线性变换并作为序列输入标准Transformer。

对于语音识别,模型使用多层一维卷积神经网络来将16 kHz波形映射到50 Hz的表示。对于文本数据,模型预处理数据以提取子词单元,然后通过嵌入向量在分布空间中嵌入数据。

掩码

一旦模型将输入数据嵌入为令牌序列,模型就会通过用嵌入令牌替换它们来掩码这些单元的部分,然后将序列输入Transformer网络。对于计算机视觉,模型采用块级掩码策略。语音的潜在表示用于掩码语音数据的跨度,对于语言相关任务,模型掩码令牌。

训练目标

data2vec模型的目标是预测未遮挡训练样本的模型表示,基于对掩码样本的编码。模型仅预测掩码时间步的表示。

模型预测上下文化表示,这些表示不仅编码特定时间步,还编码来自样本的其他信息,因为它使用Transformer网络中的自我注意力。上下文化表示和Transformer网络的使用是data2vec模型与现有模型(如BERT、wav2vec、BEiT、SimMIM、MAE和MaskFeat)之间的关键区别,这些模型预测没有上下文信息的目标。

以下是data2vec模型如何参数化教师模式来预测网络表示,这些表示作为目标。

教师参数化

data2vec模型使用EMA(指数移动平均)的模型参数(θ)来参数化未遮挡训练样本的编码,其中教师模式(△)中的模型权重为

                                           ∆ ← τ∆ + (1 − τ ) θ

此外,模型对τ进行调度,线性增加参数从τ0到τe(目标值)在前τn更新期间。更新完成后,模型将值保持为常数,直到训练完成。使用EMA策略更新教师更频繁地在训练开始时,当模型是随机的时。随着训练的进行和学习良好的参数,教师更新得更不频繁。

结果表明,模型在共享学生和教师模式之间的特征编码器和位置编码器参数时更高效、更准确。

目标

目标的构造取决于教师网络的顶部K块的输出,用于学生模式中的掩码时间步。教师网络的块l在任何时间步t的输出表示为alt。然后,模型对每个块应用归一化以获得alt,然后对顶部K块进行平均以获得时间步t的训练目标yt,对于具有L块的网络。

创建训练目标,使模型在学生模式下回归这些目标。最初的实验中,data2vec模型在预测每个块时表现良好,使用专用投影,并且在此过程中更高效。

此外,目标的归一化还允许data2vec模型避免在时间步中崩溃为常数表示,并防止具有高归一化的层在目标数据集中主导特征。在语音识别中,模型对当前输入样本进行实例归一化,而无需学习参数。主要是因为输入数据上的步长很小,相邻的表示之间存在很高的相关性。

此外,研究人员发现,当处理计算机视觉和NLP时,参数化的归一化足以完成任务。该问题也可以通过方差-不变性-协方差正则化来解决,但上述策略表现良好,并且不需要任何额外的参数。

目标

对于上下文化训练目标yt,模型使用Smooth L1损失来回归目标,如下所示

这里,β控制从平方损失到L1损失的转变,取决于模型预测ft(x)与时间步t之间的差距的大小。这种损失的优点是它相对于异常值的敏感性较低,并且不需要调整β的设置。

实验设置

data2vec模型使用两个模型大小进行实验:data2vec Largedata2vec Base。为了实现数值稳定性,EMA更新以fp32进行,模型包含L = 12或L = 24个Transformer块,隐藏维度(H)为768或H = 1024。让我们更详细地了解不同模态和目的的实验设置。

计算机视觉

data2vec模型将224×224像素的图像嵌入为16×16像素的补丁序列,每个补丁线性变换并作为序列输入标准Transformer。

模型遵循BEiT的方法,使用相邻补丁的块来掩码补丁,每个块至少包含16个补丁,具有随机的长宽比。然而,与BEiT模型中的原始方法不同,data2vec模型掩码60%的补丁以获得更好的准确率。

此外,模型对图像进行随机裁剪、水平翻转和颜色抖动。最后,data2vec模型在教师和学生模式下使用相同的修改图像。

ViT-B模型的预训练持续800个epoch,data2vec模型使用批次大小为8192的ViT-L模型和批次大小为2048的ViT-B模型。data2vec模型还使用余弦和Adam调度来热启动学习率,持续80个epoch达到0.001的ViT-L和40个epoch达到0.001的ViT-B。

对于ViT-B和ViT-L,data2vec模型使用β = 2,K = 6和τ = 0.9998作为常数,没有调度。模型还使用0.2的随机深度率。

此外,对于ViT-L,模型训练1600个epoch,其中前800个epoch的学习率为0.9998,然后重置学习率调度,并继续最后800个epoch的学习率为0.9999。

对于图像分类,模型使用最后一个Transformer块的输出的均值池,并将其输入softmax归一化分类器。然后,模型对ViT-L进行50个epoch的微调,对ViT-B进行100个epoch的微调,使用余弦和Adam来热启动学习率。

语音处理

对于语音处理,data2vec模型使用Fairseq,一个用于训练自定义模型的序列建模工具包,用于摘要、翻译和文本生成。模型以16 kHz波形作为输入,该波形使用具有512个通道、内核宽度(10,3,3,3,3,2,2)和步长(5,2,2,2,2,2,2)的多层一维卷积神经网络进行处理。

上述结果导致编码器的输出频率为50 Hz,且每个样本之间的步长为20毫秒。编码器的感受野由400个输入样本或25毫秒的音频组成。 输入波形被归一化为单位方差和零均值

data2vec用于Base模型的掩码策略类似于Baevski的语音识别中自监督学习的框架。模型对所有时间步p= 0.065进行采样,以确定起始索引,然后标记接下来的十个时间步。对于典型的训练序列,该过程允许大约49%的总时间步被掩码。

在训练期间,data2vec模型线性退化τ,使用τo= 0.999,τe= 0.9999和τn= 30,000。data2vec模型使用Adam优化器,Base模型的峰值学习率为5×10-4。此外,Base模型使用三阶段调度器,线性热启动学习率的前3%更新,保持90%,然后对剩余7%进行线性衰减。

自然语言处理

data2vec模型使用50K类型的字节对编码输入,并为每种类型学习一个嵌入。编码数据后,模型对15%的均匀选择的标记应用BERT掩码策略,其中80%被替换为学习的掩码标记,10%被替换为随机词汇标记,剩余10%保持不变。

在预训练期间,模型使用τo= 0.999,τe= 0.9999和τn= 100,000,K = 10和β = 4。模型使用Adam优化器,三阶段学习率调度,线性热启动学习率的前5%更新,保持80%,然后对剩余15%进行线性衰减,峰值学习率为2×10-4

此外,模型在16个GPU上训练,批次大小为256个序列,每个序列包含大约512个标记。对于下游任务,模型预训练四个不同的学习率:1×10-4,2×10-4,3×10-4和4×10-4,并选择在NLP下游任务中表现最好的一个。

结果

让我们来看看data2vec模型在不同模态中实现的结果。

计算机视觉

为了评估计算机视觉的结果,data2vec模型在ImageNet-1K数据集上的图像上进行预训练。然后使用相同的基准数据集对所得模型进行微调。按照标准做法,模型然后根据验证数据的top-1准确率进行评估。

结果根据单个自监督模型、在额外数据上训练单独的视觉标记器以及其他自监督学习模型进行区分。

下表比较了data2vec模型在计算机视觉方面的性能,以及其他现有模型:ViT-L和ViT-B。

上表的结果可以总结如下。

  • data2vec模型在单模型设置中使用ViT-L和ViT-B模型超越了之前的工作。
  • data2vec算法中使用的掩码预测设置,用于预测上下文化的潜在表示,在与预测局部目标(如工程图像特征、输入像素或视觉标记)相比时表现更好。
  • data2vec模型还超越了自我蒸馏方法,该方法将学生网络的最终层回归为两个不同增强版本的图像的输入。

音频和语音处理

对于语音和音频处理,data2vec模型在Librispeech(LS-960)数据集上训练,该数据集包含来自有声书的960小时英语清晰语音音频。该数据集被视为语音和音频处理行业的标准基准。

为了分析模型在不同资源设置下的性能,研究人员使用从几分钟到几小时不等的标记数据对data2vec模型进行了微调,以进行自动语音识别。为了分析模型的性能,data2vec与HuBERTwav2vec 2.0进行了比较,这两个算法依赖于离散的语音单元来学习语音和音频表示。

上表比较了data2vec在语音识别方面的性能,以词错误率(WER)表示,与其他现有模型相比。 LM代表用于解码的语言模型。结果可以总结如下。

  • data2vec模型在大多数标记数据设置中都有所改进,Base模型在10分钟标记数据设置中获得了最大收益。
  • 对于大型模型,data2vec模型在小型标记数据集上表现出显著改进,在100和960小时标记数据集上具有可比的性能。这种性能的提高是因为大型标记数据集上的性能通常会在大多数模型中饱和。
  • 通过分析性能,可以看出,当模型使用上下文化的目标时,学习离散单元不是必需的。
  • 在训练期间学习上下文化的目标可以显著提高性能。

此外,为了验证data2vec的语音识别方法,模型还在AudioSet基准上进行了训练。虽然AudioSet的预训练设置与Librispeech类似,但模型在200,000次更新和批次大小为94.5分钟的设置下进行了训练。

然后,模型应用DeepNorm框架和层归一化以帮助训练的稳定。另外,模型在批次大小为21.3分钟、13,000次更新的平衡子集上进行了微调。模型还使用线性Softmax池化和mixup,概率为0.7。然后,模型添加一个单线性投影到527个音频唯一类别,并将投影学习率设置为2e-4。

此外,预训练参数具有3e-5的学习率,模型使用掩码技术来微调数据集。下表总结了结果,可以看出data2vec模型能够超越具有相同微调和预训练数据的可比设置。

自然语言处理

为了分析data2vec在文本上的性能,模型遵循与BERT相同的训练设置,并在英语维基百科数据集上预训练模型,数据集包含超过1M次更新,批次大小为256个序列。然后,模型在GLUE(通用语言理解评估)基准上进行评估,该基准包括自然语言推理任务(MNLI或多类型自然语言推理),句子相似性(QQP或Quora问题对MRPC或Microsoft研究段落语料库STS-B或语义文本相似性基准),情感分析(SST-2或斯坦福情感树库)和语法(CoLA)。

此外,为了微调data2vec模型,模型使用每个任务提供的标记数据,并在开发集上报告平均准确率,使用五次微调运行。下表总结了data2vec模型在自然语言处理任务上的性能,并将其与其他模型进行了比较。

  • 上述数据显示,data2vec模型超越了基线RoBERTa模型,因为data2vec模型的策略不使用随机目标。
  • data2vec模型是第一个成功的预训练NLP模型,它不使用离散单元(如字符、词或子词)作为训练目标。相反,data2vec框架预测完整的未遮挡文本序列上的上下文化的潜在表示。
  • 这有助于创建一个学习任务,模型需要预测具有特定属性的目标,而不是预测对每个文本单位都通用的表示。
  • 此外,训练目标集不是固定的,模型可以自由定义新的目标,并且对词汇开放。

data2vec:消融研究

消融是一种用于分析或检查AI和ML系统中组件删除的术语。消融研究用于通过从模型中删除关键组件来调查AI或ML模型的性能,这使得研究人员能够了解该组件对整个系统的贡献。

层平均目标

data2vec和其他自监督学习模型之间的一个关键区别在于,data2vec模型使用基于教师网络的多个层的平均值的目标。这个想法源于wav2vec 2.0模型的顶层不能很好地执行下游任务的事实,而模型的中间层则执行得更好。

在以下实验中,所有三个模态的性能都通过平均K= 1、2、…、12层来衡量,其中K= 1预测仅顶层。然而,为了提取更快的周转时间,data2vec训练具有12个层的Base模型。对于语音识别,模型在Librispeech上预训练,超过20万次更新,然后在Libri-light的10小时标记分割上进行微调。对于自然语言处理,模型报告验证集上的平均GLUE分数,并在计算机视觉上预训练300个epoch,然后报告在ImageNet数据集上获得的top-1准确率。

上图显示,基于多个层的目标通常会随着使用所有可用层而提高,而仅使用顶层K= 1时会降低。使用所有可用层是一个好的做法,因为神经网络在不同的层上构建特征,并且使用来自多个层的特征可以提高准确率。

使用来自多个层的特征可以提高准确率,并丰富自监督学习过程。

目标特征类型

data2vec模型中的Transformer块具有多个层,可以用作目标。为了分析不同层如何影响性能,模型在Librispeech的语音模型上预训练,使用不同的层作为目标特征。

下图清楚地表明,前馈网络(FFN)的输出效果很好,而自注意力块的输出则不会产生可用的模型。

目标上下文化

data2vec模型中的教师表示使用整个输入的自注意力来产生上下文化的目标。它与其他自监督学习模型的区别在于,其他模型通过重构或预测输入的局部部分来构建学习任务。

为了回答data2vec模型是否需要上下文化的目标才能有效地工作,研究人员构建了没有访问整个输入数据集的目标表示,只能访问输入的一小部分。然后,模型经过训练,并在能够访问完整的上下文大小时进行微调。

下图表明,较大的上下文大小通常会导致更好的性能,当整个输入样本可见时,会产生最佳的准确率。它进一步证明了更丰富的目标表示可以产生更好的性能。

模态特定特征提取器和掩码

data2vec的主要目标是设计一种可以与不同模态一起工作的简单学习机制。它是因为当前的模型和框架具有统一的学习制度,但仍然使用模态特定的掩码和特征提取器。

这很有道理,因为大多数框架主要适用于单一模态,输入数据的性质会因模态而异。例如,语音识别模型使用高分辨率输入(如10 kHz波形),通常具有成千上万的样本。然后,波形由多层卷积神经网络处理,以获得50 Hz的特征序列。

结构化和上下文化目标

data2vec和其他掩码预测模型之间的主要区别在于,data2vec模型中的特征目标是上下文化的。这些特征是使用教师模式下的整个掩码输入的自注意力构建的。

其他框架,如BYOL(引导自己的潜在)或DINO,也使用与data2vec类似的潜在表示,但它们的主要重点是学习变换不变的表示。

最后的想法

最近在AI和ML行业的工作表明,统一的模型架构可以成为解决多个模态的有效方法。data2vec模型使用自监督学习方法来处理三个模态:语音、图像和语言。

data2vec模型背后的关键概念是使用部分输入视图来回归输入数据的上下文化信息。data2vec框架使用的方法是有效的,因为该模型在ImageNet-1K数据集上使用ViT-B和ViT-L单模型的性能优于之前的自监督学习模型。

data2vec确实是自监督学习行业的一个里程碑,因为它证明了单一学习方法可以用于学习多个模态,从而使模型更容易跨模态学习。

专业为工程师,心为作家。 Kunal是一名技术作家,对AI和ML有着深厚的热爱和理解,致力于通过其引人入胜和信息丰富的文档来简化这些领域中的复杂概念。