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模型訓練過程大約包含次浮點計算,模型含有千萬級參數。
2016年,百度發明的用于語音識別的DeepSpeech模型訓練過程大約包含次浮點計算,模型含有億級參數。
2017年,谷歌發明的用于機器翻譯的深度學習模型訓練過程大約包含次浮點計算,模型含有數十億參數。
微軟、百度、谷歌,仿佛走進了羅馬角斗場,雙眼充滿紅血絲。
拜托,哪有這么血腥,看看科技巨頭的年度利潤。人工智能本來就是貴族的游戲,哪個玩家沒有幾頭健壯的現金牛。
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模型始終是人類邁向“智能”的無盡長階上的一級。
沒有偉大的愿景,就沒有偉大的洞見。
沒有偉大的奮斗,就沒有偉大的工程。
-
算法
+關注
關注
23文章
4601瀏覽量
92677 -
人工智能
+關注
關注
1791文章
46896瀏覽量
237670 -
模型
+關注
關注
1文章
3178瀏覽量
48731
發布評論請先 登錄
相關推薦
評論