MIT團隊新系統30倍速提高AI模型構建效率

(來源:MIT News)
在醫療影像處理、語音識別等應用中,AI 模型需要處理極為複雜的資料結構,這一過程消耗大量計算資源,而這也是深度學習模型能耗巨大的原因之一。
為了進一步提高 AI 模型的效率,麻省理工學院的研究人員開發了一套自動化系統,讓深度學習演算法開發者能夠同時利用兩種型別的資料冗餘,進而減少了機器學習運算所需的計算、頻寬和記憶體使用量。
現有的最佳化演算法技術大都比較繁瑣,並且通常只允許開發者利用“稀疏性”或“對稱性”中的一種,兩者均為深度學習資料結構中不同型別的冗餘。
如今,麻省理工學院研究人員開發的新方法能讓開發者從頭構建同時利用這兩種冗餘的演算法,在某些實驗中該方法將計算速度提升了近 30 倍。
此外,由於該系統使用了一種使用者友好的程式語言,因此它可以針對各種應用最佳化機器學習演算法。同時,該系統還可以幫助那些並非深度學習專家,但希望提高他們所用 AI 演算法效率的科研人員,因此在科學計算領域也有應用價值。
“長期以來,利用這些資料冗餘需要大量部署工作,而現在,科學家只需要告訴系統他們想要計算的內容,而不需要詳細說明如何計算。”該系統相關論文的合作者、麻省理工學院博士後 Willow Ahrens 表示。這篇論文將在國際程式碼生成和最佳化研討會上發表。
除了 Willow Ahrens,另外兩名作者分別是麻省理工學院計算機科學與人工智慧實驗室(CSAIL)的 Radha Patel 和電氣工程與計算機科學系(EECS)教授、CSAIL 首席研究員 Saman Amarasinghe。
減少計算量
在機器學習中,資料通常以多維陣列的形式進行表示和運算,這些陣列被稱為張量。張量類似於矩陣,即按行和列排列的二維數值陣列。但與二維矩陣不同的是,張量可以有多個維度,這導致張量的運算難度更大。
深度學習模型透過對張量進行重複的矩陣乘法和加法運算來處理資料,這個過程也是神經網路學習資料中複雜模式的方式。由於這些多維資料結構需要進行大規模計算,因此要消耗大量的計算資源和能源。
不過,藉助張量中的資料排列方式,工程師們通常可以透過減少冗餘計算來提高神經網路的效率。
例如,若一個張量代表來自電商網站的使用者評論資料,由於並非每位使用者都會對所有產品進行評論,所以該張量中的大多數值可能是零。這種型別的資料冗餘被稱為“稀疏性”,模型可以透過僅儲存和運算非零值,就能節省大量時間和計算資源。
此外,有時張量是對稱的,即資料結構的上半部分和下半部分是一樣的。在這種情況下,模型只需對其中一半資料進行運算即可,從而減少計算量。這種型別的資料冗餘被稱為“對稱性”。
“但是,當嘗試同時利用這兩種最佳化方式時情況會變得更加複雜。”Willow Ahrens 表示。
為了簡化這個過程,她和團隊開發了一種名為“SySTeC”的新編譯器(編譯器是一種將複雜的程式碼轉換為機器可處理簡單語言的計算機程式),能夠透過自動利用張量中的“稀疏性”和“對稱性”來最佳化計算。
在構建 SySTeC 的過程中,他們確定了可利用對稱性進行的三個關鍵最佳化點。一,如果演算法的輸出張量是對稱的,則只需要計算其中的一半;二,如果輸入張量是對稱的,則演算法只需要讀取其中的一半;三,如果張量運算的中間結果是對稱的,演算法就可以跳過冗餘計算。
同步最佳化
使用 SySTeC 時,開發者只需輸入他們的程式,系統會自動針對上述三種對稱性對程式碼進行最佳化。然後,SySTeC 的接下來會進行額外的轉換,只儲存非零資料值,從而最佳化程式以利用稀疏性。最終,SySTeC 生成可以直接使用的程式碼。
“透過這種方式,我們可以同時獲得兩種最佳化的優勢。有趣的是,隨著張量維度的增加,節省的計算成本就越多。”Willow Ahrens 解釋道。
研究人員證實,使用 SySTeC 自動生成的程式碼,執行速度提升了近 30 倍。
由於該系統是自動化的,因此在科學家需要從頭編寫演算法來處理資料的情況下尤其有用。
展望未來,研究人員希望將 SySTeC 整合到現有的稀疏張量編譯器系統中,為使用者提供一個無縫銜接的操作介面。此外,他們還計劃用它來最佳化更復雜程式的程式碼。
這項工作部分得到了英特爾、美國國家科學基金會、國防高階研究計劃局和能源部的資助。
原文連結:
https://news.mit.edu/2025/user-friendly-system-can-help-developers-build-more-efficient-simulations-and-ai-models-0203

相關文章