# Multi_Label_Classifier_finetune
微调预训练语言模型,解决多标签分类任务。可加载BERT、Roberta、Bert-wwm以及albert等开源tf格式的模型<br>
<br>
## 新增改动
2020-07-23:在使用AlBert时,请将该项目下的modeling.py文件更新为官方ALBert项目中下的modeling.py,而后在运行。
## 项目描述
该项目的目录为:
* 数据集描述
* 模型训练
* 预测
* 导出模型用于Tensorflow Serving
## 数据集描述
本文所使用的的多标签数据集来自于kaggle比赛([toxic-comment-classification](https://www.kaggle.com/c/jigsaw-toxic-comment-classification-challenge))<br>
具体示例如下:<br>
![数据描述](https://github.com/Vincent131499/Multi_Label_Classifier_finetune/raw/master/imgs/data_show.jpg)
<br>
标签描述:<br>
![标签描述](https://github.com/Vincent131499/Multi_Label_Classifier_finetune/raw/master/imgs/labels_show.jpg)
<br>
上面有2句示例,第一行分别对应(id,text,labels),其中labels通过类似于one-hot的方式进行了转换,这里就变成了'1,1,1,0,1,0',比对标签文件中标签的顺序,表示该文本对应的标签为'toxic,severe_toxic,obscene,insult'<br>
## 模型训练
运行命令:
```Bash
bash train.sh
```
训练命令的参数说明:<br>
* BERT_BASE_DIR:预训练语言模型所在路径
* DATA_DIR:训练集所在路径
* TRAINED_CLASSIFIER:训练的模型所在目录
* MODEL_NAME:训练的模型名称
除此之外,还要根据自己的数据集和显存情况指定max_seq_length、train_batch_size和num_train_epochs。<br>
训练后模型的评估效果如下所示:
![模型评估效果](https://github.com/Vincent131499/Multi_Label_Classifier_finetune/raw/master/imgs/model_perform.jpg)
注意:<br>
在训练阶段:
我们必须修改在output layer后的模型架构。多类分类器将softmax层放置在输出层之后。<br>
对于多标签,softmax更改为Sigmoid层,loss更改为sigmoid_cross_entropy_with_logits,可以在create_model()函数中找到它。<br>
在评估阶段:
评估标准通过使用的tf.metrics.auc修改为每个类别的auc。具体的可以在metric_fn()中看到.<br>
## 预测
运行命令:
```Bash
python run_classifier_predict_online.py
```
注意:<br>
在运行前需要在文件中指定模型路径,修改BERT_BASE_DIR参数,该参数的值为你训练好的模型所在路径(还需要将预训练语言模型中的bert_config.json和vocab.txt两个文件复制到你训练好的模型目录下面,因为模型预测时需要加载这两个文件)<br>
运行效果如下所示:<br>
![预测效果](https://github.com/Vincent131499/Multi_Label_Classifier_finetune/raw/master/imgs/predict_show.jpg)
## 导出模型用于Tensorflow Serving
由于通过Tensorflow Seving部署模型需要用到pb格式的文件,故在这里也提供了模型转换的功能。<br>
运行命令:
```Bash
python model_exporter.py
```
注意:<br>
在运行前需要修改一下data_path、labels_num和export_path这三个参数的值。其中data_path为你训练好的模型所在路径,labels_num为标签的数目,export_path为导出后的pd模型存储的位置。
导出后如下所示:<br>
![导出模型示例](https://github.com/Vincent131499/Multi_Label_Classifier_finetune/raw/master/imgs/exported_show.jpg)
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
微调预训练语言模型,解决多标签分类任务(可加载BERT、Roberta、Bert-wwm以及albe_Multi_Label_Classifier_finetune.zip (28个子文件)
DataXujing-Multi_Label_Classifier_finetune-a4a185f
__init__.py 616B
model_exporter.py 4KB
readme.md 2KB
run_classifier_predict_online.py 14KB
dataset
dev.csv 13.03MB
train_split.csv 52.23MB
classes.txt 54B
train.csv 52.23MB
test_split.csv 13.03MB
test.csv 13.03MB
.idea
workspace.xml 14KB
inspectionProfiles
Project_Default.xml 507B
modeling.py 37KB
optimization.py 6KB
run_multilabels_classifier.py 39KB
tokenization_test.py 4KB
test_serving.py 7KB
tokenization.py 12KB
requirements.txt 110B
train.sh 652B
imgs
exported_show.jpg 2KB
predict_show.jpg 4KB
data_show.jpg 6KB
model_perform.jpg 44KB
dataset_show.jpg 19KB
labels_show.jpg 2KB
README.md 3KB
generate_train_data.py 1KB
共 28 条
- 1
资源评论
好家伙VCC
- 粉丝: 2000
- 资源: 9143
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- windows环境redis源码包
- 数据处理引擎logstash-8.15.3
- u2net-human-seg.onnx 模型,人物抠图,效果比u2net.onnx好
- 毕业设计-基于安卓的二手交易平台+项目源码+文档说明
- 一款集合了YOLOv5 YOLOv7 YOLOv8 YOLOv9 YOLOv10 YOLOv11 RT-DETR的图形化界面程序
- 泰迪杯数据分析技能赛介绍及技巧
- java项目,课程设计-springboot电子招投标系统
- r语言数据分析案例(以鸢尾花数据集为例)
- u2netp:u2net模型的轻量级版本 (u2netp.onnx)
- 毕业设计-Java《校园二手交易市场平台,包含前端及后端》+项目源码+文档说明
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功