gtp2: 中文文本生成
GPT2-ChineseDescriptionChineseversionofGPT2trainingcode,usingBERTtokenizer.ItisbasedontheextremelyawesomerepositoryfromHuggingFaceteamTransformers.Canwritepoems,news,novels,ortraingenerallanguagemodels.Supportcharlevel,wordlevelandBPElevel.Supportlargetrainingcorpus.中文的GPT2训练代码,使用BERT的Tokenizer。BIGUPDATE04.22.2021因群众普遍反映原代码对新手不够友好,且代码本身年久失修,我使用PytorchLightning与Transformers库重写了一版训练与预测的代码。具体使用方法请参考本README的使用方法一栏。模型本身结构与旧代码兼容。这一版经过基本测试,可以完成训练与预测任务,代码在易用性上得到了提升。但是功能上会比原版代码有所缺失一些,如加载预训练模型的功能需要自己写一段小代码来添加一下。原版代码保存在本项目的old_gpt_2branch中,如有需要的话用户依然可以从中获取进行学习。新版代码的依赖写在了requirements.txt文件中,请记得提前安装。请注意:本项目的预测脚本直接使用的话只支持预测本项目生成的checkpoint,如果要载入huggingface官方格式的GPT2checkpoint,请直接使用GPT2LMModel对象的frompretrained功能进行载入。之后的预测流程是一样的。UPDATE02.06.2021本项目新增了通用中文GPT-2预训练模型、通用中文GPT-2预训练小模型、中文歌词GPT-2预训练模型和文言文GPT-2预训练模型。模型由UER-py项目训练得到,欢迎大家使用。此外,模型上传到了HuggingfaceModelHub中。更多模型的细节请参考gpt2-chinese-cluecorpussmall、gpt2-distil-chinese-cluecorpussmall、gpt2-chinese-lyric和gpt2-chinese-ancient。
在使用所有模型进行生成时,需要在输入的文本前加入一个起始符,如:若要输入“最美的不是下雨天,是曾与你躲过雨的屋檐”,正确的格式为“[CLS]最美的不是下雨天,是曾与你躲过雨的屋檐”。
UPDATE11.03.2020本项目新增了古诗词GPT-2预训练模型和对联GPT-2预训练模型。模型由UER-py项目训练得到,欢迎大家使用。此外,模型上传到了HuggingfaceModelHub中。更多模型的细节请参考gpt2-chinese-poem和gpt2-chinese-couplet。
在使用古诗词模型进行生成时,需要在输入的文本前加入一个起始符,如:若要输入“梅山如积翠,”,正确的格式为“[CLS]梅山如积翠,”。
对联模型训练时使用的语料格式为“上联-下联”,在使用对联模型进行生成时,需要在输入的文本前加入一个起始符,如:若要输入“丹枫江冷人初去-”,正确的格式为“[CLS]丹枫江冷人初去-”。
NEWS08.11.2020CDial-GPT(可用本代码载入)已发布。本项目包含一个经过严格清洗的大规模放开域中文对话数据集,本项目还包含在此数据集上训练的GPT对话预训练模型,以及生成样例,欢迎大家参观。NEWS12.9.2019新项目GPT2-chitchat已发布,部分基于本项目代码。包含训练GPT2对话模型的代码与与训练模型,以及生成样例,欢迎大家参观。NEWS12.7.2019新项目Decoders-Chinese-TF2.0同样支持GPT2的中文训练,在使用上更加简单,不易产生各种问题。目前还在测试阶段,欢迎大家提出意见。NEWS11.9GPT2-ML(与本项目无任何直接关联)已发布,包含1.5B中文GPT2模型。大家如有兴趣或需要可将其转换为本项目支持的Pytorch格式进行进一步训练或生成测试。UPDATE10.25本项目第一个预训练模型已公布,为散文生成模型,具体可查看README模型分享部分。使用方法准备语料,放在data/train.json文件中,该文件的结构是:每行一个json字符串。(可选)准备训练参数设置,放在config文件夹中。(可选)准备tokenizer词表,放在vocab文件夹中。运行bashtrain.sh进行训练。具体训练参数可以参考train.py文件中的argparse相关描述。运行python3generate.py进行生成,生成的前缀可以在prefix参数中进行设置。可参考源码中参数设定部分代码。注意因群众普遍反映原代码对新手不够友好,且代码本身年久失修,我使用PytorchLightning与Transformers库重写了一版训练与预测的代码。具体使用方法请参考本README的使用方法一栏。模型本身结构与旧代码兼容。这一版经过基本测试,可以完成训练与预测任务,代码在易用性上得到了提升。但是功能上会比原版代码有所缺失一些,如加载预训练模型的功能需要自己写一行代码来添加一下。原版代码保存在本项目的old_gpt_2branch中,如有需要的话用户依然可以从中获取进行学习。新版代码的依赖写在了requirements.txt文件中,请记得提前安装。请注意:本项目的预测脚本直接使用的话只支持预测本项目生成的checkpoint,如果要载入huggingface官方格式的GPT2checkpoint,请直接使用GPT2LMModel对象的frompretrained功能进行载入。之后的预测流程是一样的。语料可以从这里与这里下载。斗破苍穹语料可以从这里下载。联系作者Mail:ned1991@gmail.comCiting@misc{GPT2-Chinese,author={ZeyaoDu},title={GPT2-Chinese:ToolsfortrainingGPT2modelinChineselanguage},year={2019},publisher={GitHub},journal={GitHubrepository},howpublished={url{https://github.com/Morizeyao/GPT2-Chinese}},}模型分享模型名称模型介绍分享者链接地址1链接地址2散文模型使用130MB的名家散文、情感散文和散文诗歌训练所得。hughqiu百度网盘【fpyu】GDrive诗词模型使用180MB的约80万首古诗词训练所得。hhou435百度网盘【7fev】GDrive对联模型使用40MB的约70万条对联训练所得。hhou435百度网盘【i5n0】GDrive通用中文模型使用CLUECorpusSmall语料训练所得。hhou435百度网盘【n3s8】GDrive通用中文小模型使用CLUECorpusSmall语料训练所得。hhou435百度网盘【rpjk】GDrive中文歌词模型使用140MB的约15万首中文歌词训练所得。hhou435百度网盘【0qnn】GDrive文言文模型使用1.8GB的约300万篇文言文训练所得。hhou435百度网盘【ek2z】GDrive此处为热情大方的git友训练所得的模型文件,公开给所有朋友使用,同时也欢迎各位伙伴将自己训练完毕的模型公开于此处。
Demo由用户JamesHujy根据本仓库改版代码训练得到的模型作为律诗与绝句后台,新版九歌诗歌生成器已经上线。由leemengtaiwan贡献,提供文章直觀介紹GPT-2以及如何視覺化自注意力機制。另提供Colab筆記本與模型供任何使用者一鍵生成新樣例。生成样例-以下为文学散文的生成样例,由hughqiu贡献,模型已经分享于模型分享列表。语料130MB,Batchsize16,10层深度下训练10轮所得。
下为斗破苍穹的生成样例,使用约50M参数的GPT2以32BatchSize在16MB斗破苍穹小说内容上训练得到。此处[SEP]表示换行。下为古诗词的生成样例,由用户JamesHujy运算并贡献。下为古诗限定了生成体裁后的生成样例,由用户JamesHujy运算并贡献。下为生成剧本的样例文本,由用户chiangandy运算并贡献[starttext]爱情游戏剧情讲述了钢琴父女明致怀萌的爱情、个有着努力的热情以及现实为人生的价值观众,获得一系列爱情的故事。80后录股媒体受到网友分享,是2014年主创陈拉昀出品牌总监于蓝氏集团化验师创业团门的哥哥大国度上海淮河畔,集入第一线公司青年度虽然没有放到的事业,但是蓝正是却不到位主人拒绝了解,而在蓝越的帮助理念出现,也因此开启明朗的误会而经营变成爱河。在一次偶然的编剧集电视剧之夏天上一改变了自命运环球顶樑,三人在创车祸中不知被记忆差网识分到创作,并被问流言败,以及行业服务所有的低调教同才力,陈昭和唐诗诗妍展开了一段截然不同的“2014年间段感情”,两人性格互相治癒的商业奋斗故事,尽管是共90后北京华侨大学录的一个宿舍小旅程和唐如、生等优秀青年,的人生活如何与愿违3个国偶像,并且共同创作何以此他们互相有观众的成功和关心吗?[endtext]
[starttext]学习爱情主要讲述了两对方小曼,经过啼笑皆非的考验,终于选择了三个孩子,携手共同创业来四个孩子,在大城市里创业的成功商。两家内事业的加入了北京城市,经过了一次元城市融风雨故、差异后得到异的他们,最终收获了梦想的真正属于自己的爱情。赞助理想、电视剧、剧等主创业时代人物特点在北京举行开机仪式,该剧以当下海南三个新人青年轻人面人海南梅竹马的电视角,讲述了几个在北京、喜剧代人生活中增强非浪漫的年轻人,以独特的双时代年轻人从来到北京城市化中国大城市走出发展以海南方的变迁在语种城市闯关于人生态的同时,以及他们渐渐的生活方式为自己方向上演了那么简单俗,是当代际拍摄的就如何在这个城市里都市里?那么平静的城市就是城市的风格特张嘉和支持工作打造,而这是一点就要打造出机场话剧组会。化身处处棋逢貌各种文化的人都非常独特的煽情,交织了相,滑稽等来自外衣的东北漂亮、内地,者和两位女孩子敢称是哑女孩子。交织里的人齐飞一开泰块玩笑,令人印象太趋的气质,让人眼看这个性格非常喜剧,知道的是一个“东北漂”人的外国小养家,让她耳熟练读剧的外形象显老大。之后齐飞、表示爱朗的齐飞、范儿、楚月子、白天杰。两代人的生活里友情似乎没有结合、精彩表态的开朗和丽丽丽。[endtext]
下為金庸武俠小說的生成樣例,由leemengtaiwan贡献。模型大小約82M,語料50MB,Batchsize16。提供文章直觀介紹GPT-2以及如何視覺化自注意力機制。另提供Colab筆記本與模型供任何使用者一鍵生成新樣例。“中文版GPT
晓查发自凹非寺
量子位报道|公众号QbitAI
今年,OpenAI推出的自然语言模型GPT-3引起了巨大的轰动。
这是迄今为止最大的NLP模型,包含1750亿参数,光是训练就调用上万块GPU,花费了460万美元的成本。
但GPT-3是基于英语语料库进行训练,而且并不开源,业内一直期待着能有一个中文的超大型NLP模型。
现在,它终于来了!
最近,北京智源人工智能研究院和清华大学研究团队,合作开展了一项大规模预训练模型开源计划——清源CPM(ChinesePretrainedModels)。11月中旬,CPM将开放第一阶段的26亿参数规模的中文语言模型(CPM-LM)和217亿参数规模的结构化知识表示模型(CPM-KM)下载,以及相应的Demo。
该项目的源代码和模型已经在GitHub和官网开放下载。
CPM中文语言模型与GPT-3模型类似,仅需要通过少次、单次学习甚至零次学习,就能完成不同自然语言处理任务,具备一定的常识和认知的泛化能力。官方表示,清源CPM计划所有模型免费向学术界和产业界开放下载,供研究使用。
模型特点
与已有的中文预训练模型相比,本次发布的清源CPM大规模预训练模型具有以下特点:
1、语料丰富多样:收集大量丰富多样的中文语料,包括百科、小说、对话、问答、新闻等类型。2、模型规模大:本次发布的CPM-LM的参数规模为26亿,预训练中文数据规模100GB,使用了64块V100GPU训练时间约为3周。
3、学习能力强:能够在多种自然语言处理任务上,进行零次学习或少次学习达到较好的效果。
4、行文自然流畅:基于给定上文,模型可以续写出一致性高、可读性强的文本,达到现有中文生成模型的领先效果。
Demo展示
为了更直观地展示清源CPM预训练模型的效果,官方提供了一些文本生成的Demo。
GPT-3能胜任的常识性问答,CPM预训练模型一样可以应对:
它能够根据真实的天气预报内容,生成天气预报文本模板:除了生成文字外,清源CPM还具有一定的数理推理,根据之前的规律生成计算结果:甚至可以续写红楼梦片段:另外,智源和清华团队还在几项基准测试中验证了清源CPM的实际性能。1、中文成语填空
ChID是2019年清华大学对话交互式人工智能实验室(CoAI)收集的中文成语填空数据集,其目标是对于给定的段落,在10个候选项中选择最符合段意的成语进行填空。
表中汇报了预测的准确率,可以看到,CPM(大)在无监督的设定下甚至达到了比有监督的CPM(小)更好的结果,反应了清源CPM强大的中文语言建模能力。2、对话生成
STC是2015年华为诺亚方舟实验室提出的短文本对话数据集,要求在给定上文多轮对话的条件下预测接下来的回复。
在无监督的设定下,清源CPM具有更好的泛化性,在有监督设定下,清源CPM能达到比CDial-GPT更优的效果,尤其在多样性指标上表现更佳。以下为生成的对话样例。3、文本分类清源CPM使用头条新闻标题分类(TNEWS,采样为4分类),IFLYTEK应用介绍分类(IFLYTEK,采样为4分类),中文自然语言推断(OCNLI,3分类)任务作为文本分类任务的基准。
可以看出,清源CPM能够在无监督的设定下达到比随机预测(TNEWS/IFLYTEK/OCNLI随机预测精确度分别为0.25/0.25/0.33)好得多的精确度。4、自动问答
CPM使用DuReader和CMRC2018作为自动问答任务的基准,要求模型从给定的段落中抽取一个片段作为对题目问题的答案。其中DuReader由百度搜索和百度知道两部分数据组成。
在单样本设定下,CPM能从给定的样本中学习到生成答案的模式,因此效果总是比零样本设定更好。由于模型的输入长度有限,多样本输入的场景将在未来进行探索。5、实体生成
CPM采用XLORE中的几种常见的关系三元组作为实体生成任务的基准。在少样本设定(把少量真实样本拼在待预测样本前作为提示)下,不同规模的CPM模型的BLEU-1值如下表所示。
可以看出参数量越大时,模型对于预测实体效果越好。同时,模型在给定2个样本时就可以达到不错的效果,大部分时候N=2和N=4的效果是接近的。64块V100训练3周智源和清华本次发布的大规模预训练模型,难以在单块GPU上运行,因此需要将模型在多个GPU之间分配参数,进行并行化训练。
CPM正是基于英伟达的大规模并行计算训练项目Megatron-LM。
CPM模型预训练过程分布在多块GPU上,采用层内并行的方法进行训练,并基于当前已有的成熟技术,减少同步提高通讯速率。
本次发布的CPM-LM的参数规模为26亿,预训练中文数据规模100GB,使用64块英伟达V100GPU,训练时间约为3周。
而CPM-KG的参数规模为217亿,预训练结构化知识图谱为WikiData全量数据,包含近1300个关系、8500万实体、4.8亿个事实三元组,使用了8块英伟达V100GPU训练时间约为2周。
未来计划
今年年底开源的两个项目只是清源NLP研究计划的第一步,据了解,清源CPM未来一年的研究和开源计划是:
阶段1(2020年10月-12月):中文大规模预训练语言模型,含约30亿参数,训练数据包括100GB中文数据。阶段2(2021年01月-06月):以中文为核心多语言大规模预训练语言模型,含约200亿参数,训练数据包括500GB以中文为核心的多语言数据。
阶段3(2021年07月-09月):知识指导的大规模预训练语言模型,含约1000亿参数,训练数据包括1TB以中文为核心的多语言数据和亿级实体关系图谱。
清源CPM计划将积极配备算力、数据和人力,注重开展原创研究,尽早实现与国际顶尖机构在超大规模预训练模型技术方面并跑,提升中文自然语言的深度理解和生成能力。
与此同时,智源研究院也将积极与产业界合作,在智能客服、个性推荐、文本生成、自动编程等方面,探索新型的人工智能应用和商业模式。
关于清源CPM计划
清源CPM计划是以中文为核心的大规模预训练模型。
首期开源内容包括预训练中文语言模型和预训练知识表示模型,可广泛应用于中文自然语言理解、生成任务以及知识计算应用。
清源CPM计划由北京智源人工智能研究院和清华大学研究团队合作开展。“自然语言处理”是智源研究院重点支持的重大研究方向之一。
智源在该方向上集结了大量国内权威学者,这些学者在NLP领域积累了丰富的研究成果。
如清华大学孙茂松、刘知远团队和李涓子、唐杰团队提出了知识指导的预训练模型ERNIE和KEPLER,循环智能杨植麟团队提出了性能显著优于BERT的XLNet模型,清华大学朱小燕和黄民烈团队提出了面向情感分析的预训练模型SentiLARE,融合常识知识的预训练语言生成模型StoryGPT,面向中文对话生成的CDial-GPT模型,等等。
研究团队将在智源研究院大规模算力平台的支持下,开展以中文为核心的超大规模预训练模型研究,包括跨语言学习、文本生成、知识融合、模型并行和压缩等前沿课题,并将相关模型及时通过智源社区开源共享。
传送门
清源CPM项目主页:
https://cpm.baai.ac.cn/
清源CPM源代码主页:
https://github.com/TsinghuaAI/CPM-Generate
—完—
本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。
原标题:《“中文版GPT-3”来了:会算术、可续写红楼梦,用64张V100训练了3周》
阅读原文