资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

准备工作

数据准备

在文心中,基于ERNIE的模型都不需要用户自己分词和生成词表文件,非ERNIE的模型需要用户自己提前切好词,词之间以空格分隔,并生成词表文件。切词和词表生成可以使用数据预处理小工具进行处理。

文心中的所有数据集、包含词表文件、label_map文件等都必须为为utf-8格式,如果你的数据是其他格式,请使用数据预处理小工具进行格式转换。

文心中的训练集、测试集、验证集和预测集分别存放在./data目录下的train_data、test_data、dev_data和predict_data文件夹下,词表文件存放在./dict目录下。

在序列标注任务中,训练集、测试集和验证集的数据格式相同,数据分为两列,列与列之间用\t进行分隔。第一列为文本,第二列为标签。

  • 实体识别

    • 训练集数据示例:数据分为两列,列与列之间用\t进行分隔。第一列为文本,第二列为标签。

      海 钓 比 赛 地 点 在 厦 门 与 金 门 之 间 的 海 域 。	O O O O O O O B-LOC I-LOC O B-LOC I-LOC O O O O O O
      周 恩 来 总 理 说 , 那 就 送 一 株 万 古 常 青 的 友 谊 红 杉 吧 !	B-PER I-PER I-PER O O O O O O O O O O O O O O O O O O O O
      沙 特 队 教 练 佩 雷 拉 : 两 支 队 都 想 胜 , 因 此 都 作 出 了 最 大 的 努 力 。	B-ORG I-ORG I-ORG O O B-PER I-PER I-PER O O O O O O O O O O O O O O O O O O O O
    • 词表文件:词表分为两列,第一列为词,第二列为id(从0开始),列与列之间用\t进行分隔,一般是vocab.txt文件。文心的词表中,[PAD]、[CLS]、[SEP]、[MASK]、[UNK]这5个词是必须要有的,若用户自备词表,需保证这5个词是存在的。

      [PAD]	0
      [CLS]	1
      [SEP]	2
      [MASK]	3
      ,	4
      的	5
      、	6
      一	7
      人	8
      有	9
      是	10
    • 标签词表文件:标签词表分为两列,第一列为词,第二列为id(从0开始),列与列之间用\t进行分隔,一般是vocab_label_map.txt文件。标签顺序需要满足对应的标签体系,比如下面是BIO的标签体系,同一类别的标签B要排在I前面,O排在整个标签词表的最后。
     B-PER   0
     I-PER  1
     B-ORG  2
     I-ORG  3
     B-LOC  4
     I-LOC  5
     O  6

网络(模型)选择

文心预置的可用于文本分类的模型源文件在wenxin/models/目录下,各个模型的特点如下所示:

网络名称(py文件的类名) 简介 支持类型 支持预训练模型 备注
CrfSeqLabel 基于条件随机场的序列标注模型 序列标注 能够考虑上下文的关联信息,效果较好
ErnieFcSeqLabel 基于ERNIE和FC的序列标注模型,本质是对每个token做分类,分类的类别总数是标签的数目 序列标注 ERNIE2.0-Base、ERNIE2.0-Large 忽略了标签之间的关系
ErnieCrfSeqLabel 基于ERNIE和CRF的序列标注模型 序列标注 ERNIE2.0-Base、ERNIE2.0-Large 能够考虑上下文的关联信息,效果较好
ErnieFcSeqLabelPro 基于ERNIE和FC的序列标注模型,本质是对每个token做分类,分类的类别总数是标签的数目;内部集成了KL散度和交叉熵损失以及对抗策略等; 序列标注 ERNIE2.0-Base、ERNIE2.0-Large

ERNIE预训练模型选择

文心提供的ERNIE预训练模型的参数文件和配置文件在./tasks/model_files/目录下,config目录下是所提供的所有ERNIE预训练模型的配置文件,dict目录下是所有ERNIR预训练模型对应的词表文件,ERNIE预训练模型的参数文件都存储在文心的仓库中,由对应的download_xx.sh文件是下载得到。以下是各个ERNIE预训练模型的介绍。

模型名称 简介 备注
ERNIE2.0-Base ERNIE 2.0 是基于持续学习的语义理解预训练框架,使用多任务学习增量式构建预训练任务。ERNIE 2.0 中,新构建的预训练任务类型可以无缝的加入训练框架,持续的进行语义理解学习。 通过新增的实体预测、句子因果关系判断、文章句子结构重建等语义任务,ERNIE 2.0 语义理解预训练模型从训练数据中获取了词法、句法、语义等多个维度的自然语言信息,极大地增强了通用语义表示能力。
ERNIE2.0-Large 同ERNIE2.0-Large

以上ERNIE预训练模型为专业版开发套件提供的模型,如您想尝试更多丰富的预训练语言模型,您可关注文心NLP开发套件旗舰版

模型评估指标选择

序列标注任务常用的指标有:Acc(准确率)、Precision(精确率)、Recall(召回率)、F1,这几个指标与常见的分类、匹配等任务的计算有所区别,详见常用指标解析中的Chunk指标计算。 文心中上述已有的网络(模型)代码中已经默认预置了Acc(准确率)、Precision(精确率)、Recall(召回率)、F1计算。

运行环境选择

  • 非ERNIE网络,优先考虑CPU机器
  • ERNIE网络优先考虑GPU机器,显存大小最好在10G以上。
上一篇
适用场景
下一篇
开始训练与预测