PERT

基于 BERT 的预训练语言模型
授权协议 Apache-2.0
开发语言 Python
所属分类 神经网络/人工智能、 自然语言处理
软件类型 开源软件
地区 国产
投 递 者 梁明辉
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

在自然语言处理领域中,预训练语言模型(Pre-trained Language Models,PLMs)已成为非常重要的基础技术。在近两年,哈工大讯飞联合实验室发布了多种中文预训练模型资源以及相关配套工具。作为相关工作的延续,在本项目中,我们提出了一种基于乱序语言模型的预训练模型(PERT),在不引入掩码标记[MASK]的情况下自监督地学习文本语义信息。PERT在部分中英文NLU任务上获得性能提升,但也在部分任务上效果较差,请酌情使用。目前提供了中文和英文的PERT模型,包含两种模型大小(base、large)。

原版下载地址

这里主要提供TensorFlow 1.15版本的模型权重。如需PyTorch或者TensorFlow2版本的模型,请看下一小节。

开源版本仅包含Transformer部分的权重,可直接用于下游任务精调,或者其他预训练模型二次预训练的初始权重,更多说明见FAQ。

  • PERT-large:24-layer, 1024-hidden, 16-heads, 330M parameters
  • PERT-base 12-layer, 768-hidden, 12-heads, 110M parameters
模型简称 语种 语料 Google下载 百度盘下载
Chinese-PERT-large 中文 EXT数据[1] TensorFlow TensorFlow(密码:e9hs)
Chinese-PERT-base 中文 EXT数据[1] TensorFlow TensorFlow(密码:rcsw)
English-PERT-large (uncased) 英文 WikiBooks[2] TensorFlow TensorFlow(密码:wxwi)
English-PERT-base (uncased) 英文 WikiBooks[2] TensorFlow TensorFlow(密码:8jgq)

[1] EXT数据包括:中文维基百科,其他百科、新闻、问答等数据,总词数达5.4B,约占用20G磁盘空间,与MacBERT相同。
[2] Wikipedia + BookCorpus

以TensorFlow版Chinese-PERT-base为例,下载完毕后对zip文件进行解压得到:

chinese_pert_base_L-12_H-768_A-12.zip
    |- pert_model.ckpt      # 模型权重
    |- pert_model.meta      # 模型meta信息
    |- pert_model.index     # 模型index信息
    |- pert_config.json     # 模型参数
    |- vocab.txt            # 词表(与谷歌原版一致)

其中bert_config.jsonvocab.txt与谷歌原版BERT-base, Chinese完全一致(英文版与BERT-uncased版本一致)。

PyTorch以及TensorFlow 2版本

通过��transformers模型库可以下载TensorFlow (v2)和PyTorch版本模型。

下载方法:点击任意需要下载的模型 → 选择"Files and versions"选项卡 → 下载对应的模型文件。

模型简称 模型文件大小 transformers模型库地址
Chinese-PERT-large 1.2G https://huggingface.co/hfl/chinese-pert-large
Chinese-PERT-base 0.4G https://huggingface.co/hfl/chinese-pert-base
Chinese-PERT-large-MRC 1.2G https://huggingface.co/hfl/chinese-pert-large-mrc
Chinese-PERT-base-MRC 0.4G https://huggingface.co/hfl/chinese-pert-base-mrc
English-PERT-large 1.2G https://huggingface.co/hfl/english-pert-large
English-PERT-base 0.4G https://huggingface.co/hfl/english-pert-base

快速加载

由于PERT主体部分仍然是BERT结构,用户可以使用transformers库轻松调用PERT模型。

注意:本目录中的所有模型均使用BertTokenizer以及BertModel加载(MRC模型使用BertForQuestionAnswering)。

from transformers import BertTokenizer, BertModel

tokenizer = BertTokenizer.from_pretrained("MODEL_NAME")
model = BertModel.from_pretrained("MODEL_NAME")

其中MODEL_NAME对应列表如下:

模型名 MODEL_NAME
Chinese-PERT-large hfl/chinese-pert-large
Chinese-PERT-base hfl/chinese-pert-base
Chinese-PERT-large-MRC hfl/chinese-pert-large-mrc
Chinese-PERT-base-MRC hfl/chinese-pert-base-mrc
English-PERT-large hfl/english-pert-large
English-PERT-base hfl/english-pert-base

基线系统效果

以下仅列举部分实验结果。详细结果和分析见论文。实验结果表格中,括号外为最大值,括号内为平均值。

中文任务

在以下10个任务上进行了效果测试。

阅读理解

文本分类

命名实体识别

 

文本纠错(乱序)

除了上述任务之外,我们还在文本纠错中的乱序任务上进行了测试,效果如下。

 

英文任务

在以下6个任务上进行了效果测试。

english-nlu

 

  • 题目:根据下面任务流程图和下表给出的项目历时估算值,采用PERT方法估算,求出项目在14.57天内完成的概率 任务\估计值 最乐观 最可能 最悲观 A 2 3 6 B 4 6 8 C 3 4 6 EA=(2+34+6)/6=20/6、EB=(4+64+8)/6、EC=(3+4*4+6)/6 ∂ = (悲观值-乐观值)/6 ∂A=4/6、∂B=4/6、∂C=3/6 求总和 E=EA+EB+EC=13

  • gantt图又叫甘特图。 进度是按时间顺序计划活动的一个列表,我们称之为Gantt图,它有以下几个关键的成分: 1.横跨图顶部排列的是日历表。 2.最左边的一列包含了每项任务的标识号(ID)。 3.左边第二列是要做的任务的名称。 4.在图表当中,任务条表示各项任务计划的开始和结束时间。 5.在表的左下方是项目名称、进度表的作者和制订此进度的原始日期。 Gantt图是展现项目中各个任务进展状况的一种

  • pert2型热力管又称热力管网,pert2型热力管是指从一些供热中心向建筑传输热力的供热管道,它必须具有强力的抗腐蚀、抗渗漏、抗热等性能,因为如果出现渗漏的话,那么会造成的后果是可大可小的,pert2型热力管道是一种理想的高温液体或者高温气体运输管道,所以热力管道的好坏和经济效益和能耗是有很大挂钩的,并且在生活中的这些pert2型供热管一般是埋于地底之下,长年累月要经受各种腐蚀等等,为了避免发生事

  • PE-RT 耐热聚乙烯 标准:GB/T 28799  ISO22391 PE-RT I (I型)- 耐压较低     PE-RT II (II型)- 耐压较高 PE-RT I型多为中密度→PE80级    II型多为高密度→PE100级 PE-RT II型管优点 •具有优良的耐热性能•具有较高的强度,高于PP-R,与PE-X相当•具有优异的耐低温冲击性能•具有很好的耐开裂性能•可以热熔对接焊接以及

 相关资料
  • ASR语言模型在线训练 分词 文本清洗 语言模型目前不支持英文,阿拉伯数字,标点符号以及特殊字符,所以需要将训练文本中英文剔除,阿拉伯数字转换成相应的中文表示,删除标点符号和特殊字符。 文本分词 一般先用结巴或清华分词器分词,再人工矫正,分词的原则是它需要具有独立的实体意义。比如,刘德华, 张学友,这些人名;还有一些地名,张家港,黑龙江等;专有名词,中国,迪士尼等.对于我们需要训练的文本,要保证分

  • 本文向大家介绍基于pytorch 预训练的词向量用法详解,包括了基于pytorch 预训练的词向量用法详解的使用技巧和注意事项,需要的朋友参考一下 如何在pytorch中使用word2vec训练好的词向量 这个方法是在pytorch中将词向量和词对应起来的一个方法. 一般情况下,如果我们直接使用下面的这种: 这种情况下, 因为没有指定训练好的词向量, 所以embedding会帮咱们生成一个随机的词

  • 我试图设计和训练一个卷积神经网络来识别图像中的圆形细胞。我在完整图像的“切口”上训练它,这些图像中间要么有一个圆(正训练样本),要么没有(负训练样本)。 中间有一个圆圈的图像示例(热图颜色不稳定,图像均为灰度):http://imgur.com/a/6q8LZ 我希望网络输出是一个二进制位图,而不仅仅是对两种类型的输入图像(圆形或不在中间)进行分类,如果输入图像中没有圆形,则该位图是一个统一的值(

  • 我希望使用AWS Sagemaker工作流部署一个预训练的模型,用于实时行人和/或车辆检测,我特别想使用Sagemaker Neo编译模型并将其部署在边缘。我想从他们的模型动物园中使用OpenVino的预构建模型之一,但是当我下载模型时,它已经是他们自己的优化器的中间表示(IR)格式。 > 如果没有,是否有任何免费的预训练模型(使用任何流行的框架,如pytorch,tenorflow,ONXX等)

  • 在之前的描述中,我们通常把机器学习模型和训练算法当作黑箱子来处理。如果你实践过前几章的一些示例,你惊奇的发现你可以优化回归系统,改进数字图像的分类器,你甚至可以零基础搭建一个垃圾邮件的分类器,但是你却对它们内部的工作流程一无所知。事实上,许多场合你都不需要知道这些黑箱子的内部有什么,干了什么。 然而,如果你对其内部的工作流程有一定了解的话,当面对一个机器学习任务时候,这些理论可以帮助你快速的找到恰

  • 在之前的描述中,我们通常把机器学习模型和训练算法当作黑箱子来处理。如果你实践过前几章的一些示例,你惊奇的发现你可以优化回归系统,改进数字图像的分类器,你甚至可以零基础搭建一个垃圾邮件的分类器,但是你却对它们内部的工作流程一无所知。事实上,许多场合你都不需要知道这些黑箱子的内部有什么,干了什么。 然而,如果你对其内部的工作流程有一定了解的话,当面对一个机器学习任务时候,这些理论可以帮助你快速的找到恰

  • 本文向大家介绍Keras使用ImageNet上预训练的模型方式,包括了Keras使用ImageNet上预训练的模型方式的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说了,大家还是直接看代码吧! 在以上代码中,我们首先import各种模型对应的module,然后load模型,并用ImageNet的参数初始化模型的参数。 如果不想使用ImageNet上预训练到的权重初始话模型,可以将各语句的中

  • 我已经在AWS SageMaker上使用内置算法语义分割训练了一个模型。这个名为model.tar.gz的训练模型存储在S3上。所以我想从S3下载这个文件,然后使用它在我的本地电脑上进行推断,而不使用AWS SageMaker。 以下是三个文件: > :包括网络架构、数据输入和训练的参数。请参阅语义分割超参数。 我的代码: 错误: