![谷歌深度學習找到 AI 芯片關鍵路徑,機器學習開始用于優化芯片結構 谷歌深度學習找到 AI 芯片關鍵路徑,機器學習開始用于優化芯片結構]()
Google Brain 總監 Jeff Dean 曾指出,在某些情況下,人工智能的深度學習形式在如何布置芯片中的電路方面可以比人類做出更好的決策。
本月,谷歌在 arXiv 文件服務器上發表了一篇名為“ Apollo: Transferable Architecture Exploration”的論文。Apollo 計劃代表了一種有趣的發展,它超越了 Jeff Dean 一年前所講的東西。相比之下,Apollo 計劃執行的是“架構探索”而不是平面圖。
Apollo 計劃是超越“布局和路線”的“架構探索”
這篇論文的主要作者 Amir Yazdanbakhsh 說:“在計算堆棧中,架構探索比布局路線的探索要高級得多?!?/p>
在 Jeff Dean 當時給出的例子中,機器學習可以用于一些低層次的設計決策,即“布局和路線”。在位置和路徑上,芯片設計者使用軟件來確定構成芯片操作的電路的布局,類似于設計建筑物的平面圖。
而芯片的體系結構是芯片功能元素的設計,包括如何交互,以及軟件程序員應該如何訪問這些功能元素。
例如,經典的 Intel x86 處理器具有一定數量的片上存儲器、專用的算術邏輯單元和一些寄存器等等。這些部分組合在一起的方式賦予了所謂的英特爾架構的意義。
當被問及 Jeff Dean 的描述時,Yazdanbakhsh 表示,“我們的工作和布局規劃項目與 Jeff Dean 所講的是相互配合且互補的?!?/p>
Yazdanbakhsh 說:“我認為,在架構探索中,存在更高的性能改進余地?!?/p>
Yazdanbakhsh 和他的同事們稱 Apollo 為“第一個可轉移的架構探索基礎結構”,這是第一個在探索可能的芯片架構方面做得更好的程序,它在不同的芯片上工作得越多,越能更好地探索可能的芯片體系結構,從而將學到的知識轉移到每個新任務上。
探索不同開發方法,根據工作負載進行調整
Yazdanbakhsh 和團隊正在開發的芯片本身就是用于 AI 的芯片,稱為加速器。該芯片與 Nvidia A100“ Ampere” GPU,Cerebras Systems WSE 芯片以及目前投放市場的許多其他啟動部件屬于同一類。因此,使用 AI 設計運行 AI 的芯片具有很好的對稱性。
鑒于任務是設計一個 AI 芯片,Apollo 程序正在探索的架構是適合運行神經網絡的架構。這意味著大量的線性代數,許多簡單的數學單位,執行矩陣乘法和求和的結果。
團隊將挑戰定義為找到適合給定 AI 任務的這些數學塊的正確組合之一。他們選擇了一個相當簡單的 AI 任務,即一個稱為 MobileNet 的卷積神經網絡,由谷歌的 Andrew g. Howard 和他的同事在 2017 年設計。
此外,他們還使用幾個內部設計的網絡測試工作負載,這些網絡用于完成目標檢測和語義分割等任務。
通過這種方式,目標就變成了: 對于一個給定的神經網絡任務,芯片的結構的正確參數是什么?
整個搜索過程包括對超過 4.52 億個參數進行排序,其中包括將使用多少被稱為處理器元素的數學單元,以及對于給定的模型有多少參數內存和激活內存是最優的。
![image.png image.png]()
Apollo 是一個框架,這意味著它可以采用文獻中為所謂的黑盒優化開發的各種方法,并且它可以根據特定的工作負載調整這些方法,并比較每種方法在解決目標方面的表現。
在另一個很好的對稱性中,Yazdanbakhsh 采用了一些優化方法,這些方法實際上是為開發神經網絡架構而設計的。包括 2019 年由 Quoc v. Le 和他在谷歌的同事開發的所謂的進化方法; 基于模型的強化學習方法,以及由 Christof Angermueller 和其他人在 Google 上為“設計”DNA 序列而開發的所謂的基于人口的方法集合; 以及貝葉斯優化方法。
進化和基于模型的方法優于隨機選擇和其他方法
Apollo 包含了對稱性的主要層次,將為神經網絡設計和生物合成設計的方法結合起來,設計可能反過來用于神經網絡設計和生物合成的電路。
比較所有這些優化,這正是 Apollo 框架的亮點所在。它的整個存在目的是有條不紊地采用不同的方法,并且告訴人們什么方法最有效。Apollo 試驗結果詳細說明了進化和基于模型的方法如何優于隨機選擇和其他方法。
但 Apollo 最引人注目的發現是,如何運行這些優化方法,可以使過程比暴力搜索法更有效率。例如,他們將基于群體的集成方法與他們所說的對體系結構方法的解決方案集的半窮盡搜索進行了比較。
Yazdanbakhsh 和他的同事們看到的是,基于人群的方法能夠發現利用電路中權衡取舍的解決方案,比如計算和內存,這通常需要特定領域的知識。由于基于人群的方法是一種習得的方法,因此它能夠找到半詳盡搜索無法找到的解決方案。
實際上,P3BO(基于總體的黑盒優化)發現的設計比半詳盡的 3k 樣本搜索空間更好。這種設計使用了非常小的內存(3MB),以支持更多的計算單元。這利用了視覺工作負載的計算密集型特性,這在原始的半詳盡搜索空間中是不包含的。這表明手動搜索空間工程需要半詳盡的方法,而基于學習的優化方法利用大的搜索空間減少手動工作。
因此,Apollo 能夠計算出不同的優化方法在芯片設計中的表現。但是,它還可以做更多的事情,可以運行所謂的遷移學習來展示如何反過來改進這些優化方法。
通過運行優化策略以將芯片設計改進一個設計點,例如以毫米為單位的最大芯片尺寸,這些實驗的結果便可以作為輸入輸入到隨后的優化方法中。Apollo 團隊發現,各種優化方法通過利用初始或種子優化方法的最佳結果,提高了它們在類似區域約束電路設計這樣的任務中的性能。
所有這些必須被這樣一個事實所包括: 為 MobileNet 或任何其他網絡或工作負載設計芯片受設計過程對給定工作負載的適用性的限制。
事實上,該論文的作者之一,Berkin Akin 幫助開發了 MobileNet 版本 MobileNet Edge,他指出優化是芯片和神經網絡優化的產物。
Berkin Akin 在去年和同事共同完成的一篇論文中寫道:“神經網絡架構必須了解目標硬件架構,以優化整體系統性能和能源效率?!?/p>
當從神經網絡結構設計中分離出來時,硬件設計的價值有多大?
Berkin Akin 認為,Apollo 對于給定的工作量來說可能已經足夠了,但是芯片和神經網絡之間的協同優化,將在未來產生其他的好處。
他說:“在某些情況下,我們需要為給定的一組固定神經網絡模型設計硬件。這些模型可以是來自硬件目標應用程序域的已經高度優化的代表性工作負載的一部分,也可以是定制加速器用戶所需的一部分。在這項工作中,我們正在處理這種性質的問題,我們使用機器學習來為給定的工作負載套件找到最好的硬件架構。然而,在某些情況下,聯合優化硬件設計和神經網絡體系結構是具有靈活性的。事實上,我們有一些正在進行的工作,這樣的聯合優化,我們希望能夠產生更好的權衡?!?/p>
最后的結論是,即使芯片設計正在受到人工智能新工作負載的影響,芯片設計的新進程可能對神經網絡的設計產生可衡量的影響,這種辯證法可能在未來幾年以有趣的方式發展。
![segmentfault 公眾號 segmentfault 公眾號]()
查看原文
Google Brain 總監 Jeff Dean 曾指出,在某些情況下,人工智能的深度學習形式在如何布置芯片中的電路方面可以比人類做出更好的決策。