Meta AI发布图音文大一统模型Data2vec,4天在GitHub揽1.5万星
行早 发自 凹非寺
量子位 | 公众号 QbitAI
Meta AI搞了一个大一统的自监督学习模型Data2vec。
怎么个大一统法?
图像、语音、文本都可以处理,效果还都不错,在CV方面甚至超过了包括MAE、MaskFeat在内的一众模型。
这是怎么做到的?我们来看看Data2vec的思路和结构。
Data2vec如何统一图音文
关于这个问题,我们可以从模型名字中看出一些端倪。
和Word2vec把词转化为可计算的向量类似,Data2vec会把不同类型的数据都转化为同一种形式的数据序列。
这样就成功避开了模态不同这个问题。
然后,再用自监督学习的方法遮住这些数据的一部分,通过训练让模型把遮住的部分还原。
而它的结构也是在这个思路上设计的。
Data2vec以Transformer架构为基础,设计了一个教师-学生网络结构:
从上图中可以看出,无论对于任何形式的输入,都先转化为数据序列,并mask一部分信息(或挡住狗头,或覆盖一段语音,或遮住一个单词)。
然后让学生网络通过部分可见的输入去预测完整输入,再由教师网络去调整,达到一个模型处理多任务的效果。
那接下来的问题就是如何把不同类型的输入都转化为同一种形式了。
Data2vec如何标准化输入数据
在标准化输入这一块,Data2vec还是具体问题具体分析的。
毕竟像素、波形和文本是完全不同的形式,而Data2vec对不同形式的输入采用了不同的编码策略,但是目的都是一样的。
那就是将这些输入都转化为数据序列。
具体的操作方法是这样的:
任务 | 编码方式 | 掩码方式 |
计算机视觉 | ViT图像分块 | Block-wise Masking Strategy |
语音 | 多层一维卷积神经网络 | Mask spans of latent speech representation |
文本 | 预处理获得子词单元,然后通过嵌入向量将其嵌入分布空间 | Tokens |
其中ViT的编码策略就是把一张图分成一系列的图块,每个图块有16x16个像素,然后输入到一个线性变换系统中。
而语音的编码方式是用多层的一维卷积神经网络将16kHz的波形转换为50Hz的一串数据序列。
再加上文本编码的嵌入向量,这样所有模态的输入都转换为了数据序列,方便后续的训练。
而对于掩码策略来说,不同的模态的表现形式也是不一样的。
例如图像可以遮住一块,但是语音和文本有上下文的关联,不能随便遮住一部分。
因此对不同的模态,Data2vec也采取了相应的符合不同数据特征的掩码方式。
这样标准化之后,Data2vec还针对不同的下游任务做了一些微调,其中语音和文本的模型已经在GitHub上放出,视觉模型也正在路上:
我们来看看这统一的模型性能怎么样。
性能表现
虽然Data2vec三手齐抓,但是性能也没落下。
在计算机视觉方面,在IN1K上预训练情况如下表所示:
和一些其他模型相比,Data2vec精度表现最好。而且Data2vec只训练了800个epochs,而表中的MAE,MaskFeat训练了1600个epochs。
看柱状图则更为明显,蓝色为Data2vec:
在语音处理方面,在LS-960上预训练结果如下:
可以看出,Data2vec在不同的标签数据量下单词错误率都比wav2vec2.0和HuBERT要低。
而在文本处理上,Data2vec采用了和BERT相同的训练设置,训练集为Books Corpus和英文维基百科数据。
在GLUE评估中,Data2vec在自然语言推理(MNLI、QNLI、RTE),句子相似性(MRPC、QQP、STS-B),语法(CoLA)和情绪分析(SST)等指标中和RoBERTa不相上下。
其中Baseline这一条是RoBERTa在和BERT类似的设置中的训练结果:
总体评分也差不多:
这么看来,统一的模型架构真的可以有效地用于多种任务模式。
虽然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
Meta AI发布图音文大一统模型Data2vec,4天在GitHub揽1.5万星相关推荐
- Meta AI发布具有200种语言的高品质机器翻译人工智能模型
Meta AI所打造的NLLB-200是第一个能对200种不同语言提供先进质量翻译的单一人工智能(AI)模型. Meta AI也建立了全新的评价数据集FLORES-200,并衡量NLLB-200在每种 ...
- Meta AI 发布 data2vec!统一模态的新里程碑!
文 | ZenMoore 编 | 小轶 如果让大家举一个最成功的自监督模型的例子,尤其对于各位 NLPer,肯定毫不犹豫地祭出我大 BERT. 想当年 BERT 打了一个名叫 MLM (Masked ...
- 【通知】有三AI发布150页深度学习开源框架指导手册与GitHub项目,欢迎加入我们的开源团队...
之前我们公众号输出了很多深度学习开源框架相关的内容,今天整理成技术手册给大家分享以方便阅读,下面是详细信息. 开源框架背景 现如今开源生态非常完善,深度学习相关的开源框架众多,光是为人熟知的就有caf ...
- darknet框架_【通知】有三AI发布150页深度学习开源框架指导手册与GitHub项目,欢迎加入我们的开源团队...
之前我们公众号输出了很多深度学习开源框架相关的内容,今天整理成技术手册给大家分享以方便阅读,下面是详细信息. 开源框架背景 现如今开源生态非常完善,深度学习相关的开源框架众多,光是为人熟知的就有caf ...
- 快让想象力跟上AI的发展!Meta AI 推出文本生成视频模型 #Make-A-Video
AI 已经能让 "一句话" 诞生出巨大的生产力了. # 文本-图像.文本-3D模型.文本-视频...... Meta AI 发布了文本生成视频模型 Make-A-Video # 未 ...
- 重磅!Meta AI开源OPT-175B:1750亿参数大模型
点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 本文转载自:机器之心 | 编辑:陈萍 OPT-175B,使人工智能更加开放和可复制. Meta AI 在昨 ...
- AI大一统:阿里达摩院发布多任务、多模态统一模型OFA
引言:我们正处于一个"多模多任务大统一"的AI时代. 老铁们,上图是对动漫<海贼王>所选框的文字描述(Zero-shot测试),而这一"炫酷"的效果 ...
- 谷歌浏览器中文版_中国科学家设计超薄指尖传感器,厚度不到A4纸五分之一 / 谷歌发布地图时光机:百年前,你家街道啥样?/ AI看图说话首超人类...
关注我们了解计算机视觉最新动态 ! 动态先览 1 中国科学家设计超薄指尖传感器,厚度 不到A4纸五分之一 2 谷歌发布地图「时光机」:100年前, 你家街道长啥样? 3 仿真环境跟车2分钟,就让自动驾 ...
- Meta AI西雅图研究负责人Luke Zettlemoyer|万亿参数后,大模型会持续增长吗?
导读:预训练语言模型正变得越来越大,在惊讶于其强大能力的同时,人们也不禁要问:语言模型的规模在未来会持续增长吗? Meta AI西雅图研究负责人,华盛顿大学计算机科学与工程学院Paul G. Alle ...
最新文章
- executing an update/delete query问题
- boost源码剖析之:多重回调机制signal(下)
- Android 高仿微信6.0主界面 带你玩转切换图标变色
- 基于YARN集群构建运行PySpark Application
- 用户控件与自定义控件
- java 删除指定文件夹和下面所有文件_JAVA语言基础
- Camtasia混音教程
- 360n7手机断网没信号_你的手机信号为什么总比别人差?原因没那么简单
- delphi10.2.1下载地址
- 9、杂项:qxdm报错0xc000007b无法启动
- 全球最强免费电子书下载网址
- DIY制作修改替换PPC手机短信背景图片的技巧
- 有趣的ASCII-Art
- 单肩包属于什么类目_包包属于什么商标类目
- 自学Java年薪20万的学习方法,大佬教你如何去学
- java微信分享朋友圈_java怎么实现微信分享到朋友圈功能
- 使用superset完成mysql数据库或者hive数据库的数据可视化
- 智慧化工厂安全风险生产预警系统软件
- (转)Unity MRTK语音输入
- nginx小知识 :通过nginx代理转发接口地址
热门文章
- 主机ping不通ubuntu虚拟机的解决方法
- 避免HttpClient的”javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated”异常
- 创建零填充JavaScript数组的最有效方法?
- 在Django中,“子弹”是什么?
- SpringBoot系列: RestTemplate 快速入门
- 【Atcoder】ARC083 D - Restoring Road Network
- ios framework 开发 之 实战二 ,成功
- 用BadgeView在actionbar menu上显示提醒信息
- nessus国内用户不让免费使用了!
- [C] zintrin.h: 智能引入intrinsic函数 V1.01版。改进对Mac OS X的支持,增加INTRIN_WORDSIZE宏...