從谷歌AI設計芯片上,我們看到了“智能”的本質
在上周發表于同行評審科學雜志《自然》中的論文里,Google Brain團隊的科學家們介紹了一種用于布局規劃的深度強化學習技術,借助AI的力量對計算機芯片內的不同元件進行放置協調。研究人員們設法使用強化學習技術設計出下一代張量處理單元,也就是谷歌引以為傲的專用AI處理器。
在芯片設計當中使用軟件并非新鮮事物,但谷歌研究人員們介紹道,這種新的強化學習模型能夠“自動生成芯片布局圖,其成果在各項關鍵指標(包括功耗、性能與芯片面積等)上都等同甚至優于由人類給出的芯片布局方案。”更重要的是,其設計周期要遠遠低于人類工作時長。
事實上,AI在眾多領域表現出的強于人類的智能水平已經得到各方關注。一家媒體將其描述為“能夠以超越人類的速度設計出計算機芯片的AI軟件”,并表示“谷歌的全新AI能夠在6個小時之內設計出一套以往人類工程師需要幾個月才能完成的芯片設計方案。”
另一篇報道則認為,“AI技術在AI設計芯片領域的宏圖遠景才剛剛拉開帷幕。”
但在通讀這篇論文之后,真正打動我的并不是這套負責設計計算機芯片的AI系統的極度復雜性,而是人類與AI之間和諧而高效的協同作用。
類比、直覺與獎勵
這篇論文將有待解決的問題描述為:“芯片布局規劃流程,包括將網表放置在芯片畫布(二維網格)之上,優化性能指標(例如功耗、時序、面積與線長),同時遵循嚴格的密度限制與路由擁塞約束。”
基本上,這項任務的核心就是以最佳方式放置芯片元件。然而,與其他經典問題一樣,隨著芯片元件數量的持續增加,尋找最佳設計會變得愈發困難。
現有軟件有助于加快芯片排布的發現速度,但如果目標芯片的復雜度過高,傳統軟件方案明顯無法滿足需求。研究人員決定從強化學習解決其他復雜空間問題的眾多案例中汲取經驗,并發現圍棋AI在這方面似乎頗具潛力。
研究人員們在論文中寫道,“芯片布局規劃與圍棋非常相似,也有一個個棋子(例如網表拓撲、宏計數、宏尺寸與縱橫比)、棋盤(不同的畫布尺寸與縱橫比)以及獲勝條件(例如密度及路由擁塞限制等不同評估指標的相對重要度)。”
芯片設計需要用到人類智能中最重要、也最為復雜的元素之一——類比。我們人類可以從以往解決的問題中提取抽象經驗,并將這些經驗應用于新的問題。雖然我們這種能力的使用可以說是潛移默化、順暢自然,但其本身極為重要、甚至可以說是遷移學習的實現前提。正因為如此,研究人員才能將芯片布局問題重新定義為棋類游戲,并像其他科學家解決圍棋游戲那樣攻克設計難題。
深度強化學習模型特別擅長搜索這種巨大空間,而人類大腦的算力水平在物理上根本實現不了這樣的處理。不過科學家們面臨的芯片設計難題,在困難度上又比圍棋高了幾個數量級。研究人員們寫道,“在包含1000個單元格的網格上放置1000個節點集群時,其狀態空間達到千次方數量級(大于10的2500次方),而圍棋的狀態空間僅為10的360次方。”而實際需要設計的芯片,則往往由數百萬個節點組成。
最終,他們使用人工神經網絡解決了復雜性難題。人工神經網絡能夠將芯片設計編碼為向量表達,并大大降低問題空間的探索難度。根據論文的解釋,“我們有著這樣一種直覺,即能夠執行常規芯片放置任務的策略,還應該能夠在推理過程中將未見過的全新芯片相關狀態編碼為有意義的信號。因此,我們訓練出一種能夠預測新網表位置獎勵的神經網絡架構,而最終目標是使用這套架構作為策略中的編碼器層。”
很多朋友都覺得“直覺”這東西不太靠譜,但直覺的背后卻涉及一種非常復雜且鮮為人知的過程,涉及經驗、無意識知識、模式識別等等。我們的直覺往往來自在某個領域的多年經驗積累,但同時也會從其他專業中得到啟發。幸運的是,在高性能計算與機器學習工具的幫助之下,對直覺判斷進行測試正變得越來越簡單。
另外值得注意的是,強化學習系統需要精心設計的獎勵機制。事實上,有科學家認為只要設定正確的獎勵函數,強化學習甚至足以達成人工通用智能(AGI)。而如果沒有正確的獎勵,強化學習代理則可能陷入無限循環,重復愚蠢而無意義的嘗試。在以下視頻中,可以看到參加賽船冠軍賽的強化學習代理一味追求高積分,反而放棄了真正重要的目標——贏下比賽。
谷歌科學家們決定將布局規劃系統的獎勵設計為“代理線長、擁塞度與密度的負加權總和。”這里的權重,屬于強化學習模型開發及訓練過程中必須調整的一項超參數。
有了正確的獎勵,強化學習模型就能利用其計算能力找到種種方法設計出能夠實現獎勵最大化的平面布局圖。
策劃數據集
系統中使用的深度神經網絡,則是通過監督學習開發完成的。監督機器學習需要借助標記數據在訓練期間調整模型參數。谷歌科學家們創建了“一套包含10000個芯片元件放置方案的數據集,其中輸入信息與給定放置方式保持相關狀態,標簽則為該放置方法的獎勵。”
為了避免手動創建放置平面圖,研究人員在數據集中不僅使用人工設計圖、也加入了不少計算機生成的數據。論文中并沒有詳盡介紹評估訓練數據集中包含的算法生成示例到底有多少是由人類工程師設計,但可以肯定的是,如果沒有高質量的訓練數據,監督學習模型最終只會給出糟糕的推理結論。
從這個意義上說,芯片設計AI系統明顯不同于其他強化學習程序——以AlphaZero為例,它能夠在完全無需人為干涉的情況下發展出強大的圍棋對弈策略。但未來,研究人員可能會開發出一種新的強化學習代理,有望自主設計平面圖、無需任何監督學習元素。但我的個人猜測是,考慮到設計工作的高度復雜性,此類問題的解決可能仍然需要人類直覺、機器學習與高性能計算的強強聯合。
強化學習設計與人類設計
谷歌研究人員的探索帶來了種種有趣的結論,而其中最大的亮點當數芯片的實際布局。我們人類會利用各種捷徑來克服自己大腦的物理局限。我們沒辦法一次性啃下包含大量復雜元素的“硬骨頭”,但人腦會對整個復雜系統進行模塊化與分層拆解,一步步克服其中的挑戰。而這種自上而下進行架構考量與設計的能力,無疑將在負責解決極端復雜問題的系統中發揮重要的作用。
這里我們再來看一個軟件工程的例子,也就是我(作者)自己的專業領域。理論上,我們當然可以在單一文件中通過一條規模巨大且連綿不絕的命令流中編寫整個程序。但軟件開發人員從來不會這么編程,我們只會從代碼片段、函數、類、模塊入手一步步搭建軟件成果,并通過定義良好的接口將各種組件連通起來。以此為基礎,我們把階段性成果嵌套進更大的體系,由此逐步構建起一套分組件、分層級的架構。如此一來,我們無需閱讀程序中的每一行也能理解它的運作方式。模塊化機制使得多位程序員能夠同時開發同一程序,而原有程序中的組件也能供更多后續程序使用。有時候,單憑觀察程序中的類架構就足以幫助我們找到正確的bug定位路徑或者正確的升級添加位置。正因為如此,我們往往愿意犧牲速度來換取更高的模塊化水平與更高的設計質量。
同樣的指導方針在計算機芯片設計中同樣有所體現。人為設計的芯片往往在不同模塊之間有著清晰的邊界。另一方面,谷歌強化學習代理設計出的平面圖則能夠從中找到電阻最小的路徑,而不再受人腦思維容量的限制。
我很好奇,未來這種AI輔助設計模式會不會成為新的趨勢甚至是常態。或者說,機器學習生成的高度優化方案需要做出妥協,由此更好地與人類工程師所強加的自上而下的考量方式相匹配。
AI + 人類智能
正如谷歌強化學習芯片設計師們所言,AI的硬件與軟件創新探索仍然離不開人類提供的抽象思維、問題定位、解決方案直覺以及驗證數據選擇等重要能力。換言之,AI芯片能夠不斷增強這些技能,但卻很難徹底加以替代。
歸根結底,我認為此次成果的發布并不代表“AI勝過了人類”、“AI能夠創造更智能的AI”或者“AI正在自我遞歸、自我增強”。更準確地講,主體仍然是人類——人類在尋求可行的方法,將AI作為前所未有的強大工具借以克服自己的認知限制并擴展自身能力。如果這樣的良性循環真的能夠發展成熟,相信計算機芯片設計將成為AI與人類之間攜手共進的一大理想場景。