26亿参数,智源、清华开源中文大规模预训练模型

自 2018 年谷歌发布 BERT 以来,预训练模型在自然语言处理(NLP)领域逐渐成为主流。今年 5 月份,OpenAI 推出的史上最大 AI 模型 GPT-3 更是引起了大量讨论。但是,目前 NLP 领域的预训练模型多针对英语语言,以英语语言数据为训练数据,例如 GPT-3:

用于训练 GPT-3 的数据集。

近日,北京智源人工智能研究院和清华大学研究团队合作开展了一项名为「清源 CPM (Chinese Pretrained Models)」的大规模预训练模型开源计划,旨在构建以中文为核心的大规模预训练模型。首期开源内容包括预训练中文语言模型和预训练知识表示模型,可广泛应用于中文自然语言理解、生成任务以及知识计算应用,所有模型免费向学术界和产业界开放下载,供研究使用。

  • 清源 CPM 主页:https://cpm.baai.ac.cn/

  • 清源 CPM Github 托管代码主页:https://github.com/TsinghuaAI/

模型特点

根据清源 CPM 主页介绍,该计划发布的预训练模型具备以下特点:

  • 模型规模大:本次发布的 CPM-LM 参数规模达 26 亿,预训练中文数据规模 100 GB,使用了 64 块 V100 GPU,训练时间约为 3 周;CPM-KG 的参数规模为 217 亿,预训练结构化知识图谱为 WikiData 全量数据,包含近 1300 个关系、8500 万实体、4.8 亿个事实三元组,使用了 8 块 V100 GPU 训练时间约为 2 周。

  • 语料丰富多样:收集大量丰富多样的中文语料,包括百科、小说、对话、问答、新闻等类型。

  • 学习能力强:能够在多种自然语言处理任务上进行零次学习或少次学习,并达到较好的效果。

  • 行文自然流畅:基于给定上文,模型可以续写出一致性高、可读性强的文本,达到现有中文生成模型的领先效果。

在模型训练方面,CPM 模型预训练过程分布在多块 GPU 上,采用层内并行的方法进行训练,并基于当前已有的成熟技术,减少同步提高通讯速率。

在硬件设施方面,为训练该 CPM 模型,共有 64 块 V100 显卡投入使用。经过预训练的 CPM 模型可以用来促进诸多下游中文任务,如对话、论文生成、完形填空和语言理解等。

为了促进中文自然语言处理研究的发展,该项目还提供了 CPM-LM (2.6B) 模型的文本生成代码,可用于文本生成的本地测试,并以此为基础进一步研究零次学习 / 少次学习等场景,详情参见项目 GitHub 主页。

模型性能

清源 CPM 使用新闻、百科、对话、网页、故事等不同类型的中文语料数据进行预训练。在多个公开的中文数据集上的实验表明,清源 CPM 在少样本或无样本的情况下均能够实现较好的效果。

中文成语填空 ChID

ChID 是 2019 年清华大学对话交互式人工智能实验室(CoAI)收集的中文成语填空数据集,其目标是对于给定的段落,在 10 个候选项中选择最符合段意的成语进行填空。

其中有监督设定是指在 ChID 的训练集上进行训练,随后在测试集上测试;无监督设定是指不经过任何额外训练,直接使用预训练模型进行测试。具体做法是,将候选项依次填入段落中,计算填充后段落的困惑度 (Perplexity),选择困惑度最小的候选项作为预测结果。表中汇报了预测的准确率,可以看到,CPM (大) 在无监督设定下甚至达到了比有监督 CPM (小) 更好的结果,反映出清源 CPM 强大的中文语言建模能力。

对话生成 STC

STC 是 2015 年华为诺亚方舟实验室提出的短文本对话数据集,要求在给定上文多轮对话的条件下预测接下来的回复。

其中 CDial-GPT 是清华大学对话交互式人工智能(CoAI)实验室 2020 年提出的中文对话预训练模型。用于衡量多样性的 Dist-n 指标的两个数字分别是所有不重复的 N-Gram 的数量及占所有 N-Gram 的比例。可以看到,在无监督的设定下,清源 CPM 具有更好的泛化性,在有监督设定下,清源 CPM 能达到比 CDial-GPT 更优的效果,尤其在多样性指标上表现更佳。

文本分类

清源 CPM 使用头条新闻标题分类(TNEWS,采样为 4 分类)、IFLYTEK 应用介绍分类(IFLYTEK,采样为 4 分类)、中文自然语言推断(OCNLI,3 分类)任务作为文本分类任务的基准。具体做法是,先输入分类样本,再输入「该文章的类别为 / 该介绍的类别为 / 两句话的关系为」,要求模型直接生成标签,四个标签中概率最高的标签作为预测结果。在无监督设定下,不同规模的清源 CPM 在文本分类任务上的精确度如下表所示:

清源 CPM 能够在无监督的设定下达到比随机预测好得多的精确度(TNEWS/IFLYTEK/OCNLI 随机预测精确度分别为 0.25/0.25/0.33)。

自动问答

CPM 使用 DuReader 和 CMRC2018 作为自动问答任务的基准,要求模型从给定段落中抽取一个片段作为对题目问题的答案,其中 DuReader 由百度搜索和百度知道两部分数据组成。在无监督的设定下,不同规模的 CPM 模型的表现如下表所示:

其中单样本是指在测试时,从数据集中随机抽取一个正确的「(段落,问题,答案)」三元组,插入到用于评价的样例前,作为 CPM 模型生成答案的提示;零样本是指直接使用 CPM 模型预测给定段落和问题的答案。在单样本设定下,CPM 能从给定的样本中学习到生成答案的模式,因此效果总是比零样本设定更好。由于模型的输入长度有限,多样本输入的场景将在未来进行探索。

模型效果展示

我们可以从以下示例中,观察 CPM 预训练中文语言模型的效果。比如基于对单个常识性问题的学习,依照规律进行提问和正确回答:

根据前文真实的天气预报,继续报道天气预报(不保证正确性):

执行数理推理:

甚至续写《红楼梦》片段:

据了解,清源 CPM 未来计划开源发布更大规模的预训练中文语言模型、以中文为核心的多语言预训练模型、融合大规模知识的预训练语言模型等。

参考阅读:

  • 从 word2vec 开始,说下 GPT 庞大的家族系谱 

  • 预训练语言模型关系图 + 必读论文列表,清华荣誉出品 

  • 乘风破浪的 PTM,深度解读预训练模型的进展