MIT開發友善使用者系統,大幅提升AI模型效率
友善使用者的系統能夠幫助開發者建立更高效的模擬和人工智慧(AI)模型。像是醫學影像處理和語音辨識等應用中所使用的神經網路AI模型,需要對極其複雜的資料結構進行運算,而處理這些資料需要大量的計算,這也是深度學習模型耗電量如此之大的原因之一。
為了提升AI模型的效率,麻省理工學院(MIT)的研究人員開發了一個自動化系統,讓深度學習演演算法的開發者能夠同時利用兩種型別的資料冗餘性。這可以減少機器學習運算所需的計算量、頻寬和記憶體儲存空間。
現有的演演算法最佳化技術往往很繁瑣,而且通常只允許開發者利用稀疏性或對稱性其中一種——這是深度學習資料結構中存在的兩種不同型別的冗餘性。而MIT研究人員的方法,讓開發者能夠從頭開始構建一個同時利用這兩種冗餘性的演演算法,在某些實驗中,將計算速度提高了近30倍。
由於該系統使用了友善使用者的程式語言,它可以為各種應用最佳化機器學習演演算法。這個系統還可以幫助那些並非深度學習專家,但想要提高他們用於處理資料的AI演演算法效率的科學家。此外,該系統在科學計算方面也有應用潛力。
MIT博士後研究員、一篇關於該系統論文的共同作者Willow Ahrens表示:「長期以來,捕捉這些資料冗餘性需要大量的實作工作。相反地,科學家可以用更抽象的方式告訴我們的系統他們想要計算什麼,而不必告訴系統具體如何計算。」這篇論文將在2025年3月1日至5日於美國內華達州拉斯維加斯舉行的國際程式碼生成與最佳化研討會(CGO 2025)上發表。
這篇論文的主要作者是2023屆學士、2024屆碩士Radha Patel,資深作者是電機工程與電腦科學系(EECS)教授、電腦科學與人工智慧實驗室(CSAIL)首席研究員Saman Amarasinghe。該論文已在arXiv預印本伺服器上釋出。
在機器學習中,資料通常以稱為張量的多維陣列形式表示和操作。張量就像矩陣,矩陣是在兩個軸(行和列)上排列的矩形數值陣列。但與二維矩陣不同的是,張量可以有許多維度或軸,這使得張量更難操作。
深度學習模型透過重複的矩陣乘法和加法對張量進行運算——這就是神經網路學習資料中複雜模式的過程。對這些多維資料結構進行的大量計算需要巨量的運算和能量。
然而,由於張量中資料的排列方式,工程師通常可以透過省去冗餘的計算來提高神經網路的速度。例如,如果一個張量表示電商網站的使用者評論資料,由於並不是每個使用者都評論了每個商品,該張量中的大多數值可能為零。這種型別的資料冗餘性稱為稀疏性。模型可以透過只儲存和操作非零值來節省時間和計算量。
此外,有時張量是對稱的,這意味著資料結構的上半部分和下半部分是相等的。在這種情況下,模型只需要對其中一半進行運算,從而減少計算量。這種型別的資料冗餘性稱為對稱性。
Ahrens指出:「但當你試圖同時捕捉這兩種最佳化時,情況就變得相當複雜。」為了簡化這個過程,她和她的團隊構建了一個新的編譯器,稱為SySTeC。編譯器是一種將複雜程式碼轉換成機器可以處理的簡單語言的電腦程式。SySTeC可以透過自動利用張量中的稀疏性和對稱性來最佳化計算。
他們在構建SySTeC的過程中,首先確定了可以利用對稱性進行的三個關鍵最佳化。首先,如果演演算法的輸出張量是對稱的,那麼只需要計算其中一半。其次,如果輸入張量是對稱的,那麼演演算法只需要讀取其中一半。最後,如果張量運算的中間結果是對稱的,演演算法可以跳過冗餘的計算。
開發者使用SySTeC時,只需輸入他們的程式,系統就會自動針對這三種對稱性對程式碼進行最佳化。然後,SySTeC的第二階段會進行額外的轉換,只儲存非零資料值,從而針對稀疏性最佳化程式。最後,SySTeC會生成可用的程式碼。
Ahrens表示:「透過這種方式,我們可以同時獲得這兩種最佳化的好處。有趣的是,隨著張量的維度增加,計算量的節省會更多。」研究人員透過SySTeC自動生成的程式碼,實現了近30倍的速度提升。
由於該系統是自動化的,在科學家想要使用自己從頭編寫的演演算法處理資料的情況下,它會特別有用。未來,研究人員希望將SySTeC整合到現有的稀疏張量編譯器系統中,為使用者建立一個無縫的介面。此外,他們還希望用它來最佳化更複雜程式的程式碼。