研究idea不work,可能不是它不好,而是硬件沒跟上
研究想法能否成功要看是否具備合適的軟硬件,而不是這個想法是否比其他研究方向優(yōu)秀。
天時、地利、人和,三者不得,雖勝有殃。
——《孫子兵法》
一件事的成敗總會牽涉多個因素,例如兵法中的「天時」、「地利」、「人和」。在計算機科學(xué)歷史上,也有類似的現(xiàn)象,如「硬件」、「軟件」、「算法」三要素對研究想法成敗的影響。
近日,谷歌大腦研究員 Sara Hooker 寫了一篇論文,她用「硬件彩票」(hardware lottery)來描述:一個研究想法的成功是因為具備了合適的軟硬件,而不是這個想法比其他研究方向更加優(yōu)秀。早期計算機科學(xué)史的許多例子表明,硬件彩票通過把成功的研究想法看作失敗,而拖慢了研究進(jìn)度。而領(lǐng)域?qū)S糜布某霈F(xiàn)使研究想法偏離慣常路徑的成本增加,這就讓這一現(xiàn)象更加顯著。
論文地址:
https://arxiv.org/pdf/2009.06489v1.pdf
這篇論文指出,算力進(jìn)步帶來的收獲可能更加不均勻,某些研究方向走上了快車道,而有的則困難重重。
人工智能領(lǐng)域,硬件決定 idea 的成敗
歷史告訴我們,科學(xué)進(jìn)展并非是一帆風(fēng)順的。知識傳統(tǒng)和可用工具會使科學(xué)家對特定想法形成不同的認(rèn)知,這為判斷研究想法是否有潛力增加了噪聲。這篇論文指出,在人工智能研究領(lǐng)域中,工具對于判斷研究想法的成敗起到了絕大部分的作用。
這篇論文用「硬件彩票」來描述這一現(xiàn)象:一個研究想法的成功是因為它可以與當(dāng)時的軟硬件兼容,而不是因為這個想法比其他研究方向優(yōu)秀。在早期計算機科學(xué)史上,軟硬件選擇常常對決定研究想法的成敗起到?jīng)Q定性作用。
隨著我們進(jìn)入軟件、硬件和機器學(xué)習(xí)研究社區(qū)更加緊密合作的新時代,這些經(jīng)驗愈發(fā)凸顯。過去幾十年,人們將硬件、軟件和算法看作割裂的選項,但促使近期三者更加緊密協(xié)作的催化劑就包括正在改變的硬件、深度學(xué)習(xí)架構(gòu)「規(guī)模越大性能越好」的理念,以及將機器學(xué)習(xí)部署到邊緣設(shè)備的需求。
軟硬件和機器學(xué)習(xí)算法之間更緊密合作的核心是新一代領(lǐng)域?qū)S糜布?,它們針對深度神?jīng)網(wǎng)絡(luò)的商用進(jìn)行了優(yōu)化。盡管領(lǐng)域?qū)S糜布橹髁魃疃壬窠?jīng)網(wǎng)絡(luò)研究帶來了重要的效率提升,但這也使得研究想法偏離既有路徑的成本增加。更加碎片化的硬件市場意味著基于算力進(jìn)展獲得的收益將變得更加不均衡。盡管深度神經(jīng)網(wǎng)絡(luò)已經(jīng)有了明確的商用場景,但目前已經(jīng)出現(xiàn)了早期信號,提醒我們要實現(xiàn) AI 的下一個突破可能需要完全不同的算法、硬件和軟件組合。
硬件、軟件、算法:三個獨立的部落
對于首批計算機的創(chuàng)造者而言,程序是機器。早期的機器是單獨使用的,且不會適應(yīng)新的任務(wù),原因在于電子器件成本高且缺乏跨任務(wù)的軟件。
查爾斯 · 巴貝奇的差分機僅用于計算多項式函數(shù) (1817)。美國第一部大尺度自動數(shù)位電腦馬克一號(Mark I)是可編程計算器(1944)。Rosenblatt 的感知器用來計算 step-wise 單層網(wǎng)絡(luò)(1958)。甚至常被認(rèn)為是首批可編程機器的雅卡爾織布機重新穿孔的成本也很高,因此它通常只穿孔一次 (1804)。
早期計算機馬克一號(Mark I)
這些早期計算機的專用性是出于當(dāng)時的需要,而不是計算機設(shè)計師認(rèn)為一次性的定制硬件更好。但是,需要指出的是,人類智能本身就是算法和機器的結(jié)合。我們一生中不會長出多個大腦。而人類智能的概念本質(zhì)上與 1400g 腦組織和大腦中 850 億神經(jīng)元之間的連接密切相關(guān)。當(dāng)我們談?wù)撊祟愔悄軙r,你腦海中浮現(xiàn)出的圖像可能是粉色帶褶皺的一團(🧠)。也就是說,在想到認(rèn)知智能的時候,我們無法不聯(lián)想到支持它運行的硬件。
與早期計算硬件不得已的專用化不同,今天的機器學(xué)習(xí)研究者傾向于將硬件、軟件和算法看作三個獨立的選擇。這很大程度上是由于計算機科學(xué)史上那段徹底改變硬件類型的時期,促進(jìn)了硬件、軟件和機器學(xué)習(xí)研究社區(qū)獨立發(fā)展。
通用計算機時代
1969 年,通用計算機時代進(jìn)入蓬勃發(fā)展時期,當(dāng)時年輕的工程師戈登 · 摩爾(Gordan Moore)已在 Electronics 期刊上發(fā)表文章《Cramming more components onto circuit boards》(Moore, 1965)。摩爾預(yù)測集成電路上可容納的晶體管數(shù)目,約每兩年便會增加一倍。最初,這篇文章及其后續(xù)動向都起源于一個簡單的心愿——摩爾想賣出更多芯片。然而,這一預(yù)測卻在接下來的 50 年中推動將能源轉(zhuǎn)換為信息的成本顯著下降。
摩爾定律和登納德縮放比例定律的結(jié)合使得,1980-2010 年間微處理器的性能增長了三個數(shù)量級。每兩年算力和內(nèi)存增加一倍意味著硬件設(shè)計能夠趨避風(fēng)險。即使對于需要更高性能的任務(wù)而言,轉(zhuǎn)向?qū)S糜布氖找嬉矔芸毂幌乱淮ㄓ糜布健?/p>
于是,硬件社區(qū)的重心轉(zhuǎn)向能夠處理大量不同任務(wù)的通用處理器。當(dāng)摩爾定律能使芯片制造商獲得可預(yù)計的利潤時,為什么還要為了不確定的獎勵去試驗專用硬件設(shè)計呢?于是,為研究目的生產(chǎn)專用計算機的嘗試逐漸在資金上捉襟見肘,無法持續(xù)。不過也有例外,譬如國際象棋這類極少數(shù)任務(wù),它們因為打敗人類對手這一名頭而吸引了大量企業(yè)贊助。
割裂地看待硬件、軟件和算法的態(tài)度一直持續(xù)到最近。不管是從時間還是資金的角度來看,探索新型硬件的成本都是很高的。生產(chǎn)下一代芯片通常需要 3000-8000 萬美元和 2-3 年的開發(fā)時間。這些過高的進(jìn)入門檻帶來了一種奇怪的硬件研究文化,或者對于一般機器學(xué)習(xí)研究者而言硬件進(jìn)化過于慢了。在過去 30 年中,機器學(xué)習(xí)論文數(shù)量出現(xiàn)指數(shù)級增長,而硬件論文仍然維持著原有的節(jié)奏。對于硬件公司而言,知識產(chǎn)權(quán)的泄露可以讓它生讓它死。而這導(dǎo)致了更加閉塞的研究文化。
在沒有任何杠桿能夠影響硬件發(fā)展時,機器學(xué)習(xí)研究者理性地將硬件看作沉沒成本,而不是可塑造的事物。但是,不關(guān)注硬件不意味著它不存在。早期計算機科學(xué)史告訴我們硬件彩票的存在,即硬件和軟件的選擇決定了研究想法的成敗。
硬件彩票
如果你只有一把錘子,那么你看什么都像釘子。
——亞伯拉罕 · 馬斯洛,1966
《安娜 · 卡列尼娜》的第一句話是:「幸福的家庭都是相似的,不幸的家庭各有各的不幸?!雇袪査固┯眠@句話表達(dá),幸福的婚姻需要很多要素:財務(wù)穩(wěn)定、兩性吸引力、共同的價值觀,健康的后代,而只要其中一項出現(xiàn)問題,家庭就會被毀掉。這后來以「安娜 · 卡列尼娜原則」的名義流行開來:「只要一個因素出現(xiàn)問題,則注定失敗?!?Moore, 2001)。
盡管我們傾向于相信算法的成敗是孤立的,但歷史告訴我們,大部分計算機科學(xué)突破都遵循了安娜 · 卡列尼娜原則。成功與失敗往往可以通過是否從多個因素中受益來進(jìn)行判斷。對于 AI 研究而言,這往往取決于「硬件彩票」,避免下游軟硬件選擇出現(xiàn)失誤。
硬件彩票的早期例證是英國數(shù)學(xué)家查爾斯 · 巴貝奇 1837 年設(shè)計的分析機,(理論上)經(jīng)過編程后它可以解決任意類型的計算。然而分析機并未被真正制造出來,因為巴貝奇難以制造出具備足夠精度的組件。能夠?qū)⒉闋査?· 巴貝奇所構(gòu)建的理論基礎(chǔ)變?yōu)楝F(xiàn)實的電磁技術(shù)在二戰(zhàn)期間才出現(xiàn)。
20 世紀(jì)上半葉,電子真空管廣泛用于無線電通信和雷達(dá)。二戰(zhàn)期間,這些真空管被用來為破解德國英格瑪密碼提供算力。
在美劇《硅谷》中,常常會出現(xiàn)「捷足未必先登」的情況。直到巴貝奇 1871 年逝世時,他的想法和現(xiàn)代計算之間仍然沒有建立起連續(xù)的路徑。一個世紀(jì)后,隨著合適的工具出現(xiàn)并證明這一想法 work,其存儲程序、條件分支等概念才被重新發(fā)現(xiàn)。
失落的幾十年
因為硬件彩票而導(dǎo)致?lián)p失的最顯著例子或許就是深度神經(jīng)網(wǎng)絡(luò)了。使深度神經(jīng)網(wǎng)絡(luò) work 的大多數(shù)算法組件已經(jīng)存在數(shù)十年:反向傳播(1963 年提出 (K & Piske, 1963),1976 年被重新發(fā)現(xiàn) (Linnainmaa, 1976),1988 年再次被重新發(fā)現(xiàn) (Rumelhart et al., 1988))、深度卷積神經(jīng)網(wǎng)絡(luò)((Fukushima & Miyake, 1982),1989 年卷積神經(jīng)網(wǎng)絡(luò)隨反向傳播一起被提出 (LeCun et al., 1989))。但是,三十年后,深度神經(jīng)網(wǎng)絡(luò)被廣泛接受,成為前途無量的研究方向。
算法發(fā)展和實證成功的差距很大一部分來源于硬件不兼容。在通用計算機時代,CPU 等硬件得到廣泛支持和應(yīng)用。CPU 擅長執(zhí)行復(fù)雜指令集,但會帶來較高的內(nèi)存成本,因為它需要緩存中間結(jié)果,且一次處理一條指令。這被叫做馮諾依曼瓶頸:可用算力受限于「CPU 和內(nèi)存之間的數(shù)據(jù)傳輸帶寬,而數(shù)據(jù)需要沿著這個通道順序傳遞」(Time, 1985)。
馮諾依曼瓶頸尤其不適合矩陣相乘,而這正是深度神經(jīng)網(wǎng)絡(luò)架構(gòu)的核心組件。因此,在 CPU 上執(zhí)行訓(xùn)練會很快窮盡內(nèi)存帶寬,因而無法訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)。1980 年代的《Parallel Models of Associative Memory》系列文章指出了對支持大量并行化的硬件的需求。這些文章認(rèn)為,生物證據(jù)表明需要大量并行化才能使深度神經(jīng)網(wǎng)絡(luò)方法運行。
1980/90 年代末,神經(jīng)網(wǎng)絡(luò)專用硬件的概念過了新奇的階段。但是,相關(guān)的嘗試仍然受到缺乏共享軟件和硬件開發(fā)成本的阻礙。大多數(shù)真正可用的嘗試,如 1985 年的連接機、1992 年的 Space、1989 年的 Ring Array Processor 和日本第五代計算機項目,旨在支持邏輯編程,如 PROLOG 和 LISP,而它們并不適合聯(lián)結(jié)主義深度神經(jīng)網(wǎng)絡(luò)。后續(xù)的迭代(如 HipNet-1 和 1991 年的模擬神經(jīng)網(wǎng)絡(luò)芯片)很有前景但存續(xù)時間并不長,因為它們迭代成本高昂且需要 custom silicon。沒有消費者市場,自然也就沒有能使之財政狀況良好的終端用戶臨界規(guī)模了。
21 世紀(jì)初距離第一篇反向傳播論文的發(fā)表已經(jīng)過去了四十年,人們意識到要運行聯(lián)結(jié)主義深度神經(jīng)網(wǎng)絡(luò),硬件必須支持大量并行化,因此硬件方面需要出現(xiàn)突破。
很多發(fā)明后來的用途都背離了設(shè)計者的初衷。愛迪生發(fā)明的留聲機本意并非演奏音樂,他的最初設(shè)想是用它保留將死之人的遺言或者教別人拼讀。事實上他對留聲機用來演奏流行音樂感到失望。類似地,深度神經(jīng)網(wǎng)絡(luò)也只在現(xiàn)有技術(shù)的用途得到重新定位后才開始 work。
GPU 最初作為視頻游戲?qū)S眉铀倨饔?1970 年代出現(xiàn),可用于為電影和動畫做圖。21 世紀(jì)初,像愛迪生發(fā)明的留聲機一樣,GPU 被用于完全想象不到的使用場景:訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)。GPU 比 CPU 具備一個核心優(yōu)勢,它們更擅長并行化處理一組簡單的可分解指令,如矩陣相乘。更大的每秒浮點數(shù)(FLOPS)加以在多個 GPU 之間進(jìn)行分布式訓(xùn)練,為深度網(wǎng)絡(luò)的訓(xùn)練開啟了大門。
這時,網(wǎng)絡(luò)層數(shù)成為關(guān)鍵。ImageNet 數(shù)據(jù)集上的性能隨著網(wǎng)絡(luò)深度的增加而不斷提升,如 2011 (Ciresan et al., 2011)、2012 (Krizhevsky et al., 2012) 和 2015 (Szegedy et al., 2015b)。2012 年谷歌發(fā)表論文,使用 16,000 個 CPU core 來識別貓 (Le et al., 2012),一年后谷歌僅用兩個 CPU core 和 4 塊 GPU 就解決了相同的問題 (Coates et al., 2013),這個例子證明了效率的躍升。
軟件彩票
軟件在研究想法成敗中也發(fā)揮一定作用。在 20 世紀(jì) 90 年代中期之前,Prolog 和 LISP 語言廣受 AI 社區(qū)支持。當(dāng)時,人們希望 AI 學(xué)生積極掌握其中一門或兩門語言。Prolog 和 LISP 尤其適合處理邏輯表達(dá)式,而這正是推理和專家系統(tǒng)的核心部分。
對于想要研究聯(lián)結(jié)主義 idea(如深度神經(jīng)網(wǎng)絡(luò))的研究人員,當(dāng)時并沒有適合的語言,直到 1992 年 Matlab 出現(xiàn)。用 LISP 或 Prolog 實現(xiàn)聯(lián)結(jié)主義網(wǎng)絡(luò)很難,大多數(shù)研究者使用的是低級語言,如 C++。到了 21 世紀(jì)初,隨著 LUSH、TORCH 的出現(xiàn),才開始形成支持適合深度神經(jīng)網(wǎng)絡(luò)的軟件開發(fā)的更健康生態(tài)系統(tǒng)。
有得也有失。從 1960 年代至 1980 年代中期,大部分主流研究聚焦于符號方法。深度神經(jīng)網(wǎng)絡(luò)自行學(xué)習(xí)充足的表示,而符號方法旨在構(gòu)建知識庫,使用決策規(guī)則復(fù)制人類解決問題的方式。這通常被編碼為邏輯序列,其中的語句非常適合 LISP 和 PROLOG 語言。
符號方法并未結(jié)出豐碩的果實,但這一研究方向在二十世紀(jì)下半葉廣泛而持續(xù)的流行離不開它與當(dāng)時編程和硬件框架的適配度。
未來之路
機器編碼系統(tǒng)很大程度上應(yīng)從算子獲取結(jié)果的容易程度進(jìn)行判斷。
當(dāng)存在多個因素促使科學(xué)家克服現(xiàn)有范式的「黏性」時,科學(xué)進(jìn)步就會發(fā)生。AI 領(lǐng)域中范式轉(zhuǎn)變的速度主要由硬件、軟件和算法的匹配程度決定。因此,任何避免硬件彩票的嘗試,都需要探索不同的「硬件 - 軟件 - 算法」組合,以降低成本和時間。
然而,說來容易做來難。擴展硬件 - 軟件 - 算法組合的搜索空間是一項棘手的任務(wù)。從時間和資金的角度來看,探索新的硬件類型成本高昂。生產(chǎn)下一代芯片通常需要 3000-8000 萬美元和 2-3 年的開發(fā)時間。僅建一家制造廠的成本就很高,2017 年這一成本約為 70 億美元。
使用強化學(xué)習(xí)來優(yōu)化芯片布局的實驗可能有助于降低成本。這也使大家對現(xiàn)場可編程門陣列(FPGA)和粗粒度可重構(gòu)陣列(CGRA)等可重構(gòu)硬件重新產(chǎn)生了興趣。這些設(shè)備允許重構(gòu)芯片邏輯,從而避免單一應(yīng)用。但是,換取靈活性的代價是更高的 FLOPS 和定制化的軟件開發(fā)。在 FPGA 上即使編碼簡單的算法也非常麻煩和耗時。
中短期來看,硬件開發(fā)可能仍然成本高昂且周期較長。生產(chǎn)硬件的成本很重要,因為這決定了硬件開發(fā)者愿意忍受的風(fēng)險程度和試驗數(shù)量。對適合深度神經(jīng)網(wǎng)絡(luò)的硬件的投資已經(jīng)有所保障,因為神經(jīng)網(wǎng)絡(luò)是許多商業(yè)用例的基礎(chǔ)。深度學(xué)習(xí)下游用例的盈利能力刺激了硬件創(chuàng)業(yè)公司的健康生態(tài)系統(tǒng),以進(jìn)一步加速深度神經(jīng)網(wǎng)絡(luò),鼓勵大企業(yè)內(nèi)部開發(fā)定制硬件。
瓶頸仍然是針對無法立即商用案例的硬件投資。這些高風(fēng)險的方向包括生物學(xué)硬件、內(nèi)存內(nèi)計算的模擬硬件、神經(jīng)形態(tài)計算、光學(xué)計算和量子計算。使用新材料開發(fā)晶體管也存在較高風(fēng)險。
從之前的硬件彩票示例中我們可以學(xué)到一些經(jīng)驗,投資應(yīng)當(dāng)持續(xù)地來自私人和公共資助項目。公共部門對提供此類專門資源的興趣正在緩慢地覺醒,如 2018 DARPA Electronics Resurgence Initiative 承諾向微電子技術(shù)研究投入 15 億美元,中國宣布投資 470 億美元支持半導(dǎo)體研究。但是,如此大規(guī)模的投資仍然可能是杯水車薪,因為基于新材料的硬件需要 10-20 年的時間,公共投資目前仍遠(yuǎn)遠(yuǎn)低于行業(yè)研發(fā)水平。