数据标注
数据标注平台doccano:https://github.com/doccano/doccano
安装doccano:
pip install doccano
完成安装后,运行:
doccano init
doccano createuser --username admin --password pass
doccano webserver --port 8000
在另一个终端,运行:
doccano task
然后打开网址http://127.0.0.1:8000/.
训练数据生成
将标注好的文件doccano_ext.jsonl直接下载并放入./data目录。执行以下脚本进行数据转换,执行后会在./data目录下生成训练/验证/测试集文件。
python doccano.py --doccano_file ./data/doccano_ext.jsonl --task_type ext --save_dir ./data --splits 0.8 0.2 0 --schema_lang ch
开始训练
选择合适的模型
参考训练参数
export finetuned_model=./checkpoint/model_best
python finetune.py \
--device gpu \
--logging_steps 10 \
--save_steps 50 \
--eval_steps 50 \
--seed 42 \
--model_name_or_path uie-medium\
--output_dir $finetuned_model \
--train_path data/train.txt \
--dev_path data/dev.txt \
--max_seq_length 1500 \
--per_device_eval_batch_size 16 \
--per_device_train_batch_size 16 \
--num_train_epochs 20 \
--learning_rate 1e-5 \
--label_names "start_positions" "end_positions" \
--do_train \
--do_eval \
--do_export \
--export_model_dir $finetuned_model \
--overwrite_output_dir \
--disable_tqdm True \
--metric_for_best_model eval_f1 \
--load_best_model_at_end True \
--save_total_limit 1
带注释版
export finetuned_model=./checkpoint/model_best
python finetune.py \
--device gpu \
--logging_steps 10 \ # 训练过程中日志打印的间隔 steps 数
--save_steps 50 \
--eval_steps 50 \
--seed 42 \ # 全局随机种子,默认为 42。
--model_name_or_path uie-medium\
--output_dir $finetuned_model \
--train_path data/train.txt \
--dev_path data/dev.txt \
--max_seq_length 1500 \
--per_device_eval_batch_size 16 \
--per_device_train_batch_size 16 \
--num_train_epochs 20 \ #训练轮次,使用早停法时可以选择 100;默认为10。
--learning_rate 1e-5 \ # 训练最大学习率,UIE 推荐设置为 1e-5;默认值为3e-5
--label_names "start_positions" "end_positions" \
--do_train \
--do_eval \
--do_export \
--export_model_dir $finetuned_model \
--overwrite_output_dir \
--disable_tqdm True \ # 关闭tqdm
--metric_for_best_model eval_f1 \
--load_best_model_at_end True \
--save_total_limit 1
去除换行版
python finetune.py --device gpu --logging_steps 10 --save_steps 50 --eval_steps 50 --seed 42 --model_name_or_path uie-medium --output_dir $finetuned_model --train_path data/train.txt --dev_path data/dev.txt --max_seq_length 1500 --per_device_eval_batch_size 16 --per_device_train_batch_size 16 --num_train_epochs 20 --learning_rate 1e-5 --label_names "start_positions" "end_positions" --do_train --do_eval --do_export --export_model_dir $finetuned_model --overwrite_output_dir --disable_tqdm True --metric_for_best_model eval_f1 --load_best_model_at_end True --save_total_limit 1
运行结果