中⽂版GPT-3来了?智源研究院发布清源CPM——以中⽂为核⼼的⼤规模训练模型...
清源 CPM(Chinese Pretrained Models)是北京智源⼈⼯智能研究院和清华⼤学研究团队合作开展的⼤规模预训练模型开源计划,清源计划是以中⽂为核⼼的⼤规模预训练模型。⾸期开源内容包括预训练中⽂语⾔模型和预训练知识表⽰模型,可⼴泛应⽤于中⽂⾃然语⾔理解、⽣成任务以及知识计算应⽤,所有模型免费向学术界和产业界开放下载,供研究使⽤。
1
背景介绍
语⾔模型是指对⾃然语⾔⽂本进⾏概率建模的模型,它不仅可以估计任意⼀个给定⽂本序列的概率,也可以⽤来预测⽂本序列中某个位置上词的出现概率,是⾃然语⾔处理中最基本的问题。
2018年以来,预训练语⾔模型 (Pretrained Langauge Model, PLM) 的研究风起云涌。与此前有监督学习范式不同的是,预训练语⾔模型能够充分利⽤⼤规模的⽆标注数据学习通⽤的语⾔模型,然后再使⽤下游任务的少量有标注数据进⾏模型微调。与直接训练具体任务模型相⽐,在预训练语⾔模型基础上微调得到的模型在⾃然语⾔处理各⼤任务上均取得了显著的性能提升。
在 GPU 多机多卡并⾏算⼒和海量⽆标注⽂本数据的双重⽀持下,预训练模型实现了参数规模与性能齐飞的局⾯,取得了⼈⼯智能和深度学习领域的⾰命性突破。国际著名互联⽹企业和研究机构互相竞争,将模型规模和性能不断推向新的⾼度。BERT之后,短短两年时间,最新发布的 GPT-3 已经达到1750亿参数规模、上万块 GPU 的惊⼈训练规模。在⼈⼯智能与深度学习领域围绕超⼤规模预训练模型展开的“军备竞赛”⽇益⽩热化,成为对海量数据、并⾏计算、模型学习能⼒的全⽅位考验。
预训练模型规模以平均每年10倍的速度增长 (最后⼀列计算时间为使⽤单块NVIDIA V100 GPU训练的估计时间。M-百万,B-⼗亿)
预训练模型研究发展图科目二考试内容及合格标准
在这⼀态势下,亟需建⽴以中⽂为核⼼的超⼤规模预训练模型。为此,北京智源⼈⼯智能研究院和清华⼤学研究团队合作开展⼤规模预训练模型,并发布清源 CPM (Chinese Pretrained Models) 研究计划,旨在推动中⽂⾃然语⾔处理的研究与应⽤。清源 CPM 计划将依托智源研究院新建的⼈⼯智能算⼒平台,建⽴以中⽂为核⼼的超⼤规模预训练模型,进⾏基于超⼤规模预训练语⾔模型的少次学习能⼒以及多任务迁移能⼒研究,探索更具通⽤能⼒的语⾔深度理解技术。2020 年 11 ⽉中旬,CPM 开放第⼀阶段的26 亿参数规模的中⽂语⾔模型(CPM-LM) 和217亿参数规模的结构化知识表⽰模型 (CPM-KM) 下载,以及相应的系统演⽰。
关于预训练模型的⼤量实验表明,更⼤的模型参数和更多的预训练数据,通常能够带来更好的下游任务效果,这类模型被证明在各种少样本学习 NLP 任务中⼗分有效。传统预训练模型往往需要经过有监督训练数据微调 (Fine-tuning),才能解决各种⾃然语⾔处理任务。⽽第⼀版 CPM 中⽂语⾔模型与 GPT-3 等预训练模型类似,仅需要通过少次、单次学习甚⾄零次学习,就能完成不同⾃然语⾔处理任务,具备⼀定的常识和认知的泛化能⼒。CPM 模型从⼤规模的中⽂语料库中学习了通⽤的语⾔模式,有望显著提升中⽂⾃然语⾔处理各任务的性能。初步的实验表明,CPM 模型能够⽤于问题解答、摘要和对话以及⽣成各种⽂本包括随笔、⼩说、代码、电⼦表格等。
2
模型特点
与已有的中⽂预训练模型相⽐,本次发布的清源 CPM ⼤规模预训练模型具有以下特点:
1. 学习能⼒强:能够在多种⾃然语⾔处理任务上,进⾏零次学习或少次学习达到较好的效果。
2. 语料丰富多样:收集⼤量丰富多样的中⽂语料,包括百科、⼩说、对话、问答、新闻等类型。
3. ⾏⽂⾃然流畅:基于给定上⽂,模型可以续写出⼀致性⾼、可读性强的⽂本,达到现有中⽂⽣成模型的领先效果。
4. 模型规模⼤:本次发布的 CPM-LM 的参数规模为 26 亿,预训练中⽂数据规模100 GB,使⽤了 64 块 V100 GPU 训练时间约为 3周。CPM-KG 的参数规模分别为217亿,预训练结构化知识图谱为 WikiData 全量数据,包含近 1300 个关系、8500万实体、4.8 亿个事实三元组,使⽤了 8 块 V100 GPU 训练时间约为 2 周。
3
模型训练⽅法
⽬前预训练模型的模型参数与数据规模均在不断增长,给训练任务带来极⼤的挑战。具体⽽⾔,数据规模的增⼤导致训练时间成倍数增长,模型参数规模的增⼤导致单卡⽆法容纳整个模型的参数。⾯对这些挑战,则需要设计⾼效的⼤规模训练框架,能够⽀持庞⼤的训练规模并有效降低训练时间。
本次发布的⼤规模预训练模型,单块 GPU 上的存储与计算单元难以承受其训练过程。因此,需要将模型在多个 GPU 之间分配参数,进⾏并⾏化训练。CPM 模型预训练过程分布在多块 GPU 上,采⽤层内并⾏的⽅法进⾏训练,并基于当前已有的成熟技术,减少同步提⾼通讯速率。
在硬件设施⽅⾯,为训练该 CPM 模型,共有 64 块 V100 显卡投⼊使⽤。经过预训练的 CPM 模型可以⽤来促进诸多下游中⽂任务,例如对话,论⽂⽣成,完形填空和语⾔理解等等。
当前主流的并⾏策略主要分为数据并⾏、模型并⾏和流⽔并⾏,具体来说:
免收过路费
● 数据并⾏是将每⼀批次的数据切分成⼏部分,分别发送到模型的多个镜像中进⾏训练。这些模型的参数保持⼀致,且在计算梯度时进⾏同步,保证梯度更新之后参数的⼀致性。数据并⾏主要解决了训练数据过⼤,单个设备⽆法存放的问题。
● 模型并⾏主要是为解决模型参数规模过⼤⽆法被单卡存放的问题。模型并⾏会将模型中的参数矩阵切分成⼏块,分别存放在不同的设备上,同时将训练中的超⼤规模矩阵计算分布到多块卡上。通过对
模型中矩阵操作的分块,⼀⽅⾯可以降低单个设备上的模型存储负担;另⼀⽅⾯,并⾏执⾏也能极⼤优化计算时间,减少每张卡的计算量。
● 流⽔并⾏则是针对训练批次进⾏优化,将训练数据在不同层间的计算流⽔化,以提⾼计算集的利⽤效率。在实际的训练中,以上三种并⾏模型常常会⼀起使⽤。与模型并⾏相⽐,流⽔并⾏能够降低并⾏执⾏过程中产⽣的设备之间的通信量,降低通信时间。
在利⽤上述三种成熟优化的基础上,CPM计划对模型并⾏中的通信进⾏进⼀步优化,削减通信时间,提升运⾏效率。这部分优化将在下⼀阶段⼯作中体现。
4
模型实验结果
清源 CPM 使⽤新闻、百科、对话、⽹页、故事等不同类型中⽂语料数据进⾏预训练。在多个公开的中⽂数据集上的实验表明,清源 CPM 在少样本或⽆样本的情况下都能够达到较好的效果。
4.1. 中⽂成语填空 ChID
庞巴迪三轮摩托ChID 是 2019 年清华⼤学对话交互式⼈⼯智能实验室(CoAI)收集的中⽂成语填空数据集,其⽬标是对于给定的段落,在 10 个候选项中选择最符合段意的成语进⾏填空。
其中有监督设定是指在 ChID 的训练集上进⾏训练,随后在测试集上测试;⽆监督设定是指不经过任何额外训练,直接使⽤预训练模型进⾏测试。具体做法是,将候选项依次填⼊段落中,计算填充后段落的困惑度 (Perplexity),选择困惑度最⼩的候选项作为预测结果。表中汇报了预测的准确率,可以看到,CPM(⼤) 在⽆监督的设定下甚⾄达到了⽐有监督的 CPM (⼩) 更好的结果,反应了清源 CPM 强⼤的中⽂语⾔建模能⼒。
4.2. 对话⽣成 STC
STC 是2015年华为诺亚⽅⾈实验室提出的短⽂本对话数据集,要求在给定上⽂多轮对话的条件下预测接下来的回复。
其中 CDial-GPT 是清华⼤学对话交互式⼈⼯智能(CoAI)实验室 2020 年提出的中⽂对话预训练模型。⽤于衡量多样性的 Dist-n 指标的两个数字分别是所有不重复的 N-Gram 的数量及占所有 N-Gram 的⽐例。可以看到,在⽆监督的设定下,清源 CPM 具有更好的泛化性,
苏州交通违章在有监督设定下,清源 CPM 能达到⽐ CDial-GPT 更优的效果,尤其在多样性指标上表现更佳。以下为⽣成的对话样例。
牌照
4.3. ⽂本分类
清源 CPM 使⽤头条新闻标题分类 (TNEWS,采样为4分类),IFLYTEK应⽤介绍分类 (IFLYTEK,采样为4分类),中⽂⾃然语⾔推断
(OCNLI,3分类) 任务作为⽂本分类任务的基准。具体做法是,先输⼊分类样本,再输⼊“该⽂章的类别为/该介绍的类别为/两句话的关系
为”,要求模型直接⽣成标签,四个标签中概率最⾼的标签作为预测结果。在⽆监督设定下,不同规模的清源 CPM 在⽂本分类任务上的精
确度如下表所⽰。
清源 CPM 能够在⽆监督的设定下达到⽐随机预测 (TNEWS/IFLYTEK/OCNLI 随机预测精确度分别为0.25/0.25/0.33) 好得多的精确度。
4.4. ⾃动问答
CPM 使⽤ DuReader 和CMRC2018 作为⾃动问答任务的基准,要求模型从给定的段落中抽取⼀个⽚段作为对题⽬问题的答案。其中DuReader 由百度搜索和百度知道两部分数据组成。在⽆监督的设定
下,不同规模的 CPM 模型的表现如下表所⽰。
其中单样本是指在测试时,从数据集中随机抽取⼀个正确的 “(段落,问题,答案)” 三原组,插⼊到⽤于评价的样例前,作为 CPM 模型⽣成答案的提⽰。零样本是指直接使⽤ CPM 模型预测给定段落和
西安二手车市
问题的答案。在单样本设定下,CPM 能从给定的样本中学习到⽣成答案的模式,因此效果总是⽐零样本设定更好。由于模型的输⼊长度有限,多样本输⼊的场景将在未来进⾏探索。
4.5. 实体⽣成
CPM 采⽤ XLORE 中的⼏种常见的关系三元组作为实体⽣成任务的基准。在少样本设定 (把少量真实样本拼在待预测样本前作为提⽰) 下,不同规模的 CPM 模型的 BLEU-1 值如下表所⽰。我们针对同⼀种关系类别 (表格中的类别) ,给定 N 个三元组 (实体,关系,实体),再拼接待预测样本,让模型预测对应的尾实体。