1

Meta AI发布图音文大一统模型Data2vec,CV精度超MAE

 2 years ago
source link: https://www.qbitai.com/2022/01/32338.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Meta AI发布图音文大一统模型Data2vec,CV精度超MAE

head.jpg行早 2022-01-29 20:25:32 来源:量子位

三手齐抓,性能也不拉下

行早 发自 凹非寺

量子位 | 公众号 QbitAI

Meta AI搞了一个大一统的自监督学习模型Data2vec

怎么个大一统法?

图像、语音、文本都可以处理,效果还都不错,在CV方面甚至超过了包括MAE、MaskFeat在内的一众模型。

这是怎么做到的?我们来看看Data2vec的思路和结构。

Data2vec如何统一图音文

关于这个问题,我们可以从模型名字中看出一些端倪。

和Word2vec把词转化为可计算的向量类似,Data2vec会把不同类型的数据都转化为同一种形式的数据序列。

这样就成功避开了模态不同这个问题。

然后,再用自监督学习的方法遮住这些数据的一部分,通过训练让模型把遮住的部分还原。

而它的结构也是在这个思路上设计的。

Data2vec以Transformer架构为基础,设计了一个教师-学生网络结构:

973ac1f799a949eeb52e073d96fcac9a~tplv-tt-shrink:640:0.image

从上图中可以看出,无论对于任何形式的输入,都先转化为数据序列,并mask一部分信息(或挡住狗头,或覆盖一段语音,或遮住一个单词)。

然后让学生网络通过部分可见的输入去预测完整输入,再由教师网络去调整,达到一个模型处理多任务的效果。

那接下来的问题就是如何把不同类型的输入都转化为同一种形式了。

Data2vec如何标准化输入数据

在标准化输入这一块,Data2vec还是具体问题具体分析的。

毕竟像素、波形和文本是完全不同的形式,而Data2vec对不同形式的输入采用了不同的编码策略,但是目的都是一样的。

那就是将这些输入都转化为数据序列。

具体的操作方法是这样的:

0XMSK09yABp3NgsW.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2NDM0NTkxNDQsImciOiJ3SEh0ZFFnM3ZROVg2dndUIiwiaWF0IjoxNjQzNDU4ODQ0LCJ1c2VySWQiOjczMDM1NDE2fQ.Hs_IwvxpG53DXBO2KfLTuc6wfthPClI6jkRU4knXA_o

其中ViT的编码策略就是把一张图分成一系列的图块,每个图块有16×16个像素,然后输入到一个线性变换系统中。

而语音的编码方式是用多层的一维卷积神经网络将16kHz的波形转换为50Hz的一串数据序列。

6b7a32f24f5242a7b4b1226a8872d2c1~tplv-tt-shrink:640:0.image

再加上文本编码的嵌入向量,这样所有模态的输入都转换为了数据序列,方便后续的训练。

而对于掩码策略来说,不同的模态的表现形式也是不一样的。

例如图像可以遮住一块,但是语音和文本有上下文的关联,不能随便遮住一部分。

因此对不同的模态,Data2vec也采取了相应的符合不同数据特征的掩码方式。

这样标准化之后,Data2vec还针对不同的下游任务做了一些微调,其中语音和文本的模型已经在GitHub上放出,视觉模型也正在路上:

86e7d50774534c11b7b716c19ae00703~tplv-tt-shrink:640:0.image

我们来看看这统一的模型性能怎么样。

虽然Data2vec三手齐抓,但是性能也没落下。

在计算机视觉方面,在IN1K上预训练情况如下表所示:

86e7d50774534c11b7b716c19ae00703~tplv-tt-shrink:640:0.image

和一些其他模型相比,Data2vec精度表现最好。而且Data2vec只训练了800个epochs,而表中的MAE,MaskFeat训练了1600个epochs。

看柱状图则更为明显,蓝色为Data2vec:

12b63652b5ea4a59b517e5cb498316e5~tplv-tt-shrink:640:0.image

在语音处理方面,在LS-960上预训练结果如下:

7f86dddb205c48ffbb703ce821b55c0a~tplv-tt-shrink:640:0.image

可以看出,Data2vec在不同的标签数据量下单词错误率都比wav2vec2.0和HuBERT要低。

4b5c601a75f448048b61db2b790cabf5~tplv-tt-shrink:640:0.image

在GLUE评估中,Data2vec在自然语言推理(MNLI、QNLI、RTE),句子相似性(MRPC、QQP、STS-B),语法(CoLA)和情绪分析(SST)等指标中和RoBERTa不相上下。

其中Baseline这一条是RoBERTa在和BERT类似的设置中的训练结果:

9adfe80b40034794b99a1cfc2a2afb9f~tplv-tt-shrink:640:0.image

总体评分也差不多:

0969ab74b52a4b27bc2622983755a5df~tplv-tt-shrink:640:0.image

这么看来,统一的模型架构真的可以有效地用于多种任务模式。

虽然Data2vec在输入数据和掩码方式上还是按照不同的方法来处理,但是它仍然是探索模型统一的尝试。

或许将来会有统一的掩码策略和不同模态数据的混合数据集,做到真正的大一统。

参考链接:

[1]https://ai.facebook.com/research/data2vec-a-general-framework-for-self-supervised-learning-in-speech-vision-and-language
[2]https://ai.facebook.com/blog/the-first-high-performance-self-supervised-algorithm-that-works-for-speech-vision-and-text
[3]https://github.com/pytorch/fairseq/tree/main/examples/data2vec

版权所有,未经授权不得以任何形式转载及使用,违者必究。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK