这次的albert某种程度上可能比bert本身更具有意义,恰逢中文预训练模型出来,还是按照之前的数据来做NER方面的fine-tune
项目相关代码获取:
关注微信公众号 datayx 然后回复 命名识别 即可获取。
AI项目体验地址 https://loveai.tech
albert_zh
海量中文语料上预训练ALBERT模型:参数更少,效果更好。预训练小模型也能拿下13项NLP任务,ALBERT三大改造登顶GLUE基准
一键运行10个数据集、9个基线模型、不同任务上模型效果的详细对比
模型性能与对比(英文) Performance and Comparision
albert-chinese-ner
- 下载albert中文模型,这里使用的是base
- 将模型文件夹重命名为albert_base_zh,放入项目中
- 运行
python albert_ner.py
--task_name ner --do_train true --do_eval true --data_dir data --vocab_file ./albert_config/vocab.txt --bert_config_file ./albert_base_zh/albert_config_base.json --max_seq_length 128 --train_batch_size 64 --learning_rate 2e-5 --num_train_epochs 3 --output_dir albert_base_ner_checkpoints
4.最好使用tensorflow > 1.13, 这里运行的是1.15,不支持tf2.0
结果
Base模型下训练3个epoch后:
代码语言:javascript复制INFO:tensorflow: eval_f = 0.9280548
INFO:tensorflow: eval_precision = 0.923054
INFO:tensorflow: eval_recall = 0.9331808
INFO:tensorflow: global_step = 2374
INFO:tensorflow: loss = 13.210413
测试结果同样:
代码语言:javascript复制[CLS]
B-LOC
I-LOC
O
B-LOC
I-LOC
I-PER
O
O
O
O
O
O
O
O
O
[SEP]
[CLS]
比起Bert本体,模型确实小了很多,效果却基本相当甚至领先bert,训练时间大幅缩小.