首页 > 编程知识 正文

免费开源php(中文语音识别 开源)

时间:2023-05-06 02:42:00 阅读:102264 作者:4748

文字|可靠的向日葵

编译| sqdls

去年11月,由NLP大神曼宁和谷歌制作的ELECTRA发布,迅速在整个NLP圈走红。ELECTRA-small模型的参数仅为BERT基模型的1/10,但其性能仍可与BERT、RoBERTa等模型相媲美。

不久前,谷歌终于打开了ELECTRA的源头,发布了预训练模型,这对缺乏强大计算能力的大学和企业来说是一大福音。

但是它的预训练模式只是针对英语,并不是像BERT那样的多语言版本。对于其他语言(如汉语)的研究者来说,是非常遗憾的。

为了解决这个问题,今天,哈尔滨工业大学IFFT联合实验室(HFL)发布了基于ELECTRA开源代码的ELECTRA预训练模型中文版。

1、ELECTRA

ELECTRA预训练模型的作者是斯坦福SAIL实验室的Manning组和Google Brain研究团队,他们最早出现在2019年的北京致远大会上。作为一种新的文本预训练模型,ELECTRA新颖的设计思想、较少的计算资源消耗和较少的参数迅速吸引了大量关注。尤其是去年11月收到并发布《ICLR 2020》论文后,在NLPtwdjmg引起了不小的轰动。

论文链接:

https://openreview.net/forum?id=r1xMH1BtvB

报纸上的这张照片可以解释一切:

注:右图为左图放大后的结果。

如上图所示,ELECTRA模型可以用更少的训练步骤得到比其他预训练模型更好的结果。同样,当模型大小、数据和计算相同时,ELECTRA的性能明显优于基于MLM的方法,如BERT和XLNet。

因此,与现有的生成语言表示学习方法相比,ELECTRA具有更高的计算效率和更少的参数(ELECTRA-small的参数数量仅为BERT-base的1/10)。

ELECTRA基于其新颖的预训练框架可以获得如此出色的结果,该框架包括两个部分:生成器和鉴别器。

生成器:是一个小MLM,它在[MASK]的位置预测原始单词。生成器将用于用输入文本替换一些单词。判别器:判断输入句子中的每个单词是否被替换,即使用替换标记检测(RTD)预训练任务来替换BERT的原始掩蔽语言模型(MLM)。请注意,这里没有使用下一句预测(NSP)任务。

在预训练阶段之后,只有鉴别器被用作微调下游任务的基础模型。

换句话说,作者将CV领域的GAN应用于自然语言处理。

值得注意的是,虽然培训目标与GAN类似,但仍有一些关键区别。首先,如果生成器碰巧生成了正确的令牌,那么令牌被视为“真实”而不是“伪造”;因此,该模型可以适度改善下游任务的结果。在先的;在前的

是,生成器使用最大似然来训练,而不是通过对抗性训练来欺骗判别器。

2、中文ELECTRA预训练模型

目前已有的开源 ELECTRA 预训练模型只是英文的预训练模型。但世界上还有许多其他语言(例如中文)研究的学者,他们需要与其相应的语言预训练模型。

然而,谷歌官方除了BERT、RoBERTa等预训练模型有多语言版本外,其他例如XLNet、T5都没有相应的多语言版本,只有英文。其中原因在于相比于只在英语上做预训练,多语言的预训练需要收集相应语料,需要调配不同语言语料的比例等,比较麻烦。因此大概率上,ELECTRA 也不会出中文版或多语言版的预训练模型。

而另一方面,作为中文社区,我们国人自己对如何做中文的预训练则更为了解,我们自己来做相应的预训练可能会比谷歌官方来做会更好。

由哈工大讯飞联合实验室资深级研究员、研究主管yzt所带领的团队之前曾做过系列类似的开源工作,即基于开源预训练代码,加上中文数据集来训练中文版预训练模型。例如中文版的系列BERT模型、中文版XLNet等,在GitHub上开源后反响不错,在许多中文评测任务中也曾有不少队伍使用他们开源的预训练模型进行改进。

开源地址:https://github.com/ymcui/Chinese-BERT-wwm

开源地址:https://github.com/ymcui/Chinese-XLNet

在谷歌开源ELECTRA之后,yzt等人再次推出中文版 ELECTRA。

训练数据集,仍和之前训练BERT系列模型所用数据是一致的,主要来自大规模中文维基及通用文本(中文网页爬取和清洗),总token达到5.4B。词表方面沿用了谷歌原版BERT的WordPiece词表,包含21128个token。

在本次的开源中,yzt等人只发布了ELECTRA-base 和ELECTRA-small 两个模型。据yzt表示,large版本由于参数较多,超参设置比较困难,因此模型发布会相应延后。

已发布的两个版本各自训练了大约7天时间,由于small版本的参数仅为base版本的1/10,在训练中,yzt等人将其batch调为1024(是base的4倍)。具体细节和超参如下(未提及的参数保持默认):

ELECTRA-base:12层,隐层768,12个注意力头,学习率2e-4,batch256,最大长度512,训练1M步ELECTRA-small:12层,隐层256,4个注意力头,学习率5e-4,batch1024,最大长度512,训练1M步

ELECTRA-small 仅 46 M。

在效果上,yzt等人将之与他们之前做的系列中文版预训练模型进行了效果对比。

对比模型包括:ELECTRA-small/base、BERT-base、BERT-wwm、BERT-wwm-ext、RoBERTa-wwm-ext、RBT3。

对比任务有六个:

CMRC 2018 (Cui et al., 2019):篇章片段抽取型阅读理解(简体中文)DRCD (Shao et al., 2018):篇章片段抽取型阅读理解(繁体中文)XNLI (Conneau et al., 2018):自然语言推断(三分类)ChnSentiCorp:情感分析(二分类)LCQMC (Liu et al., 2018):句对匹配(二分类)BQ Corpus (Chen et al., 2018):句对匹配(二分类)

在下游任务精调中,ELECTRA-small/base模型的学习率设为原论文默认的3e-4和1e-4。值得注意的是,这里的精调并没有针对任何任务进行参数精调。为了保证结果的可靠性,对于同一模型,他们使用不同随机种子训练10遍,汇报模型性能的最大值和平均值(括号内为平均值)。

效果如下:

简体中文阅读理解:CMRC 2018(评价指标为:EM / F1)

繁体中文阅读理解:DRCD(评价指标为:EM / F1)

自然语言推断:XNLI(评价指标为:Accuracy)

情感分析:ChnSentiCorp(评价指标为:Accuracy)

句对分类:LCQMC(评价指标为:Accuracy)

句对分类:BQ Corpus( 评价指标为:Accuracy)

从以上的结果可以看出,对于ELECTRA-small模型,其效果在多数任务上显著超过3层RoBERTa效果(RBT3),甚至是接近BERT-base的效果,而在参数量上只有BERT-base模型的1/10。对于ELECTRA-base模型来说,在多数任务上超过了BERT-base甚至是RoBERTa-wwm-ext的效果。

其具体使用,可以查看Github项目:

https://github.com/ymcui/Chinese-ELECTRA

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。