用戶友好的系統可以幫助開發人員構建更有效的模擬和AI模型|麻省理工學院新聞

在醫學圖像處理和語音識別等應用程序中使用的神經網絡人工智能模型對需要大量計算進行處理的非常複雜的數據結構進行操作。這是深度學習模型消耗大量能量的原因之一。

為了提高AI模型的效率,麻省理工學院的研究人員創建了一個自動化系統,該系統使深度學習算法的開發人員能夠同時利用兩種類型的數據冗餘。這減少了機器學習操作所需的計算,帶寬和內存存儲的量。

現有用於優化算法的技術可能很麻煩,通常只允許開發人員利用稀疏性或對稱性 – 深度學習數據結構中存在的兩種不同類型的冗餘。

通過使開發人員能夠立即利用兩種冗餘的算法構建算法,麻省理工學院研究人員的方法在某些實驗中使計算速度提高了近30倍。

由於系統使用用戶友好的編程語言,因此可以為廣泛的應用程序優化機器學習算法。該系統還可以幫助那些不是深度學習專家但希望提高其用於處理數據的AI算法的效率的科學家。此外,該系統可以在科學計算中應用。

“很長一段時間以來,捕獲這些數據冗餘需要大量的實施工作。取而代之的是,科學家可以告訴我們的系統他們想以更抽象的方式計算什麼,而不告訴系統如何計算它。”將在國際代碼生成和優化研討會上介紹。

首席作者Radha Patel ’23,SM ’24和高級作家Saman Amarasinghe加入了她的參考書,電氣工程與計算機科學系教授(EEC)和計算機科學和人工智能實驗室的首席研究員(EECS)(EECS)( EECS)(EECS)加入了她的參考。 CSAIL)。

削減計算

在機器學習中,數據通常表示並操縱為多維陣列,稱為張量。張量就像一個矩陣,它是在兩個軸,行和列上排列的值的矩形陣列。但是,與二維矩陣不同,張量可以具有許多尺寸或軸,從而使張量更難操縱。

深度學習模型使用重複的矩陣乘法和添加對張量進行操作 – 此過程是神經網絡在數據中學習複雜模式的方式。在這些多維數據結構上必須執行的龐大計算需要大量的計算和能量。

但是,由於張量數據的數據安排方式,工程師通常可以通過切除冗餘計算來提高神經網絡的速度。

例如,如果張量代表來自電子商務網站的用戶查看數據,則由於並非每個用戶都審查了每個產品,則該張量的大多數值可能為零。這種類型的數據冗餘稱為稀疏性。模型只能通過以非零值存儲和操作來節省時間和計算。

另外,有時張量是對稱的,這意味著數據結構的上半部分和下半部分是相等的。在這種情況下,該模型只需要在一半上操作,從而減少了計算量。這種類型的數據冗餘稱為對稱性。

“但是,當您嘗試捕獲這兩種優化時,情況就變得非常複雜,” Ahrens說。

為了簡化流程,她和她的合作者構建了一個新的編譯器,該編譯器是一款計算機程序,將復雜的代碼轉換為一種可以由計算機處理的簡單語言。他們的編譯器稱為Systec,可以通過自動利用張量中的稀疏性和對稱性來優化計算。

他們通過確定可以使用對稱性執行的三個關鍵優化開始構建SYSTEC的過程。

首先,如果算法的輸出張量是對稱的,則只需計算其中一半即可。其次,如果輸入張量是對稱的,則算法只需要讀取其中一半即可。最後,如果張量操作的中間結果是對稱的,則該算法可以跳過冗餘計算。

同時優化

要使用Systec,開發人員輸入其程序,系統自動為所有三種對稱性的代碼優化了其代碼。然後,Systec的第二階段對僅存儲非零數據值進行了其他轉換,從而優化了稀疏程序的程序。

最後,Systec生成了現成的代碼。

“通過這種方式,我們獲得了兩種優化的好處。關於對稱性的有趣之處在於,隨著張量具有更多的尺寸,您可以在計算上節省更多的錢,” Ahrens說。

研究人員證明,使用Systec自動生成的代碼的加速度近30倍。

由於系統是自動化的,因此在科學家想要使用他們從頭開始編寫的算法處理數據的情況下,它可能特別有用。

將來,研究人員希望將SYSTEC集成到現有的稀疏張量編譯器系統中,以為用戶創建無縫接口。此外,他們希望使用它來優化更複雜程序的代碼。

這項工作部分由英特爾,國家科學基金會,國防高級研究項目局和能源部資助。

Source link

Scroll to Top