ChatGPT出来以后很多人都在说开源,认为只要OpenAI大发善心或者哪个高超的黑客黑进服务器,把ChatGPT的源码发出来放到网上,那么到不了第二天天亮,全世界就会人手一个ChatGPT。
这是一种常见的误解。
开源字面意思是公开源代码,过去我们通常是指公开某款软件项目的源代码。知名的譬如说Linux操作系统,准确来说是操作系统内核,我们拿到Linux的源码,只要搭建好相应的编译环境,就能在本地编译一套一模一样的操作系统内核。
当然,实际会复杂一点,同一套源码用不同方法编译,运行效率、资源占用等都可能不同。这里姑且不再细抠,总之,过去软件开源给我们的印象就是,甭管什么阆苑仙葩,只要一开源就能人手一份,而且很快还会有各种换皮魔改,同人逼死官方。往好了说,这叫开源带来澎湃力量。
但大语言模型的“开源”完全不是这么一回事。先别管OpenAI现在名叫钮钴禄氏·CloseAI,就算哪天良心发现,真的要找回自己做一个名副其实的OpenAI,洗心革面把GPT-4给开源了。先别着急着高兴,对于99%的人来说,GPT-4的源码毫无意义,对于剩下的1%里的99%,可能也就蹭一些研究论文。只有最后剩下的1%里的1%才会有真正帮助,不过,也只是有帮助,但不算很大。
为什么?原因不复杂,因为大语言模型的所谓开源,实际上是有三个对象。源码只是其中之一。我不是针对谁,在座各位即使拿到了源码,剩下能做的也就只有点赞鼓掌。
人工智能三要素,算法、算力和数据。也有人管最后叫算据,不太确定这俩词是不是互通。总之,到了力大飞砖的大语言模型时代,这三要素就成了算法、高算力和大数据。只有同时满足这三大要素,你才有可能最终得到一款和ChatGPT类似效果拔群的模型。
那么,源码在哪呢?在算法。算法的核心部分主要包括有模型结构和训练方法,这两部分都有对应的源码。哪天OpenAI公开源码,我们应该就能看到的也就是模型结构和训练方法两部分。
当然,这只是核心部分。一款人工智能产品,尤其是大型人工智能产品,还会有许多工程问题需要解决,除了核心还需要其它配套部件。别看到“配套部件”就觉得没什么。之前同样是OpenAI,配套部件大概占九成。所以,别管它Open不Open吧,我们能看到的都是冰山一角。
拿到源码之后,真正的挑战才刚开始。接下来才是这个世界绝大多数人、研究机构和企业注定无法迈过的门槛:高算力和大数据。
高算力已经说了很多了,门槛很高,但从全世界范围来说,总归有一些企业挤挤还是有的。不过,大数据就未必了。
数据非常重要。无论是人工智能时代,还是人工智障时代,扩大数据的规模、提高数据的质量,通常都能显著提高模型的最终表现。以前我们经常自嘲,说人工智能就是投入多少人工就产出多少智能,人工做什么呢?就是标数据。
千万不要小看了标数据,这玩意费人、费钱,关键还费时间。搞一个大模型已经十分不易,搞一个能喂饱大模型的数据集更为困难。OpenAI这种光启动资金就10亿刀的富二代企业,标数据照样也得想办法省钱,后来还出了一条新闻。
这里插个的阴谋论,ChatGPT的免费用,换个角度看没准就成了我们给OpenAI免费标数据。有没有依据?有。OpenAI官方明着说了,你和ChatGPT的交互数据可能用于模型训练,要知道那可是一亿多的用户,那得生产多少高质量的人工标注数据。技术领先优势可以追赶,数据领先优势则就未必了。
好了,假设你七星聚顶,三大要素都凑齐了,接下来是不是就能炼出ChatGPT了呢?前面我们说过,“你才有可能最终得到一款和ChatGPT类似效果拔群的模型”。为什么是有可能?因为模型训练和编译源码不太一样,里面还包含一些难以言说的玄学因素。我一直对Bard的表现耿耿于怀,百思不得其解,我怀疑谷歌可能就是栽倒在玄学因素上面。
那么,现在很多研究者在呼吁的开源,到底是要开源什么呢?开源模型,具体来说,是开源训练好的模型参数。模型参数拿到手,基本上就能完整复现能力了。当然,这还是对于大企业、大机构来说,运行大语言模型虽然消耗的算力远不如训练,但也不是单卡就能负担的。
何况,行话说的“单卡运行”,通常是指60G显存往上。哥们那些打游戏的所谓高端显卡,在这还没够上起步价。
最后多说两句开源。开源很重要,人工智能能有今天的进步,开源功不可没。人工智能的研究成果大概有几种,首先就是论文。学术论文是要钱的,但是在人工智能领域,很多作者都免费公开了论文。当然,有些是论文,有些是名叫论文的文宣资料,通常倒数第三或者第四部分会放一些表格,表扬一下这次搞的模型在什么什么任务上面效果拔群,洋气一点,叫SOTA。
然后是源码。源码不是必选项,有些研究者只发论文不发源码,有一种原因是舍不得,觉得辛辛苦苦憋出来的成果不愿意简简单单就交给别人,当然也有可能觉得写得太烂丢不起人,或者在论文里吹太过了,担心别人复效不了质疑。
还有就是模型。前面说过,模型这玩意距离能力复现就一步之遥,有很多人爱开源模型,也有很多人不爱开源模型,原因和上面差不多,还有一种是大公司大机构才敢用,官方辞令很多,譬如“出于社会责任考虑”,或者“安全伦理存在巨大风险”等等。
谷歌在21年就搞出了大语言模型LaMDA,说技术过于先进不便展示,害得我对着论文流了好多口水。现在出来个Bard,还不如不展示。
这里为咱们的中文开源大语言模型打个Call吧,能讲中文还开源的大语言模型真的不多,清华放出来的ChatGLM-6B应该是佼佼者,而是真·单卡就能运行。这里说的是消费级显卡。
最后就是开源数据集了,这项工作很重要,但也很容易被圈外忽视。现在中文大语言模型缺的东西很多,抱怨的也很多,还有一票人天天平替这个平替那个,实在不知道怎么想。不过,讲屁话没有用,已经有一些开源项目开始做起来,这都是星星之火。