機器學習正在消耗提供的所有能源,這種模式成本高昂、效率低下,且不可持續。
在很大程度上,這是因為這個領域還很新、令人興奮,且正在迅速發展。做 AI 的目的是要在準確性或能力方面開闢出一片新天地。發展到今日之地步,這意味著要有更大規模的模型和訓練集,這些都需要算力的指數級增長才能滿足要求,算力則需要資料中心消耗大量電力來進行訓練和推理。而且,智慧設備也開始隨處可見。
但是這些處理所需的電耗總數開始嚇到人們。在最近的設計自動化大會(Design Automation Conference)上,AMD 首席技術官 Mark Papermaster 放出了一張幻燈片,上面展示了機器學習系統的能耗(圖 1)與全球發電情況的對比。
發出警報的並不只有 Papermaster 一個人。Perceive 首席執行長 Steve Teig 表示:「我們已經忘了過去 100 年來,效率一直是創新的驅動力。效率是推動摩爾定律的原因。但我們現在正處在一個反效率的時代。」
Synopsys 主席兼首席執行長 Aart de Geus 則代表地球這個星球懇求人們對此採取行動。 「有智慧的人應該有一顆幫忙的心。」
為什麼能源消耗增長如此之快?Arm 研究員兼高級技術總監 Ian Bratt 說:「神經網路的運算需求是沒法滿足的。網路規模越大,結果就越好,可以解決的問題就越多。電力使用與網路規模成正比。因此,高效節能的推理對於採用越來越複雜的神經網路和增強的用例(比方說即時語音與視覺應用)至關重要。」
不幸的是,並不是所有人都關心效率。 Mythic 負責產品和業務開發的高級副總裁 Tim Vehling 表示: 「觀察一下那些超大規模的公司在做的事,你會發現他們想的是得到更好、更準確的聲音識別、語音辨識與推薦引擎。這是錢的問題。準確性越高,可以服務的客戶就越多,公司的盈利能力就越強。看看訓練和推理那些非常大規模的 NLP(自然語言處理)模型的資料中心,那都是要消耗大量電力的地方。而且我不知道他們有沒有動力去優化這些應用的功耗。」
但有些人確實在乎。Synopsys 的科學家 Alexander Wakefield 說:「減少這些公司產生的碳影響存在一些商業壓力,這個跟錢沒有直接關係,只是更多的是消費者只會接受碳中和的解決方案。綠色能源也給他們施加壓力,如果某位供應商表示自己做到了碳中和的話,可能就會有更多的人用它們的產品。」
但並不是所有能耗都發生在雲端。智慧邊緣設備越來越多也會帶來問題。Aspinity 戰略和技術行銷總監 Marcie Weinstein 表示:「物聯網的設備已經達到了數十億台,在不久的將來,它們消耗的能源將會超過我們生產出來的所有電力之和。這些設備收集和傳輸資料,以及用收集來的資料所做的任何事情都需要消耗電力。」
降低能耗
過去,科技界依靠縮小半導體尺寸來提高能源效率。Arteris IP 的研究員兼系統架構師 Michael Frank 說:「我們的工藝技術正在接近物理極限。電晶體的寬度已經達到二氧化矽的 10 到 20 晶格常數左右。帶有雜散電容的連線現在也更多了,而這些電路在充電和放電過程中會損失大量能量。在進入非線性區域之前,我們也沒法顯著降低電壓,一旦進入那個區域,操作的結果將是統計性而不是確定性的。從技術角度而言,這方面我們確實沒有什麼好機會。不過,我們倒是有個只需消耗約 20 瓦就能做完包括學習在內的所有這些事情的概念證明。也就是所謂的大腦。」
那麼機器學習是不是比替代方案更加有效? 西門子 EDA ICVS 產品經理Joe Hupcey 說:「必須從應用系統的角度去考慮機器學習的功耗,如何取捨要取決於納入機器學習之後整個系統得到的性能提升與整個系統的功耗情況的對比。在許多應用領域,業界已經開發出高效的 ML FPGA 以及 ASIC,目的是降低訓練和推理的功耗,這方面一直有大量的投資來延續這一趨勢。」
還有一種影響可能會迫使大家更加關注功耗情況。Synopsys 的科學家 Godwin Maben 說:「因為熱量的關係,一些公司正在關注每平方微米的功耗問題。每個人都擔心高溫。一旦在很小一塊區域內將許多門(gate)堆疊在一起時,功率密度會變得非常高,溫度也會相應升高,導致逐漸接近熱失控。功率密度就會限制性能。作為 EDA 供應商,我們不僅僅關注功率,因為當出現發熱時,每瓦性能,以及之後的每平方微米每瓦性能,就會變得很重要。」
審視這個問題可以有幾種方式。西門子 EDA 負責 HLS 平臺的總監 Russ Klein 說:「我一般喜歡觀察每次推斷消耗的能量,而不是看功率。看功率可能會有點誤導性。比方說,CPU 消耗的功率一般低於 GPU。但 GPU 執行推理的速度比 CPU 快得多。其結果是,如果比較每次推理的功耗,GPU 只需要消耗 CPU 所需電力的一小部分即可執行推理。」
什麼地方最耗電尚不清楚,雖然看起來似乎很明顯,但結果卻頗有爭議。有兩組關係需要考慮——訓練與推理,以及邊緣與雲。
訓練與推理
為什麼訓練這麼耗電?Arteris 的 Frank 說:「對同一個資料集進行多次反覆運算會消耗大量電力。你要做梯度下降類型的逼近。這種模型基本上是一個超維曲面,由沿著多維向量空間下降的微商所定義的一種梯度下降。」
這種處理的能耗正在迅速增加。Synopsys 的 Maben 表示:「兩年前,訓練一個 transformer 模型所需的能耗在 27 千瓦時的範圍內。但今天的 transformer 模型能耗已經超過了 50 萬千瓦時。(特徵)參數的數量從約 5000 萬增加到了 2 億。參數的數量增加了四倍,但能耗增加了超過 18000 倍。這到最後又會增加多少磅的二氧化碳排放呢?」
這種能耗與推理相比如何?Cadence Tensilica AI 的產品行銷總監 Suhas Mitra 表示:「訓練涉及到正向和反向推導,而推理只有正向推導。所以,推理的能耗總要低一些。此外,在訓練期間,一個批次的資料有可能會很大,而在推理過程中,一個批次的資料規模可能會小一些。」
不過對這兩種功能的總能耗測算會引起爭議。Maben 說: 「訓練和推理誰更耗電存在爭議。訓練一個模型會消耗大量的電能,基於這一資料所需的訓練天數也很可觀。但是不是就意味著訓練比推理更耗電呢?訓練是一次性費用。你花了很多時間在訓練上。訓練階段的問題在於參數的數量,有些模型有 1500 億個參數。」
此外,訓練一般都不是一次就搞定。Mythic 的 Vehling 表示:「訓練不是一勞永逸的事情。你得不斷地重新訓練、重新優化模型,所以訓練是常態。你得不斷地調整模型,找到可以加強的地方,不斷豐富資料集,所以說訓練多多少少算是一項持續的活動。」
不過,推理則有可能要重複多次。Maben 補充道:「你訓練一個模型,這個模型可能是為自動駕駛汽車而開發的,然後每輛車都用了這個模型。我們現在討論的可是約 1 億輛汽車進行的推理。據一項預測估計,超過 70% 到 80% 的能耗將用於推理而不是訓練。」
這個觀點得到了一些資料的支援。 Untether AI 產品高級總監 Philip Lewer 說:「美國東北大學和麻省理工學院最近發表的一篇論文估計,推理對能耗的影響比訓練要大得多。這是因為模型是專門為推理而開發的,因此在推理模式下運行的頻率要比訓練模式高得多——基本上算是訓練一次,隨處運行。」
雲端與邊緣
將應用從雲端遷移到邊緣的原因可能有很多種。Expedera 行銷副總裁 Paul Karazuba 說:「市場已經發現,部分活動最好是下放到邊緣而不是雲端。在我看來,邊緣層該做什麼、不該做什麼,以及如何做出這些決定方面沒有明確的界限。我們看到了邊緣部署更多 AI 的渴望,我們看到了邊緣部署更多關鍵任務應用,而不是將 AI 作為包裝盒外部印記的渴望。他們希望 AI 能在設備上做一些有用的事情,而不僅僅是貼個標籤。」
這並不是說要把雲端的模型搬到邊緣。Mythic 的 Vehling 說:「假設你有自然語音、語音辨識應用。那些模型都是在雲端訓練的。而且大多數時候,你對這些模型的推理也是在雲端進行的。如果你看看更多部署在邊緣層的推理應用,這些不放在雲端的應用可以利用本地資源來訓練模型。所以你要解決的幾乎是兩個不一樣的問題。一個是基於雲的,另一個是基於邊緣的,這兩個未必存在關聯。」
開發模型的時候必須知道最終會在什麼地方跑。Vehling 補充道:「通常你會發現在雲端運行的模型有數十億個參數,但這只是模型的一種。在另一頭,則是一些很小規模的模型,比如喚醒詞什麼的,這種模型佔用的資源非常少——可稱之為微型機器學習甚至更小。然後在這兩者的中間還有一種模型,比方說視覺化分析模型,那種基於相機的應用可以看到這種模型。與駐留雲端的模型相比它們要小得多,但與非常簡單的喚醒詞模型相比則要大得多。」
下移到邊緣的不僅僅是推理。我們可能會看到越來越多的訓練也會下移。Expedera 首席科學家 Sharad Chole 表示:「聯邦學習就是一個例子,這個領域已經運用到自動補全上。每個人的自動補全可能會有所不同,怎麼才能學習到要補全的東西?如何針對個人定制?而且還必須保護使用者的隱私。做到這一點很有挑戰。」
向更高效進軍
將應用從訓練系統轉到邊緣要牽涉到一個重要的軟體棧。西門子的 Hupcey 表示: 「初始的訓練階段一旦通過之後,後續的優化就可以提供輕量得多的模型,但性能並不會降低太多。模型簡化技術可以用來降低推理過程的能耗。模型部署之前或之後廣泛使用了量化、權重剪枝與逼近等技術。最明顯的兩個案例是 TinyML 以及 GPT-3 的輕量版。」
Klein 補充道:「隨機正則化(Drop-out)以及剪枝是一個好的開始。量化到更小的數字表示也會有所説明。如果做法比較激進的話,這些舉措可以將網路的規模減少 99% 或更多,而且在許多情況下準確率的下降才不到 1%。有人還考慮設計模型時用層來取代通道,在不影響準確性的情況下減少網路的規模。」
這些技術既減小了模型的規模,又直接降低了能耗需求,但我們還可以做出和更多改進。Expedera 的 Chole 表示: 「現在我們看到了對混合精度的支持,也就是每一層都可以量化到不同的域。甚至我們還可以更進一步。也許將來權重的每一個維度都可以量化成不同的精度。這種做法很有好處,因為在訓練期間,資料科學家可以在降低功耗與需要犧牲多少準確率之間做出權衡。」
結論
為了提高準確性,模型規模變得越來越大,但這種趨勢必須停止,因為要增加的耗電量不成比例。雖然鑒於(大公司的)商業模式,在雲端部署這種模型還可以負擔得起,但邊緣層就不行了。隨著越來越多的公司對邊緣應用進行投資,預期大家會更加關注能耗的優化。部分公司正在考慮在未來 5 年內將能耗減少 100 倍,但就算這樣也遠遠不足以阻止這一趨勢。
加入電腦王Facebook粉絲團