谷歌深度學習找到 AI 芯片關鍵路徑,機器學習開始用於優化芯片架構

谷歌深度學習找到 AI 芯片關鍵路徑,機器學習開始用於優化芯片結構

Google Brain 總監 Jeff Dean 曾指出,在某些狀況下,人工智能的深度學習形式在如何佈置芯片中的電路方面能夠比人類作出更好的決策。程序員

本月,谷歌在 arXiv 文件服務器上發表了一篇名爲「 Apollo: Transferable Architecture Exploration」的論文。Apollo 計劃表明了一種有趣的發展,它超越了 Jeff Dean 一年前所講的東西。相比之下,Apollo 計劃執行的是「架構探索」而不是平面圖。segmentfault

Apollo 計劃是超越「佈局和路線」的「架構探索」

這篇論文的主要做者 Amir Yazdanbakhsh 說:「在計算堆棧中,架構探索比佈局路線的探索要高級得多。」服務器

在 Jeff Dean 當時給出的例子中,機器學習能夠用於一些低層次的設計決策,即「佈局和路線」。在位置和路徑上,芯片設計者使用軟件來肯定構成芯片操做的電路的佈局,相似於設計建築物的平面圖。網絡

而芯片的體系結構是芯片功能元素的設計,包括如何交互,以及軟件程序員應該如何訪問這些功能元素。架構

例如,經典的 Intel x86 處理器具備必定數量的片上存儲器、專用的算術邏輯單元和一些寄存器等等。這些部分組合在一塊兒的方式賦予了所謂的英特爾架構的意義。框架

當被問及 Jeff Dean 的描述時,Yazdanbakhsh 表示,「咱們的工做和佈局規劃項目與 Jeff Dean 所講的是相互配合且互補的。」機器學習

Yazdanbakhsh 說:「我認爲,在架構探索中,存在更高的性能改進餘地。」佈局

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

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 在去年和同事共同完成的一篇論文中寫道:「神經網絡架構必須瞭解目標硬件架構,以優化總體系統性能和能源效率。」

當從神經網絡結構設計中分離出來時,硬件設計的價值有多大?

Berkin Akin 認爲,Apollo 對於給定的工做量來講可能已經足夠了,可是芯片和神經網絡之間的協同優化,將在將來產生其餘的好處。

他說:「在某些狀況下,咱們須要爲給定的一組固定神經網絡模型設計硬件。這些模型能夠是來自硬件目標應用程序域的已經高度優化的表明性工做負載的一部分,也能夠是定製加速器用戶所需的一部分。在這項工做中,咱們正在處理這種性質的問題,咱們使用機器學習來爲給定的工做負載套件找到最好的硬件架構。然而,在某些狀況下,聯合優化硬件設計和神經網絡體系結構是具備靈活性的。事實上,咱們有一些正在進行的工做,這樣的聯合優化,咱們但願可以產生更好的權衡。」

最後的結論是,即便芯片設計正在受到人工智能新工做負載的影響,芯片設計的新進程可能對神經網絡的設計產生可衡量的影響,這種辯證法可能在將來幾年以有趣的方式發展。

segmentfault 公衆號

相關文章
相關標籤/搜索