2023年!自然语言处理(NLP)10 大预训练模型_nlp最新模型-程序员宅基地

技术标签: 深度学习  人工智能  自然语言处理  

来源: AINLPer 公众号(每日干货分享!!)
编辑: ShuYini
校稿: ShuYini
时间: 2022-10-23

引言

语言模型是构建NLP应用程序的关键。现在人们普遍相信基于预训练模型来构建NLP语言模型是切实有效的方法。随着疫情阴霾的散去,相信NLP技术会继续渗透到众多行业中。在此过程中,肯定有很多同学会用到NLP预训练模型,为此作者整理了目前2023年NLP的十大预训练模型及论文。

BERT模型


 BERT模型(Bidirectional Encoder Representations from Transformers)是由谷歌在2018年研究发布的一款NLP预训练模型,一经发布在当年的火热程度不亚于目前ChatGPT。

 它采用独特的神经网络架构Transformer(现在看来已经不新鲜了)进行语言理解。该模型适用于语音识别(ASR)、文本到语音(TTS)以及序列到序列(Sequence To Sequence)的任何任务。利用BERT模型它可以有效的应对11个NLP任务,其中Google搜索就是采用BERT模型的最好例子,Google的其它应用案例,例如Google文档、Google邮件辅助编写等都应用了BERT模型的文本预测能力。

论文:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
https://arxiv.org/pdf/1810.04805.pdf

GPT-2模型


 GPT-2模型(Generative Pre-trained Transformer ,即生成式预训练Transformer)是OpenAI于2019年2月发布的开源模型,并于同年年11月发布了GPT-2语言模型的完整版本(有15亿个参数)。

 GPT-2在文本翻译、QA问答、文章总结、文本生成等NLP任务上可以达到人类的水平。但是但在生成长文章时,会变得重复或无意义。GPT-2是一个通用模型,针对上述任务,它并且没有接受过专门的训练,这得益于它独特的泛化延申能力,即可以在任意序列中准确合成下一项。GPT-2是OpenAI 2018年GPT模型的“直接放大”,其参数计数和训练数据集的大小都增加了10倍。GPT的模型也是基于Transformer建立的,它使用Attention来取代之前RNN和CNN的架构,进而让模型有选择地关注它预测的最相关的输入文本片段。

论文:Language Models are Unsupervised Multitask Learners
https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf

GPT-3模型


 GPT-3模型(Generative Pre-trained Transformer ,即生成式预训练Transformer)是一个自回归语言模型,它由OpenAI于2020年发布,它使用深度学习来生成类似人类的文本。即给定一个作为提示的初始文本,它会继续生成后面的文本。GPT-3生成的文本质量非常高,以至于很难确定它是否是由人类编写的,这既有好处也有风险。(目前爆火的chatGPT就是基于GPT-3.5训练得到的)

 GPT-3架构只存在解码器的Transformer网络,具有2048个Token长的上下文以及1750亿个参数,需要存储800GB。采用生成性预训练对模型进行训练;经过训练,它可以根据前一个Token预测下一个Token是什么。该模型在零样本和小样本学习任务上表现出了强大的学习能力。

论文:GPT3
https://arxiv.org/pdf/2005.14165.pdf

RoBERTa


 RoBERTa模型(Robustly Optimized BERT Pretraining Approach)是由Meta AI在2019年7月份发布的,它基于BERT模型优化得到的。该模型通过学习和预测故意掩膜的文本部分,在BERT的语言掩蔽策略上建立它的语言模型,并使用更大的小批量和学习率进行训练。与BERT相比,这使得RoBERTa可以改进掩码语言建模目标,并产生更好的下游任务性能。
 RoBERTa是一个预训练模型,它在GLUE或通用语言理解评估上表现出色。
论文:RoBERTa: A Robustly Optimized BERT Pretraining Approach
https://arxiv.org/pdf/1907.11692.pdf

ALBERT


 ALBERT模型(A Little Bert)是BERT模型的精简版本,由谷歌在2020年初发布。该模型主要用于解决模型规模增加导致训练时间变慢的问题。该语言模型采用了因子嵌入和跨层参数共享两种参数简化方法,即在Factorized embedding中,隐藏层和词汇嵌入是分开测量的。然而,跨层参数共享可防止参数数量随着网络的增长而增加。
 ALBERT的成功证明了识别模型的各个方面的重要性,这些方面会产生强大的上下文表示。通过将改进工作集中在模型架构的这些方面,可以大大提高模型在各种NLP任务上的效率和性能。
论文:ALBERT
https://arxiv.org/pdf/1909.11942.pdf

XLNet


 XLNet是一个类似BERT的模型,而不是完全不同的模型。总之,XLNet是一种通用的自回归预训练方法。它是CMU和Google Brain团队在2019年6月份发布的模型,XLNet在20个任务上超过了BERT的表现,并在18个任务上取得了当前最佳效果(state-of-the-art),包括机器问答、自然语言推断、情感分析和文档排序。

 BERT模型基于去噪自编码器的预训练模型可以很好地建模双向语境信息,性能优于基于自回归语言模型的预训练方法。然而,由于需要mask一部分输入,BERT忽略了被mask位置之间的依赖关系,因此出现预训练和微调效果的差异(pretrain-finetune discrepancy),基于以上问题,一种泛化的自回归预训练模型XLNet应运而生。
论文:XLNet
https://arxiv.org/pdf/1906.08237.pdf

T5


 T5模型(Transfer Text-to-Text Transformer,即文本到文本传输转换)是Google在2020年7月份发布的一款强大的统一模型,它将所有NLP任务都转化成文本到文本任务,由此可以方便地评估在阅读理解、摘要生成、文本分类等一系列NLP任务上,不同的模型结构,预训练目标函数,无标签数据集等的影响。

 谷歌提出了一种统一的NLP迁移学习方法,开创了该领域的新局面。该模型使用网络抓取数据进行训练,在几个NLP任务上得到了最先进的结果。
论文:T5
https://arxiv.org/pdf/1910.10683.pdf

ELECTRA


$emsp;ELECTRA模型(Efficiently Learning an Encoder that Classifies Token Replacements Accurately),该模型以1/4的算力就达到了RoBERTa的效果。该模型借鉴了对抗网络的思想,共训练两个神经网络模型,其中生成器Generator,随机屏蔽原始文本中的单词,进行预测学习;判别器Discriminator判定单词是否与原始文本一致,如果一致则为真,如果不同则为假。采用联合训练的方法,但与对抗网络不同的时,参数不在生成器和判别器中反向传播,只共享embedding。embedding大小和判别器的隐层一致。
论文:ELECTRA
https://openreview.net/pdf?id=r1xMH1BtvB

DeBERTa


DeBERTa模型(Decoding-enhanced BERT with Disentangled Attention),是微软在2021年初发布。目前该模型其实已经迭代了三个版本。DeBERTa 模型使用了两种新技术(注意力解耦机制、增强的掩码解码器)改进了 BERT和RoBERTa模型,同时还引入了一种新的微调方法(虚拟对抗训练方法)以提高模型的泛化能力。结果表明以上技术和方法,提高了模型预训练的效率以及自然语言理解(NLU)和自然语言生成(NLG)下游任务的性能。
论文:DeBERTa
https://arxiv.org/pdf/2006.03654.pdf

StructBERT


StructBERT模型是一个预训练的语言模型,由阿里巴巴达摩院2019年提出的NLP预训练模型。它是基于BERT模型的改进,与其最大区别在于:StructBERT增加了两个预训练任务和目标,可以最大限度地利用单词和句子的顺序,分别在单词和句子级别利用语言结构。因此,新模型适用于下游任务所需的不同水平的语言理解。

论文:StructBERT
https://arxiv.org/pdf/1908.04577.pdf

推荐阅读

[1] EMNLP2022 | 带有实体内存(Entity Memory)的统一编解码框架 (美国圣母大学)

[2] NeurIPS2022 | 训练缺少数据?你还有“零样本学习(zero-shot Learning)”(香槟分校)

[3] 一文了解EMNLP国际顶会 && 历年EMNLP论文下载 && 含EMNLP2022

[4]【历年NeurIPS论文下载】一文带你看懂NeurIPS国际顶会(内含NeurIPS2022)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yinizhilianlove/article/details/130019360

智能推荐

手把手教你使用EasyRecovery轻松解决U盘数据丢失问题-程序员宅基地

文章浏览阅读319次,点赞8次,收藏8次。但需要注意的是,恢复数据的成功率和恢复的数据质量都与数据丢失的原因、U盘的状况等因素有关。因此,在使用EasyRecovery恢复数据时,我们需要注意保护好U盘,并尽可能在数据丢失后立即进行恢复操作,以保证最大化地恢复数据。在恢复数据的过程中,EasyRecovery会显示恢复进度和恢复状态,我们需要等待恢复完成后再进行下一步操作。恢复完成后,我们可以在指定的文件夹中找到恢复的数据。接下来,将需要恢复数据的U盘插入电脑,并在EasyRecovery界面中选择需要恢复数据的U盘。

Vue3.x使用alova的配置教程详解_vue alova-程序员宅基地

文章浏览阅读610次。alova 是一个轻量级的请求策略库,支持开发者使用声明式实现例如请求共享、分页请求、表单提交、断点续传等各种较复杂的请求,让开发者使用非常少量的代码就可以实现高可用性和高流畅性的请求功能,这意味着,你再也不需要自己绞尽脑汁编写请求优化代码,再也不需要自己维护请求数据和相关状态,你只需要选择并使用请求模块,设置参数后,alova 帮你搞定。从而提升开发效率、应用运行效率,还能降低服务端压力。_vue alova

Android 桌面悬浮框-程序员宅基地

文章浏览阅读138次。最近看好多程序都弄了一个桌面的悬浮框,用来监视内存,或者是显示歌词什么的,自己手动实现一个,代码如下:[code="java"]@Override public void onStart(Intent intent, int startId) { super.onStart(intent, startId); //通过W..._android桌面悬浮文本

AI嘻哈写歌词软件总结-程序员宅基地

文章浏览阅读1k次。(一)软件功能实现两个功能:根据主题生成歌词和辅助写歌词根据用户给定的主题生成一段歌词,歌词表达要流畅,语句通顺,押韵提供相关的词语和句子供用户选择,使用户在帮助下完成歌词创作核心模型主题生成首句模型-相似度计算 + 基于SIF加权的word2vec模型首句生成整段歌词模型-基本的Seq2Seq模型和双向Decoder + beam search的改进模型(二) 核心..._ai写rap歌词

基于STM32单片机多功能万年历控制系统设计_stm32万年历按键切换-程序员宅基地

文章浏览阅读334次。毕业设计 32单片机 万年历 温湿度采集 课程设计_stm32万年历按键切换

从本地或者网络读取图片,并转换为Bitmap图片_java 读取网页图像到bitmap-程序员宅基地

文章浏览阅读6.6k次。在做android项目时,我们经常需要从本地或者网络读取图片,并转换为Bitmap图片,以便使用,下面是读取本地图片并转换的方法:Java代码 /** * 得到本地或者网络上的bitmap url - 网络或者本地图片的绝对路径,比如: * * A.网络路径: url="http://blog.foreverlov_java 读取网页图像到bitmap

随便推点

【OpenCV】摄像机标定+畸变校正_opencv相机畸变标定软件-程序员宅基地

文章浏览阅读7.7w次,点赞73次,收藏590次。通过MATLAB和OpenCV对摄像机进行标定,附程序!_opencv相机畸变标定软件

Snipaste的使用_snipaste使用-程序员宅基地

文章浏览阅读7.3k次,点赞5次,收藏11次。Snipaste的使用_snipaste使用

使用python下载加密的流媒体m3u8视频文件,获取电影资源-程序员宅基地

文章浏览阅读273次,点赞3次,收藏8次。Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

在Qt中使用CreateProcess打开命令行并执行命令_qt.createqprocess()-程序员宅基地

文章浏览阅读351次。在Qt应用程序中,执行命令行命令并获取输出结果可以使用QProcess类。现在,我们可以在Qt应用程序中调用这个函数来执行命令行命令并获取输出结果。现在,我们可以在Qt应用程序中调用这个函数来执行命令行命令并获取输出结果。在上面的示例中,我们将命令设置为"dir",这将列出当前目录的内容。在上面的示例中,我们将命令设置为"dir",这将列出当前目录的内容。这样,当我们点击按钮时,程序将执行命令并将输出结果显示在文本编辑器中。这样,当我们点击按钮时,程序将执行命令并将输出结果显示在文本编辑器中。_qt.createqprocess()

java logutil_Java日志组件1---Jdk自带Logger(java.util.logging.Logger)-程序员宅基地

文章浏览阅读216次。最近在看日志的一些东西,发现利用JDK自带的log也可以简单的实现日志的输出,将日志写入文件的过程记录如下:1、新建LogUtil.Java(里面写了几个静态方法,为log设置等级、添加log控制台handler、添加log文件输出handler)packagecn.darkranger.log.logger;importjava.io.IOException;importjava.text.S..._logutil.java

此时不应有 \scala\bin\..\lib\jline-2.14.5.jar_c:\users\dell>scala 此时不应有 \scala\bin\..\lib\jline--程序员宅基地

文章浏览阅读221次。scala安装时,此时不应有 \scala\bin…\lib\jline-2.14.5.jar那是因为安装Scala时,默认安装到Program Files (x86)或者Program Files下,但是这俩个文件夹命名存在空格,这是从新安装,选择没有空格存在的文件夹下面即可。谢谢..._c:\users\dell>scala 此时不应有 \scala\bin\..\lib\jline-2.14.5.jar

推荐文章

热门文章

相关标签