语言:中文
数据集:CLUECorpusSmall
示例输入:
中文分词版RoBERTa微型模型集
模型描述
本系列是由UER-py预训练的5个中文分词版RoBERTa模型(相关论文见此)。此外,这些模型也可通过腾讯预训练框架TencentPretrain进行预训练(相关论文见此),该框架继承UER-py支持十亿级参数模型,并扩展为多模态预训练框架。
多数中文预训练权重基于汉字级别。实验表明,相较于字级别模型,分词版模型因序列长度更短而速度更快,且性能更优。为此我们发布了5种不同规模的中文分词版RoBERTa模型。为便于复现结果,我们采用公开语料和分词工具,并提供完整训练细节。
您可以从UER-py模型库页面下载,或通过以下HuggingFace链接获取:
相比字级别模型,分词版模型在多数任务中表现更优。以下是六个中文任务开发集上的得分对比:
(表格数据保持原格式,仅表头中文化)
使用方式
可直接通过pipeline进行掩码语言建模(以分词版RoBERTa-Medium为例):
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='uer/roberta-medium-word-chinese-cluecorpussmall')
>>> unmasker("[MASK]的首都是北京。")
PyTorch获取文本特征:
from transformers import AlbertTokenizer, BertModel
tokenizer = AlbertTokenizer.from_pretrained('uer/roberta-medium-word-chinese-cluecorpussmall')
model = BertModel.from_pretrained("uer/roberta-medium-word-chinese-cluecorpussmall")
TensorFlow获取文本特征:
from transformers import AlbertTokenizer, TFBertModel
tokenizer = AlbertTokenizer.from_pretrained('uer/roberta-medium-word-chinese-cluecorpussmall')
model = TFBertModel.from_pretrained("uer/roberta-medium-word-chinese-cluecorpussmall")
因BertTokenizer不支持sentencepiece,此处使用AlbertTokenizer。
训练数据
采用CLUECorpusSmall作为训练数据,使用Google的sentencepiece进行分词。分词模型在CLUECorpusSmall语料上训练:
(具体训练命令保持原技术参数)
训练流程
模型通过UER-py在腾讯云上预训练。先以128序列长度训练1,000,000步,再以512序列长度追加训练250,000步。不同规模模型采用相同超参数。
(具体训练步骤保持原技术细节)
最终将预训练模型转换为Huggingface格式:
python3 scripts/convert_bert_from_uer_to_huggingface.py --input_model_path models/cluecorpussmall_word_roberta_medium_seq512_model.bin-250000 \
--output_model_path pytorch_model.bin \
--layers_num 8 --type mlm
引用文献
(文献引用部分保持原格式)