谷歌「AI 6小時設計晶片」遭打臉?大神Jeff Dean論文被官方調查
在2021年9月,由Jeff Dean領銜的Google大腦團隊發表了一篇AI設計晶片的論文,曾引起業界轟動。然而,隨後有多人發現這項工作並不能被復現,而且關鍵數據和程式碼被隱藏了,Nature也對此展開了調查。近日,一篇由Google大神Jeff Dean領銜的「AI自主設計晶片」研究,被曝正式接受Nature調查!
Google發表這篇論文後,又在GitHub上開源了具體的Circuit Training程式碼,直接引起了整個EDA和IC設計社群的轟動。
然而,這項工作卻在此後不斷遭受質疑。
就在9月20日,Nature終於在這篇論文下面附上了一份聲明:
編按:請讀者註意,本文中的性能聲明已受到質疑,編輯們正在對這些問題進行調查,一旦調查結束,將酌情採取行動。
論文網址:https://www.nature.com/articles/s41586-021-03544-w
同時,一向給AI大模型潑冷水的馬庫斯也發現,與這篇Nature論文相關的評論文章,也被作者撤回了。
馬庫斯在Twitter上這樣描述:“又一個被炒得沸沸揚揚的人工智慧成果要落空了?”
現在,相關的Nature評論文章前面,已經被貼上了大寫的「retracted article(撤稿)」。
評論文章:https://www.nature.com/articles/d41586-021-01515-9
因為原本的論文受到了質疑,因此寫作相關評論文章的作者也將其撤回。
作者已撤回這篇文章,因為自文章發表以來,關於所報道論文所用方法,已出現了新信息,因此作者對於該論文貢獻的結論發生了改變。而Nature也在對論文中的結論進行獨立調查。
另外,馬庫斯也挖了這樣猛料:對於Jeff Dean團隊的論文,前Google研究人員Satrajit Chatterjee早就提出了質疑。
他寫出一篇反駁的論文,但Google表示這篇論文不會被發表,隨後,43歲的Chatterjee被Google解僱。
對於此事,紐約時報在2022年5月發文進行了報道
01
程式碼和論文不符
針對Google的這篇Nature和相關代碼,一群來自UCSD的學者進行了非常深入的研究。
他們將質疑寫成論文,並於今年3月收錄在國際頂尖的積體電路物理設計學術會議ISPD 2023。
論文網址:https://arxiv.org/abs/2302.11014
在GitHub上,Google和史丹佛的聯合團隊公開了程式碼,而就是在這段程式碼中,UCSD團隊發現了「華點」。
UCSD團隊以開源的方式實現了「Circuit Training」(簡稱CT)專案中的關鍵「黑盒子」元素,然後發現,CT與Nature論文中存在差異,並不能被復現!
專案地址:https://github.com/google-research/circuit_training#circuit-training-an-open-source-framework-for-generating-chip-floor-plans-with-distributed-deep-reinforcement-learning
在Nature論文中,Google表示,不到六個小時,他們的方法就自動產生了晶片佈局圖,而該佈局圖在所有關鍵指標(包括功耗、性能和晶片面積)上都優於人類生成的佈局圖,或與之相當。
而UCSD團隊發現,這篇論文中的數據和程式碼都不是完全可用的。在此期間,他們也得到了Google工程師就相關問題的回應。
此外,一篇名為「Stronger Baselines for Evaluating Deep Reinforcement Learning in Chip Placement」的論文聲稱,更強的模擬退火基線優於Nature論文,但顯然使用了Google內部版本的CT,以及不同的基準和評估指標。
總之,Nature中的方法和結果,都無法被重現。
UCSD團隊使用了CT、CMP、SA、ReP1Ace和AutoDMP產生了巨集佈局解決方案,還包括由人類專家產生的巨集佈局解決方案。在Google工程師的指導下,他們使用了0.5作為密度權重,而不是1
文中,UCSD團隊描述了CT關鍵「黑盒子」元素的逆向工程一一強制定向放置和智慧體成本計算。
這兩個部分,在Nature論文中既沒有被明確記錄,也沒有開源。
另外,UCSD團隊也實現了基於網格的模擬退火宏放置,用於比較Nature論文和更強的基線。
由不同宏放置器產生的Ariane-NG45宏放置
UCSD團隊出具了一份實驗評估報告,揭示了CT的以下幾個面向—
(1)使用商業物理合成工具的初始放置資訊會如何影響CT結果
(2)CT的穩定性
(3)CT智能體的成本與商業EDA工具的「真實情況」輸出之間的相關性
(4)更強基線手稿中研究的ICCADO4測試案例的效能
總的來說,UCSD團隊發現,CT和Nature論文所述有幾個顯著的不符之處。
CT假設輸入netlist中的所有實例都有(x,y)位置,也就是說,netlist在輸入到CT之前,就已經被放置了。
CT的分組、網格化和聚類過程,都使用了位置資訊。
力量導向放置
然而,這些資訊在review中並不明顯,在Nature論文中也未被提及。
同樣,解釋CT的兩個關鍵「黑盒」元素-強制定向放置和智能體成本計算,也都沒有在Nature論文中明確記錄,也在CT中也不可見。
這些範例代表了理解和重新實現方法所需的逆向工程,這些方法迄今只能透過某些API可見。
擁塞成本計算
NG45中Ariane的CT訓練曲線,由UCSD團隊和Google工程師生成
除了這篇論文外,UCSD團隊還有一個更詳細的專案主頁,全面記錄了他們對Google這篇Nature論文的研究。
專案地址:https://tilos-ai-institute.github.io/MacroPlacement/Docs/OurProgress/
概括來說,共有十八個「靈魂拷問」。
02
Nature共同一作長文回應
對此,Google和史丹佛聯合團隊的共同一作給了一個非常詳盡的聲明:
“我們認為,這篇最近在ISPD上發表的特邀論文,對我們的工作進行了錯誤的描述。”
聲明地址:https://www.annagoldie.com/home/statement
首先,介紹一些重要背景:
論文提出的RL方法已經用在了多代Google旗艦AI加速器(TPU)的生產上(包括最新的一代)。也就是說,基於該方法生成的晶片,已經被製造了出來,並正在Google資料中心運行。
亞10奈米的驗證程度,遠遠超出了幾乎所有論文的水平。
ML產生的佈局必須明顯優於Google工程師產生的佈局(即超越人類層級),否則不值得冒險。
Nature進行了長達7個月的同儕審查,其中,審查者包括2位物理設計專家和1位強化學習專家。
TF-Agents團隊獨立重現了Nature論文的結果。
團隊於2022年1月18日開源了程式碼。
截至2023年3月18日,已有100多個fork和500多顆星。
開發並開源這個高度優化的分散式RL框架是一個巨大的工程,其應用範圍已經超越了晶片佈局,甚至電子設計自動化領域(EDA)。
值得注意的是,在商業EDA領域,開源專案程式碼的做法並不常見。
在團隊的方法發布之後,有許多基於其工作的論文在ML和EDA會議上發表,此外,英偉達(NVIDIA)、新思科技(Synopsys)、Cadence和三星等公司也紛紛宣布,自己在晶片設計中使用了強化學習。
接著,是針對ISPD論文技術的回應:
ISPD論文並沒有為「電路訓練」(Circuit Training,CT)進行任何預訓練,這意味著RL智能體每次看到一個新的晶片時都會被重置。
基於學習的方法如果從未見過晶片,學習時間當然會更長,性能也會更差!
團隊則先是對20個區塊進行了預訓練,然後才評估了表1中的測試案例。
訓練CT的運算資源遠少於Nature論文所用到的(GPU數量減半,RL環境減少一個數量級)。
ISPD論文附帶的圖表表明,CT沒有得到正確的訓練,RL智能體還在學習時就被中斷了。
在發表Nature論文時,RePlAce是最先進的。此外,即使忽略上述所有問題,團隊的方法不管是在當時還是在現在,表現都比它更出色。
雖然這項研究標題是“對基於強化學習的宏佈局的學習評估”,但它並沒有與任何基於該工作的RL方法進行比較,甚至都沒有承認這些方法。
ISPD論文將CT與AutoDMP(ISPD 2023)和CMP的最新版本(一款黑盒閉源商業工具)進行了比較。當團隊在2020年發表論文時,這兩種方法都還沒有問世。
ISPD論文的重點是使用物理合成的初始位置來聚集標準單元,但這與實際情況無關。
物理合成必須在運行任何放置方法之前執行。這是晶片設計的標準做法,這也反映在ISPD論文的圖2。
作為預處理步驟,團隊會重複使用物理合成的輸出來對標準單元進行聚類。需要說明的是,團隊的方法不會放置標準單元,因為先前的方法(如DREAMPlace)已經很好地對它們進行了處理。
在每個RL事件中,團隊都會向RL智能提供一個未放置巨集(記憶體組件)和未放置的標準單元簇(邏輯閘),然後RL智能體會將這些巨集逐一放置到空白畫布上。
九個月前,團隊在開源儲存庫中記錄了這些細節,並提供了執行此預處理步驟的API。然而,這與論文中的實驗結果或結論沒有任何關係。
最後,團隊表示,目前的方法並不完美,而且肯定會有效果不太好的情況。
但這只是一個開始,基於學習的晶片設計方法必將對硬體和機器學習本身產生深遠的影響。
03
用AI,6小時就能設計一款晶片?
回到Nature的這篇文章,2021年,由Jeff Dean領銜的Google大腦團隊以及史丹佛大學的科學家表示:
“一種基於深度強化學習(DL)的晶片佈局規劃方法,能夠產生可行的晶片設計方案。”
為了訓練AI幹活兒,Google研究員可真花了不少心思。
與棋盤遊戲,如像棋或圍棋,的解決方案相比較,晶片佈局問題更為複雜。
在不到6小時的時間內,Google研究人員利用「基於深度強化學習的晶片佈局規劃方法」產生晶片平面圖,且所有關鍵指標(包括功耗、性能和晶片面積等參數)都優於或與人類專家的設計圖效果相當。
要知道,我們人類工程師往往需要「數月的努力」才能達到如此效果。
人類設計的微晶片平面圖與機器學習系統設計
在論文中,Google研究人員將晶片佈局規劃方法當作一個「學習問題」。
潛在問題設計高維contextual bandits problem,結合Google先前的研究,研究人員選擇將其重新制定為一個順序馬可夫決策過程(MDP),這樣就能更容易包含以下幾個約束條件:
(1)狀態編碼關於部分放置的信息,包括netlist(鄰接矩陣)、節點特徵(寬度、高度、類型)、邊緣特徵(連接數)、當前節點(宏)以及netlist圖的元數據(路由分配、線數、宏和標準單元簇)。
(2)動作是所有可能的位置(晶片畫布的網格單元) ,目前巨集可以放置在不違反任何硬約束的密度或擁塞。
(3)給定一個狀態和一個動作,「狀態轉換」定義下一個狀態的機率分佈。
(4)獎勵:除最後一個動作外,所有動作的獎勵為0,其中獎勵為智慧體線長、擁塞和密度的負加權。
研究人員訓練了一個由神經網路建模的策略(RL智能體),透過重複的事件(狀態、動作和獎勵的順序),學會採取將「累積獎勵最大化」的動作。
然後,研究人員使用鄰近策略最佳化(PPO)來更新策略網路的參數,給定每個放置的累積獎勵。
研究者將目標函數定義如下:
如前所述,針對晶片佈局規劃問題開發領域自適應策略極具挑戰性,因為這個問題類似於一個具有不同棋子、棋盤和贏條件的博弈,並且具有巨大的狀態動作空間。
為了應對這個挑戰,研究人員首先集中學習狀態空間的豐富表示。
Google研究人員表示,我們的直覺是,能夠處理晶片放置的一般任務的策略也應該能夠在推理時將與新的未見晶片相關的狀態編碼為有意義的信號。
因此,研究人員訓練了一個“神經網路架構”,能夠預測新的netlist位置的獎勵,最終目標是使用這個架構作為策略的編碼層。
為了訓練這個有監督的模型,就需要一個大型的晶片放置資料集以及對應的獎勵標籤。
因此,研究人員創建了一個包含10000個晶片位置的資料集,其中輸入是與給定位置相關聯的狀態,標籤是該位置的獎勵。
為了準確地預測獎勵標籤並將其推廣到未知數據,研究人員提出了一種基於邊的圖神經網路結構,稱為Edge-GNN(Edge-Based Graph Neural Network)。
在Edge-GNN中,研究人員透過連接每個節點的特徵(包括節點類型、寬度、高度、x和y座標以及它與其他節點的連通性)來創建每個節點的初始表示。
然後再迭代執行以下更新:
(1)每個邊透過應用一個完全連通的網路連接它連接的兩個節點更新其表示;
(2)每個節點透過傳遞所有的平均進出邊到另一個完全連通的網路更新其表示。
Edge-GNN的作用是嵌入netlist,提取有關節點類型和連通性的信息到一個低維向量表示,可用於下游任務。
基於邊的神經結構對泛化的影響
研究人員首先選擇了5個不同的晶片淨網表,並用AI演算法為每個網表建立2000個不同的佈局位置。
該系統花了48個小時在“英偉達Volta顯示卡”和10個CPU上“預訓練”,每個CPU都有2GB的RAM。
左邊,策略正在從頭開始訓練,右邊,一個預先訓練的策略正在為這個晶片進行微調。每個矩形代表一個單獨的巨集放置
在一項測試中,研究人員將他們的系統建議與手動基線——GoogleTPU物理設計團隊創建的上一代TPU晶片設計——進行比較。
結果顯示,系統和人類專家均產生符合時間和阻塞要求的可行位置,而AI系統在面積、功率和電線長度方面優於或媲美手動佈局,同時滿足設計標準所需的時間要少得多。
但現在,這篇曾引起整個EDA和IC設計社區的轟動的論文,如今在被Nature重新調查,不知後續會如何發展。
來源:新智元