repo นี้มีการใช้งาน pytorch ของโมเดล Bert และ XLNet ที่ผ่านการฝึกฝนไว้สำหรับการจำแนกข้อความหลายฉลาก
ที่รากของโครงการคุณจะเห็น:
├── pybert
| └── callback
| | └── lrscheduler.py
| | └── trainingmonitor.py
| | └── ...
| └── config
| | └── basic_config.py #a configuration file for storing model parameters
| └── dataset
| └── io
| | └── dataset.py
| | └── data_transformer.py
| └── model
| | └── nn
| | └── pretrain
| └── output #save the ouput of model
| └── preprocessing #text preprocessing
| └── train #used for training a model
| | └── trainer.py
| | └── ...
| └── common # a set of utility functions
├── run_bert.py
├── run_xlnet.py
คุณต้องดาวน์โหลดรุ่น Bert ที่ผ่านการฝึกอบรมและรุ่น XLNET
Bert: Bert-Base-uncased
xlnet: xlnet-base
ดาวน์โหลดรุ่น Bert Pretrained จาก S3
ดาวน์โหลดไฟล์ bert config จาก S3
ดาวน์โหลดไฟล์ Bert Vocab จาก S3
เปลี่ยนชื่อ:
bert-base-uncased-pytorch_model.bin ถึง pytorch_model.binbert-base-uncased-config.json เป็น config.jsonbert-base-uncased-vocab.txt ถึง bert_vocab.txt ไฟล์ Place model , config และ vocab ลงในไดเรกทอรี /pybert/pretrain/bert/base-uncased
pip install pytorch-transformers จาก GitHub
ดาวน์โหลด Kaggle Data and Place ใน pybert/dataset
io.task_data.py เพื่อปรับข้อมูลของคุณ แก้ไขข้อมูลการกำหนดค่าใน pybert/configs/basic_config.py (เส้นทางของข้อมูล, ... )
เรียกใช้ python run_bert.py --do_data เพื่อข้อมูลประมวลผลล่วงหน้า
เรียกใช้ python run_bert.py --do_train --save_best --do_lower_case เพื่อปรับแต่งเบิร์ตอย่างละเอียด
run_bert.py --do_test --do_lower_case เพื่อทำนายข้อมูลใหม่
[training] 8511/8511 [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] -0.8s/step- loss: 0.0640
training result:
[2019-01-14 04:01:05]: bert-multi-label trainer.py[line:176] INFO
Epoch: 2 - loss: 0.0338 - val_loss: 0.0373 - val_auc: 0.9922
- - - - train report every label - - - - -
Label : toxic - auc : 0.9903
Label : severe_toxic - auc : 0.9913
Label : obscene - auc : 0.9951
Label : threat - auc : 0.9898
Label : insult - auc : 0.9911
Label : identity_hate - auc : 0.9910
- - - - valid report every label - - - - -
Label : toxic - auc : 0.9892
Label : severe_toxic - auc : 0.9911
Label : obscene - auc : 0.9945
Label : threat - auc : 0.9955
Label : insult - auc : 0.9903
Label : identity_hate - auc : 0.9927