简要介绍CPM 1.0/华为盘古/CPM 2.0/EVA/达摩院PLUG,做一些简单的对比和应用介绍。
模型介绍模型1: CPM 1.0论文:
CPM:一个大规模生成式汉语预训练语言模型
https://arxiv.org/pdf/2012.00413.pdf
代码:
https://github.com/TsinghuaAI/CPM
认为比较好用的作者提供的TensorFlow版本:
https://github.com/deepdialog/CPM-LM-TF2
严格来说,CPM模式发布于2020年12月左右。其实很多代码和文件都是2021年才发布的,所以勉强算是“今年”。
CPM这个名字应该是中文预训练语言模型的缩写。自从2020年5月GPT-3发布以来,我就一直期待中文版的类似机型,所以对CPM也有很大的期待。
CPM的大部分代码其实都是基于NVIDIA的威震天代码,包括盘古alpha也是基于威震天修改并重新实现了一个版本(盘古标准版原来是华为的MindSpore实现的)。威震天的链接:https://github.com/NVIDIA/Megatron-LM
威震天已经实现了一个解码器模型,基本上与GPT-3一致。遵循威震天代码的CPM 1.0在模型上和GPT-3没什么区别。
2.盘古阿尔法纸:
PANGU-:具有自动并行计算的大规模自回归预训练汉语语言模型
https://git.openi.org.cn/PCL-Platform.智能/盘古-/生/枝/主/盘古-。可移植文档格式文件的扩展名(portable document format的缩写)
代码:
3359git.openi.org.cn/pcl-platform.intelligence/pangu-alpha #用户-内容-模型下载
https://git.openi.org.cn/PCL-Platform.情报/中文-威震天
在线测试:
https://pangu-alpha.openi.org.cn/
认为比较好用的作者提供的TensorFlow版本:
https://github.com/deepdialog/PanGu-alpha-tf
在GPT-3的基础上,阿尔法做了一些修改。
阿尔法的第一个N-1层的结构与GPT-3的结构相同。在最后一层,用一个与位置嵌入结构相同的新的查询嵌入代替最后一层自关注查询的输入。
也就是说,其他层的自我关注的qkv都是普通输入,而最后一层的自我关注的qkv中的Q输入修改为查询嵌入的输出。
盘古自己的代码比较复杂,原谅我对MindSpore不熟悉。可以参考我写的TensorFlow版本代码的这三个部分,一个文件,分别在第127/261/289行:
https://github . com/deep dialog/PanGu-alpha-TF/blob/f64a 8985880 b 7050 e 804 f 205 f 846 C5 ff 9 AE 8 a5 be/TF 2g pt/model . py # L127
https://github . com/deep dialog/PanGu-alpha-TF/blob/f64a 8985880 b 7050 e 804 f 205 f 846 C5 ff 9 AE 8 a5 be/TF 2g pt/model . py # L261
https://github . com/deep dialog/PanGu-alpha-TF/blob/f64a 8985880 b 7050 e 804 f 205 f 846 C5 ff 9 AE 8 a5 be/TF 2g pt/model . py # L289
3.模型3: CPM 2.0纸张:
CPM-2:大规模高性价比的预训练语言模型
https://arxiv.org/pdf/2106.10715.pdf
代码:
https://github.com/TsinghuaAI/CPM
作者提供的模型调用代码,基于huggingface的变形金刚库,觉得可能比较好用:
https://github.com/deepdialog/CPM-2.0-GEN
CPM 2.0是2021年6月发布的新型号。整体架构不再是GPT-3,而是带编解码结构的T5。
主要目标不是类似于GPT-3的背景零/低射学习,而是去年更流行的即时调谐(p-tuning)方法。这个在我的账号之前的《用mT5模型微调中文分类任务示例》篇文章中也有比较详细的介绍。
这个型号使用的是T5的最新版本,或者说mT5型号,本文主要对比的型号是mT5。
模型4: EVA纸:
EVA:一个具有大规模生成性预训练的开放领域汉语对话系统
https://arxiv.org/pdf/2108.01547.pdf
代码:
https://github.com/BAAI-WuDao/EVA
作者提供的模型调用代码,基于huggingface的变形金刚库,觉得可能比较好用:
https://github.com/deepdialog/EVA-GEN
模式五:达摩院外挂相关新闻:
https://m.thepaper.cn/baijiahao_12274410
演示地址:
https://nlp.aliyun.com/portal#/BigText_chinese
可惜没有纸,没有代码等。在这个模型中,只有一些发布新闻的描述和一个需要登录的在线测试地址。
从描述来看,这是一款26B参数的中国机型。似乎采用了类似T5的编解码模型,但编码器和解码器大小不等,分别为24层和6层。
先训练编码器,再微调训练解码器,保证模型的编码器有足够的能力,也保证解码器模型善于生成任务。
模型大小对比:一般用xx亿(B)来表示模型的参数大小。因为型号可能是float32,float16或者其他格式,再加上其他一些原因,这个参数大小不能简单理解为文件大小。
1B说是10亿。
CPM 1.0: 2.6B(直接下载),精华版109M(直接下载)
盘古alpha: 2.6B(直接下载),13B(直接下载),200B(未开放)
2.0: 11b CPM(需要下载),198B CPM(需要下载)
EVA:2.6亿(需要下载)
插头:25B(未下载)
注意直接下载,不代表不需要遵守相应的协议。
估计的内存使用量:
2.6B型号,假设是float32,可能至少需要10GB显存才能满载,而float16大概需要5GB显存的一半。
11B~13B型号,假设是float16(注意这里是16),可能需要20 ~ 25GB显存才能满载。
与应用培训相比:CPM 1.0/盘古alpha:基于GPT-3的解码器模型,可用于直接NLG生成,类似于GPT-3的上下文零/少炮学习,具有可选的提示调谐。
2.0/PLUG:基于T5的编解码结构模型(PLUG是估计的),编码器可以单独使用BERT,模型需要微调或提示调优,经过训练理论上可以实现几乎任何NLP任务。
EVA:基于T5的编解码结构模型,实现了对话/闲聊的功能,并针对对话任务进行了专门训练。编码器可以直接用,但意义不大。可以选择微调或即时调谐。
有些八卦文章没有对比模型,也没有实际的方法和能力做到这一点。本文只是简单盘点,抱歉;除了信息量很少的PLUG模型,前面四个模型都使用了基于jieba的tokenizer。其实正文作者对这一点是有很大疑问的,因为洁霸可能存在很多问题,比如受自身性能和分词能力的限制。目前谷歌正在考虑彻底扔掉tokenizer,直接使用字节。现在如果下一个中国大模特还需要用杰霸,我只能说是一件非常遗憾的事情。基于作者自己的工作经验,我宁愿牺牲一点点性能,认为更灵活的标记器可以让模型更适用于更多的工业应用。(本段提到的tokenizer的使用是指Google的这篇论文:BYT 5:用预先训练好的字节到字节模型Towers A Token-Free Future https://arxiv . org/pdf/2105.13626)。虽然这篇文章不会被仔细评价,但是,当我们从GPT-3的角度来看待这些模型时,我们会发现中文语料库和英文期望之间有很大的差异。一方面是估计数据量有差异,而中文的预期可能和英文的预期是一个数量级甚至更大的差异。另一方面,可能是数据本身的质量问题。毕竟wiki本身在广度和质量上都比各种中文百科好,更不用说其他种类的知识信息和网站了。喜欢玩游戏的人,尤其是欧美的,一定知道wikia,做投资的,有英语功底的,一定知道investopedia。他们真的是太喜欢wiki了,积累了很多知识,这在华人世界是完全无法比拟的。建议如果想尝试中国版的GPT-3,想尝试一些与in context学习或者零/少投学习相关的研究,可以从CPM 1.0和盘古alpha入手。
如果你想找一个测试提示音相关的方法,或者比mT5更懂中文的模型,请从CPM 2.0开始。
如果想测试最大的开放中文对话模型,可以从EVA开始。
各种模型手工制作图
视频快速进入“”
请记住-喜欢-收藏-分享。
图片仅供介绍,精彩不容错过!