基于 Ernie-3.0 CAIL2019 法研杯要素识别多标签分类任务
相关项目:
本项目链接:基于Ernie-3.0 CAIL2019法研杯要素识别多标签分类任务本项目将介绍如何基于 PaddleNLP 对 ERNIE 3.0 预训练模型微调完成法律文本多标签分类预测。本项目主要包括“什么是多标签文本分类预测”、“ERNIE 3.0 模型”、“如何使用 ERNIE 3.0 中文预训练模型进行法律文本多标签分类预测”等三个部分。
1. 什么是多标签文本分类预测
文本多标签分类是自然语言处理(NLP)中常见的文本分类任务,文本多标签分类在各种现实场景中具有广泛的适用性,例如商品分类、网页标签、新闻标注、蛋白质功能分类、电影分类、语义场景分类等。多标签数据集中样本用来自 n_classes
个可能类别的m
个标签类别标记,其中m
的取值在 0 到n_classes
之间,这些类别具有不相互排斥的属性。通常,我们将每个样本的标签用 One-hot 的形式表示,正类用 1 表示,负类用 0 表示。例如,数据集中样本可能标签是 A、B 和 C 的多标签分类问题,标签为[1,0,1]代表存在标签 A 和 C 而标签 B 不存在的样本。
近年来,随着司法改革的全面推进,“以公开为原则,不公开为例外”的政策逐步确立,大量包含了案件事实及其适用法律条文信息的裁判文书逐渐在互联网上公开,海量的数据使自然语言处理技术的应用成为可能。法律条文的组织呈树形层次结构,现实中的案情错综复杂,同一案件可能适用多项法律条文,涉及数罪并罚,需要多标签模型充分学习标签之间的关联性,对文本进行分类预测。
2. ERNIE 3.0 模型
ERNIE 3.0 首次在百亿级预训练模型中引入大规模知识图谱,提出了海量无监督文本与大规模知识图谱的平行预训练方法(Universal Knowledge-Text Prediction),通过将知识图谱挖掘算法得到五千万知识图谱三元组与 4TB 大规模语料同时输入到预训练模型中进行联合掩码训练,促进了结构化知识和无结构文本之间的信息共享,大幅提升了模型对于知识的记忆和推理能力。
ERNIE 3.0 框架分为两层。第一层是通用语义表示网络,该网络学习数据中的基础和通用的知识。第二层是任务语义表示网络,该网络基于通用语义表示,学习任务相关的知识。在学习过程中,任务语义表示网络只学习对应类别的预训练任务,而通用语义表示网络会学习所有的预训练任务。
<font size=2><center>ERNIE 3.0 模型框架</center></font>
3. ERNIE 3.0 中文预训练模型进行法律文本多标签分类预测
3.1 环境准备
AI Studio 平台默认安装了 Paddle 和 PaddleNLP,并定期更新版本。 如需手动更新 Paddle,可参考飞桨安装说明,安装相应环境下最新版飞桨框架。使用如下命令确保安装最新版 PaddleNLP:
3.2 加载法律文本多标签数据
本数据集(2019年法研杯要素识别任务)来自于“中国裁判文书网”公开的法律文书,每条训练数据由一份法律文书的案情描述片段构成,其中每个句子都被标记了对应的类别标签,数据集一共包含 20 个标签,标签代表含义如下:
数据集示例:
使用本地文件创建数据集,自定义read_custom_data()
函数读取数据文件,传入load_dataset()
创建数据集,返回数据类型为 MapDataset。更多数据集自定方法详见如何自定义数据集。
3.3 加载中文 ERNIE 3.0 预训练模型和分词器
PaddleNLP 中 Auto 模块(包括 AutoModel, AutoTokenizer 及各种下游任务类)提供了方便易用的接口,无需指定模型类别,即可调用不同网络结构的预训练模型。PaddleNLP 的预训练模型可以很容易地通过 from_pretrained()方法加载,Transformer预训练模型汇总包含了 40 多个主流预训练模型,500 多个模型权重。
AutoModelForSequenceClassification 可用于多标签分类,通过预训练模型获取输入文本的表示,之后将文本表示进行分类。PaddleNLP 已经实现了 ERNIE 3.0 预训练模型,可以通过一行代码实现 ERNIE 3.0 预训练模型和分词器的加载。
3.4 基于预训练模型的数据处理
Dataset
中通常为原始数据,需要经过一定的数据处理并进行采样组 batch。
通过
Dataset
的map
函数,使用分词器将数据集从原始文本处理成模型的输入。定义
paddle.io.BatchSampler
和collate_fn
构建paddle.io.DataLoader
。
实际训练中,根据显存大小调整批大小batch_size
和文本最大长度max_seq_length
。
3.5 数据训练和评估
定义训练所需的优化器、损失函数、评价指标等,就可以开始进行预模型微调任务。
模型训练过程中会输出如下日志:
3.6 多标签分类预测结果预测
加载微调好的模型参数进行情感分析预测,并保存预测结果
法律多标签文本预测结果示例:
4.总结
相关项目:
Paddlenlp之UIE模型实战实体抽取任务【打车数据、快递单】
Paddlenlp之UIE分类模型【以情感倾向分析新闻分类为例】含智能标注方案)
应用实践:分类模型大集成者[PaddleHub、Finetune、prompt]
PaddleNLP基于ERNIR3.0文本分类以中医疗搜索检索词意图分类(KUAKE-QIC)为例【多分类(单标签)】
基于ERNIR3.0文本分类:CAIL2018-SMALL罪名预测为例(多标签)
本项目主要讲解了法律任务,和对性能指标的简单探讨,可以看到实际更多问题是关于多标签分类的。
China AI & Law Challenge (CAIL)中国法研杯司法人工智能挑战赛本项目数据集:https://github.com/china-ai-law-challenge/CAIL2019/tree/master/%E8%A6%81%E7%B4%A0%E8%AF%86%E5%88%AB
数据集自取:
欢迎大家关注我的主页:https://aistudio.baidu.com/aistudio/usercenter
评论