中文预训练模型厄尼该如何使用

介绍

本篇文章为大家展示了中文预训练模型厄尼该如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

最近在工作上处理的都是中文语料,也尝试了一些最近放出来的预训练模型(厄尼,BERT-CHINESE WWM-BERT-CHINESE),比对之后还是觉得百度的厄尼效果会比较好,而且使用十分方便,所以今天就详细地记录一下。希望大家也都能在自己的项目上取得进展~

<强> 1 <强>, <强>一眼厄尼

<强> 中文预训练模型厄尼该如何使用“> </强> </p> <p>关于厄尼模型本身的话这篇不会做过多介绍,网上的介绍文档也很多了,相信从事NLP的同学们肯定都非常熟悉啦。</p> <p> <强> 2 </强> <强>,</强> <强>厄尼</强> <强>源码浅尝</强> </p> <p>好的,当我们了解了厄尼模型的大体框架及原理之后,接下来就可以深入理解一下具体的实现啦.ERNIE是基于百度自己的深度学习框架飞桨(PaddlePaddle)搭建的,(百度推这个飞桨的力度还是蛮大的,还开放了免费算力),大家平时炼丹用的更多的可能是TensorFlow和Pytorch,这里关于运行厄尼的飞桨环境安装可以参考快速安装指南(https://www.paddlepaddle.org.cn/#快速启动)。</p> <p> <强> 2.1关于输入</强> </p> <p>模型预训练的输入是基于百科类,资讯类,论坛对话类数据构造具有上下文关系的句子对数据,利用百度内部词法分析工具对句对数据进行字,词,实体等不同粒度的切分,然后基于,标记。py中的CharTokenizer对切分后的数据进行标记化处理,得到明文的牌序列及切分边界,然后将明文数据根据词典配置/词汇。txt映射为id数据,在训练过程中,根据切分边界对连续的令牌进行随机面具操作。经过上述预处理之后的输入样例为:</p> <p> 1 1048 492 1333 1361 1051 326 2508 1803 1827 98 164 133 2777 2696 983 121 4 19 9 634 551 844 85 1093 2476 1895 33 983 121 23 7 24 46 660 12043 1263 6 328 33 121 126 398 276 315 5 63 44 35 25 12043 2; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55;1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1;0 </p> <p>一共有五个部分组成,每个部分之间用分号;隔开:</p> <ul类= <李>

token_ids:输入句子对的表示,

<李>

sentence_type_ids: 0或者1表示牌属于哪一个句子。

<李>

position_ids:绝对位置编码

<李>

seg_labels:表示分词边界信息,0表示词首,1表示非词首,1为占位符

<李>

next_sentence_label:表示该句子对是否存在上下句的关系(0为无1为有)

<强> reader.pretraining.py <强>中的 <强> parse_line <强>函数强。

中文预训练模型厄尼该如何使用“> </p> <p> <强> 2.2关于面具策略,批处理。py </强> </p> <p>我们知道,相较于伯特,厄尼最大的改进就是<强>中文</强> <强> + </强> <强>短语</强> <强>/</强> <强>实体掩码</>强(这个短语掩码的操作后来也被伯特采用训练出了WWM-BERT),所以我们首先来看看厄尼的掩码机制是怎么样实现的。</p> <p> <img src=中文预训练模型厄尼该如何使用