我們與人工智慧硬體公司Groq的執行長兼創始人 Jonathan Ross就軟體定義計算進行了交談。本次採訪是我們與Kisaco Research合作為9月17日和18日在加州山景城舉行的人工智慧硬體峰會所做系列報道的一部分。
軟體定義計算是一種思考如何為機器學習功能優化計算的方法。Ross談到了GPU的一些優點和缺點,以及軟體定義的計算機在未來的機器學習應用中可能出現的情況。
Q:您能定義軟體定義的計算嗎?
它的真正含義是機器學習,因為製造一個晶片需要相當長的時間,2到3年,而機器學習模型的變化如此之快,以至於您常常無法像研究人員提出新技術和新的機器學習模型那樣快速地構建晶片。
所以要想製造出人們想要使用的東西,您必須讓它非常靈活。所以軟體定義的意思就是您要做的裝置能夠適應未來的變化。
在更高的層次上,當新技術可用時,經常發生的一件事就是人們開始利用現有的技術。一個例子是人們習慣於使用非常稀疏的機器學習模型。他們會將它們部署到大量的伺服器上,對亞馬遜和其他許多公司來說都是如此。
當他們開始使用能夠處理更密集計算的裝置時,發生了什麼,我甚至不打算去定義,但是最終發生的事情是人們開始使用該更密集計算。因此,當涉及到軟體定義時,您可以根據自己的喜好靈活地選擇所需的靈活性,可以採用這些新技術並加以應用。但這也意味著研究人員可以進行實驗,看看他們可以使用這些裝置做什麼,並自己提出解決方案。
例如,我們已經發現GPU在機器學習中已被廣泛使用。原因是它們具有大量的計算密度。但是它們的記憶體頻寬非常慢,這是一個問題。人們認為這將阻止非常昂貴的機器學習模型在您進行調整時繼續獲得性能提升。
結果是,研究人員開始利用額外的計算能力。在每次記憶體訪問時他們會做更多的計算。就靈活性而言,您不僅能夠支援ML研究人員過去一直在做的事情。他們還可以探索並更好地利用您給他們的硬體。
Q:在業務領域中,這個軟體定義的概念是否優於GPU ?
Jonathan Ross:當然是的。我有一個很好的例子。我們正在開發的硬體的獨特功能之一就是它利用了稱為batch size one的優勢。這句話的意思是:“您還記得小時候玩的20個問題的遊戲嗎?”
遊戲是這樣的,您有20個問題。每個人心裡都有一個目標,一個人,然後您問問題,您將得到是或否的答案,直到您弄清楚那個目標是什麼。
現在,我在談論計算的密度。現在限制硬體使用的一個因素是,要想很好地使用它,常常需要在許多不同的輸入上同時運行同一個程式。想象一下,您在街上開車,有三個停車標誌。但是要獲得真正的良好效能,您實際上必須在64個停車標誌上執行才能識別它們並獲得良好的效能。
所以如果您只有3個,它的花費和您有64個是一樣的。現在假設您在玩遊戲,有20個問題,64個輸入,您要猜。這些問題一定很複雜因為您不是在猜這一項是什麼,您是在猜這64項是什麼。
我們正在構建的硬體和軟體定義硬體的一個獨特之處在於,它不是為任何特定的模型構建的。您可以更改在其上執行的模型的型別,並且可以通過分解模型來利用更小的批處理大小。
而不是同時在64個不同的專案上玩20個問題的遊戲,您可以一次在一個專案上做,這使得它更便宜。現在您問,是動物,蔬菜,還是礦物?答案並不總是肯定的,因為您總是有動物,蔬菜和礦物質。
假設您正在為一個潛在的保險客戶做決定。您將會有一些關於客戶的資訊,如果您執行的模型必須考慮到有關該客戶的所有可能的資訊,那麼它將是一個非常大的模型。但是,如果您可以檢視一下自己所擁有的一點資訊,例如關於客戶的實際資訊,然後選擇適合該問題的合適大小的模型,那麼它的成本將會降低,並且準確性也會更高。
另一個例子是,如果您試圖製造一輛自動駕駛汽車並讓沿著道路行駛,您可能會發現某物是一棵樹,或者您可能會發現某物是某種標誌。您可能不知道這是個停車標誌。
當您能夠在那個物件上執行一個非常特殊的模型時,對吧? 場景中大概有200個物體,但您有三個符號。它的意思是,您可以在這三個符號上執行一個符號分類器,它是經過專門訓練來識別這些符號的。
您也可以想象當您試圖做出預測時的策略。例如,AlphaGo模型的工作方式。隨著遊戲的發展,您實際上可以使用不同的模型,或者如果您認為遊戲可以有幾種不同的發展方式,則可以使用幾種不同的模型,一些模式更有侵略性,一些模式不那麼有侵略性。它真正的作用是允許您在同一個硬體上嘗試很多不同的東西,而不必為每一個不同的東西定製硬體。
Q:您認為這是如何滲透到工業領域的呢?有沒有一些空間可以讓這個概念被更緊密地抓住,更快地被接受?
Jonathan Ross:是的,我們擁有CPU和GPU已有很長時間了,這些都是可程式設計裝置。我們也有其他型別的裝置,比如FPGA,它們也是可程式設計的,但在執行的時候並不是這樣。要困難得多。有趣的是機器學習。具體來說,原因在於機器學習是一個開放的目標,人們不知道它將在哪裡著陸。變化太快了。
我們特別關注的是模型變化很快的地方。如果您製造一個小型消費裝置,一種音訊觸發裝置,就像當您說話時開啟您的門的裝置,它不必變得越來越智慧。
但是,當您在雲端、超算、或自動駕駛汽車上部署一些東西時,因為沒有人知道這些機器學習模型的最終公式,他們需要能夠更新它們並進行更改。
此外,人們仍然在尋找機器學習的新用途,因為這是一個如此新的領域。從理論上說,我們在各個地方都看到了用例,部分原因是即使在這些地方,這些東西最終都會被強化或被修復,因此現在沒有人知道它會是什麼樣子。
如果您想看看機器學習在哪些方面有用,那麼只需看看做出概率決策或困難決策的任何地方。這與以往軟體的工作方式大不相同。
問問您自己,您在哪裡做出艱難的決定?機器學習的另一個作用是它能讓您同時擁有這兩個矛盾的東西。它讓您既有可重複的表現,又有創造力。如果您有一個機器學習模型,您把它應用到一個問題上,它通常會解決那個問題,但它可能會以一種沒有人認為它能解決的方式來解決它。
Q:您是否將軟體定義的計算視為相同創造能力的擴充套件?
Jonathan Ross:完全正確。今天的機器學習研究人員提出了各種各樣的想法。您經常會看到這些想法受到硬體的限制。GPU不是為機器學習而設計的。他們之所以可以這樣做是因為它們非常並行,並且可以執行很多操作,但是今天這並不是您設計這種裝置的方式。
因此,如果您檢視許多流行的機器學習模型,會發現它們已經針對當今GPU的設計進行了優化。因此,當您擁有靈活的裝置時,您可以處理這些裝置,但也可以處理研究人員正在研究和試驗的其他內容,這使他們可以自由地提出新的模型體系結構。
這在機器學習的早期尤其重要,因為這些東西在工業早期就固定下來了。因此,通過靈活性,它允許他們在所有東西被強化和修復之前進行試驗。
另一方面,有趣的是,歷史上有兩種產業或產品。一種是如果您讓他們具備某種能力,他們就足夠好了。還有那些對更多的渴望永不滿足的。計算絕對是一種永不滿足的渴望。在計算機史上從來沒有人說過,“我有足夠的計算能力。我很好。”
有趣的一點是,我們很早就注意到,人們現在正在釋放使用機器學習完成任務的能力,這在以前是不可能的,我們注意到,每次有改進,每次計算變得更便宜,變得更快,變得更節能時,人們實際上會花更多,而不是更少的錢。
我相信世界上大約7%的電力實際上用於為資料中心供電。就計算機在世界範圍內的發展和重要性而言,這確實是一個飛速的增長。
因此,這是我們機器學習開始時的一個轉折點,每當機器學習有所改進時,人們都希望得到更多。
Q:您認為像您們這樣的公司最終會開始專注於特定的領域和空間嗎?
Jonathan Ross:我們專注於製造如此靈活的設計的原因之一是它也使程式設計變得更容易。從長遠來看,我們希望人們不會真正理解它下面是軟體定義的計算。這個想法是,如果您能調整硬體,您就能讓程式設計變得更容易。事實上,我們從編譯器開始。
我認為,就採用而言,行業中將要發生的事情是,首先使用它的地方是他們需要絕對最優效能的地方,而現有的體系結構,即GPU,就是無法滿足他們的要求。他們將能夠通過調整硬體來適應他們想要做的每一件事。隨著時間的推移,它會滲透到很多其他行業。
但這也很有趣,因為人們實際上在使用這個叫做Auto ML 的東西,它使用機器學習模型來設計機器學習模型。最近的結果是,有效網路(由模型訓練而成的模型)優於所有人工設計的模型。
這意味著如果您有一個非常靈活的硬體,人們訓練這些機器學習模型的方式或者他們生成模型的方式,它們的結構和形狀,實際上可以更好地利用這些硬體。
Auto ML 正在迅速成為機器學習的規範。只是因為它有一個非常顯著的優勢,有能力重新配置硬體。另一個有趣的地方是我們可以在硬體執行非常快的時候重新配置它。這樣就可以訓練模型,並允許模型的執行,其中硬體實際上從執行的一部分變為執行的另一部分。在開始時,它可能看起來是一種方式,而在結束時,它可能看起來是另一種方式。