思源 一鸣报道

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

有了中文文本和实现模型后,我们还差个什么?还差了中文预训练语言模型提升效果呀。

对于中文领域的预训练语言模型,我们最常用的就是 BERT 了,这并不是说它的效果最好,而是最为方便。昨天,国内开发者 brightmart 开源了最新的 RoBERTa 中文预训练语言模型,开发社区又有新的中文模型可以用了。

项目地址:https://github.com/brightmart/roberta_zh

项目表示,该中文预训练模型为 24 层的 base 版,它使用了 10G 文本进行数据训练,包含新闻、社区问答、百科数据等。

模型下载地址:https://storage.googleapis.com/roberta_zh/roberta_model/roeberta_zh_L-24_H-768_A-12.zip

作者同时计划进行下一步的预训练工作,并逐渐开源更大的 RoBERTa 中文预训练模型。

GitHub 项目介绍开源计划如下:

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

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

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

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

  5. 30G 中文语料,预训练格式,可直接训练(bert、xlent、gpt2),9 月 8 日

  6. 测试集测试和效果对比,9 月 14 日

看来该项目还要过几天才会完善,但它已经非常值得期待了。那么一般我们常用的中文预训练语言模型又有什么呢?

中文预训练语言模型都有什么

目前调用预训练语言模型最主流的项目就是 huggingface 的 pytorch-transformers 了,它几乎包含所有主流的预训练语言模型,并且使用起来非常便捷。机器之心也曾使用过这个库,它从 Tokenize、转化为字符的 ID 到最终计算出隐藏向量表征,提供了整套 API,我们可以快速地将其嵌入到各种 NLP 系统中。

但是在使用过程中,我们会发现中文的预训练模型非常少,只有 BERT-Base 提供的那种。虽然它的性能也不差,但既然 XLNet 等用英文训练的模型效果更好,那么我们还是更希望有这些资源的。

值得注意的是,pytorch-transformers 同时支持导入 TensorFlow 预训练的模型与 PyTorch 预训练的模型,它们俩都可以导入到库中。

清华的预训练 BERT

早两个月,清华大学开源了一个名为 OpenCLaP 的项目,即多领域开源中文预训练语言模型库。它提供了几种中文预训练 BERT,并表示它们可以直接通过 huggingface 的 pytorch-transformers 项目调用。

OpenCLaP 项目地址:https://github.com/thunlp/OpenCLaP

图注:OpenCLaP 目前发布的预训练语言模型

机器之心也尝试过在 pytorch-transformers 项目中导入清华预训练的百度百科 BERT,我们发现这也是没问题的,它能正常工作。

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

现在,也许常用的中文预训练语言模型又要再新增一项,中文 RoBERTa。

中文 RoBERTa

作者按照 RoBERTa 论文主要精神训练了这一模型,并进行了多项改进和调整:

  1. 数据生成方式和任务改进:取消下一个句子预测,并且数据连续从一个文档中获得 (见:Model Input Format and Next Sentence Prediction,DOC-SENTENCES);

  2. 更大更多样性的数据:使用 30G 中文训练,包含 3 亿个句子,100 亿个字 (即 token)。由于新闻、社区讨论、多个百科,保罗万象,覆盖数十万个主题;

  3. 训练更久:总共训练了近 20 万,总共见过近 16 亿个训练数据 (instance); 在 Cloud TPU v3-256 上训练了 24 小时,相当于在 TPU v3-8(128G 显存) 上需要训练一个月;

  4. 更大批次:使用了超大(8k)的批次 batch size;

  5. 调整优化器参数

  6. 使用全词 mask(whole word mask)。

图注:全词 Mask 和其他文本处理方法对比。

作者表示,在本项目中,没有实现 dynamic mask。

RoBERTa:站在 BERT 的肩膀上

说起 RoBERTa 模型,一些读者可能还会感到有些陌生。但是实际来看,RoBERTa 模型更多的是基于 BERT 的一种改进版本。是 BERT 在多个层面上的重大改进。

RoBERTa 在模型规模、算力和数据上,主要比 BERT 提升了以下几点:

  • 更大的模型参数量(从 RoBERTa 论文提供的训练时间来看,模型使用 1024 块 V 100 GPU 训练了 1 天的时间)

  • 更多的训练数据(包括:CC-NEWS 等在内的 160GB 纯文本)

此外如下所示,RoBERTa 还有很多训练方法上的改进。

1. 动态掩码

BERT 依赖随机掩码和预测 token。原版的 BERT 实现在数据预处理期间执行一次掩码,得到一个静态掩码。而 RoBERTa 使用了动态掩码:每次向模型输入一个序列时都会生成新的掩码模式。这样,在大量数据不断输入的过程中,模型会逐渐适应不同的掩码策略,学习不同的语言表征。

2. 更大批次

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

3. 文本编码

Byte-Pair Encoding(BPE)是字符级和词级别表征的混合,支持处理自然语言语料库中的众多常见词汇。

原版的 BERT 实现使用字符级别的 BPE 词汇,大小为 30K,是在利用启发式分词规则对输入进行预处理之后学得的。Facebook 研究者没有采用这种方式,而是考虑用更大的 byte 级别 BPE 词汇表来训练 BERT,这一词汇表包含 50K 的 subword 单元,且没有对输入作任何额外的预处理或分词。

RoBERTa 的实际效果

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

结果可以看到,RoBERTa 相比于其他预训练语言模型,在多个任务上实现了 SOTA。

工程预训练模型自然语言处理RoBERTaBERT
6
相关数据
参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

语料库技术

语料库一词在语言学上意指大量的文本,通常经过整理,具有既定格式与标记;事实上,语料库英文 "text corpus" 的涵意即为"body of text"。

批次技术

模型训练的一次迭代(即一次梯度更新)中使用的样本集。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

百度机构

百度(纳斯达克:BIDU),全球最大的中文搜索引擎、最大的中文网站。1999年底,身在美国硅谷的李彦宏看到了中国互联网及中文搜索引擎服务的巨大发展潜力,抱着技术改变世界的梦想,他毅然辞掉硅谷的高薪工作,携搜索引擎专利技术,于 2000年1月1日在中关村创建了百度公司。 “百度”二字,来自于八百年前南宋词人辛弃疾的一句词:众里寻他千百度。这句话描述了词人对理想的执着追求。 百度拥有数万名研发工程师,这是中国乃至全球最为优秀的技术团队。这支队伍掌握着世界上最为先进的搜索引擎技术,使百度成为中国掌握世界尖端科学核心技术的中国高科技企业,也使中国成为美国、俄罗斯、和韩国之外,全球仅有的4个拥有搜索引擎核心技术的国家之一。

http://home.baidu.com/
机器之心机构

机器之心,成立于2014年,是国内最具影响力、最专业、唯一用于国际品牌的人工智能信息服务与产业服务平台。目前机器之心已经建立起涵盖媒体、数据、活动、研究及咨询、线下物理空间于一体的业务体系,为各类人工智能从业者提供综合信息服务和产业服务。

https://www.jiqizhixin.com/
推荐文章
暂无评论
暂无评论~