“中国法研杯”司法人工智能挑战赛:基于UTC的多标签/层次分类小样本文本应用,Macro F1提升13%+
相关文章推荐:
【资料图】
本项目主要完成基于UTC的多标签应用,更多部署细节请参考推荐文章。本项目提供了小样本场景下文本多标签分类的解决方案,在 UTC的基础上利用提示学习取得比微调更好的分类效果,充分利用标注信息。
项目以及码源见文末项目背景:近年来,大量包含了案件事实及其适用法律条文信息的裁判文书逐渐在互联网上公开,海量的数据使自然语言处理技术的应用成为可能。现实中的案情错综复杂,案情描述通常涉及多个重要事实,以CAIL2019数据集中婚姻家庭领域的案情要素抽取为例:
"2013年11月28日原、被告离婚时自愿达成协议,婚生子张某乙由被告李某某抚养,本院以(2013)宝渭法民初字第01848号民事调解书对该协议内容予以了确认,该协议具有法律效力,对原、被告双方均有约束力。"
该案件中涉及婚后有子女、限制行为能力子女抚养两项要素。接下来我们将讲解在小样本场景下如何利用多标签模型,对输入文本中进行案情重要要素抽取。
应用部署界面展示
1.UTC(Universal Text Classification介绍本项目提供基于通用文本分类 UTC(Universal Text Classification) 模型微调的文本分类端到端应用方案,打通数据标注-模型训练-模型调优-预测部署全流程,可快速实现文本分类产品落地。
文本分类是一种重要的自然语言处理任务,它可以帮助我们将大量的文本数据进行有效的分类和归纳。实际上,在日常生活中,我们也经常会用到文本分类技术。例如,我们可以使用文本分类来对新闻报道进行分类,对电子邮件进行分类,对社交媒体上的评论进行情感分析等等。但是,文本分类也面临着许多挑战。其中最重要的挑战之一是数据稀缺。由于文本数据往往非常庞大,因此获取足够的训练数据可能非常困难。此外,不同的文本分类任务也可能面临着领域多变和任务多样等挑战。为了应对这些挑战,PaddleNLP推出了一项零样本文本分类应用UTC。该应用通过统一语义匹配方式USM(Unified Semantic Matching)来将标签和文本的语义匹配能力进行统一建模。这种方法可以帮助我们更好地理解文本数据,并从中提取出有用的特征信息。
UTC具有低资源迁移能力,可以支持通用分类、评论情感分析、语义相似度计算、蕴含推理、多项式阅读理解等多种“泛分类”任务。这使得开发者可以更加轻松高效地实现多任务文本分类数据标注、训练、调优和上线,从而降低文本分类技术门槛。
总之,文本分类是一项重要的自然语言处理任务,它可以帮助我们更好地理解和归纳文本数据。尽管它面临着许多挑战,但是通过使用PaddleNLP的零样本文本分类应用UTC,开发者们可以简单高效实现多任务文本分类数据标注、训练、调优、上线,降低文本分类落地技术门槛。
1.1 分类落地面临难度分类任务看似简单,然而在产业级文本分类落地实践中,面临着诸多挑战:
任务多样:单标签、多标签、层次标签、大规模标签等不同的文本分类任务,需要开发不同的分类模型,模型架构往往特化于具体任务,难以使用统一形式建模;
数据稀缺:部分领域数据稀缺,难以获取,且领域专业性使得数据标注门槛高;
标签迁移:不同领域的标签多样,并且迁移难度大,尤其不同领域间的标签知识很难迁移。
1.2 UTC亮点1.2.1 多任务统一建模在传统技术方案中,针对不同的分类任务需要构建多个分类模型,模型需单独训练且数据和知识不共享。而在UTC方案下,单个模型能解决所有分类需求,包括但不限于单标签分类、多标签分类、层次标签分类、大规模事件标签检测、蕴含推理、语义相似度计算等,降低了开发成本和机器成本。
1.2.2 零样本分类和小样本迁移能力强UTC通过大规模多任务预训练后,可以适配不同的行业领域,不同的分类标签,仅标注了几条样本,分类效果就取得大幅提升,大大降低标注门槛和成本。
在医疗、金融、法律等领域中,无需训练数据的零样本情况下UTC效果平均可达到70%+(如下表所示),标注少样本也可带来显著的效果提升:每个标签仅仅标注1条样本后,平均提升了10个点!也就是说,即使在某些场景下表现欠佳,人工标几个样本,丢给模型后就会有大幅的效果提升。
1.3 UTC技术思路UTC基于百度最新提出的统一语义匹配框架USM(Unified Semantic Matching)[1],将分类任务统一建模为标签与文本之间的匹配任务,对不同标签的分类任务进行统一建模。具体地说:
为了实现任务架构统一,UTC设计了标签与文本之间的词对连接操作(Label–>CLS-Token Linking),这使得模型能够适应不同领域和任务的标签信息,并按需求进行分类,从而实现了开放域场景下的通用文本分类。例如,对于事件检测任务,可将一系列事件标签拼接为[L]上映[L]夺冠[L]下架 ,然后与原文本一起作为整体输入到UTC中,UTC将不同标签标识符[L]与[CLS]进行匹配,可对不同标签类型的分类任务统一建模,直接上图: 为了实现通用能力共享,让不同领域间的标签知识跨域迁移,UTC构建了统一的异质监督学习方法进行多任务预训练,使不同领域任务具备良好的零/少样本迁移性能。统一的异质监督学习方法主要包括三种不同的监督信号:直接监督:分类任务直接相关的数据集,如情感分类、新闻分类、意图识别等。间接监督:分类任务间接相关的数据集,如选项式阅读理解、问题-文章匹配等。远程监督:标签知识库或层级标题与文本对齐后弱标注数据。更多内容参考论文见文末链接 or fork一下项目论文已上传
2.文本分类任务Label Studio教程2.1 Label Studio安装以下标注示例用到的环境配置:
Python 3.8+label-studio == 1.7.2在终端(terminal)使用pip安装label-studio:
pip install label-studio==1.7.2
安装完成后,运行以下命令行:
label-studio start
在浏览器打开http://localhost:8080/,输入用户名和密码登录,开始使用label-studio进行标注。
2.2 文本分类任务标注2.2.1 项目创建点击创建(Create)开始创建一个新的项目,填写项目名称、描述,然后在Labeling Setup
中选择Text Classification
。
List of tasks
,然后选择导入本项目 设置任务,添加标签 数据上传项目创建后,可在Project/文本分类任务中点击Import
继续导入数据,同样从本地上传txt格式文件,选择List of tasks
。
项目创建后,可在Setting/Labeling Interface中继续配置标签,
默认模式为单标签多分类数据标注。对于多标签多分类数据标注,需要将choice
的值由single
改为multiple
。
勾选已标注文本ID,选择导出的文件类型为JSON
,导出数据:
参考链接:
Label Studio3.多标签/层次分类数据转换这里我们使用CAIL2019“中国法研杯”司法人工智能挑战赛—婚姻家庭要素提取任务数据集的子集作为示例数据集。该数据集中原始训练集包括 14377 条标注样本,我们按每条标签随机采样 4 条样本,得到 80 条样本数据作为训练集,剩余训练集数据作为测试集。
3.1 多标签源数据格式data/├── train.txt # 训练数据集├── dev.txt # 验证数据集├── test.txt # 测试数据集(可选)├── data.txt # 待预测数据(可选)└── label.txt # 分类标签集
训练/验证/测试数据对于训练/验证/测试数据集文件,每行数据表示一条样本,包括文本和标签两部分,由tab符\t分隔,多个标签以英文逗号,分隔。格式如下
<文本>"\t"<标签>","<标签>","<标签><文本>"\t"<标签>","<标签>
数据集展示
本院认为,涉案房屋系2012年12月4日原、被告婚姻关系存续期间购买,且涉案楼房的产权登记在原、被告名下,依据法律规定,夫妻在婚姻关系存续期间所得的财产,归夫妻共同所有;不动产分割,有夫妻共同财产原、被告之间的共同财产应依法分割。有夫妻共同财产协议不成时,由人民法院判决”的规定,由于被告后期治疗还需大量费用,原告应给与原告必要的经济帮助。适当帮助故原告向法院提起诉讼,要求与被告离婚,婚生女孩随原告生活,被告给付抚养费。婚后有子女,支付抚养费,限制行为能力子女抚养2014年12月22日,原告诉至本院,要求与被告离婚,后本院判决不准予原、被告离婚。二次起诉离婚男到女家生活,2006年12月婚生一女,取名张某甲。婚后有子女
预测数据对于待预测数据文件,每行包含一条待预测样本,无标签。格式如下
<文本><文本>
数据集展示
五松新村房屋是被告婚前购买的;被告于2016年3月将车牌号为皖B×××××出售了2.7万元,被告通过原告偿还了齐荷花人民币2.6万元,原、被告尚欠齐荷花2万元。2、判令被告返还借婚姻索取的现金33万元,婚前个人存款10万元;一、判决原告于某某与被告杨某某离婚;
标签数据对于分类标签集文件,存储了数据集中所有的标签集合,每行为一个标签名。如果需要自定义标签映射用于分类器初始化,则每行需要包括标签名和相应的映射词,由==分隔。格式如下
<标签>"=="<映射词><标签>"=="<映射词>
例如,对于婚姻家庭要素提取数据集,原标签字数较多,因此同一个标签依赖的输出也多。为了降低训练难度,我们可以将其映射为较短的短语
有夫妻共同债务==共同债务存在非婚生子==非婚生子...
Note: 这里的标签映射词定义遵循的规则是,不同映射词尽可能长度一致,映射词和提示需要尽可能构成通顺的语句。越接近自然语句,小样本下模型训练效果越好。如果原标签名已经可以构成通顺语句,也可以不构造映射词,每行一个标签即可,即
3.2层次分类源数据格式训练/验证/测试数据对于训练/验证/测试数据集文件,每行数据表示一条样本,包括文本和标签两部分,由tab符\t分隔,多个标签以英文逗号,分隔,同一标签内不同层级以##字符连接。格式如下<文本>"\t"<标签>","<标签>","<标签><文本>"\t"<标签>","<标签>...紫光圣果副总经理李明雷辞职 组织关系,组织关系##辞/离职无理取闹辱骂扶贫干部织金一居民被行拘 司法行为,司法行为##拘捕...
标签数据对于分类标签集文件,存储了数据集中所有的标签路径集合,每行是一个标签路径,高层的标签指向底层标签,不同层级的标签用"##"连接,本项目选择为标签层次结构中的每一个节点生成对应的标签路径,详见层次分类任务介绍,标签路径格式如下
<一级标签><一级标签>"##"<二级标签><一级标签>"##"<二级标签>"##"<三级标签>...如果需要自定义标签映射用于分类器初始化,则每行需要包括标签名和相应的映射词,由==分隔。格式如下<一级标签>"=="<映射词><一级标签>"##"<二级标签>"=="<映射词><一级标签>"##"<二级标签>"##"<三级标签>"=="<映射词>...例如,原标签路径交往##会见中包括特殊符号##,大概率不会在说话或者写作中使用,因此我们将其映射为会见或者见面。交往==交往交往##会见==会见...
3.3 转换后格式三种分类都可以在 UTC 框架下实现,其中 multi-class 2.5版本需要修改评估代码。multi-label: UTC 默认是 multi-label 形式。
#多分类数据示例{"text_a": "、月经期间刮痧拔罐会引起身体什么", "text_b": "", "question": "", "choices": ["病情诊断", "治疗方案", "病因分析", "指标解读", "就医建议", "疾病表述", "后果表述", "注意事项", "功效作用", "医疗费用", "其他"], "labels": [5]}
#多标签数据示例{"text_a": "多标签分类示例","text_b": "", "question": "","choices": ["体育", "时政", "娱乐", "电影"], "labels": [2, 3]}
hierachical: applications/text_classification/*/few-shot 目录下 hierachical 的代码实现和 multi-label 是相同的,区别是数据层面将多级标签用 ## 分隔符拼接了起来,形式上仍是 multi-label。在 UTC 中也可以使用这种实现,将多级标签直接拼起来,如果只需要分类到细分层级,直接取细分层级效果可能更好。这里就不在重复展示了
#层次分类数据示例{"text_a": "多层次分类示例", "text_b": "", "question": "", "choices": ["环境 资质优", "环境 资质差", "口味 口感好", "口味 口感差"], "labels": [0, 1]}
Note:2.5版本修改代码部分:原有代码中compute_metrics 函数的 sigmoid 实现 run_train.py 和 run_eval.py 均改为 softmaxdef compute_metrics(eval_preds): labels = paddle.to_tensor(eval_preds.label_ids, dtype="int64") preds = paddle.to_tensor(eval_preds.predictions) preds = paddle.nn.functional.softmax(preds, axis=-1) preds = preds[labels != -100] labels = paddle.argmax(labels, axis=-1) metric = Accuracy() correct = metric.compute(preds, labels) metric.update(correct) acc = metric.accumulate() return {"accuracy": acc}
最新版本已经增加:single_label超参数默认False,即可
二分类时,开启single_label时需要将运行脚本中的 metric_for_best_model 参数改为accuracy
4.模型训练预测多任务训练场景可分别进行数据转换再进行混合:通用分类、评论情感分析、语义相似度计算、蕴含推理、多项式阅读理解等众多“泛分类”任务
##代码结构├── deploy/simple_serving/ # 模型部署脚本├── utils.py # 数据处理工具├── run_train.py # 模型微调脚本├── run_eval.py # 模型评估脚本├── label_studio.py # 数据格式转换脚本├── label_studio_text.md # 数据标注说明文档└── README.md
4.1 模型微调推荐使用 PromptTrainer API 对模型进行微调,该 API 封装了提示定义功能,且继承自 Trainer API 。只需输入模型、数据集等就可以使用 Trainer API 高效快速地进行预训练、微调等任务,可以一键启动多卡训练、混合精度训练、梯度累积、断点重启、日志显示等功能,Trainer API 还针对训练过程的通用训练配置做了封装,比如:优化器、学习率调度等。
使用下面的命令,使用 utc-base
作为预训练模型进行模型微调,将微调后的模型保存至output_dir
:
#安装最新版本paddlenlp!pip install --upgrade paddlenlp
# 单卡启动:!python run_train.py \ --device gpu \ --logging_steps 100 \ --save_steps 100 \ --eval_steps 100 \ --seed 1000 \ --model_name_or_path utc-base \ --output_dir ./checkpoint_1w/model_best \ --dataset_path ./data/ \ --max_seq_length 512 \ --per_device_train_batch_size 32 \ --per_device_eval_batch_size 32 \ --gradient_accumulation_steps 8 \ --num_train_epochs 20 \ --learning_rate 1e-5 \ --do_train \ --do_eval \ --do_export \ --export_model_dir ./checkpoint_1w/model_best \ --overwrite_output_dir \ --disable_tqdm True \ --metric_for_best_model macro_f1 \ --load_best_model_at_end True \ --save_total_limit 1 \ --save_plm
训练样本80下结果:
[2023-05-18 18:47:00,108] [ INFO] - ***** Running Evaluation *****[2023-05-18 18:47:00,108] [ INFO] - Num examples = 1611[2023-05-18 18:47:00,108] [ INFO] - Total prediction steps = 806[2023-05-18 18:47:00,108] [ INFO] - Pre device batch size = 2[2023-05-18 18:47:00,108] [ INFO] - Total Batch size = 2[2023-05-18 18:47:23,035] [ INFO] - eval_loss: 2.9577677249908447, eval_micro_f1: 0.9739602731222843, eval_macro_f1: 0.9244269186423556, eval_runtime: 22.9266, eval_samples_per_second: 70.268, eval_steps_per_second: 35.156, epoch: 20.0
二分类时需要注意的问题
ModuleNotFoundError: No module named "fast_tokenizer"安装一下fast tokenizerpip install --upgrade fast_tokenizer
开启single_label时需要将运行脚本中的 metric_for_best_model 参数改为accuracymetric_value = metrics[metric_to_check]KeyError: "eval_macro_f1"
NOTE:
如需恢复模型训练,则可以设置 init_from_ckpt , 如 init_from_ckpt=checkpoint/model_state.pdparams 。
4.1.2 多卡训练如果在GPU环境中使用,可以指定gpus参数进行多卡训练:
!python -u -m paddle.distributed.launch --gpus "0,1,2,3" run_train.py \ --device gpu \ --logging_steps 100 \ --save_steps 100 \ --eval_steps 100 \ --seed 1000 \ --model_name_or_path utc-base \ --output_dir ./checkpoint_1w/model_best \ --dataset_path ./data/ \ --max_seq_length 512 \ --per_device_train_batch_size 32 \ --per_device_eval_batch_size 32 \ --gradient_accumulation_steps 8 \ --num_train_epochs 20 \ --learning_rate 1e-5 \ --do_train \ --do_eval \ --do_export \ --export_model_dir ./checkpoint_1w/model_best \ --overwrite_output_dir \ --disable_tqdm True \ --metric_for_best_model macro_f1 \ --load_best_model_at_end True \ --save_total_limit 1 \ --save_plm
训练样本1.4w+下结果:
[2023-05-18 19:47:58,379] [ INFO] - ***** Running Evaluation *****[2023-05-18 19:47:58,380] [ INFO] - Num examples = 1611[2023-05-18 19:47:58,380] [ INFO] - Total prediction steps = 13[2023-05-18 19:47:58,380] [ INFO] - Pre device batch size = 32[2023-05-18 19:47:58,380] [ INFO] - Total Batch size = 128[2023-05-18 19:48:01,395] [ INFO] - eval_loss: 1.095533847808838, eval_micro_f1: 0.9833333333333333, eval_macro_f1: 0.9492148827343941, eval_runtime: 3.0153, eval_samples_per_second: 534.28, eval_steps_per_second: 4.311, epoch: 19.9455
该示例代码中由于设置了参数 --do_eval
,因此在训练完会自动进行评估。
可配置参数说明:
single_label
: 每条样本是否只预测一个标签。默认为False
,表示多标签分类。device
: 训练设备,可选择 "cpu"、"gpu" 其中的一种;默认为 GPU 训练。logging_steps
: 训练过程中日志打印的间隔 steps 数,默认10。save_steps
: 训练过程中保存模型 checkpoint 的间隔 steps 数,默认100。eval_steps
: 训练过程中保存模型 checkpoint 的间隔 steps 数,默认100。seed
:全局随机种子,默认为 42。model_name_or_path
:进行 few shot 训练使用的预训练模型。默认为 "utc-base", 可选"utc-xbase", "utc-base", "utc-medium", "utc-mini", "utc-micro", "utc-nano", "utc-pico"。output_dir
:必须,模型训练或压缩后保存的模型目录;默认为 None
。dataset_path
:数据集文件所在目录;默认为 ./data/
。train_file
:训练集后缀;默认为 train.txt
。dev_file
:开发集后缀;默认为 dev.txt
。max_seq_len
:文本最大切分长度,包括标签的输入超过最大长度时会对输入文本进行自动切分,标签部分不可切分,默认为512。per_device_train_batch_size
:用于训练的每个 GPU 核心/CPU 的batch大小,默认为8。per_device_eval_batch_size
:用于评估的每个 GPU 核心/CPU 的batch大小,默认为8。num_train_epochs
: 训练轮次,使用早停法时可以选择 100;默认为10。learning_rate
:训练最大学习率,UTC 推荐设置为 1e-5;默认值为3e-5。do_train
:是否进行微调训练,设置该参数表示进行微调训练,默认不设置。do_eval
:是否进行评估,设置该参数表示进行评估,默认不设置。do_export
:是否进行导出,设置该参数表示进行静态图导出,默认不设置。export_model_dir
:静态图导出地址,默认为None。overwrite_output_dir
: 如果 True
,覆盖输出目录的内容。如果 output_dir
指向检查点目录,则使用它继续训练。disable_tqdm
: 是否使用tqdm进度条。metric_for_best_model
:最优模型指标, UTC 推荐设置为 macro_f1
,默认为None。load_best_model_at_end
:训练结束后是否加载最优模型,通常与metric_for_best_model
配合使用,默认为False。save_total_limit
:如果设置次参数,将限制checkpoint的总数。删除旧的checkpoints 输出目录
,默认为None。--save_plm
:保存模型进行推理部署NOTE:
如需恢复模型训练,则可以设置 init_from_ckpt , 如 init_from_ckpt=checkpoint/model_state.pdparams 。
4.2 模型评估通过运行以下命令进行模型评估预测:
#80样本!python run_eval.py \ --model_path ./checkpoint/model_best \ --test_path ./data/test.txt \ --per_device_eval_batch_size 32 \ --max_seq_len 512 \ --output_dir ./checkpoint_test
测试结果
test.txt 结果
100%|█████████████████████████████████████████| 879/879 [01:38<00:00, 12.86it/s][2023-05-18 18:52:23,476] [ INFO] - ***** test metrics *****[2023-05-18 18:52:23,477] [ INFO] - test_loss = 0.7952[2023-05-18 18:52:23,477] [ INFO] - test_macro_f1 = 0.9491[2023-05-18 18:52:23,477] [ INFO] - test_micro_f1 = 0.9833[2023-05-18 18:52:23,477] [ INFO] - test_runtime = 0:01:39.72[2023-05-18 18:52:23,477] [ INFO] - test_samples_per_second = 141.0[2023-05-18 18:52:23,477] [ INFO] - test_steps_per_second = 8.814100%|█████████████████████████████████████████| 879/879 [01:48<00:00, 8.09it/s]
dev.txt结果
100%|█████████████████████████████████████████| 101/101 [00:10<00:00, 13.66it/s][2023-05-18 19:03:14,188] [ INFO] - ***** test metrics *****[2023-05-18 19:03:14,188] [ INFO] - test_loss = 1.0405[2023-05-18 19:03:14,188] [ INFO] - test_macro_f1 = 0.934[2023-05-18 19:03:14,188] [ INFO] - test_micro_f1 = 0.9779[2023-05-18 19:03:14,188] [ INFO] - test_runtime = 0:00:11.60[2023-05-18 19:03:14,188] [ INFO] - test_samples_per_second = 138.821[2023-05-18 19:03:14,188] [ INFO] - test_steps_per_second = 8.703100%|█████████████████████████████████████████| 101/101 [00:11<00:00, 8.56it/s]
#1.4w+样本!python run_eval.py \ --model_path ./checkpoint_1w/model_best \ --test_path ./data/dev.txt \ --per_device_eval_batch_size 16 \ --max_seq_len 512 \ --output_dir ./checkpoint_1w_test
测试结果
test.txt 结果
[2023-05-18 19:51:21,323] [ INFO] - test_loss = 1.0959[2023-05-18 19:51:21,323] [ INFO] - test_macro_f1 = 0.9576[2023-05-18 19:51:21,323] [ INFO] - test_micro_f1 = 0.9831[2023-05-18 19:51:21,323] [ INFO] - test_runtime = 0:00:01.23[2023-05-18 19:51:21,323] [ INFO] - test_samples_per_second = 64.911[2023-05-18 19:51:21,323] [ INFO] - test_steps_per_second = 4.057
dev.txt结果
[2023-05-18 19:52:19,646] [ INFO] - test_loss = 1.0903[2023-05-18 19:52:19,646] [ INFO] - test_macro_f1 = 0.9492[2023-05-18 19:52:19,646] [ INFO] - test_micro_f1 = 0.9833[2023-05-18 19:52:19,646] [ INFO] - test_runtime = 0:00:10.98[2023-05-18 19:52:19,646] [ INFO] - test_samples_per_second = 146.627[2023-05-18 19:52:19,646] [ INFO] - test_steps_per_second = 9.193
可配置参数说明:
model_path
: 进行评估的模型文件夹路径,路径下需包含模型权重文件model_state.pdparams
及配置文件model_config.json
。test_path
: 进行评估的测试集文件。per_device_eval_batch_size
: 批处理大小,请结合机器情况进行调整,默认为16。max_seq_len
: 文本最大切分长度,输入超过最大长度时会对输入文本进行自动切分,默认为512。single_label
: 每条样本是否只预测一个标签。默认为False
,表示多标签分类。4.3模型预测paddlenlp.Taskflow
装载定制模型,通过task_path
指定模型权重文件的路径,路径下需要包含训练好的模型权重文件model_state.pdparams
。
from pprint import pprintimport jsonfrom paddlenlp import Taskflowdef openreadtxt(file_name): data = [] file = open(file_name,"r",encoding="UTF-8") #打开文件 file_data = file.readlines() #读取所有行 for row in file_data: data.append(row) #将每行数据插入data中 return datadata_input=openreadtxt("/home/aistudio/input/data2.txt")# print(data_input)schema = ["婚后生育", "抚养孩子", "共同财产", "付抚养费", "分不动产", "婚后分居", "二次起诉", "按月付费", "同意离婚", "共同债务", "婚前财产", "法定离婚", "家庭义务", "非婚生子", "适当帮助", "无视协议", "损害赔偿", "分居两年", "子女分开", "个人财产"]my_cls = Taskflow("zero_shot_text_classification", model="utc-base", schema=schema, task_path="/home/aistudio/checkpoint/model_best/plm")results=my_cls(data_input)with open("/home/aistudio/output/output.txt", "w+",encoding="UTF-8") as f: #a : 写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末尾 for result in results: print(result) line = json.dumps(result, ensure_ascii=False) #对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False f.write(line + "\n")print("数据结果已导出")
[2023-05-18 19:14:41,567] [ INFO] - We are using to load "utc-base".[2023-05-18 19:14:41,572] [ INFO] - Already cached /home/aistudio/.paddlenlp/models/utc-base/utc_base_vocab.txt[2023-05-18 19:14:41,610] [ INFO] - tokenizer config file saved in /home/aistudio/.paddlenlp/models/utc-base/tokenizer_config.json[2023-05-18 19:14:41,616] [ INFO] - Special tokens file saved in /home/aistudio/.paddlenlp/models/utc-base/special_tokens_map.json[2023-05-18 19:14:41,622] [ INFO] - Assigning ["[O-MASK]"] to the additional_special_tokens key of the tokenizer{"predictions": [{"label": "适当帮助", "score": 0.9990043954170514}], "text_a": "协议不成时,由人民法院判决”的规定,由于被告后期治疗还需大量费用,原告应给与原告必要的经济帮助。\t\n"}{"predictions": [{"label": "婚后生育", "score": 0.9994037939529928}, {"label": "抚养孩子", "score": 0.9991192036976089}, {"label": "付抚养费", "score": 0.9995337863092342}], "text_a": "故原告向法院提起诉讼,要求与被告离婚,婚生女孩随原告生活,被告给付抚养费。\t\n"}{"predictions": [{"label": "二次起诉", "score": 0.9996573067393362}], "text_a": "2014年12月22日,原告诉至本院,要求与被告离婚,后本院判决不准予原、被告离婚。\t\n"}{"predictions": [{"label": "婚后生育", "score": 0.9981496013638776}], "text_a": "男到女家生活,2006年12月婚生一女,取名张某甲。\t"}数据结果已导出
抽样测试:
协议不成时,由人民法院判决”的规定,由于被告后期治疗还需大量费用,原告应给与原告必要的经济帮助。适当帮助故原告向法院提起诉讼,要求与被告离婚,婚生女孩随原告生活,被告给付抚养费。婚后生育,付抚养费,抚养孩子2014年12月22日,原告诉至本院,要求与被告离婚,后本院判决不准予原、被告离婚。二次起诉男到女家生活,2006年12月婚生一女,取名张某甲。婚后生育{"predictions": [{"label": "适当帮助", "score": 0.9990043954170514}], "text_a": "协议不成时,由人民法院判决”的规定,由于被告后期治疗还需大量费用,原告应给与原告必要的经济帮助。\t\n"}{"predictions": [{"label": "婚后生育", "score": 0.9994037939529928}, {"label": "抚养孩子", "score": 0.9991192036976089}, {"label": "付抚养费", "score": 0.9995337863092342}], "text_a": "故原告向法院提起诉讼,要求与被告离婚,婚生女孩随原告生活,被告给付抚养费。\t\n"}{"predictions": [{"label": "二次起诉", "score": 0.9996573067393362}], "text_a": "2014年12月22日,原告诉至本院,要求与被告离婚,后本院判决不准予原、被告离婚。\t\n"}{"predictions": [{"label": "婚后生育", "score": 0.9981496013638776}], "text_a": "男到女家生活,2006年12月婚生一女,取名张某甲。\t"}
抽样准确率100%
5.基于gradio可视化展示6.总结6.1 UTC提示学习和微调预训练学习模型对比Macro F1和Micro F1都是评估分类模型性能的指标,但是它们计算方式不同。
Macro F1是每个类别的F1值的平均值,不考虑类别的样本数。它适用于数据集中各个类别的样本数量相近的情况下,可以更好地反映每个类别的性能。
Micro F1是所有类别的F1值的加权平均,其中权重为每个类别的样本数。它将所有类别的预测结果汇总为一个混淆矩阵,并计算出整个数据集的精确率、召回率和F1值。Micro F1适用于多分类问题,尤其是在数据集不平衡的情况下,可以更好地反映整体的性能。
总之,Micro F1更关注整个数据集的性能,而Macro F1更关注每个类别的性能。
model_name | 模型结构 | Micro F1(%) | Macro F1(%) |
---|---|---|---|
UTC-base-1.4w+样本 | 12-layer, 768-hidden, 12-heads | 98.33 | 94.92 |
UTC-base-80样本 | 12-layer, 768-hidden, 12-heads | 97.79 | 93.4 |
ERNIE 1.0 Large Cw | 24-layer, 1024-hidden, 20-heads | 91.14 | 81.68 |
ERNIE 3.0 Base | 12-layer, 768-hidden, 12-heads | 90.38 | 80.14 |
ERNIE 3.0 Medium | 6-layer, 768-hidden, 12-heads | 90.57 | 79.36 |
ERNIE 3.0 Mini | 6-layer, 384-hidden, 12-heads | 89.27 | 76.78 |
ERNIE 3.0 Micro | 4-layer, 384-hidden, 12-heads | 89.43 | 77.20 |
ERNIE 3.0 Nano | 4-layer, 312-hidden, 12-heads | 85.39 | 75.07 |
“中国法研杯”司法人工智能挑战赛:基于UTC的多标签/层次分类小样本文本应用,Macro F1提升13%+
标签:
上一篇:今日观点!K&N通过新的进气系统定价和产品线扩展重新定位增长
下一篇:最后一页
- “中国法研杯”司法人工智能挑战赛:基于UTC的多标签/层次分类小样本文本应用,Macro F1提升13%+
- 今日观点!K&N通过新的进气系统定价和产品线扩展重新定位增长
- 每日速讯:1~4月全区社会消费品零售总额1650亿
- 航空工业长空齿轮举办微视频拍摄制作培训班 当前动态
- 沐邦高科:邦宝益智“AI7教育编程机器人”项目启动-环球今亮点
- 连买6天!巴菲特持续加仓西方石油 持股比例升至24.4%-报资讯
- 禾昌聚合:5月18日融资买入1.78万元,融资融券余额33.27万元
- 生意社:5月19日中石化对二甲苯价格暂稳
- 以生命的名义视频湖南校园安全教育_以生命的名义-世界头条
- “时装之夜”娜扎撞脸赵丽颖,宋祖儿变熟女,张天爱小腹隆起|当前播报
- 幼儿过敏性紫癜怎么治疗_幼儿过敏性紫癜严重吗
- 【天天聚看点】进击“货架+内容”双飞轮 抖音全域兴趣电商拓疆进行时
- 微创医疗(00853)建议分拆微创心律管理于联交所主板独立上市_观焦点
- 5月18日基金净值:国联安优势混合最新净值0.897,涨0.11%
- ffmpeg和QT开发播放器之代码初封装 全球微速讯
- 环球热文:楚雄南华:拓客引流畅通旅游供给
- 环球快看:马云归国53天,阿里系打响变革第二枪!各大业务线上市时间表出炉,市场沸腾,盘前拉升超3%
- 大冶市乡村振兴局扎实推进防止返贫监测帮扶集中排查工作 微头条
- QJ鸿150即将上市,该车搭载水冷四气门发动机,还有丰富配置 世界观察
- 实时:2023青岛市北区博物馆日攻略(门票优惠+特色活动)
- 全球要闻:注意!今晚四川7市阴天有阵雨或雷雨 周末盆地有暴雨
- 十年续作 暗黑破坏神4即将上线 首发支持DLSS 3
- 天天微动态丨吴秀玲带领经贸考察团在长三角地区开展考察对接
- 圆通快递寄件网上_圆通在线下单寄件
- 改变命运,“一句话”就够了 当前速递
- c盘格式化会怎么样win10_c盘格式化会怎么样
- 阿特斯太阳能将扩大与Aypa Power的储能产品供应协议
- 漫客栈怎么取消连续vip_漫客栈如何取消定向推送 新资讯
- 焦点快报!中国—中亚峰会丨动感西安看古今
- 工行南京三山街支行:特事特办 上门服务 为客户解难题
- 周星驰担任网飞版《美猴王》执行制作:定档8月18日 大圣外形被吐槽_环球今亮点
- 全球观热点:太湖远大拟闯关北交所,辅导券商为招商证券
- 今日热闻!4000以内的骁龙8Gen2手机,这三款综合产品力更好
- 天天看热讯:用了三年多华为,换小米后个人真实使用体验,不吐不快
- CTR HOLDINGS放量飙升逾47% 预期年度纯利不超700万新元 同比扭亏为盈
- 快资讯丨塞尔达传说王国之泪平原外围的驿站位置视频攻略
- 两部门出台意见支持新能源汽车下乡-当前视讯
- 海南房价上涨的价格,希望·棋子湾房价2023涨跌预测!
- 换保荐机构与二股东被判无期,诺康达研发费用率骤降毛利率波动大
- 宁波3B酒店清河店
- 环球资讯:恒指牛熊街货比(65:35)︱5月18日
- 简 讯
- 天天速看:服务数字经济 河南持续推进5G规模化应用
- 神墓18层地狱封印着什么_神墓14葬天
- 世界短讯!火灾逃生方法图片卡通 火灾逃生方法图片
- 乌高官野心膨胀:收复克里米亚不是终点,还要吞并俄领土
- 日本议员:日本政府强推排污入海计划 未征得民众同意-前沿热点
- 看热讯:笑果文化9年估值翻40倍,6家上市公司曾将其写进年报造势
- 当前资讯!海天股份: 海天股份2022年年度股东大会决议公告
- 当前如何做好个人防护?听听专家怎么说…… 全球最资讯
-
天天报道:灰指甲是怎么形成的怎么治疗最好_灰指甲是怎么形成的
1、灰指甲是甲癣的俗称。2、它是由一大类称做病原真菌的微生物感染引起的。3、灰指甲病变始于甲远端、侧缘
-
2023年05月17日[芯片概念]涨停板金字塔
观龙头,知大势,定决策!2板(1):百利电气。1板(5):同兴达、文一科技、淳中科技、圣晖集成、光迅科技。
-
高温即将来临,化工企业安全生产需警惕九大危险源!
防火1 夏季多高温天气。在化工生产区域,易燃、易爆、易挥发的原材料较多。例如:乙醇、二氯乙烷等沸点低,
-
火影晓成员实力排行_火影晓成员实力排名?
1、火校成员实力排名:2、1 实际上是立萧的幕后推手;3、长门,杀了师父,毁了木叶村;4、3 实力超群的宇智
-
天天微资讯!皮具护理_皮具护理方法
1、一、正确的使用习惯:1 避免让皮袋与硬物发生碰撞、磨擦,以免将表面刮花、划破。2、2 皮袋避免放过重的
-
武汉—鄂州高速公路(关于武汉—鄂州高速公路介绍)
1、汉鄂高速公路全称武汉左岭至鄂州花湖公路,是武汉“1+8城市圈”公路水路交通发展规划中的七条射线之...
-
焦点信息:天津海关:科技让通关更便利
天津海关:科技让通关更便利像订网约车一般操作安排提箱、借助数据虚拟空间完成巡查、在“无人码头”实...
-
宝骏悦也部分配置曝光:用上1500MPa热成型高强度钢
快科技5月17日消息,五菱旗下全新微型电动车宝骏悦也(图片)将于本月25日正式上市,目前,该车部分配置得到
-
最资讯丨不能任由AI歌手我行我素
原标题:不能任由AI歌手我行我素继绘画、文案之后,人工智能(AI)将触手伸向了音乐圈。在多个视频及音乐平
-
长江流域青铜展:吴王的剑与鉴〡观展
文|金笛图|金笛,阖闾城遗址博物馆走入安徽博物院“共饮一江水——三星堆·长江流域青铜文明特展”展厅...
-
南京江宁人才集团子公司获评江宁高新区突出贡献单位
龙虎网讯(通讯员李喜华)日前,南京江宁高新区授予园区内58家综合实力强、经济贡献大、创新能力优、成长性
-
全球资讯:一季度江苏居民人均可支配收入17183元 增长4.2%
中国经济网5月17日讯据江苏省统计局发布的数据,一季度江苏省居民人均可支配收入17183元,同比增长4 2%。按
-
滚动:4月云南省铁路客运量同比增282%
4月云南省铁路客运量同比增282%---5月15日,云南省交通运输厅公布的《2023年4月云南省综合运输生产态势月度
-
世界观焦点:汇通财经整理:全球天然气、电力和液化天然气市场5月17日看点
汇通财经整理:全球天然气、电力和液化天然气市场5月17日看点;1 高管们表示,澳大利亚的天然气举措可能会
-
新车报讯:全新起亚K5凯酷正式上市包牌价16.18-20.58万元
汽车现在已经越来越普及,基本上都快实现每家每户都有汽车了,那么汽车这么多的情况之下,我们在用车的过程
-
耐克INS:文班亚马会改变篮球吗?请拓展想象空间 等待已结束
直播吧5月17日讯今天,NBA进行了乐透抽签,马刺抽到了状元签。耐克INS发文这样写道:“文班亚马会改变篮球
-
PCIe4固态也不值钱了!七彩虹2TB固态才卖559元 全球热点评
七彩虹京东自营旗舰店此款2TB固态硬盘活动售价559元,近期好价。此款搭载的是新一代PCIE4 0技术,能够释放
-
每日观点:“卖崽青蛙”设计者是位南京宝妈:不会计较版权,很开心带来快乐
圆溜溜的大眼睛,胖墩墩的脑袋,手里还提溜着一串小青蛙气球摇头晃脑地走在大街小巷。最初她在南京云锦路售
-
武林足球(关于武林足球介绍)
1、《武林足球》是连载于百度小说的一部体育竞技类网络小说。2、作者是西岳。
-
全球新消息丨早新闻|重磅发布,事关亿万基民!油价“二连降”,加满一箱油省15元
宏观热点货币市场基金监管新规落地5月16日,由中国证监会、中国人民银行联合发布的《重要货币市场基金监管
-
喜讯!格力这一“国际领先”制冷设备获得两项矿用产品安全标志证书
近日,格力电器深部矿井制冷设备ZLS-2000LG矿用防爆制冷装置、LYdp-205 1140(A)矿用防爆制冷压缩机获得安标
-
新乡村青年带来新婚俗 返乡青年成倡导“婚事新办、简办”新风尚主力军 天天热讯
合肥市包河区打造的婚俗文明新风宣传墙。胡文鑫和刘敏都在北京工作,回老家办婚礼前,就商量着改变一些仪式
-
郭明錤:Sharp可能会退出iPhone16CCM供应链|精彩看点
天风国际证券分析师郭明錤最新调查与预测包括:1 Sharp可能会退出iPhone16CCM供应链,既有CCM供货商包括LGI
-
视频下载不了怎么保存_怎么在mp4上下载视频
1、一、下载视频:下载以下三个软件(任选其一),他们能单独使用,也可以联合使用,各自有各自的用途和优点(
-
怀德、丹凤之战
1、怀德、丹凤之战,中法战争中,黑旗军在越南怀德、丹凤对法军的作战。2、清光绪九年(1883年),刘永福应越
-
中外对抗!5月17日英雄联盟手游斗鱼大师赛正式开赛
英雄联盟手游斗鱼大师赛于5月17日正式开赛,本次赛事共有10支来自不同赛区的参赛队伍:分别为BBQ、BY、OT、
-
世界观点:黄花菜汤煎蛋面步骤?
原料more黄花菜(500克)盐15克姜15克葱30克酱油10克方法1 西红柿洗净,切成小块;木耳泡发,去蒂切成丝;黄
-
携两女投河女子前夫眼镜店被砸鸡蛋具体详细内容是什么
携两女投河女子前夫眼镜店被砸鸡蛋今天的热度非常高,现在也是在热搜榜上了,那么具体的携两女投河女子前夫
-
环球时讯:迅雷2023Q1营收逼近1亿美元创史高 超级会员用户大增
快科技5月16日消息,迅雷发布截至2023年3月31日android第一季度未经审计的财报,已连续五个季度盈利。据财
-
机器人生存战怎么玩(机器人生存战怎么上飞船)
1、星际公民进入飞船的具体操作步骤如下:进入星际公民游戏后首先应该了解一下飞船座舱的大体信息。2、2、
-
“为爱绽放·共沐爱的阳光”慰问百位视障妈妈公益盛典在辽宁沈阳举行 世界实时
中国妇女报全媒体记者贾莹莹5月15日,第七届“为爱绽放,共沐爱的阳光”慰问百位视障妈妈公益盛典在沈阳...
-
罗格朗开关
1、TCL罗格朗,TCL-罗格朗国际电工(惠州)有限公司,原名TCL国际电工(惠州)有限公司,创建于1993年,专业从事
-
世界速递!2023保定市区养犬收费标准一览 2023保定市区养犬收费标准一览表最新
犬只登记费:体高(肩高)40 7厘米以上(含),体重11公斤以上(含)的每只500元;体高40 7厘米以下,体重11公斤以
-
全球讯息:百田石油延迟刊发第一季度业绩 继续停牌
百田石油(08011)发布公告,根据GEM上市规则第18 66及18 79条,公司须于截至2023年3月31日止3个月期间结束后
-
方特游乐园在哪些城市(方特游乐园在哪些城市有)
1、方特游乐园在辽宁沈阳、天津、甘肃嘉峪关、山东济南、山东泰安、山东青岛、河北郑州、安徽芜湖、重庆、
-
*ST中捷(002021)5月16日主力资金净卖出1225.00万元-每日观察
截至2023年5月16日收盘,*ST中捷(002021)报收于1 74元,下跌4 92%,换手率1 79%,成交量12 32万手,成交额2168 4万元。
-
“发展中国家动漫产业发展与规划研修班”线上访问湖南大众传媒职业技术学院|全球快资讯
来自埃塞尔比亚、冈比亚、毛里求斯、斯里兰卡的30名动漫行业官员和技术人员参与了本次交流活动。该校老师带
-
ofo小黄车创始人赴美创业 公司估值已达2亿美元 简讯
据tech星球报道,ofo小黄车的创始人戴威已经开始在美国进行创业,这一次他的公司估值达到了2亿美元。据媒体
-
成渝地区双城经济圈重大项目今年已开工226个 完成投资1163.3亿元-当前简讯
重大项目是经济建设的“压舱石”!近日,上游新闻从重庆市发展改革委获悉,截至4月,今年248个共建成渝...
-
周二(5月16日)COMEX白银最新库存量数据 每日速讯
周二(5月16日)COMEX白银最新库存量数据
-
民一村_关于民一村简述
1、民一村隶属于安徽省芜湖市南陵县许镇镇,位于许镇镇的东部,属东塘圩,东南与太丰圩的华林村、北斗村相
-
全球快看点丨5.16午评|还是不够!
外盘微微泛红,影响不大。早盘A股平开,维持窄幅震荡走势,虽然昨天指数有所上涨,但市场仍然没有方向可言
-
2022环保油漆十大品牌排行榜_环保油漆哪个牌子好
1、百安居2、多乐士 DULUX3、三棵树 SKSHU4、多乐士 Donless5、立邦 NIPPON6、巴斯夫 BAS
-
东四命是什么意思_东四命的含义
欢迎观看本篇文章,小升来为大家解答以上问题。东四命是什么意思,东四命的含义很多人还不知道,现在让我们
-
老外打造宝可梦风格像素新游Entodrive3月26日登陆Steam
来自美国华盛顿的独立游戏製作人NoahWilliams近日宣布,自己製作的造《宝可梦》风格像素新游《Entodrive
-
【天天新要闻】周四"国际博物馆日" 沪125家博物馆减免费开放
125家博物馆周四减免费开放本报讯(记者李君娜)本周四是“国际博物馆日”,上海市本次“国际博物馆日”...
-
金鸡胶囊和妇科千金片的区别是什么_妇科千金片和妇炎康片的区别|全球新资讯
1、对于妇科千金片和妇炎康片来说,它们的共同点是都可以治疗妇科炎症。如果有妇科盆腔炎、阴道炎症、附件
-
世界观点:中触媒:5月15日融券卖出3975股,融资融券余额8168.29万元
5月15日,中触媒(688267)融资买入121 79万元,融资偿还142 44万元,融资净卖出20 65万元,融资余额8158 13万元。
-
三立期货5月16日早间内参——能化-最新
三立期货5月16日早间内参——能化
-
巴林宣布将恢复与卡塔尔之间的民航航班
2021年1月,第41届海合会首脑会议在沙特西部城市欧拉举行,与会领导人在峰会上签署了《欧拉宣言》,沙特、
X 关闭
X 关闭