目录
data2vec 2.0
实验部分
首页 科技周边 人工智能 多模态再次统一!Meta发布自监督算法data2vec 2.0:训练效率最高提升16倍!

多模态再次统一!Meta发布自监督算法data2vec 2.0:训练效率最高提升16倍!

Apr 14, 2023 pm 04:10 PM
框架 ai

近几年人工智能领域的突破大多由自监督学习推动,比如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 相同的精度。

图片


以上是多模态再次统一!Meta发布自监督算法data2vec 2.0:训练效率最高提升16倍!的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

char数组在C语言中如何使用 char数组在C语言中如何使用 Apr 03, 2025 pm 03:24 PM

char 数组在 C 语言中存储字符序列,声明为 char array_name[size]。访问元素通过下标运算符,元素以空终止符 '\0' 结尾,用于表示字符串终点。C 语言提供多种字符串操作函数,如 strlen()、strcpy()、strcat() 和 strcmp()。

避免 C语言 switch 语句中 default 引起的错误 避免 C语言 switch 语句中 default 引起的错误 Apr 03, 2025 pm 03:45 PM

避免 C 语言 switch 语句中 default 引发的错误的策略:使用枚举代替常量,限制 case 语句的值为枚举的有效成员。在最后一个 case 语句中使用 fallthrough,让程序继续执行以下代码。对于没有 fallthrough 的 switch 语句,始终添加一个 default 语句进行错误处理或提供默认行为。

C语言 sum 的作用是什么? C语言 sum 的作用是什么? Apr 03, 2025 pm 02:21 PM

C语言中没有内置求和函数,需自行编写。可通过遍历数组并累加元素实现求和:循环版本:使用for循环和数组长度计算求和。指针版本:使用指针指向数组元素,通过自增指针遍历高效求和。动态分配数组版本:动态分配数组并自行管理内存,确保释放已分配内存以防止内存泄漏。

switch case 语句中 default 的重要性 (C语言) switch case 语句中 default 的重要性 (C语言) Apr 03, 2025 pm 03:57 PM

default 语句在 switch case 语句中至关重要,因为它提供了一个默认处理路径,确保在变量值不匹配任何 case 语句时执行一个代码块。这可防止意外行为或错误,并增强代码的健壮性。

c语言函数返回值的类型有哪些 c语言函数返回值的类型汇总 c语言函数返回值的类型有哪些 c语言函数返回值的类型汇总 Apr 03, 2025 pm 11:18 PM

C语言函数返回值类型包括int、float、double、char、void以及指针类型。int用于返回整数,float和double用于返回浮点数,char返回字符。void表示函数不返回任何值。指针类型返回内存地址,注意避免内存泄漏。结构体或联合体可返回多个相关数据。

c语言函数的概念 c语言函数的概念 Apr 03, 2025 pm 10:09 PM

C语言函数是可重复利用的代码块,它接收输入,执行操作,返回结果,可将代码模块化提高可复用性,降低复杂度。函数内部机制包含参数传递、函数执行、返回值,整个过程涉及优化如函数内联。编写好的函数遵循单一职责原则、参数数量少、命名规范、错误处理。指针与函数结合能实现更强大的功能,如修改外部变量值。函数指针将函数作为参数传递或存储地址,用于实现动态调用函数。理解函数特性和技巧是编写高效、可维护、易理解的C语言程序的关键。

如何理解 C 语言中的 !x? 如何理解 C 语言中的 !x? Apr 03, 2025 pm 02:33 PM

!x 的理解!x 是 C 语言中的逻辑非运算符,对 x 的值进行布尔取反,即真变假,假变真。但要注意,C 语言中真假由数值而非布尔类型表示,非零视为真,只有 0 才视为假。因此,!x 对负数的处理与正数相同,都视为真。

C语言中 !x 的常见应用场景是什么? C语言中 !x 的常见应用场景是什么? Apr 03, 2025 pm 02:42 PM

C语言中 !x 的用途不局限于取反:逻辑判断:判断是否为 0,比 x == 0 更简洁。控制程序流程或表示状态:利用 0 和非 0 表示真假。位运算:快速取反所有位(慎用)。

See all articles