最近看了Andrej Karpathy的几个视频和演讲,对我理解大语言模型的原理有不小的帮助。这些原理,我认为对于没有AI背景知识的朋友同样可以理解(我就没有),然后在此基础上建立自己的逻辑分析框架,不会被那些“一惊一乍”的公众号文章带偏,也能更好的评估腾讯阿里在这个领域的进展情况。Andrej是OpenAI的创始科学家,之前还领导过特斯拉的人工智能团队
大语言模型应用的图景
普通用户直接体验到的功能,像ChatGPT、Bing的“对话”,百度的文心一格,腾讯的混元,这些都属于大语言模型应用(App),*通常*它们都需要联网去访问“大语言模型程序”才能使用。而像GPT3.5,GPT4.0指的是“大语言模型程序”。
很多人会以为"大语言模型程序"是个很复杂的系统,其实它的程序结构非常简单,只有一个模型参数文件和一个模型定义文件,在一台普通的笔记本电脑上就能运行,并且运行这个程序不需要联网。
我们之前在《人工智能之能与不能》把模型比喻为函数,那么模型定义文件就相当于用代码定义了:f(x) = ax + b,模型参数文件就相当于存储了a = 1,b=4。参数文件是可以随时替换的,它由训练过程得到,参数文件的大小跟模型参数数量有关,以Facebook之前开源的Llama 2为例,这个模型有750亿个参数(我们上面的例子,是2个参数),它的文件大小是140G。
模型定义可以用很多种编程语言去实现,像C语言,Python语言,一般就是几百行代码,只要模型定义是一样的,你可以随便把别人的参数文件拿过来直接用,这应该容易理解?就只是a和b的数值不同而已,不同的数值影响的是模型的"效果"。
模型定义其实就是算法或者说计算结构,一般是以论文的形式发表的,属于全世界公开的、共享的知识,目前这一波大语言模型热潮,源于2017年Google7位研究人员发布的11页论文《Attention Is All You Need》,里面介绍了一种叫”Transformer“的模型。
那么我们直接就可以有一些推论了:
- 大语言模型浪潮对国内互联网巨头的挑战,更多的是“工程”的问题,不是什么基础研究上面的挑战,就是怎么获取大量的数据,怎么构建强大的算力,这种“技术性”问题向来是我们擅长的,输的只会是时间,没有什么不可逾越的技术障碍。
- Transformer模型是有可能被替换的,如果将来出现更好更强大更节能的新模型,目前的这些大语言模型很可能就过时了,至少可持续的竞争优势这一点存疑,这也正是Transformer出来之后,以前那些红极一时模型的命运。
- 你在App上体验到的东西,不代表就是大语言模型具备的能力。
比如说,目前大语言模型可以说不具备推理的能力,但是你又能在使用的App上感受到“某种推理能力”,这可能是在App这一层通过传统的编程方法实现的。
比如说,App把一个问题拆成几个步骤,每个步骤单独询问大语言模型(多次问答),App再把每一次的结果汇总后再呈现给最终的用户。这也意味着用户体验最好的App未必就对应最好的模型。
大语言模型是个糟糕的名字
伏尔泰曾经说过:神圣罗马帝国既不神圣,也不罗马,更非帝国 ..."大/语言/模型"确定的只有模型,它有可能不大,也可能跟语言没有关系。大语言模型的英文是Large Language Model,简称LLM。但是它的本意是:大型,通用目的,预训练之后根据特定特务再微调的模型。要理解这个概念,我们需要知道在Transformer模型出来之前的AI图景。当时像文章摘要生成,语言翻译,指纹识别,声音识别,问答等等任务,都是单独一个模型,单独训练,单独部署,这些模型虽然只能完成特定任务,但是模型规模有的也很大。我们前面提到,"大语言模型程序"其实在一台笔记本电脑上就可以运行,更进一步,现在的发展趋势是让模型程序直接就在手机上运行,让AI成为手机里面像摄像机、地理定位之类的基础能力,部署在手机里的模型参数一般只有几十亿,比特定任务模型的参数数量还要少,是一个"小的大语言模型"。所以,"大语言模型"的反面不是“小语言模型”,而是“特定模型”,大,并不是大语言模型的必备特征。xxx不过是能够准确预测下一个单词的工具而已,没有那么神奇。
只要你稍微思考过,肯定会有疑问。因为准确预测下一个单词,最多也就是一个文档自动续写工具而已,你说它可以生成诗和文章,帮你写邮件,我加上一点想象力还能理解,那它是怎么做到能回答问题的?
答案是:只具备“准确预测下一个单词”的模型不能进行问答。大语言模型被分成了预训练和微调两个阶段,预训练出来的模型叫基础模型,具备“准确预测下一个单词”的能力,但是不能用于回答问题。那种能进行问答任务的模型,是在基础模型的基础上进一步微调(训练),就是再次“喂”给基础模型很多用问答的格式准备好的数据,这些数据就不是随便在网上能找到的,是要人工精心准备的。如果你把一个问题扔给一个基础模型,只会得到更多的问题。因为模型只会在你问的问题基础上自动续写下去,绝大多数情况,你都不会得到你想要的答案。
比如你要训练警犬、导盲犬、猎犬,它们是三种不同的用途/目的,但是你可以预先训练狗能听懂坐、爬、走、跳这些基础指令(基础能力),然后再根据最终的用途,进一步分开训练。大语言模型对应的基础能力就是:准确预测下一个单词。更准确地说,预测的不是下一个单词,而是下一个“数字”。在具体的实现中,是把文本切割为基本元素(Token),然后把基本元素转换为一个数字(相同元素相同数字)。模型接收的输入是数字,产生的输出也是数字,显示的时候再把数字转换为基本元素,再拼接起来,重新变成文本。(注:初始文本怎么切割为基本元素有多种方法,这主要跟处理的效率效果有关,属于工程实践中的细节问题,你甚至可以用字符跟数字对应)
一个输入序列,按照基本的组成元素进行切分,再把每个组成元素换成一个数字,把这些数字序列输入模型,大量大量的计算,得到一个训练好的模型。以后你给它一个序列片段,模型就能帮你预测下一个数字(组成元素)。这意味着,只要你输入的内容序列中含有某种结构性的东西(Pattern)都可以用大语言模型来处理,并不一定跟“语言”或者“文本”有关!
像Midjourney生成图片,Github CoPolit生成代码,音乐生成等等用的都是同样的模型,只不过是组成元素分别换成了像素、代码片段,音符。算力为什么如此重要
基础模型预测下一个单词(数字)的能力只跟两个因素有关:输入的数据量和模型参数的数量,都是越多越好,也就是说仍然处于"大力出奇迹"的阶段。目前大模型训练的数据量和计算量都是惊人的。训练用到的文本数据集,至少是TB甚至PB级的,什么概念?英国的莎士比亚一辈子总共创作了 39 部剧本、154 首十四行诗和两部长篇叙事诗,所有这些文本拼接在一起,含空格换行,总共也就1MB的大小。1 PB = 1024 * 1024 * 1024 MB成本方面,训练一个几百亿参数的基础模型,需要运算20天左右的时间,用到几千块GPU(英伟达的A100 GPU官方价至少要一万美元/块),花费至少几百万美元,之前还有信息泄露说GPT4的训练成本为6300万,美元。我其实知道,前面我说,模型就相当于一个函数,但是我给的函数只有2个参数,而大语言模型通常都是几百亿参数起步,这听起来有点像
但我也没有办法给你简单描述,这些模型其实都是神经网络。这又是一个约定成俗,但对外行特别不友好的名词:神经网络?其实严谨的叫法是:(人工)神经网络,但是它跟神经也没有任何关系,只是一种网状计算结构,我猜想可能是在人工智能研究的早期,借鉴了脑科学的一些方法/叫法,然后一直就沿用了下来,anyway,只理解原理的话不用深究。这里需要重点指出的是,尽管我们一直听到的是GPU跟大模型的故事,但是其实CPU也是可以用来训练大模型的,只是(非常)慢而已。
前面我们提到,目前训练一个千亿级参数的大模型要20天左右的时间,即使大家都是GPU,如果性能差个几倍,都是非常难以忍受的,有时候会让一些项目变成根本不可行。那CPU跟GPU为何会差距这么大呢?还是来个简单粗暴的例子。
在CPU里面就是要运算四次,一条一条依次运算,但是其实你可以把四条式子变成一个二维矩阵,然后变成矩阵加法,GPU对矩阵的操作特别快,一步到位!
前面我们提过,文本序列最终交给模型计算的时候是被转换成数字的序列,这里还要再补充一个细节,这些数字序列不是“一次性灌入”进行计算的,是被切成了固定长度的片段,然后把固定数量片段“堆叠”成一个批次作为输入,等长等高是什么?矩阵啊!
事实上,大语言模型训练时,迭代输入的内容是:一个几百万行,几千列的数字矩阵,而GPU处理矩阵特别有优势。有人说,英伟达(Nvida)很厉害(现在市值相当于4个腾讯),同时押中了数字货币,自动驾驶,大语言模型这些风口,其实它只做对了一件事:处理加速计算。这些"风口"背后对应的都是对加速计算的渴求,是兔子自己撞上英伟达那棵的啊!有了上面这么长的铺垫,我们来看一下腾讯阿里在今年第三季财报电话会上关于“美国芯片禁令”的问题。腾讯表示:我们的芯片下单比较早,目前库存水平比较高,包括H800型号芯片的库存水平可以支持腾讯混元大模型几代的更新。腾讯的云能力不会因为芯片禁令受到影响。未来也需要提高芯片的使用效率,高性能的芯片将聚焦用于人工智能的训练上。而阿里表示:美国近期扩大对先进计算芯片出口的限制,给云智能集团的前景带来不确定性,这些新的限制也可能对阿里云的多个相关业务产生更广泛的影响,限制其升级技术的能力。腾讯的立足点好像是在“应用”这一端,就是自己训练一个大模型自己用或者开放给第三方使用,而我们前面也说过,用户最终感受到的体验是“应用”而不是大模型,所以大模型只要“足够好”就可以了,并不一定要最顶尖。
而阿里的立足点在于它的云业务,有点像“帮助客户训练大模型”那个意思,考虑到最大的运算量都在训练的阶段,确实影响更大一些。但是毫无疑问的,两者都会被“限制升级技术的能力”。