近几年人工智能领域的突破大多由自监督学习推动,比如BERT中提出的MLM (Masked Language Model) ,通过将文本中的部分单词遮盖后重新预测,使得海量无标记文本数据也能用来训练模型,自此开启了大规模预训练模型的新时代。但自监督学习算法也有明显的局限性,通常只适用于单一模态(如图像、文本、语音等)的数据,并且需要大量的算力从海量数据中进行学习。相比之下,人类的学习效率要显著高于当前的AI模型,并且可以从不同类型的数据中进行学习。
2022年1月,Meta AI发布了自监督学习框架data2vec,将三个模态的数据(语音、视觉和文本)通过一个框架整合起来,大有一统多模态的趋势。最近Meta AI发布了data2cec 2.0版本,主要在性能方面对上一代进行了改进:在精度相同的情况下,训练速度相比其他算法最高提升了16倍!
论文链接:https://ai.facebook.com/research/publications/efficient-self-supervised-learning-with-contextualized-target-representations-for-vision-speech-and-language
代码链接:https://github.com/facebookresearch/fairseq/tree/main/examples/data2vec
data2vec 1.0
目前来说,大部分机器学习模型仍然是基于有监督学习的模式,需要有专门的标注人员对目标数据打标签,但对于某些任务来说(比如地球上的几千种人类语言),收集标注数据是不可行的。
相比之下,自监督学习不需要告诉模型正确和错误,而是让机器通过观察世界来学习图像、语音和文本的结构。相关的研究成果促进了语音(如,wave2vec 2.0)、计算机视觉(例如,掩码自编码器)和自然语言处理(例如,BERT)等领域的发展。
data2vec的主要思路就是先建立一个教师网络,首先计算来自图像、文本或语音的目标表征。然后对数据进行掩码遮盖掉部分输入,并用一个学生网络重复该过程预测教师模型得到的表征。
也就是说,学生模型只能在接受「不完整输入信息」的同时预测「完整输入数据」的表示。为了保证两个模型的一致性,二者的参数时共享的,但在训练初期会让Teacher模型的参数更新更快。在实验结果上,data2vec在语音、视觉、文本等任务上对比baseline模型性能提升明显。
data2vec 2.0
data2vec提出了一个通用的自监督学习框架统一了语音、视觉和语言三个模态数据的学习,而data2vec2.0主要解决的痛点就是构建自监督模型需要大量的GPU做算力支撑才能完成训练。与最初的 data2vec 算法类似,data2vec 2.0预测数据的上下文化的表征(contextualized representations),或是神经网络的层次,而非预测图像的像素、文本段中的词或语音。
与常见的其他算法不同,这些所谓的目标表征是上下文化的,这意味着算法需要将整个训练示例考虑在内。
比如说,模型学习单词 bank 的表征是基于包含bank的整个句子,从而更容易推算出单词的正确含义,比如区分具体指代「金融机构」还是「河边的土地」。研究人员认为上下文化的目标会促进更丰富的学习任务,并使 data2vec 2.0比其他算法学习得更快。
data2vec 2.0通过以下三种方式提高了原始 data2vec 算法的效率:
1、为特定训练样例构建目标表征,并将该表征重用在掩码版本上。在掩码版本中,训练样例中的不同部分会被随机隐藏。随后两个版本学到的表征都会输入到学生模型中,为不同的掩码版本预测相同的上下文化的目标表征,从而有效地分摊了创建目标表征所需的计算量。
2、类似于掩码自编码器(masked autoencoder, MAE),学生模型中的编码器网络并不运训练样例中的空白部分(blanked out)。在图像实验中,大约80%的部分都是空白,从而显著节省了计算周期。
3、使用了一个更有效的解码器模型,不再依赖于Transformer网络,而是依赖于一个多层卷积网络。
实验部分
为了更直观地理解 data2vec 2.0 比 data2vec 和其他同类算法的效率要高多少,研究人员在计算机视觉、语音和文本任务相关的基准测试中进行了广泛的实验。实验中主要考虑最终的精确度以及预训练模型所需的时间,实验环境都是在相同的硬件上(GPU 的型号、数量等)来测量算法的运行速度。
在计算机视觉任务上,研究人员在标准 ImageNet-1K 图像分类基准上评估了 data2vec 2.0,模型通过该数据集可以学习图像表征。实验结果显示,data2vec 2.0可以等同于掩码自编码器(MAE)的准确性,但是速度要快16倍。
如果继续给data2vec 2.0算法更多的运行时间,它可以达到更高的精度,并且仍然会比MAE的速度快。
在语音任务上,研究人员在 LibriLanguage 语音识别基准上进行了测试,它的准确性是 wave2vec 2.0的11倍以上。
对于自然语言处理任务,研究人员在通用语言理解评估(GLUE)基准上评估了 data2vec 2.0,仅需一半的训练时间即可达到与 BERT 的重新实现 RoBERTa 相同的精度。