陳永偉/文
最近,OpenAI推出的聊天機(jī)器人ChatGPT真可謂是紅到發(fā)紫。無論是做技術(shù)的、做投資的,還是普通網(wǎng)友,好像不聊幾句ChatGPT就顯得落伍了。當(dāng)然,在一片對ChatGPT的追捧當(dāng)中,也有一些不同的意見。比如,圖靈獎得主、Meta的首席AI科學(xué)家楊立昆(YannLe-Cun)就在社交媒體上發(fā)帖說:從底層技術(shù)看,ChatGPT并沒有什么創(chuàng)新。與其說它是一次巨大的技術(shù)革新,倒不如說它是一個工程上的杰作。
楊立昆的這番言論一出,就遭遇到了網(wǎng)友的一片嘲諷,很多人甚至毫不客氣地說,作為Meta的AI掌門人,這完全就是一種“吃不到葡萄說葡萄酸”的狡辯。由于Meta先前在同類產(chǎn)品上的失敗經(jīng)歷,所以面對如此洶洶的輿論,楊立昆也是百口莫辯,只能就此噤聲,不再對ChatGPT進(jìn)一步發(fā)表評論。
不過,如果我們認(rèn)真回味一下楊立昆的話,就會發(fā)現(xiàn)他的話其實(shí)是非常有道理的:雖然從表現(xiàn)上看,現(xiàn)在的ChatGPT確實(shí)非常驚艷,但從根本上講,它依然是深度學(xué)習(xí)技術(shù)的一個小拓展。事實(shí)上,與之類似的產(chǎn)品在幾年前已經(jīng)出現(xiàn)過,所不同的是,ChatGPT在參數(shù)數(shù)量上要遠(yuǎn)遠(yuǎn)多于之前的產(chǎn)品,其使用的訓(xùn)練樣本也要大得多。而它卓越的性能,其實(shí)在很大程度上只是這些數(shù)量優(yōu)勢積累到了一定程度之后產(chǎn)生的質(zhì)變。
有意思的是,如果我們回顧一下深度學(xué)習(xí)的歷史,就會發(fā)現(xiàn)這種利用神經(jīng)網(wǎng)絡(luò)進(jìn)行機(jī)器學(xué)習(xí)的思路其實(shí)在上世紀(jì)50年代就有了,可以稱得上是人工智能領(lǐng)域最古老的理論之一。早在1958年,羅森布拉特就曾經(jīng)用這個原理制造了一臺機(jī)器來識別字符。然而,在很長的一段時間內(nèi),這個理論卻一直無人問津,即使現(xiàn)在被尊為“深度學(xué)習(xí)之父”的杰弗里·辛頓(GeoffreyHinton)也長期遭受孤立和排擠。究其原因,固然有來自當(dāng)時在人工智能領(lǐng)域占主導(dǎo)地位的“符號主義”的打壓,但更為重要的是,當(dāng)時的深度學(xué)習(xí)模型確實(shí)表現(xiàn)不佳。
直到本世紀(jì)初,這一切才發(fā)生了改變。長期蟄伏的深度學(xué)習(xí)理論終于翻身成為了人工智能的主流,一個個基于這一理論開發(fā)的模型如雨后春筍一般出現(xiàn)。從打敗圍棋高手的AlphaGo到識別出幾億種蛋白質(zhì)結(jié)構(gòu)的AlphaFold,從可以瞬間生成大師畫作的Dall-E、StableDiffusion到當(dāng)今如日中天的ChatGPT,所有的這些在短短的幾年之間涌現(xiàn)了。
那么,到底是什么原因讓深度學(xué)習(xí)在過去的幾年中扭轉(zhuǎn)了長期的頹勢,讓它得以完成了從異端到主流的轉(zhuǎn)換?我想,最為關(guān)鍵的一點(diǎn)就是算力的突破。
算力及其經(jīng)濟(jì)效應(yīng)
所謂算力,就是設(shè)備處理數(shù)據(jù)、輸出結(jié)果的能力,或者簡而言之,就是計算的能力。它的基本單位是用“每秒完成的標(biāo)準(zhǔn)操作數(shù)量”(standardizedoperationspersecond,簡稱SOPS)來進(jìn)行衡量。不過,由于現(xiàn)在的設(shè)備性能都非常高,因而在實(shí)踐中用SOPS來衡量算力已經(jīng)變得不那么方便。相比之下,“每秒完成的百萬次操作數(shù)”(millionoper-ationspersecond,簡稱MOPS)、“每秒完成的十億次操作數(shù)”(gigaoperationspersecond,簡稱GOPS),以及“每秒完成的萬億次操作數(shù)”(teraoperationspersecond,簡稱TOPS)等單位變得更為常用。當(dāng)然,在一些文獻(xiàn)中,也會使用某些特定性能的設(shè)備在某一時間段內(nèi)完成的計算量來作為算力的單位——其邏輯有點(diǎn)類似于物理學(xué)中用到的“馬力”。比如,一個比較常用的單位叫做“算力當(dāng)量”,它就被定義為一臺每秒運(yùn)算千萬億次的計算機(jī)完整運(yùn)行一天所實(shí)現(xiàn)的算力總量。
那么,算力的意義究竟何在呢?關(guān)于這個問題,阿格拉沃爾(AjayAgrawal)、甘斯(JoshuaGans)和戈德法布(AviGoldfarb)在他們合著的《預(yù)測機(jī)器》(PredictionMachines,中文譯名為《AI極簡經(jīng)濟(jì)學(xué)》)中,曾經(jīng)提出過一個有啟發(fā)的觀點(diǎn):算力的成本將關(guān)系到AI模型的“價格”。經(jīng)濟(jì)學(xué)的原理告訴我們,在給定其他條件的前提下,人們對一種商品的需求量取決于該商品的價格。而對于兩種性能相近,具有替代關(guān)系的商品來說,具有更低價格的那種商品會在市場上具有更高的競爭力。將這一點(diǎn)應(yīng)用到人工智能領(lǐng)域,我們就可以找到深度學(xué)習(xí)理論為什么在幾十年中都不被待見,卻在最近幾年中實(shí)現(xiàn)爆發(fā)的原因。
雖然深度學(xué)習(xí)的理論并不算困難,但是為了實(shí)現(xiàn)它,要投入的運(yùn)算量是十分巨大的。在算力低下的時代,算力的單位成本非常高。在羅森布拉特提出深度學(xué)習(xí)思想雛形的那個年代,一臺計算機(jī)的體積幾乎和一間房子那么大,但即便如此,讓它運(yùn)算一個大一點(diǎn)的矩陣都還需要很長時間。雖然理論上我們也可以用深度學(xué)習(xí)來訓(xùn)練大模型并達(dá)到比較好的效果,但這樣的成本顯然是沒有人能夠承受的。而相比之下,符號學(xué)派的模型對于計算量的要求要小得多,因此這些模型的相對價格也要比深度學(xué)習(xí)模型來得低。在這種情況下,深度學(xué)習(xí)理論當(dāng)然不會在市場上有競爭力。但是,當(dāng)算力成本大幅度降低之后,深度學(xué)習(xí)模型的相對價格就降了下來,它的競爭力也就提升了。從這個角度看,深度學(xué)習(xí)在現(xiàn)階段的勝利其實(shí)并不是一個純粹的技術(shù)事件,在很大程度上,它還是一個經(jīng)濟(jì)事件。
改進(jìn)算力的方法
那么,決定算力的因素有哪些呢?
為了直觀起見,我們不妨以計算數(shù)學(xué)題來對此進(jìn)行說明:如果我們要提高在單位時間內(nèi)計算數(shù)學(xué)題的效率,有哪些方法可以達(dá)到這一目的呢?我想,可能有以下幾種方法是可行的:一是找更多人一起來計算。如果一個人一分鐘可以算一個題,那么十個人一分鐘就可以算十個題。這樣,即使每個人的效率沒有提升,隨著人數(shù)的增加,單位時間內(nèi)可以計算的數(shù)學(xué)題數(shù)量也可以成倍增加。二是改進(jìn)設(shè)備。比如,最早時,我們完全是依靠手算的,效率就很低。如果改用計算器,效率會高一點(diǎn)。如果使用了Excel,效率就可能更高。三是將問題轉(zhuǎn)化,用更好的方法來計算。比如,計算從1加到100,如果按照順序一個個把數(shù)字加上去,那么可能要算很久。但是,如果我們像高斯那樣用等差數(shù)列求和公式來解這個問題,那么很快就可以計算出結(jié)果。
將以上三個方案對應(yīng)到提升算力問題,我們也可以找到類似的三種方法:一是借助高性能計算和分布式計算;二是實(shí)現(xiàn)計算模式上的突破;三是改進(jìn)算法——盡管嚴(yán)格地說這并不能讓算力本身得到提升,但是它卻能讓同樣的算力完成更多的計算,從某個角度看,這就好像讓算力增加了一樣。
1、高性能計算和分布式計算
從根本上講,高性能計算和分布式計算都是通過同時動用更多的計算資源去完成計算任務(wù),就好像我們前面講的,用更多的人手去算數(shù)學(xué)題一樣。所不同的是,前者聚集的計算資源一般是聚集在本地的,而后者動用的計算資源則可能是分散在網(wǎng)上的。
(1)高性能計算
先看高性能計算。高性能計算中,最為重要的核心技術(shù)是并行計算(ParallelComputing)。所謂并行計算,是相對于串行計算而言的。在串行計算當(dāng)中,計算任務(wù)不會被拆分,一個任務(wù)的執(zhí)行會固定占有一塊計算資源。而在并行計算中,任務(wù)則會被分解并交給多個計算資源進(jìn)行處理。打個比方,串行計算過程就像是讓一個人獨(dú)立按照順序完成一張試卷,而并行計算則像是把試卷上的題分配給很多人同時作答。顯然,這種任務(wù)的分解和分配可以是多樣的:既可以是把計算任務(wù)分給多個設(shè)備,讓它們協(xié)同求解,也可以是把被求解的問題分解成若干個部分,各部分均由一個獨(dú)立的設(shè)備來并行計算。并行計算系統(tǒng)既可以是含有多個處理器的超級計算機(jī),也可以是以某種方式互連的若干臺獨(dú)立計算機(jī)構(gòu)成的集群。
從架構(gòu)上看,并行計算可以分為同構(gòu)并行計算(homogeneousparallelcomputing)和異構(gòu)并行計算(heterogeneousparallelcomputing)。顧名思義,同構(gòu)并行計算是把計算任務(wù)分配給一系列相同的計算單元;異構(gòu)并行計算則是把計算任務(wù)分配給不同制程架構(gòu)、不同指令集、不同功能的計算單元。比如,多核CPU的并行運(yùn)算就屬于同構(gòu)并行,而CPU+GPU的架構(gòu)就屬于異構(gòu)并行。
對比于同構(gòu)并行,異構(gòu)并行具有很多的優(yōu)勢。用通俗的語言解釋,這種優(yōu)勢來自于各種計算單元之間的“術(shù)業(yè)專攻”,在異構(gòu)架構(gòu)之下,不同計算單元之間的優(yōu)勢可以得到更好的互補(bǔ)。正是由于這個原因,異構(gòu)并行計算正得到越來越多的重視。
比如,現(xiàn)在越來越多的設(shè)備當(dāng)中,都采用了將GPU和CPU混搭的架構(gòu)。為什么要這么做呢?為了說明白這一點(diǎn),我們需要略微介紹一下CPU和GPU的結(jié)構(gòu):從總體上看,無論是CPU還是GPU,都包括運(yùn)算器(ArithmeticandLogicUnit,簡稱ALU)、控制單元(ControlUnit,簡稱CL)、高速緩存器(Cache)和動態(tài)隨機(jī)存取存儲器(DRAM)。但是,這些成分在兩者中的構(gòu)成比例卻是不同的。
在CPU當(dāng)中,控制單元和存儲單元占的比例很大,而作為計算單位的ALU比例則很小,數(shù)量也不多;而在GPU當(dāng)中則正好相反,它的ALU比例很大,而控制單元和存儲單元則只占很小的一個比例。這種結(jié)構(gòu)上的差異就決定了CPU和GPU功能上的區(qū)別。CPU在控制和存儲的能力上比較強(qiáng),就能進(jìn)行比較復(fù)雜的計算,不過它可以同時執(zhí)行的線程很少。而GPU則相反,大量的計算單位讓它可以同時執(zhí)行多線程的任務(wù),但每一個任務(wù)都比較簡單。打個比喻,CPU是一個精通數(shù)學(xué)的博士,微積分、線性代數(shù)樣樣都會,但盡管如此,讓他做一萬道四則運(yùn)算也很難;而GPU呢,則是一群只會四則運(yùn)算的小學(xué)生,雖然他們不會微積分和線性代數(shù),但人多力量大,如果一起開干,一萬道四則運(yùn)算分分鐘就能搞定。
由于GPU的以上性質(zhì),它最初的用途是作為顯卡,因為顯卡負(fù)責(zé)圖形和色彩的變換,需要的計算量很大,但每一個計算的復(fù)雜性都不高。當(dāng)深度學(xué)習(xí)興起之后,人工智能專家們發(fā)現(xiàn)GPU其實(shí)也很適合用來訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型。因為在深度學(xué)習(xí)模型中,最主要的運(yùn)算就是矩陣運(yùn)算和卷積,而這些運(yùn)算從根本上都可以分解為簡單的加法和乘法。這樣一來,GPU就找到了新的“就業(yè)”空間,開始被廣泛地應(yīng)用于人工智能。但是,GPU并不能單獨(dú)執(zhí)行任務(wù),所以它必須搭配上一個CPU,這樣的組合就可以完成很多復(fù)雜的任務(wù)。這就好像讓一個能把握方向的導(dǎo)師帶著很多肯賣力的學(xué)生,可以干出很多科研成果一樣。正是在這種情況下,異構(gòu)并行開始成為了高性能計算的流行架構(gòu)模式。
不過,異構(gòu)架構(gòu)也是有代價的。相對于同構(gòu)架構(gòu),它對于應(yīng)用者的編程要求更高。換言之,只有當(dāng)使用者可以更好地把握好不同計算單元之間的屬性,并進(jìn)行有針對性的編程,才可能更好地利用好它們。
除此之外,我們還必須認(rèn)識到,哪怕是借助異構(gòu)架構(gòu),通過并行運(yùn)算來提升運(yùn)算效率的可能也是有限的。根據(jù)阿姆達(dá)爾定律(Amdahl’sLaw),對于給定的運(yùn)算量,當(dāng)并行計算的線程趨向于無窮時,系統(tǒng)的加速比會趨向于一個上限,這個上限將是串行運(yùn)算在總運(yùn)算中所占比例的倒數(shù)。舉例來說,如果在一個運(yùn)算中,串行運(yùn)算的比例是20%,那么無論我們在并行運(yùn)算部分投入多少處理器,引入多少線程,其加速比也不會突破5。這就好像,如果我要寫一本關(guān)于生成式AI的書,可以將一些資料查找的工作交給研究助手。顯然,如果我有更多的研究助手,寫書的進(jìn)度也會加快。但這種加快不是無限的,因為最終這本書什么時候?qū)懲辏€要看我自己“碼字”的速度。
(2)分布式計算
采用聚集資源的方式來增強(qiáng)算力的另一種思路就是分布式計算。和高性能計算主要聚集本地計算單位不同,分布式計算則是將分散在不同物理區(qū)域的計算單位聚集起來,去共同完成某一計算任務(wù)。比如,劉慈欣在他的小說《球狀閃電》中就提到過一個叫做SETI@home的科研計劃(注:這個項目是真實(shí)存在的),這個計劃試圖將互聯(lián)網(wǎng)上閑置的個人計算機(jī)算力集中起來處理天文數(shù)據(jù),這就是一個典型的分布式計算用例。
分布式計算的一個典型代表就是我們現(xiàn)在經(jīng)常聽說的云計算。關(guān)于云計算的定義,目前的說法并不統(tǒng)一。一個比較有代表性的觀點(diǎn)來自于美國國家標(biāo)準(zhǔn)和技術(shù)研究所(NIST),根據(jù)這種觀點(diǎn),“云計算是一種按使用量付費(fèi)的模式。這種模式對可配置的IT資源(包括網(wǎng)絡(luò)、服務(wù)器、存儲、應(yīng)用軟件、服務(wù))共享池提供了可用的、便捷的、按需供應(yīng)的網(wǎng)絡(luò)訪問。在這些IT資源被提供的過程中,只需要投入很少的管理和交流工作”。
這個定義很抽象、很學(xué)院派,我們可以用一個通俗的比喻來對其進(jìn)行理解。在傳統(tǒng)上,用戶主要是通過調(diào)用自有的單一IT資源,這就好比每家每戶自己發(fā)電供自己用;而云計算則好像是(用大量算力設(shè)備)建了一個大型的“發(fā)電站”,然后將“電力”(IT資源)輸出給所有用戶來用。
根據(jù)云服務(wù)提供者所提供的IT資源的不同,可以產(chǎn)生不同的“云交付模式”(CloudDeliveryModel)。由于IT資源的種類很多,因此對應(yīng)的“云交付模式”也就很多。在各類新聞報道中,最常見的“云交付模式”有三種:
第一種是IaaS,它的全稱是“基礎(chǔ)設(shè)施作為服務(wù)”(Infrastructure-as-a-Service)。在這種交付模式下,云服務(wù)的提供者供給的主要是存儲、硬件、服務(wù)器和網(wǎng)絡(luò)等基礎(chǔ)設(shè)施。
第二種是PaaS,它的全稱是“平臺作為服務(wù)”(Platform-as-a-Service)。在這種交付模式下,云服務(wù)的提供者需要供應(yīng)的資源更多,以便為使用者提供一個“就緒可用”(ready-to-use)的計算平臺,以滿足他們設(shè)計、開發(fā)、測試和部署應(yīng)用程序的需要。
第三種是SaaS,也就是“軟件作為服務(wù)”(Software-as-a-Service)。在這種交付模式下,云服務(wù)提供者將成品的軟件作為產(chǎn)品來提供給用戶,供其使用。
有了以上不同的云交付模式,用戶就可以根據(jù)自己的需要來選擇相應(yīng)的IT資源。比如,如果元宇宙的用戶需要更多的算力或存儲,而本地的機(jī)器無法滿足,那么就可以通過從云端來獲取“外援”。一個云端GPU不夠,那就再來幾個,按需取用,豐儉由人,既方便,又不至于產(chǎn)生浪費(fèi)。
需要指出的是,盡管從理論上看云計算可以很好地承擔(dān)巨大運(yùn)算和存儲需求,但其缺陷也是很明顯的。比較重要的一點(diǎn)是,在執(zhí)行云計算時,有大量的數(shù)據(jù)要在本地和云端之間進(jìn)行交換,這可能會造成明顯的延遲。尤其是數(shù)據(jù)吞吐量過大時,這種延遲就更加嚴(yán)重。對于用戶來說,這可能會對其使用體驗產(chǎn)生非常負(fù)面的效果。
那么怎么才能克服這個問題呢?一個直觀的思路就是,在靠近用戶或設(shè)備一側(cè)安放一個能夠進(jìn)行計算、存儲和傳輸?shù)钠脚_。這個平臺一方面可以在終端和云端之間承擔(dān)起一個中介的作用,另一方面則可以對終端的各種要求作出實(shí)時的回應(yīng)。這個思想,就是所謂的邊緣計算。由于邊緣平臺靠近用戶,因而其與用戶的數(shù)據(jù)交換會更加及時,延遲問題就可以得到比較好的破解。
2、超越經(jīng)典計算——以量子計算為例
無論是高性能計算還是分布式計算,其本質(zhì)都是在運(yùn)算資源的分配上下功夫。但正如我們前面看到的,通過這種思路來提升算力是有很多障礙的。因此,現(xiàn)在很多人希望從計算方式本身來進(jìn)行突破,從而實(shí)現(xiàn)更高的計算效率。其中,量子計算就是最有代表性的例子。
我們知道,經(jīng)典計算的基本單位是比特,比特的狀態(tài)要么是0,要么是1,因此經(jīng)典計算機(jī)中的所有問題都可以分解為對0和1的操作。一個比特的存儲單元只能存儲一個0或者一個1。而量子計算的基本單位則是量子比特,它的狀態(tài)則可以是一個多維的向量,向量的每一個維度都可以表示一個狀態(tài)。這樣一來,量子存儲器就比經(jīng)典的存儲器有很大的優(yōu)勢。
考慮一個有 N物理比特的存儲器,如果它是經(jīng)典存儲器,那么它只能存儲2的N次方個可能數(shù)據(jù)當(dāng)中的任一個;而如果它是量子存儲器,那么它就可以同時存儲2的N次方個數(shù)據(jù)。隨著 N的增加,量子存儲器相對于經(jīng)典存儲器的存儲能力就會出現(xiàn)指數(shù)級增長。例如,一個250量子比特的存儲器可能存儲的數(shù)就可以達(dá)到2的250次方個,比現(xiàn)有已知的宇宙中全部原子數(shù)目還要多。
在進(jìn)行量子計算時,數(shù)學(xué)操作可以同時對存儲器中全部的數(shù)據(jù)進(jìn)行。這樣一來,量子計算機(jī)在實(shí)施一次的運(yùn)算中可以同時對2的N次方個輸入數(shù)進(jìn)行數(shù)學(xué)運(yùn)算。其效果相當(dāng)于經(jīng)典計算機(jī)要重復(fù)實(shí)施2的N次方次操作,或者采用2的N次方個不同處理器實(shí)行并行操作。依靠這樣的設(shè)定,就可以大幅度節(jié)省計算次數(shù)。
為了幫助大家理解,我們可以打一個并不是太恰當(dāng)?shù)谋确剑和孢^動作游戲的朋友大多知道,在游戲中,我們扮演的英雄經(jīng)常可以使用很多招數(shù),有些招數(shù)只能是針對單一對象輸出的;而另一些招數(shù)則可以針對全體敵人輸出。這里,前一類的單體輸出招數(shù)就相當(dāng)于經(jīng)典計算,而后一類的群體輸出招數(shù)就相當(dāng)于量子計算。我們知道,在面對大量小怪圍攻的時候,一次群體輸出產(chǎn)生的效果可以頂?shù)蒙虾芏啻螁误w輸出的招數(shù)。同樣的道理,在一些特定情況下,量子計算可以比經(jīng)典計算實(shí)現(xiàn)非常大的效率提升。
舉例來說,大數(shù)因式分解在破解公開密鑰加密的過程中有十分重要的價值。如果用計算機(jī),采用現(xiàn)在常用的Shor算法來對數(shù)N進(jìn)行因式分解,其運(yùn)算的時間將會隨著N對應(yīng)的二進(jìn)制數(shù)的長度呈現(xiàn)指數(shù)級增長。1994年時,曾有人組織全球的1600個工作站對一個二進(jìn)制長度為129的數(shù)字進(jìn)行了因式分解。這項工作足足用了8個月才完成。然而,如果同樣的問題換成用量子計算來解決,那么整個問題就可以在1秒之內(nèi)解決。量子計算的威力由此可見一斑。
但是,在看到量子計算威力的同時,我們也必須認(rèn)識到,至少到目前為止,量子計算的威力還只能體現(xiàn)對少數(shù)幾種特殊問題的處理上,其通用性還比較弱。事實(shí)上,現(xiàn)在見諸報道的各種量子計算機(jī)也都只能執(zhí)行專門算法,而不能執(zhí)行通用計算。比如,谷歌和NASA聯(lián)合開發(fā)的D-Wave就只能執(zhí)行量子退火(QuantumAnnealing)算法,而我國研發(fā)的光量子計算機(jī)“九章”則是專門被用來研究“高斯玻色取樣”問題的。盡管它們在各自的專業(yè)領(lǐng)域表現(xiàn)十分優(yōu)異,但都還不能用來解決通用問題。這就好像游戲中的群體攻擊大招,雖然攻擊范圍廣,但是對每個個體的殺傷力都比較弱。因此,如果遇上大群的小怪,群體攻擊固然厲害,但如果遇上防御高、血條厚的Boss,這種攻擊就派不上用處了。
從這個角度看,如果我們希望讓量子計算大發(fā)神威,就必須先找出適合量子計算應(yīng)用的問題和場景,然后再找到相應(yīng)的算法。與此同時,我們也必須認(rèn)識到,雖然量子計算的研發(fā)和探索十分重要,但是它和對其他技術(shù)路徑的探索之間更應(yīng)該是互補(bǔ),而不是替代的關(guān)系。
3、通過改進(jìn)算法節(jié)約算力
如果說,通過高性能計算、分布式計算,以及量子計算等手段來提升算力是“開源”,那么通過改進(jìn)算法來節(jié)約算力就是“節(jié)流”。從提升計算效率、減少因計算而產(chǎn)生的經(jīng)濟(jì)、環(huán)境成本而言,開源和節(jié)流在某種程度上具有同等重要的價值。
在ChatGPT爆火之后,大模型開始越來越受到人們的青睞。由于在同等條件下,模型的參數(shù)越多、訓(xùn)練的數(shù)據(jù)越大,它的表現(xiàn)就越好,因此為了追求模型的更好表現(xiàn),現(xiàn)在的模型正在變得越來越大。我們知道,現(xiàn)在的ChatGPT主要是在GPT-3.5的基礎(chǔ)上訓(xùn)練的。在它出現(xiàn)之前,GPT共經(jīng)歷了三代。GPT-1的參數(shù)大約為1.17億個,預(yù)訓(xùn)練數(shù)據(jù)為5GB,從現(xiàn)在看來并不算多;到了GPT-2,參數(shù)量就增加到了15億個,預(yù)訓(xùn)練數(shù)據(jù)也達(dá)到了40GB;而到了GPT-3,參數(shù)量則已經(jīng)迅速膨脹到了駭人的1750億個,預(yù)訓(xùn)練數(shù)據(jù)也達(dá)到了45TB。為了訓(xùn)練GPT-3,單次成本就需要140萬美元。盡管OpenAI并沒有公布GPT-3.5的具體情況,但可以想象,它的參數(shù)量和預(yù)訓(xùn)練數(shù)據(jù)上都會比GPT-3更高。為了訓(xùn)練這個模型,微軟專門組建了一個由1萬個V100GPU組成的高性能網(wǎng)絡(luò)集群,總算力消耗達(dá)到了3640“算力當(dāng)量”——也就是說,如果用一臺每秒計算一千萬億次的計算機(jī)來訓(xùn)練這個模型,那么大約需要近十年才能完成這個任務(wù)。
如果任由這種“一代更比一代大”的趨勢持續(xù)下去,那么在未來幾年,對算力的需求將會出現(xiàn)爆炸性的增長。一項最新的研究估計,在5年之后,AI模型需要的算力可能會是現(xiàn)在的100萬倍。很顯然,由此產(chǎn)生的經(jīng)濟(jì)和環(huán)境成本將會是十分驚人的。
令人欣慰的是,目前已經(jīng)有不少研究者希望改進(jìn)算法、優(yōu)化模型來減少對算力的需求,并且已經(jīng)取得了一定的成就。比如,就在今年1月3日,來自奧地利科學(xué)技術(shù)研究所 (ISTA)的研究人員埃利亞斯·弗朗塔(EliasFrantar)和丹·阿里斯特爾(DanAlistarh)合作進(jìn)行了一項研究,首次針對 100至 1000億參數(shù)的模型規(guī)模,提出了精確的單次剪枝方法SparseGPT。SparseGPT可以將GPT系列模型單次剪枝到 50%的稀疏性,而無需任何重新訓(xùn)練。以目前最大的公開可用的GPT-175B模型為例,只需要使用單個GPU在幾個小時內(nèi)就能實(shí)現(xiàn)這種剪枝。不僅如此,SparseGPT還很準(zhǔn)確,能將精度損失降到最小。在進(jìn)行了類似的修剪之后,這些大模型在訓(xùn)練時所需要的計算量就會大幅減少,其對算力的需求也就會相應(yīng)下降。
關(guān)于提升算力、
支持人工智能發(fā)展的政策思考
隨著ChatGPT引領(lǐng)了新一輪的人工智能熱潮,市場上對算力的需求也會出現(xiàn)爆炸性的增長。在這種情況下,為了有力支撐人工智能的發(fā)展,就必須要通過政策的手段引導(dǎo)算力供給的大幅度增加。而要實(shí)現(xiàn)這一點(diǎn),以下幾方面的工作可能是最為值得重視的。
第一,應(yīng)當(dāng)加快對算力基礎(chǔ)設(shè)施的建設(shè)和布局,提升對全社會算力需求的支持。如前所述,從目前看,分布式計算,尤其是其中的云計算是提升算力的一個有效之舉。而要讓云計算的效應(yīng)充分發(fā)揮,就需要大力建設(shè)各類算力基礎(chǔ)設(shè)施。唯有如此,才可以讓人們隨時隨地都可以直接通過網(wǎng)絡(luò)獲得所需的算力資源。
這里需要指出的是,在布局算力基礎(chǔ)設(shè)施的時候,應(yīng)當(dāng)慎重考慮它們的地域和空間分布,盡可能降低算力的成本。我們知道,不同的地區(qū)的土地、水、電力等要素的價格是不同的,這決定了在不同地區(qū)生產(chǎn)相同的算力所需要的成本也不盡相同。因此,在建設(shè)算力基礎(chǔ)設(shè)施時,必須統(tǒng)籌全局,盡可能優(yōu)化成本。需要指出的是,我國正在推進(jìn)的“東數(shù)西算”工程就是這個思路的一個體現(xiàn)。由于我國東部各種資源的使用成本都要高于西部,因此在西部地區(qū)建立算力設(shè)施,就會大幅降低算力的供給成本,從而在全國范圍內(nèi)達(dá)到更優(yōu)的配置效率。
第二,應(yīng)當(dāng)加強(qiáng)與算力相關(guān)的硬件技術(shù)及其應(yīng)用的研發(fā),為增加算力供應(yīng)提供支持。與算力相關(guān)的硬件技術(shù)既包括基于經(jīng)典計算的各種硬件,如芯片、高性能計算機(jī)等,也包括超越經(jīng)典計算理論,根據(jù)新計算理論開發(fā)的硬件,如量子計算機(jī)等。從供給的角度看,這些硬件是根本,它們的性能直接關(guān)系到算力提供的可能性界限。因此,必須用政策積極促進(jìn)這些硬件的攻關(guān)和研發(fā)。尤其是對于一些“卡脖子”的項目,應(yīng)當(dāng)首先加以突破。
這里需要指出的是,在進(jìn)行技術(shù)研發(fā)的同時,也應(yīng)該積極探索技術(shù)的應(yīng)用。例如,我們現(xiàn)在已經(jīng)在量子計算領(lǐng)域取得了一些成果,但是由于用例的缺乏,這些成果并沒有能夠轉(zhuǎn)化為現(xiàn)實(shí)的應(yīng)用。從這個意義上講,我們也需要加強(qiáng)對技術(shù)應(yīng)用的研究。如果可以把一些計算問題轉(zhuǎn)化成量子計算問題,就可以充分發(fā)揮量子計算機(jī)的優(yōu)勢,實(shí)現(xiàn)計算效率的大幅提升。
第三,應(yīng)當(dāng)對算法、架構(gòu)等軟件層面的要素進(jìn)行優(yōu)化,在保證AI產(chǎn)品性能的同時,盡可能減少對算力的依賴。從降低AI計算成本的角度看,降低模型的算力需求和提升算力具有同等重要的意義。因此,在用政策的手段促進(jìn)算力供給的同時,也應(yīng)當(dāng)以同樣的力度對算法、架構(gòu)和模型的優(yōu)化予以同等的激勵。
考慮到類似的成果具有十分巨大的社會正外部性,因此用專利來保護(hù)它們并不是最合適的。因此,可以積極鼓勵對取得類似成功的人員和單位給予直接的獎勵,并同時鼓勵他們將這些成果向全社會開源;也可以考慮由政府出面,對類似的模型產(chǎn)品進(jìn)行招標(biāo)采購。如果有個人和單位可以按照要求提供相應(yīng)的成果,政府就支付相應(yīng)的費(fèi)用,并對成果進(jìn)行開源。通過這些舉措,就可以很好地激勵人們積極投身到改進(jìn)模型、節(jié)約算力的事業(yè)中,也可以在有成果產(chǎn)出時,讓全社會及時享受到這些成果。
總而言之,在人工智能突飛猛進(jìn)的時代,算力可能是決定人工智能發(fā)展上限的一個關(guān)鍵因素。唯有在算力問題上實(shí)現(xiàn)突破,人工智能的發(fā)展才可能有根本保障。
京公網(wǎng)安備 11010802028547號