2.0版本命名实体识别不同的transformer有什么不同?

我用2.0版本进行命名实体识别模型训练,想请教下不同的transformer有什么区别?代码如下,官方提供的transformer可选项包括:[‘uncased_L-12_H-768_A-12’, ‘uncased_L-24_H-1024_A-16’, ‘cased_L-12_H-768_A-12’, ‘cased_L-24_H-1024_A-16’, ‘multi_cased_L-12_H-768_A-12’, ‘multilingual_L-12_H-768_A-12’, ‘chinese_L-12_H-768_A-12’, ‘wwm_uncased_L-24_H-1024_A-16’, ‘wwm_cased_L-24_H-1024_A-16’, ‘albert_base_zh’, ‘albert_large_zh’, ‘albert_xlarge_zh’, ‘albert_xxlarge_zh’, ‘albert_base’, ‘albert_large’, ‘albert_xlarge’, ‘albert_xxlarge’]

recognizer = TransformerNamedEntityRecognizer()
recognizer.fit(‘C:/Users/jane/Desktop/train_cusdic_2018.tsv’, ‘C:/Users/jane/Desktop/valid_cusdic_2018.tsv’, save_dir, transformer=’********’, metrics=‘f1’)

其中 Uncased 在使用 WordPiece 分词之前都转换为小写格式,并剔除所有 Accent Marker,而 Cased 会保留它们。

L-12_H-768_A-12 这些,L-12代表有12层,H-768代表有输出维度是768,A-12指用12头注意力(可能不是这么称呼)

“multi_cased”,“wwm_cased”这些应该是基于原版的bert做了些改动的版本(mask的方式,训练目标等等),你这就百度应该能搜到对应论文(例如搜“wwm_uncased_L-24_H-1024_A-16”)

albert开头的是瘦身版的bert, 用权值共享和 矩阵分解等方法减少了参数量,对比原版的bert,体积变小,但效果更好。

个人建议用tiny版的bert,因为效果不比base版的bert的差多少,但是体积小,占用的资源少,训练速度能快几倍。

1 Like