2020年,年中。
人类历史上最大的人工智能模型,来到人间。
这个体格巨大的北鼻,哭声嘹亮,告知全世界:“我写的作文,几乎通过了图灵测试。”
那些第一次听说参数数量的人,
那些第一次翻看实验结果的人,
那些第一次口算增长速度的人,
在彼此确认了眼神之后,一致的反应是:
“哦漏,我大概是疯了吧。不,是人工智能模型疯了吧。”
同行迈出的步子,似乎要扯烂裤裆。
墙内的人,捡起惊掉的下巴。
墙外的人,他们只觉得婴儿的哭声吵闹。
“不仅会写短文,而且写出来的作文挺逼真的,几乎可以骗过人类,可以说几乎通过了图灵测试。”
如果没有后两个半句,你可能会误认为这是老师对文科生学霸的评语。
理科也超级擅长,还能辅导别人编程。
“以前都是人类去写程序,现在是人类写一个人工智能算法,算法自己从数据中推导出程序。新的人工智能技术路线已经跑通。”
学渣,看破红尘,敲敲木鱼,念出乔布斯的名言:
做个吃货,做个蠢货
(Stay hungry,Stay foolish)。
反正养老托付给人工智能了。而这样的人工智能,需要巨额的资金,需要顶级的技术。
科技巨头微软大笔一挥,千万美金的支票,拿走不谢。
据测算,即使使用市场上价格最低的GPU云计算(服务),也需要355年的时间和3500多万人民币的费用。
大明宫首席建筑师阎立本,收起画完《步辇图》的画笔,在呈给太宗李世民的臣下章奏中写道“用工十万”。
千宫之宫,留名千古。
全球顶级人工智能实验室,用金千万。
三十一位研究人员,徒手修建了一个外表看上去擅长胸口碎大石的北鼻。
挪步震掀桌椅,哭嚎万马齐喑。
这个超大人工智能模型,名叫GPT-3。
早期的深度学习模型,参数量小,好比一个乐高玩具,每天摆在办公桌上卖萌。
如今的深度学习模型,参数量挑战底层GPU并行技术,参数量挑战底层地基。
好比同样是乐高模型,GPT-3可以在北京朝阳区三里屯优衣库门口当大型摆设。
当然不是试衣服,而是欲与大楼试比高。
知乎问题:“如何看和楼一样高的乐高模型?”
网友回答:“抬头看。”
不抬头,只能看到脚丫子。一个正常的模型大小刻度表,绿巨人GPT-3模型是放不进来的,得重新画一下坐标轴的刻度。
(原来的队列)
(GPT-3来后的队列)
人工智能超大模型GPT-3和绿巨人浩克一样,都是大块头。
经常观摩,可以治疗颈椎病。
绿巨人GPT-3模型出生于美国Open AI实验室。
在看到自己的论文刷爆了朋友圈后,像他们这么低调的科研团队,一点也没有得意,只是在办公室旋转、跳跃,并巡回炫耀了24小时,而已。
早在2019年,Open AI实验室就发出前方高能预警。
他们核算了自2012年以来模型所用的计算量,从AlexNet模型到AlphaGo Zero模型。AlexNet模型,是冠军模型。AlphaGo Zero模型,是打败韩国围棋九段棋手李世石的那个,它们都是人工智能模型。
参数指标很争气,增长30万倍。
那些堪称“最大”的AI训练模型所使用的计算量,呈指数型增长。
3.4个月就会倍增。这是Open AI实验室的结论。
虽然还没有成为“定律”,但已经有很多人用“摩尔定律”和其比较。
摩尔定律说,芯片性能翻倍的周期是18个月。Open AI说,人工智能训练模型所需要的计算量的翻倍周期是3.4个月。
三个半月,一台计算机就不够了,得两台。掐指一算,618大促买新的机器,双11大促又得买新的了。
对于人工智能的科研工作来说,金钱是个好仆人。
如果你不知道Open AI,那要补补课了。
世界历史上,美国时隔9年第一次使用国产火箭从本土将宇航员送入太空,民营航天企业第一次进行载人发射,马斯克就是这家震惊世界的公司的创始人。
Open AI是全球人工智能顶级实验室,这家机构也曾有马斯克的支持。
平庸的人,都是相似的。
疯狂的人,各有各的疯狂。
一个人工智能的算法模型可以大到什么程度?
绿巨人GPT-3模型给出了新答案——1750亿个参数。
实话实说,模型创新程度很难用单个指标量化,模型复杂度和参数量有一定关系,模型参数量决定模型大小。
绿巨人GPT-3模型是啥?
是一个超级大的自然语言处理模型,将学习能力转移到同一领域的多个相关任务中,既能做组词造句,又能做阅读理解。听上去像小学语文课的内容。
把这种(预训练)模型比喻为小学生,一年级的语文作业,组词和造句,早就会做。你接手过来,给模型辅导功课,无需从头教起,接着教二年级的题目就可以了。
《语文》课本里熟悉的一幕:“阅读全文,并总结段落大意。”
绿巨人GPT-3 模型“参数”身价几何?我们来看看《福布斯·模型参数量排行榜》。
回首2011那年,AlexNet,冠军模型,有0.6亿个参数。
回顾前两年,BERT模型,流行一时,有3亿个参数。
绿巨人GPT-3 模型的亲哥哥GPT-2,有15亿个参数。
英伟达的Megatron-BERT,有80 亿参数。
2020年2月,微软Turing NLP,有170 亿参数。
2020年6月,绿巨人GPT-3,有1750亿个参数。
小学数学老师告诉我们:绿巨人GPT-3模型稳赢。
连体育老师也得这么教。
这时候,麦当劳对人工智能说,更多参数,更多欢乐。
理解模型的复杂度,要回顾一下历史。
2015年,微软发明的用于图像识别的ResNet模型训练过程大约包含10的18次方次浮点计算,模型含有千万级参数。
2016年,百度发明的用于语音识别的DeepSpeech模型训练过程大约包含10的19次方次浮点计算,模型含有亿级参数。
2017年,谷歌发明的用于机器翻译的深度学习模型训练过程大约包含10的20次方浮点计算,模型含有数十亿参数。
微软、百度、谷歌,仿佛走进了罗马角斗场,双眼充满红血丝。
拜托,哪有这么血腥,看看科技巨头的年度利润。人工智能本来就是贵族的游戏,哪个玩家没有几头健壮的现金牛。
2018年之后,人工智能模型的消费水平,进入了奢侈品俱乐部。驴牌教父起身站立,鼓掌欢迎。
要是俱乐部有个微信群,奢侈品品牌掌门人,会依次“拍了拍微软、百度、谷歌”。
以下,是一份预估的账单,更恰当地说,是奢侈品消费的账单。
此时此景,人工智能超级大模型,赋诗一首:
训练想得意,
先花一个亿。
性能要凶猛,
挥金得如土。
人工智能算法模型“疯狂”增长的背后,究竟意味着什么?
围绕这个问题,我采访了微软亚洲研究院前研究员,一流科技创始人袁进辉博士。
袁博士说了两层意思。
第一层,钱很重要。
袁进辉博士说道:“人工智能模型疯狂增长的背后,意味着人工智能的竞争已经进入到军备竞赛级别。长时间的使用GPU集群是非常花钱的。制造一个像GPT-3这样的超级模型的想法,可能有人能想到,但不是每个团队都有钱验证这一想法。除谷歌之外,很多公司没有财力训练BERT-Large模型,并且,实现这个想法对工程能力要求极高。”
土豪的生活就是这样,朴实无华又枯燥。训练超大GPT-3模型,须使用超大规模GPU机器学习集群。一个人工智能模型训练一次的花销是千万美金,一颗卫星的制造成本被马斯克降到50万美元以下。人工智能模型比卫星成本还昂贵。
土豪的生活又加了一点,土豪也得勤奋。
第二层,不是有钱就能行,技术也很重要。
在袁进辉看来,人工智能的大模型运行在大规模GPU(或者TPU)集群上,训练需要分布式深度学习框架,才能在可接受的时间内看到提升效果,大模型的训练如果没有分布式深度学习框架支持,即使能投入大笔资金搭建大规模GPU集群也无济于事。在模型和算力都如此快速增长的情况下,深度学习框架如果不跟着一起发展的话,会限制算法研究的水平和迭代速度。
对深度学习框架,人工智能模型的要求是,在努力上进的我身边,有一个同样努力上进的你。
深度学习框架呼唤技术创新,再墨守成规就会被“甩”了。
无情未必真豪杰,那究竟是什么技术如此重要?
一个能打败“内存墙”的技术。
那内存墙是什么呢?这个问题的答案,有(hen)点(ke)长(pu)。
早期深度学习模型,参数量小,一个GPU够用。当参数量变大,一个GPU不够了,麻烦就来了。当计算量相当的大,训练一个模型跑上十天半个月啥的是常事,分布式的意义就出现了。既然一张GPU卡跑得太慢就来两张,一块GPU芯片单独处理不了,得多块GPU。对某些深度学习应用来说,比较容易实现“线性加速比”,投入多少倍的GPU资源就获得多少倍加速效果。
只要砸钱,就能降低运算时间,一切看上去,都还挺美好。
但是,现实扼住咽喉,把你从“美好”中摇醒。
超大模型对计算量的需求,百倍、千倍地提升,不仅超越了任何一类芯片(GPU)单独处理的能力,而且即使砸钱堆了成百上千块的GPU,对不起,加速比很低。投了一百倍资源,只有几倍加速效果,甚至出现多个GPU比单个GPU还慢的情况。
为啥呢?
首先,深度学习是一种接近“流式”的计算模式,计算粒度变得很小,难把硬件跑满。
传统大数据处理多属于批式计算,对全体数据扫描处理后才获得结果。与此相反,深度学习训练是基于随机梯度下降算法的,这是典型的流式计算,每扫描和处理一小部分数据后,就开始调整和更新内部参数。
批式计算是,一次端过来一锅,全部吃完。流式计算是,一次来一小碗。再不给大爷盛饭,就要停嘴了,嘴停,手就停。
一般,一个GPU处理一小块数据只需要100毫秒的时间,那么问题就成了,“调度”算法能否在100毫秒的时间内为GPU处理下一小块数据做好准备。如果可以的话, GPU就会一直保持在运算状态。如果不可以,那么GPU就要间歇性地停顿,意味着设备利用率降低。
深度学习训练中的计算任务粒度非常小,通常是数十毫秒到百毫秒级别。换句话说,干活干得快,不赶紧给分派新的任务,大爷就要歇着了。
总歇着,活肯定也干不快,工期长,急死人。
另一方面,深度学习使用的装备太牛逼,不是GPU就是AI芯片,运算速度非常快。
一块GPU芯片单独处理不了,单靠GPU这一类芯片也处理不了。通常是CPU和GPU一块儿工作,CPU 负责任务的调度和管理,而GPU 负责实现计算(稠密),这就是经常说的异构计算(Heterogenous computing)。
但是又有了新问题,GPU 吞吐率非常高,可以是CPU的10倍以上,意味着同样大小的计算任务,GPU可以更快完成。GPU计算的时候,如果每次需要的数都从CPU或者从另外的GPU上拿,就把GPU也拖慢了。
CPU就好比一个吃饭比较慢的人,以前一大锅可以吃很长时间。GPU相当于吃饭特别快的人,现在一次来一小碗,一口就吃下去了。所以,把碗端上桌的速度就非常关键。
CPU和GPU,异口同声说:
“内存墙,How are you(怎么是你)?”
模型太大,就需要把模型拆开。比如说神经网络前几层拆在这个GPU上,后几层拆在另一个GPU上,或者神经网络中某一层被切割到多个GPU上去了。
[怎么切割是一道超纲题,暂(wo)且(ye)不(bu)答(hui)。]
把数据或模型拆分之后,就需要多个GPU频繁互动,互通有无。然而,漏屋偏逢连夜雨,设备互联带宽也不争气,没有实质改进,同机内部PCIe或多机互联使用的高速网的传输带宽,要低于GPU内部数据带宽一两个数量级。
可以用计算和数据传输之间的比例来衡量“内存墙“的压力有多大。计算机系统理论上恰好有一个叫运算强度(Arithmetic intensity)的概念可以刻画,说洋气一点,flops perbyte,表示一个字节的数据上发生的运算量。
只要这个运算量足够大,传输一个字节可以消耗足够多的计算量,那么即使设备间传输带宽低于设备内部带宽,也有可能使得设备处于满负荷状态。
进一步,如果采用比GPU更快的芯片,处理一小块儿数据的时间就比100毫秒更低,比如10毫秒,带宽不变,“调配”算法能用10毫秒的时间为下一次计算做好准备吗?事实上,即使是使用不那么快(相对于TPU 等专用芯片)的GPU,当前主流的深度学习框架对模型并行已经力不从心了。
CPU和GPU,仰天长啸:
“内存墙,How old are you(怎么老是你)?”
“内存墙”带来巨大压力,处理不好,就会造成设备利用率低、整体系统性能差的后果。
理论上,训练框架与硬件平台耦合程度相对较高,深度学习框架需要基于异构硬件支持训练超大规模数据或模型,分布式训练的实际性能高度依赖底层硬件的使用效率。换句话说,解决这个问题,得靠深度学习框架。
内存墙,得解决。没办法,谁让深度学习框架处在上接算法、下接芯片的位子上,在技术江湖里的卡位很关键。
袁博士在“内存墙”上,用白漆画了个大圈,写下一个大大的“拆”字。
他认为,这是深度学习框架最应该解决的问题。人生在世,钱能解决绝大多数问题;但是,不能解决的少数问题,才是根本性的问题。训练超大人工智能模型,有钱就能买硬件,但要有技术,才能把硬件用好。
道理,很简单。
现实,很残酷。
“国内深度学习框架发展水平并不落后,有多家公司开源了水准很高的,这些够用了吗?”
袁博士答道:“现有开源框架直接拿过来,真是做不了大模型这事儿,尤其参数量上到GPT-3模型这个级别的时候。
深度学习模型进入到现在这个阶段,大规模带来的问题,仅靠开源的深度学习框架已经有点吃力了。已有开源分布式深度学习框架无论使用多大规模的GPU集群,都需要漫长的时间(几个月以上)才能训练完成,时间和人力成本极高。
弱者坐失时机,强者制造时机。
“在开源版本上修改,能否满足工业级的用途?”
袁博士回答道:“现在市面上的深度学习框架,有选择的余地,但当前在某些场景(比如,模型并行)改造和定制也力不从心。就比如绿巨人GPT-3这件事儿,直接把现有开源深度学习框架拿来是搞不定的,OpenAI实验室对开源框架做了深度定制和优化,才可能在可接受的时间内把这个实验完整跑下来。”
一般人,只看到了模型开销的昂贵,没有看到技术上的难度。
“单个芯片或单个服务器无法满足训练大模型的需求,这就是所谓的Silicon Scaling的局限性。为解决这个难题,我们必须使用横向扩展的方法,通过高速互联手段把多个服务器连在一起形成计算资源池,使用深度学习框架等分布式软件来协同离散耦合的多个加速器一起高效工作,从而提高计算力的上限。”
袁博士继续解释。
袁博士还特别介绍了解决这个问题对人才的要求,他说:“改造深度学习框架,是一件困难的事。从团队方面来说,算法工程师难招聘,有计算机系统理论背景或者工程能力到位,又懂算法的工程师更难找。挖人也不解决问题。一位算法工程师挖走了,算法的巧思之处被带走了。但是,深度学习框架得把差不多整个团队挖走,才够用。”
“超大模型不是今天才有,也不是今天才被人注意到,而是一直以来就有这个趋势。有远见的人,较早就能看到趋势。最先发现个趋势和最先准备的人,最有机会。”
“很多深度学习框架刚开始研发的时候都没有瞄准这种问题,或者说没有看到这个问题。深度学习框架没有完成的作业,就要留给算法团队去做,考验算法公司技术团队对深度学习框架的改进能力。市面上的情况是,极少数企业搞得定,大多数企业搞不定。”
聊了很久,我抛出最后一个问题。
“GPT-3模型在企业业务里用不到,很多人觉得无用,实验室的玩意而已,其科学意义是什么呢?”
他笑了笑,用一贯低沉的声音说道:“GPT-3模型说明,OpenAI实验室很有科学洞见,不是人人都能想到往那个方向去探索,他们的背后有一种科学理念支持。思考大模型的时候,有一种假设(hypothesis)的方法论,当假设成立,能够解决与之相对应的科学问题。在这个方法论的指导下,勇于探索,肯定不是莫名其妙的一拍脑袋就花千万级别的美金往超大模型的方向上鲁莽的冒险。”
袁进辉把人工智能和人脑做了一个比较。
他说道:
“人类的大脑与我们现在的人工智能自然语言处理模型进行比较:人类大脑有100万亿个突触,这比最大的人工智能模型还要大三个数量级。这个人工智能模型,名叫GPT-3,几乎通过图灵测试了。一直以来,科研团队都在寻找‘能正常工作’的聊天机器人,这个模型让人看到了突破口。”
他在思考,当真正实现了具有百万亿参数的神经网络时,今天人工智能和深度学习模型面临的困难会不会就迎刃而解了呢?机器人进行真正智能对话的日子是不是就快到来了?
说到这里,他眼神中闪过一丝亮光。
在袁进辉看来,这种里程碑式的突破,通常需要杰出团队才能取得。OpenAI想到了,也做到了。它代表了这方面全球的最高水平,探索了能力的边界,拓展了人类的想象力。就像飞船飞往宇宙的最远处,触摸到了人工智能模型参数量增长的边界。
这种模型的问世,就像航天界“发射火箭”一样,成本高,工程要求也高。他们的成功,既实现了理论上的意义,也实现了工程上的意义。
人工智能的希望,在路上。
无论实验怎么苦恼,
无论效果如何不济,
GPT-3模型始终是人类迈向“智能”的无尽长阶上的一级。
没有伟大的愿景,就没有伟大的洞见。
没有伟大的奋斗,就没有伟大的工程。
(完)
受访人介绍:
袁进辉,清华大学计算机系博士,一流科技公司(OneFlow)创始人,之江实验室天枢人工智能开源开放平台架构师。曾在微软亚洲研究院从事大规模机器学习平台研发工作,2014年其研发出当时世界上最快的主题模型训练算法和系统LightLDA,被应用于微软在线广告系统。一流科技成立于2017年初,致力于打造深度学习框架的事实工业标准。