赞
踩
具体环境如下
以下标注示例用到的环境配置:
pip install label-studio==1.7.2
安装完成后,运行以下命令行:
label-studio start
在浏览器打开http://localhost:8080/,输入用户名和密码登录,开始使用label-studio进行标注。
点击创建(Create)开始创建一个新的项目,填写项目名称、描述,然后在Labeling Setup中选择Text Classification。
项目创建后,可在Setting/Labeling Interface中继续配置标签,
默认模式为单标签多分类数据标注。对于多标签多分类数据标注,需要将choice的值由single改为multiple。
2.4 数据导出
勾选已标注文本ID,选择导出的文件类型为JSON,导出数据:
参考链接:
Label Studio(https://labelstud.io/)
将导出的文件重命名为label_studio.json后,放入./data目录下。通过label_studio.py脚本可转为UTC的数据格式。
在数据转换阶段,还需要提供标签候选信息,放在./data/label.txt文件中,每个标签占一行。标签候选为
python label_studio.py --label_studio_file ./data/label_studio.json --save_dir ./data --splits 0.8 0.1 0.1 --options ./data/label.txt
备注:
多任务训练场景可分别进行数据转换再进行混合:通用分类、评论情感分析、语义相似度计算、蕴含推理、多项式阅读理解等众多“泛分类”任务
##代码结构
├── deploy/simple_serving/ # 模型部署脚本
├── utils.py # 数据处理工具
├── run_train.py # 模型微调脚本
├── run_eval.py # 模型评估脚本
├── label_studio.py # 数据格式转换脚本
├── label_studio_text.md # 数据标注说明文档
└── README.md
推荐使用 PromptTrainer API 对模型进行微调,该 API 封装了提示定义功能,且继承自 Trainer API 。只需输入模型、数据集等就可以使用 Trainer API 高效快速地进行预训练、微调等任务,可以一键启动多卡训练、混合精度训练、梯度累积、断点重启、日志显示等功能,Trainer API 还针对训练过程的通用训练配置做了封装,比如:优化器、学习率调度等。
使用下面的命令,使用 utc-base 作为预训练模型进行模型微调,将微调后的模型保存至output_dir:
python run_train.py --device cpu --logging_steps 10 --save_steps 10 --eval_steps 10 --seed 1000 --model_name_or_path utc-base --output_dir ./checkpoint/model_best --dataset_path ./data/ --max_seq_length 512 --per_device_train_batch_size 2 --per_device_eval_batch_size 2 --gradient_accumulation_steps 8 --num_train_epochs 20 --learning_rate 1e-5 --do_train --do_eval --do_export --export_model_dir ./checkpoint/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
from paddlenlp import Taskflow
schema = ["正常言论", "异常言论"]
my_cls = Taskflow("zero_shot_text_classification", model="utc-base", schema=schema,
task_path='./checkpoint/model_best/plm')
text='联合国秘书长古特雷斯16日通过发言人发表声明,谴责塞赫万地区的袭击事件,敦促尽快将袭击者绳之以法。 '
cls_result = my_cls(text)
print(cls_result)
label = cls_result[0]['predictions'][0]['label']
score = cls_result[0]['predictions'][0]['score']
输出:
[{'text_a': '联合国秘书长古特雷斯16日通过发言人发表声明,谴责塞赫万地区的袭击事件,敦促尽快将袭击者绳之以法。 ', 'predictions': [{'label': '正常言论', 'score
': 0.8308192192139073}]}]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。