关键一:数据
训练数据主要是所谓的语料库。今天的很多语言模型的语料库主要有以下几种:
- Books:BookCorpus 是之前小语言模型如 GPT-2 常用的数据集,包括超过 11000 本电子书。主要包括小说和传记,最近更新时间是 2015 年 12 月。大一点的书籍语料库是 Gutenberg,它有 70000 本书,包括小说、散文、戏剧等作品,是目前最大的开源书籍语料库之一,最近更新时间是 2021 年 12 月。
- CommonCrawl:这个是目前最大的开源网络爬虫数据库,不过这个数据包含了大量脏数据,所以目前常用的四个数据库是 C4、CC-Stories、CC-News 和 RealNews。另外还有两个基于 CommonCrawl 提取的新闻语料库 REALNEWS 和 CC-News。
- Reddit Links:简单理解 Reddit 就是外国版本的百度贴吧 + 知乎。目前开源的数据库有 OpenWebText 和 PushShift.io。
- Wikipedia:维基百科是目前大模型广泛使用的语料库。
- Code:一般包含 GitHub 上的开源公共代码库,或者是 StackOverflow 的数据,Google 之前发布过一个叫 BigQuery 的数据集。
实际上,训练大语言模型会混合使用不同的数据,一般不会只使用单一语料库。比如 GPT-3 用的混合数据集就包括 Books、CommonCrowl、Reddit Links 和 Wikipedia。
从数据上看,你需要知道一个事实,中文语料在这上面占比很小。ChatGPT 能用中文回答你的问题,只是因为它的语料里有一些中英文对应的语料,然后模型就像是「懂中文了一样」,所以更可能的情况是,它先生成了英文内容,再翻译成中文。如果你去问 ChatGPT 3.5:请给我几个中文谐音梗,你应该就能理解我说的话了。
以下是 ChatGPT 的返回结果:
以下是一些中文谐音梗的例子:
我蒸发了,意思是我是 Vaper 了(Vaper发音接近蒸发)。
会有星期天,都得过过来,意思是星期二,星期三,星期四,星期五,星期六,都得过过来。
看到你,我的内心凉了 below zero,意思是凉了半截(below zero与半截音相近)。
蜀道难,难于上青天,赛道难,难于上488(488与“蜀道难”同音)。
洋葱姑娘,想哭却哭不出来,因为洋葱让我流泪了(洋葱和“要哭”在中文中的发音很相似)。
雨纷纷,旧故里草木深,我听闻,你始终在我身边深(“身边深”和“身边寻”谐音)。
你的车开得真快,一开就是“出租”,意思是“出祖宗”(发音类似)。
关键二:算法
有了数据之后,你还需要有算法去做计算,目前最常用的开发大语言模型的算法库有:
- Transformers:这是一个使用 Transformer 架构构建的开源 Python 库。
- DeepSpeed:是由微软开发的深度学习优化库。
- Megatron-LM:这是由 Nvidia 开发的深度学习库。
- JAX:它是由 Google 开发的用于高新能机器学习算法的 Python 库。
关键三:算力
简单理解,算力就是计算资源,或者说硬件,OpenAI 没有说它训练 GPT-3 语言模型花了多少计算资源。但 OpenAI 的 CEO 暗示硬件成本超过一亿美元,如果我们按照 1000 美元一个 GPU 计算,它大约使用了 10 万个 GPU,以 32 位运算为准,它能提供超过 100 PFLOPS 的算力,也就是每秒 10 亿亿次运算以上,这大约是阿里云最大的数据中心的四分之一的算力。
注意,这还是 GPT-3 时的花费。
另外,我还想分享一个观点,不要以为算力会随时间的前进,就能跨越。算力永远会是制约我们瓶颈,因为我们对人工智能的要求会不断的提高。
正文完