albert-chinese-ner使用预训练语言模型ALBERT做中文NER

2020-05-15 11:27:57 浏览数 (1)

这次的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

  1. 下载albert中文模型,这里使用的是base
  2. 将模型文件夹重命名为albert_base_zh,放入项目中
  3. 运行

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,训练时间大幅缩小.

0 人点赞