英文

CPM-Generate

模型描述

CPM(Chinese Pre-trained Language Model)是基于Transformer的自回归语言模型,拥有26亿个参数和100GB的中文训练数据。据我们所知,CPM是目前最大的中文预训练语言模型,可以促进下游的中文自然语言处理任务,如对话生成、文章生成、填空测试和语言理解。[ Project ] [ Model ] [ Paper ]

预期用途及限制

如何使用
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生成的文本仅限用于技术和科学目的。如果侵犯了您的权益,违反了社会道德,请不要传播它,而是联系作者,作者将会及时处理。

训练数据

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

Data Source Encyclopedia Webpage Story News Dialog
Size ~40GB ~39GB ~10GB ~10GB ~1GB

训练过程

基于学习率和批次大小的超参数搜索,我们将学习率设置为1.5×10^{-4},批次大小设置为3,072,这样可以使模型训练更加稳定。在第一个版本中,我们仍然采用密集注意力,最大序列长度为1,024。我们将来会实现稀疏注意力。我们将模型预训练了20,000步,其中前5,000步用于热身。优化器采用Adam算法。使用64个NVIDIA V100芯片的最大模型训练耗时两周。

评估结果

n_param n_layers d_model n_heads d_head
CPM-Small 109M 12 768 12 64
CPM-Medium 334M 24 1,024 16 64
CPM-Large 2.6B 32 2,560 32 80

我们在不同参数数量(详细信息如上所示)下对CPM在各种中文自然语言处理任务中进行了评估,包括少样本(甚至零样本)设置。随着参数数量的增加,CPM在大多数数据集上表现更好,说明更大的模型在语言生成和语言理解方面更加熟练。我们提供了文本分类、中国成语填空测试和短文本对话生成的结果,请参考我们的 paper 以获取更详细的结果。

零样本情况下的文本分类任务表现

TNEWS IFLYTEK OCNLI
CPM-Small 0.626 0.584 0.378
CPM-Medium 0.618 0.635 0.379
CPM-Large 0.703 0.708 0.442

中国成语填空(ChID)数据集表现

Supervised Unsupervised
CPM-Small 0.657 0.433
CPM-Medium 0.695 0.524
CPM-Large 0.804 0.685

短文本对话生成(STC)数据集表现

Average Extrema Greedy Dist-1 Dist-2
Few-shot (Unsupervised)
CDial-GPT 0.899 0.797 0.810 1,963 / 0.011 20,814 / 0.126
CPM-Large 0.928 0.805 0.815 3,229 / 0.007 68,008 / 0.154
Supervised
CDial-GPT 0.933 0.814 0.826 2,468 / 0.008 35,634 / 0.127
CPM-Large 0.934 0.810 0.819 3,352 / 0.011 67,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}
}