RoBERTa中文预训练模型,你离中文任务的「SOTA」只差个它

社会新闻 阅读(1227)

原标题:RoBERTa中文预训练模型,你只比中国任务的“SOTA”少一个

参与:思源,一鸣

有了中文文本和实现模型,我们还缺少什么?对于中文预训练语言模型来说,提高效果也更糟糕。

对于中文预训练的语言模型,最常见的是BERT,这并不是说它最好用,但最方便。昨天,国内开发商Brightmart开辟了最新的RoBERTa中文预培训语言模型,开发社区推出了新的中文模式。

项目地址:

根据该项目,中文预训练模型是一个24层基础版本,使用10G文本进行数据培训,包括新闻,社区问答和百科全书数据。

型号下载地址:

作者还计划进行下一次预训练工作,并逐步开放更大的RoBERTa中文预训练模型。

GitHub项目介绍了开源程序如下:

9月8日,使用30G文件训练的24层RoBERTa模型(roberta_l24_zh)

12月RoBERTa模型(roberta_l12_zh),使用30G文件训练,9月8日

6层RoBERTa模型(roberta_l6_zh),使用30G文件进行培训,9月8日

PyTorch版本的模型(roberta_l6_zh_pytorch),9月8日

30G中文语料库,训练前格式,直接培训(bert,xlent,gpt2),9月8日

测试集测试和效果比较,9月14日

该项目似乎将在几天内完成,但值得期待。那么常用的中文预训练语言模型是什么?

什么是中文预训练语言模型?

目前,调用预训练语言模型的最主流项目是拥抱面部的变换器,其中包含几乎所有主流的预训练语言模型,使用起来非常方便。机器之心还使用了这个库,它提供了一组来自Tokenize的API,将字符ID转换为隐藏矢量表示的最终计算,以便我们可以快速将它们嵌入到各种NLP系统中。

但在使用它的过程中,我们会发现很少有中文预训练模型,只有BERT-Base提供的模型。虽然它的表现还不错,但由于XLNet和其他英语培训模式更好,我们仍然希望拥有这些资源。

值得注意的是,pytorch-transformers还支持导入TensorFlow预训练模型和PyTorch预训练模型,这两种模型都可以导入到库中。

清华预训BERT

两个月前,清华大学开设了一个名为OpenCLaP的项目,这是一个多域开源中文预训练语言模型库。它提供了几个中文预训练BERT,并指出它们可以直接从拥抱面的pytorch-transformers项目调用。

OpenCLaP项目地址:

图例:OpenCLaP的预训练语言模型目前已发布。

该机器的核心还试图在火炬变压器项目中引入清华预先培训的百度百科全书BERT。我们发现这没问题,工作正常。

此外,百度还开源了预训练语言模型ERNIE,但目前只有ERNIE 1.0 Base提供了中文预训练模型,目前ERNIE 2.0仅提供英语预训练模型。当然,如果你想使用ERNIE,我们需要了解PaddlePaddle框架并通过ernie_encoder.py提取句子和Token的隐藏向量表示。

现在,或许还需要增加一个新的中文预训练语言模型,中文RoBERTa。

中国人RoBERTa

作者根据RoBERTa论文的主要精神对该模型进行了培训,并做了一些改进和调整:

数据生成方法和任务改进:取消下一个句子预测,并从文档中连续获取数据(参见:模型输入格式和下一句子预测,DOC-SENTENCES);

更大更多样化的数据:30G中文培训,包括3亿句话,100亿字(即令牌)。感谢新闻,社区讨论,多个百科全书,保罗万象,涵盖了数十万个主题;

培训时间较长:共培训近20万,共培训数据近16亿;在云TPU v3-256上培训24小时,相当于TPU v3-8(128G内存)培训一个月;

较大批次:使用超大(8k)批量批量;

调整优化器参数;

使用全字蒙版(全字蒙版)。

图例:整个单词Mask和其他文本处理方法的比较。

作者表示,在这个项目中,没有实施动态掩模。

RoBERTa:站在BERT的肩膀上

说到RoBERTa模型,一些读者可能会觉得有点奇怪。但实际上,RoBERTa模型更多地基于BERT的改进版本。这是BERT在多个层面上的重大改进。

RoBERTa的模型尺寸,功率和数据明显优于BERT:

较大的模型参数大小(根据RoBERTa论文提供的培训时间,使用1024 V 100 GPU培训模型1天)

更多培训数据(包括160GB纯文本,包括CC-NEWS等)

此外,如下所示,RoBERTa在训练方法方面有很多改进。

1.动态面具

BERT依赖于随机掩码和预测令牌。原始BERT实现在数据预处理期间执行掩码,从而产生静态掩码。 RoBERTa使用动态掩码:每次将序列输入模型时,都会生成一个新的掩码模式。这样,在连续输入大量数据的过程中,模型将逐渐适应不同的掩码策略并学习不同的语言表示。

2.更大批次

RoBERTa在培训过程中使用了更大的批量。研究人员尝试了从256到8000的批次。

3.文字编码

字节对编码(BPE)是字符级和字级表征的混合,支持处理自然语言语料库中的许多常见词汇。

最初的BERT实现使用大小为30K的字符级BPE词汇表,并在使用启发式分段规则预处理输入后学习。 Facebook研究人员正在考虑使用包含50K子字单元的更大字节级BPE词汇表来训练BERT,而无需采用这种方法,而无需对输入进行任何额外的预处理或分词。

RoBERTa的实际效果

虽然没有比较汉语预训练模式的效果,但是robertta的作者比较了roberta(large)、bert(large)和xlnet对不同任务的效果。

如您所见,与其他预先训练的语言模型相比,roberta在多个任务上实现了sota。

这篇文章是机器报告的核心,请联系公众号进行授权。返回搜狐查看更多信息

责任编辑:

2019-09-05 12: 08

源:已同步的机器核心

原题:罗伯塔中国预训模式,你只比“索塔”的中国任务少了一个

参与:思源、叶明

有了中文文本和实现模式,我们还缺少什么?而汉语预习语言模式对提高预习效果也不利。

对于汉语中的预训练语言模型,最常见的是bert,这并不是说它工作得最好,而是说它最方便。昨天,国内开发商brightmart推出了最新的roberta中文预训语言模式,开发社区也推出了新的中文模式。

项目地址:

根据该项目,中文预培训模式是一个24层的基础版本,使用10G文本进行数据培训,包括新闻、社区问答和百科全书数据。

型号下载地址:

作者还计划进行下一次预训练工作,并逐步开放更大的RoBERTa中文预训练模型。

GitHub项目介绍了开源程序如下:

9月8日,使用30G文件训练的24层RoBERTa模型(roberta_l24_zh)

12月RoBERTa模型(roberta_l12_zh),使用30G文件训练,9月8日

9月8日,使用30G文件训练的6层RoBERTa模型(roberta_l6_zh)

PyTorch版本的模型(roberta_l6_zh_pytorch),9月8日

30G中文语料库,训练前格式,直接培训(bert,xlent,gpt2),9月8日

测试集测试和性能比较,9月14日

这个项目似乎不会在几天内完善,但它已经非常值得期待。那么我们通常在中文预训练语言模型中使用什么?

什么是中文预训练语言模型?

调用预训练语言模型的最受欢迎的项目是拥抱面的pytorch变换器。它包含几乎所有预先训练的语言模型,并且非常易于使用。该库也被机器的核心使用。它将标记转换为字符ID,最后计算隐藏的矢量表示。它提供了一整套API,我们可以快速嵌入到各种NLP系统中。

但是,在使用过程中,我们会发现很少有中文预训练模型,只有BERT-Base提供的模型。虽然它的表现还不错,但由于XLNet等英语培训模式效果更好,我们仍然更喜欢这些资源。

值得注意的是,pytorch-transformers还支持导入TensorFlow预训练模型和PyTorch预训练模型,这两种模型都可以导入到库中。

清华大学预训BERT

两个月前,清华大学开设了一个名为OpenCLaP的项目,这是一个多域开源中文预训练语言模型库。它提供了几个中文预训练BERT,并指出它们可以直接从拥抱面的pytorch-transformers项目调用。

OpenCLaP项目地址:

图例:OpenCLaP的预训练语言模型目前已发布。

该机器的核心还试图在火炬变压器项目中引入清华预先培训的百度百科全书BERT。我们发现这没问题,工作正常。

此外,百度还开源了预训练语言模型ERNIE,但目前只有ERNIE 1.0 Base提供了中文预训练模型,目前ERNIE 2.0仅提供英语预训练模型。当然,如果你想使用ERNIE,我们需要了解PaddlePaddle框架并通过ernie_encoder.py提取句子和Token的隐藏向量表示。

现在,或许还需要增加一个新的中文预训练语言模型,中文RoBERTa。

中国人RoBERTa

作者根据RoBERTa论文的主要精神对该模型进行了培训,并做了一些改进和调整:

数据生成方法和任务改进:取消下一个句子预测,并从文档中连续获取数据(参见:模型输入格式和下一句子预测,DOC-SENTENCES);

更大更多样化的数据:30G中文培训,包括3亿句话,100亿字(即令牌)。感谢新闻,社区讨论,多个百科全书,保罗万象,涵盖了数十万个主题;

培训时间较长:共培训近20万,共培训数据近16亿;在云TPU v3-256上培训24小时,相当于TPU v3-8(128G内存)培训一个月;

较大批次:使用超大(8k)批量批量;

调整优化器参数;

使用全字蒙版(全字蒙版)。

图例:整个单词Mask和其他文本处理方法的比较。

作者表示,在这个项目中,没有实施动态掩模。

RoBERTa:站在BERT的肩膀上

说到RoBERTa模型,一些读者可能会觉得有点奇怪。但实际上,RoBERTa模型更多地基于BERT的改进版本。这是BERT在多个层面上的重大改进。

RoBERTa的模型尺寸,功率和数据明显优于BERT:

较大的模型参数大小(根据RoBERTa论文提供的培训时间,使用1024 V 100 GPU培训模型1天)

更多培训数据(包括160GB纯文本,包括CC-NEWS等)

此外,如下所示,RoBERTa在训练方法方面有很多改进。

1.动态面具

BERT依赖于随机掩码和预测令牌。原始BERT实现在数据预处理期间执行掩码,从而产生静态掩码。 RoBERTa使用动态掩码:每次将序列输入模型时,都会生成一个新的掩码模式。这样,在连续输入大量数据的过程中,模型将逐渐适应不同的掩码策略并学习不同的语言表示。

2.更大批次

RoBERTa在培训过程中使用了大量批次。研究人员尝试了从256到8000的批次。

3.文本编码

字节对编码(BPE)是字符级和字级表示的混合,支持处理自然语言语料库中的许多常用单词。

原始BERT实现使用大小为30K的字符级BPE词汇表,这是在使用启发式分词规则预处理输入之后获取的。 Facebook研究人员正在考虑使用更大的字节级BPE词汇表来训练BERT,而不是使用这种方法,该词汇表包含50K子字词单元,无需任何额外的预处理或输入分段。

RoBERTa的实际效果

虽然没有比较中国预训练模型的效果,但RoBERTTa的作者比较了RoBERTA(大),BERT(大)和XLNET在不同任务中的表现。

因此,与其他预训练语言模型相比,RoBERTa在多个任务上实施SOTA。

这是机器报告的核心。请联系此公共号码以获得重现的授权。回到搜狐看看更多

责任编辑:

声明:本文仅代表作者本人。搜狐是一个信息发布平台。搜狐只提供信息存储空间服务。

型号

中文

语言

掩模

令牌

阅读()