HuggingFace镜像/CPM-Generate
模型介绍文件和版本分析
下载使用量0

CPM-Generate

模型说明

CPM(中文预训练语言模型)是一个基于Transformer的自回归语言模型,拥有26亿参数和100GB中文训练数据。据我们所知,CPM是目前规模最大的中文预训练语言模型,能够助力各类下游中文自然语言处理任务,例如对话、文章生成、完形填空以及语言理解。[项目] [模型] [论文]

预期用途与局限性

使用方法

from transformers import TextGenerationPipeline, AutoTokenizer, AutoModelWithLMHead

tokenizer = AutoTokenizer.from_pretrained("TsinghuaAI/CPM-Generate")
model = AutoModelWithLMHead.from_pretrained("TsinghuaAI/CPM-Generate")

text_generator = TextGenerationPipeline(model, tokenizer)
text_generator('清华大学', max_length=50, do_sample=True, top_p=0.9)

局限性与偏差

CPM 生成的文本是由经过大量文本训练的神经网络模型自动生成的,不代表作者或其所在机构的官方态度和偏好。CPM 生成的文本仅用于技术和科学目的。如果生成的文本侵犯了您的权益或违背了社会道德,请不要传播,并联系作者,作者将及时处理。

训练数据

我们在预训练中收集了多种类型的文本,包括百科全书、新闻、小说和问答内容。训练数据的详细信息如下表所示。

数据来源百科全书网页故事新闻对话
数据量~40GB~39GB~10GB~10GB~1GB

训练过程

通过对学习率和批大小进行超参数搜索,我们将学习率设置为$1.5\times10^{-4}$,批大小设置为$3,072$,这使得模型训练更加稳定。在第一版中,我们仍采用密集注意力机制,最大序列长度为$1,024$。未来我们将实现稀疏注意力机制。我们对模型进行了$20,000$步的预训练,其中前$5,000$步为热身阶段。优化器采用 Adam。使用$64$块 NVIDIA V100 显卡训练我们最大的模型需要两周时间。

评估结果

n_paramn_layersd_modeln_headsd_head
CPM-Small109M127681264
CPM-Medium334M241,0241664
CPM-Large2.6B322,5603280

我们在不同的中文自然语言处理任务上,在少样本(甚至零样本)设置下对不同参数规模的 CPM 进行了评估(具体参数如上表所示)。随着参数数量的增加,CPM 在大多数数据集上的表现更好,这表明更大的模型在语言生成和语言理解方面更具优势。我们提供了文本分类、中文成语填空测试和短文本对话生成的结果如下。更多详细结果请参考我们的 论文。

文本分类任务的零样本性能

TNEWSIFLYTEKOCNLI
CPM-Small0.6260.5840.378
CPM-Medium0.6180.6350.379
CPM-Large0.7030.7080.442

中文成语填空(ChID)数据集性能

有监督无监督
CPM-Small0.6570.433
CPM-Medium0.6950.524
CPM-Large0.8040.685

短文本对话生成(STC)数据集性能

平均值极值贪婪多样性-1多样性-2
少样本(无监督)
CDial-GPT0.8990.7970.8101,963 / 0.01120,814 / 0.126
CPM-Large0.9280.8050.8153,229 / 0.00768,008 / 0.154
有监督
CDial-GPT0.9330.8140.8262,468 / 0.00835,634 / 0.127
CPM-Large0.9340.8100.8193,352 / 0.01167,310 / 0.233

BibTeX 条目和引用信息

@article{cpm-v1,
  title={CPM: A Large-scale Generative Chinese Pre-trained Language Model},
  author={Zhang, Zhengyan and Han, Xu, and Zhou, Hao, and Ke, Pei, and Gu, Yuxian and Ye, Deming and Qin, Yujia and Su, Yusheng and Ji, Haozhe and Guan, Jian and Qi, Fanchao and Wang, Xiaozhi and Zheng, Yanan and Zeng, Guoyang and Cao, Huanqi and Chen, Shengqi and Li, Daixuan and Sun, Zhenbo and Liu, Zhiyuan and Huang, Minlie and Han, Wentao and Tang, Jie and Li, Juanzi and Sun, Maosong},
  year={2020}
}