在較早的深度學習文章中,我們討論了推理工作負載(使用已經訓練的神經網絡來分析數據)如何可以在相當便宜的硬件上運行,但是運行神經網絡“學習”的訓練工作卻是數量級的更貴。
特別是,您對算法的潛在輸入越多,在分析問題空間時擴展問題就越不受控制。MACH是萊斯大學的Tharun Medini和Anshumali Shrivastava共同撰寫的研究項目的所在地。MACH是通過散列合并合并平均分類器的首字母縮寫,并且根據**研究員Shrivastava的說法,“ [其訓練時間約為7到10速度快了兩倍,并且...內存占用量比以前的大規模深度學習技術小2-4倍”。
在描述極端分類問題的規模時,Medini提到了在線購物搜索查詢,并指出“在線上很容易有超過1億種產品”。如果有的話,這是保守的—一家數據公司聲稱僅亞馬遜美國公司就售出了6.06億種獨立產品,整個公司在全球范圍內提供了超過30億種產品。另一家公司估計美國的產品數量為3.53億。Medini繼續說道:“一個神經網絡,它接受搜索輸入并根據1億個輸出或產品進行預測,通常每個產品將帶有大約2,000個參數。因此,將它們相乘,神經網絡的**一層就是2000億個參數。我正在談論一個非常非常死的簡單神經網絡模型。”
在這樣的規模下,一臺超級計算機可能只需要太字節的工作內存就可以存儲模型。當您將GPU帶入畫面時,內存問題變得更加嚴重。GPU處理神經網絡工作負載的速度比通用CPU快幾個數量級,但是每個GPU都有相對較少的RAM,即使是最昂貴的Nvidia Tesla GPU也只有32GB的RAM。Medini說:“由于大量的GPU間通信,訓練這樣的模型是禁止的。”
馬赫并沒有對全部1億個結果(在本例中為產品購買)進行培訓,而是將它們分為三個“存儲桶”,每個存儲桶包含3330萬個隨機選擇的結果。現在,MACH創造了另一個“世界”,在那個世界中,這1億個結果再次被隨機分為三類。至關重要的是,**世界和第二世界中的隨機排序是分開的,它們各自具有相同的1億個結果,但是每個世界中它們在存儲桶中的隨機分布是不同的。
實例化每個世界后,將同時向“世界**”分類器和“世界第二”分類器提供搜索,每個搜索只有三個可能的結果。“這個人在想什么?” 問Shrivastava。“最可能的類別是這兩個桶之間的共同點。”
此時,有九種可能的結果-世界一中的三個存儲桶乘世界第二中的三個存儲桶。但是,MACH只需要創建六個類(World One的三個存儲桶 再加上 World Two的三個存儲桶)來建模九個結果的搜索空間。隨著創建更多“世界”,此優勢將得到改善。三世界方法只能從創建的九個類中產生27個結果,四世界方法可以從十二個類中獲得81個結果,依此類推。Shrivastava說:“我正在以線性方式支付成本,并且得到了指數級的改進。”
更好的是,MACH更適合在較小的單個實例上進行分布式計算。梅迪尼說,世界“甚至不必彼此交談”。“原則上,您可以在單個GPU上訓練每個[世界],這是使用非獨立方法永遠無法做到的。” 在現實世界中,研究人員將MACH應用于一個4,900萬產品的Amazon培訓數據庫,將其隨機分為32個獨立世界中的每個10,000個存儲桶。這將模型中所需的參數減少了一個數量級以上-根據Medini的說法,與在具有可比較參數的模型上報告的一些**的培訓時間相比,訓練模型所需的時間和內存更少。
當然,如果我們不對意外后果進行憤世嫉俗的提醒,那么這將不是Ars關于深度學習的文章。不言而喻的現實是,神經網絡實際上并沒有在學習向購物者展示他們所要求的東西。相反,它正在學習如何將查詢轉化為 購買。 神經網絡不知道或不在乎人類實際上在尋找什么;它只是知道人類最有可能購買什么產品,并且在沒有足夠監督的情況下,受過培訓以這種方式提高結果概率的系統可能最終會 向流產或更糟的婦女建議嬰兒用品。
http://www.qudaishu.com/art/7258367.html
資訊來源:http://www.qudaishu.com/art/7258367.html
|