TW202338668A - 用於神經網路訓練的稀疏性掩蔽方法 - Google Patents
用於神經網路訓練的稀疏性掩蔽方法 Download PDFInfo
- Publication number
- TW202338668A TW202338668A TW112106054A TW112106054A TW202338668A TW 202338668 A TW202338668 A TW 202338668A TW 112106054 A TW112106054 A TW 112106054A TW 112106054 A TW112106054 A TW 112106054A TW 202338668 A TW202338668 A TW 202338668A
- Authority
- TW
- Taiwan
- Prior art keywords
- sparsity
- mask
- training
- balanced
- dimension
- Prior art date
Links
- 238000012549 training Methods 0.000 title claims abstract description 193
- 238000000034 method Methods 0.000 title claims abstract description 102
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 34
- 230000000873 masking effect Effects 0.000 title description 7
- 239000011159 matrix material Substances 0.000 claims abstract description 117
- 230000002829 reductive effect Effects 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 13
- 230000002441 reversible effect Effects 0.000 claims description 9
- 210000002569 neuron Anatomy 0.000 description 20
- 230000006870 function Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 15
- 238000013459 approach Methods 0.000 description 14
- 239000003795 chemical substances by application Substances 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 230000007423 decrease Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 9
- 238000010801 machine learning Methods 0.000 description 7
- 230000017105 transposition Effects 0.000 description 6
- 230000006872 improvement Effects 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 238000001994 activation Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 230000037452 priming Effects 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000007177 brain activity Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Complex Calculations (AREA)
- Rehabilitation Tools (AREA)
- Filters That Use Time-Delay Elements (AREA)
Abstract
提供了一種用於訓練神經網路的方法。對於在第一維度中具有整數維度M
1並且在第二維度中具有整數維度M
2的權重矩陣,產生在第一維度中為M
1中N
1遮罩的第一平衡稀疏性遮罩。第一平衡稀疏性遮罩在推理期間應用於權重矩陣。產生用於權重矩陣的轉置的第二平衡稀疏性遮罩。第二平衡稀疏性遮罩在第二維度中為M
2中N
2遮罩。第二平衡稀疏性遮罩應用於在反向傳播期間權重矩陣的轉置。
Description
本揭示係關於用於神經網路訓練的稀疏性掩蔽方法。
深度神經網路(deep neural network; DNN)可用於機器學習以構建人工智慧模型。深度學習工作負荷包含輸入資料、在受監督的訓練期間學習的權重矩陣、及根據輸入資料及權重矩陣計算的啟動矩陣。隨著計算資源的擴展,可以處理較大的資料集,從而需要由此按比例放大DNN。稀疏性可用作減少在訓練DNN期間所需的操作消耗的計算及/或記憶體的量的工具。
提供此發明內容來以簡化形式引入將在下文實施方式中進一步描述的概念選擇。此發明內容不意欲識別要求保護的標的的關鍵特徵或必要特徵,亦不意欲用於限制要求保護的標的的範疇。此外,要求保護的標的不限於解決在本揭示的任何部分中提及的任何或所有缺點的實施方式。
提供了一種用於訓練神經網路的方法。對於在第一維度中具有整數維度M
1並且在第二維度中具有整數維度M
2的權重矩陣,產生在第一維度中為M
1中N
1遮罩的第一平衡稀疏性遮罩。第一平衡稀疏性遮罩在推理期間應用於權重矩陣。產生用於權重矩陣的轉置的第二平衡稀疏性遮罩。第二平衡稀疏性遮罩在第二維度中為M
2中N
2遮罩。第二平衡稀疏性遮罩應用於在反向傳播期間權重矩陣的轉置。
隨著深度神經網路(DNN)的參數數量急劇增加,訓練彼等網路的計算及記憶體需求亦增加。訓練過程變得緩慢並且計算代價昂貴。稀疏化超參數化的DNN係在推理時間期間用於減少計算及記憶體佔用的常用技術。然而,稀疏訓練仍然具有挑戰性。
藉由移除一些、大部分或所有層中每個張量的50%、75%、87.5%或更多,可相應地減少記憶體存取及計算的總量。非結構化稀疏性技術可以允許高精度,但用硬體來加速具有挑戰性並且基本上限於經硬編碼以使用稀疏性操作的系統。其他系統只會假設密集訓練。
因此,為了有效地降低訓練的端對端成本,稀疏性應當遵循某一模式。例如,適當地部署平衡的細粒度稀疏性可提供漸進地接近非結構化稀疏性的準確性的準確性及效能。在平衡的細粒度稀疏性中,權重或其他參數的單個MxM區塊經約束為使每行及/或列中的M中至多N個參數係非零的。所有其他參數經掩蔽為0。藉由以此方式約束稀疏性模式,即使對於不固有地使用稀疏性的系統,可以更有效地實施硬體以獲益於計算稀疏性。
一個挑戰係權重矩陣必須在反向傳播期間轉置。當轉置權重矩陣時,不再保持M中N列約束,並且所得稀疏性模式係不規則的。創建滿足常見的M中N約束的可轉置遮罩係計算上非常困難的問題。對於每輪訓練執行此等計算可因此顯著減慢效能,而不增加所得的經訓練網路的效能。
此實施方式描述了用於平衡的稀疏訓練的系統及方法,並且特定而言,用於利用稀疏性來加速訓練階段的方法。在訓練期間,平衡稀疏性可以應用於網路的各個部分,包括應用於權重、啟動、梯度及/或錯誤張量。在第一組實例中,產生可以在前向及反向通路期間使用的遮罩。換言之,遮罩對原始張量矩陣及轉置的張量矩陣兩者起作用。在第二組實例中,丟棄用於前向通路的遮罩,並且動態地產生用於反向通路的新遮罩。藉由選擇在推理期間、或在推理及反向傳播期間僅使用稀疏權重來實現對平衡速度及準確性的額外調節,該等稀疏權重具有稀疏或完全密集錯誤及啟動張量。
在每個實例中,訓練可以完全在一個稀疏性設置下執行,或在一組逐漸減少的稀疏性階段中執行。在一些實例中,網路可以經直接訓練用於稀疏推理,及/或在稀疏訓練結束時精細調諧為完全密集網路。每種途徑發生的訓練成本顯著低於完全密集訓練,而靈活的約束允許密集訓練的近似。
第1圖圖示了用於訓練神經網路102的示例系統100。在此實例中,訓練資料104用於訓練神經網路102的參數,諸如神經網路102的權重及/或梯度。可在多個迭代中處理訓練資料104以到達模型參數的最終經訓練集合。
神經網路102包括輸入層110、一或多個隱藏層112、及輸出層114。每個層包括複數個節點120。訓練管理器122可將訓練資料104提供到神經網路102的輸入層110。在一些實例中,訓練資料104可分為微批次及/或碎片,用於分佈到輸入的子集。訓練管理器122可包括一或多個網路可存取計算裝置,該等計算裝置可程式設計為提供負責管理用於訓練工作的資源的服務。訓練管理器122可進一步將關於訓練過程的資訊及指令提供到每個節點120。
在此實例中,在前向處理、或推理(125)期間,模型的節點120接收輸入層110上的輸入值並且在輸出層114上產生輸出結果。在訓練期間,資料在反向傳播(127)期間在逆向方向上流動,其中在輸出處決定在網路結果與預期結果之間的錯誤並且權重從輸出層114流動到輸入層110逐層更新。
每個節點120可包括經配置為管理一或多個工人132的一或多個代理130。大體上,每個節點120含有多個工人132,並且代理130可監視多個工人。每個節點可進一步含有多個代理130。節點120可使用中央處理單元(central processing unit; CPU)、GPU、CPU及GPU的組合、或任何CPU、GPU、ASIC、及/或其他電腦可程式設計硬體的組合來實施。在共用節點120內的代理130及工人132可共享某些資源,諸如一或多個局部網路、儲存子系統、局部服務等。
每個代理130可包括代理處理單元134、訓練過程136、及代理記憶體138。每個工人132可包括工人處理單元142及工人記憶體144。大體上,將代理處理單元134描述為利用CPU實施,而工人處理單元142利用GPU實施。然而,其他配置係可能的。例如,一些或所有態樣可額外或替代地在雲端計算環境中實施。雲端計算環境可包括用於實現對可配置計算資源的共享池的按需網路存取的模型。可以經由虛擬化快速地提供可配置計算資源的此種共享池,隨後相應地縮放。雲端計算模型可以由各種特性組成,諸如,例如,按需自服務、廣泛網路存取、資源池化、快速彈性、量測服務等等。
深度學習模型(或「網路」)包含一起實施複雜非線性函數的可參數化層(或「運算子」)的圖形。網路可經由訓練資料集來訓練,該訓練資料集包含輸入實例(x)及輸出(y)的對。期望輸出係藉由權重(w)參數化的學習函數,使得給定輸入(x)的情況下,預測f(x;w)接近(y)。
應用函數f(x;w)藉由逐層轉換輸入(x)以產生輸出來執行-此過程稱為推理。在訓練設置中,此稱為前向通路。提供網路以解決具體任務包括兩個階段-設計網路結構並且訓練網路的權重。網路結構一經設計則大體在訓練過程期間不改變。
訓練迭代開始於前向通路,此與推理類似但其中儲存每個層的輸入。前向通路的結果f(x;w)的品質使用損失函數
評估以估計預測的準確性。以下反向通路在逆向方向上從最後層傳播損失(例如,錯誤)。在每個參數(例如,可學習)層處,反向通路使用前向操作的伴隨來計算梯度
並且使用學習規則更新參數、或權重來減小
。此過程針對數個實例迭代地重複,直到函數f(x;w)提供期望的精度。
作為一實例,第2圖示意性圖示了多層神經網路200,包括輸入層(x
0) 202、兩個隱藏層(x
1) 204及(x
2) 206、及輸出層(x
3) 208。在此實例中,輸入層202包括5個神經元(210、211、212、213、214),第一隱藏層204包括3個神經元(220、221、222),第二隱藏層206包括4個神經元(230、231、232、233),並且輸出層208包括3個神經元(241、242、243)。
神經網路200包括啟動函數,諸如整流線性單元(未圖示)。神經網路200可藉由權重矩陣w
1250、w
2251、及w
3252以及偏置向量(未圖示)來參數化。每個權重矩陣包括在兩個相鄰層之間的每個連接的權重。前向通路可包括一系列矩陣-向量乘積f(x0;w),其中x
0係輸入或特徵向量。
諸如網路200的深度神經網路的大小快速地超出了硬體快速儲存及訓練其等的能力。可應用稀疏性以在藉由從基礎拓撲修剪邊緣進行訓練之前、期間、及之後減小網路參數的數量。第3圖圖示了網路200的稀疏版本300,包含隱藏層輸入層(x
0') 302、隱藏層(x
1') 304及(x
2') 306、以及輸出層(x
3') 308。在此實例中,第三輸入特徵212及所有其相鄰權重從輸入層(x
0') 302移除(虛線)。此外,分別從隱藏層(x
1') 304及(x
2') 306移除隱藏神經元222及232以及其權重。已經從稀疏版本300移除各個其他權重,從而產生權重矩陣(w
1') 350、(w
2') 351、及(w
3') 352。以此方式移除神經元或輸入特徵對應於移除層權重矩陣中的列或行。移除獨立權重對應於移除權重矩陣的獨立元素。可引起或自然地產生稀疏性,並且稀疏性可應用於其他張量及矩陣,諸如用於啟動、錯誤、偏置等的矩陣。
對於啟動,關閉節點的啟動基本上產生零輸出。應用於啟動的稀疏性工作原理相同,例如,較高幅度的啟動對網路具有較高的價值並且被保留。在一些實例中,啟動天然地接近稀疏性,因此可添加真實的稀疏性而具有適度的影響。
使權重矩陣、或其他矩陣或張量稀疏化有效地降低了利用彼矩陣的矩陣乘法事件的複雜性。矩陣乘法的速度與矩陣的稀疏性直接相關。為了獲得某一位準的效率,並且因此獲得處理速度的增加,稀疏性可分佈在matmul的兩個輸入之間。將75%稀疏性應用於第一矩陣並且將0%稀疏性應用於第二矩陣將該過程加速到4X的數量級。用於實現4X速度增加的另一方式係藉由將50%的稀疏性應用於第一矩陣並且將50%的稀疏性應用於第二矩陣。因此,平衡可以藉由在權重與啟動之間、在錯誤與啟動之間分佈稀疏性、或將稀疏性分佈到matmul操作中的任何兩個輸入矩陣來進行。在訓練期間可使用正則化及增強技術用於跨不同區塊分佈資訊。
例如,在第4圖中,圖示了將變得稀疏的8x8權重矩陣的熱圖410。較淺的陰影區塊表示較高值。可應用簡單的高通濾波器以採用最高值來形成稀疏矩陣420。然而,使用像此類簡單濾波留下不平衡的列及行。因此,在有效地降低任何後續矩陣乘法的複雜度的同時,到達稀疏性的更精細的途徑可甚至更簡化矩陣,從而允許更有針對性的矩陣壓縮。
壓縮的矩陣及/或高度量化的值可如此儲存在記憶體中,隨後當擷取及解包時膨脹,例如,用於注入到數位信號處理器中用於計算。例如,啟動稀疏性可用於在訓練期間的啟動暫存及改進記憶體儲存及頻寬。高於通常使用的學習速率可潛在地用於改進在存在啟動及/或梯度稀疏性時的模型收斂。
對於非結構化稀疏性,遮罩具有幾個約束,並且可以基本上以任何隨機模式來配置。在第5圖中,遮罩510係非結構化稀疏性的實例。每個黑色方塊將基礎值掩蔽為0。每個白色方塊允許基礎值為非零的。網格軸上的數字係或列行的計數,例如,在彼維度中存在多少非零值。例如,遮罩510的最頂列具有一個白色方塊(非零值)並且來自遮罩510左邊的第二行具有兩個白色方塊(非零值)。本揭示全文中使用此約定。
通常在訓練網路之後應用非結構化稀疏性,但在一些情況下亦可以在訓練期間應用。非結構化稀疏性係稀疏性的最低約束形式,但其固有的隨機性使得難以在硬體位準上加速。
對平衡稀疏性的最常見約束係M中N約束。其中對於具有M值的行或列,僅N(N<M)可以係非零的。例如,遮罩520係具有值N=1的平衡稀疏性的實例。遮罩520的每列具有一個白色方塊(非零值)。遮罩520的行從0至2個非零值變化。
因此,平衡的稀疏性與非結構化稀疏性相比更受約束,但用硬體加速更容易,因為硬體可以預期從每一個約束的列或行期望什麼。已知的約束可以預加載到硬體中。用於應用平衡稀疏性的最佳配置可係基於人工智慧應用的複雜性及基礎硬體的特性。平衡稀疏性本身不限制在收斂之後權重的小世界性質。
在本文中,大多數實例可被認為係平衡的隨機細粒度稀疏性。在此上下文中,細粒度意味著張量的僅一部分係稀疏的,而平衡意味著所有區塊(例如,列、行)具有相同的稀疏性位準,但在每個區塊內模式係隨機的。此與非結構化稀疏性相反,其中每個稀疏性區塊的大小等於張量的大小。由於可以更靈活地表示不同的配置,隨著區塊大小增加,保真度亦增加。至少從表示的觀點來看,應用具有足夠大的區塊大小的平衡稀疏性有效地接近非結構化稀疏性。然而,隨著區塊大小增加超過閾值,回報減小。因此,平衡的隨機細粒度稀疏性表示在硬體實施方式成本及精度之間建立良好平衡的機會。
另外,平衡稀疏性可縮放到不同的稀疏性位準。作為一實例,第6圖圖示了大小M=8x8的平衡稀疏性遮罩。遮罩600沿著列具有1中N,從而產生具有87.5%稀疏性的遮罩。遮罩610沿著列具有2中N,從而產生具有75%稀疏性的遮罩。遮罩620沿著列具有3中N,從而產生具有50%稀疏性的遮罩。遮罩630沿著列具有4中N,從而產生具有50%稀疏性的遮罩。平衡稀疏性可以應用於權重、啟動、錯誤、及梯度並且亦可經由選擇哪些張量來稀疏化對訓練具有可縮放的影響。
然而,由於權重必須在反向傳播期間轉置,因此稀疏性遮罩必須考慮此轉置。然而,甚至對於簡單的2維矩陣,諸如在第5圖及第6圖中描繪的彼等,發現可轉置的2維約束係具有挑戰性的。第7圖圖示了M中N(4中1個)稀疏性遮罩710及其相關聯的轉置遮罩720。甚至在此適度實例中,轉置遮罩720的列約束不再係平衡的,遮罩710中的列同樣如此。
快速解決轉置矩陣的不平衡稀疏性的一種途徑係應用雙M中N個約束。在第8圖所示的實例中,推導兩個M中N遮罩,一個係目標矩陣且一個係其轉置,從而產生在列維度中具有M中N稀疏性的一個遮罩、及在行維度上具有M中N稀疏性的第二遮罩。隨後組合兩個推導的遮罩,產生遮罩將在列及行維度中具有小於或等於M中N個非零參數,從而使遮罩可轉置,並且在推理及反向傳播期間使稀疏性能夠應用於每個層中的權重矩陣。
第8圖圖示了用於訓練神經網路的示例方法800。可由一或多個計算系統執行方法800,系統諸如系統100及/或200。更具體地,方法800可藉由與複數個節點通訊的訓練管理器執行,諸如訓練管理器122,該等節點可以經配置為訓練機器學習模型。實施此種方法的技術效應係計算資源使用的改進。
於810,方法800包括,對於在第一維度上具有整數維度J並且在第二維度上具有整數維度K的權重矩陣,將權重矩陣再成形為在第一維度上具有整數維度M並且在第二維度上具有整數維度M的一或多個方形權重矩陣。若J已經等於K,則可能不需要再成形權重矩陣以執行逐元素乘法。在一些實例中,為了在權重矩陣中維持所有值,可產生具有維度MxM、M'xM'等的兩個或兩個以上方塊矩陣。
可隨後個別地處理每個所得的MxM方形權重矩陣。對於每個方形權重矩陣,於820,方法800包括產生在第一維度中為M中N遮罩的第一平衡稀疏性遮罩。於830,方法800包括產生在第二維度上為M中N遮罩的第二平衡稀疏性遮罩,用於權重矩陣的轉置。在一些實例中,至少基於top-K函數產生第一平衡稀疏性遮罩及第二平衡稀疏性遮罩。
例如,在第9圖中,圖示了將變得稀疏的原始方形權重矩陣的熱圖900。較淺的陰影區塊表示較高值。對於第一稀疏性矩陣910,採取最高值來形成目標矩陣。換言之,遮罩的濾波器孔對應於原始區塊中的值的絕對量值。隨後,從第一稀疏性矩陣910的轉置920推導M中N遮罩。
於840,方法800包括組合第一平衡稀疏性遮罩及第二平衡稀疏性遮罩以產生第三稀疏性遮罩。例如,組合第一稀疏性遮罩及第二稀疏性遮罩以產生第三稀疏性遮罩可包括使用逐元素布耳(Boolean) AND運算組合第一稀疏性遮罩及第二稀疏性遮罩。
如第9圖所示,組合矩陣910及920以產生矩陣930。例如,可使用布耳AND函數組合矩陣。矩陣930可因此以任一方式轉置,並且在任一轉置中至多具有M中N約束。由於僅轉置而不更改遮罩,其可以在前向通路期間獨立地快取,並且重新使用或應用於權重矩陣以創建亦可以快取的最終稀疏權重矩陣。在反向傳播期間,可以直接使用快取的遮罩/權重而不需要重新計算新遮罩。
使用線性解算器或貪心演算法來尋找可轉置M中N遮罩的其他技術固有地緩慢,當經由較寬鬆約束及較大區塊大小來接近非結構化稀疏性時,線性解算器或貪心演算法以指數速度變慢。在此等實例中,方法可以利用基本的top-K分類,其對於適度大小的矩陣很好地縮放。在決定此種可轉置遮罩時獲得的速度的折衷係有時遮罩最終填充不足。此種遮罩可具有少於最大允許數量的非零值。在原始遮罩及轉置遮罩不同的情況下,可能犧牲數值,並且可能丟失潛在有影響的權重。
因此,在一些實例中,方法800可進一步包括為第三稀疏性遮罩設置期望的輸出稀疏性,並且產生稀疏性大於期望輸出稀疏性的第一及第二平衡稀疏性遮罩。例如,期望的輸出稀疏性可設置於50%。第一及第二平衡稀疏性遮罩可能會以70%或75%稀疏性超配。可執行額外top-K函數以獲得超配遮罩。因此,操作者可平衡任何額外的硬體複雜性的成本與期望的準確性增加。例如,其中在每次迭代時應用此種濾波,計算遮罩的簡單性抵消了準確性的任何損失,尤其與需要計算多階梯度或可能採取多個迭代來推導最有效遮罩的途徑相比。
於850,方法800包括在推理期間將第三稀疏性遮罩應用於方形權重矩陣。於850,方法800包括在反向傳播期間將第三稀疏性遮罩的轉置應用於方形權重矩陣的轉置。另外,方法800可包括在反向傳播期間將M中N稀疏性應用於啟動張量及錯誤張量中的一或多個。此確保反向傳播係完全計算稀疏的。取決於系統參數、模態、及資料集性質,稀疏性可能應用於任一矩陣。當權重矩陣用於前向及反向傳播並且因此必須轉置時,啟動不需要轉置,並且錯誤資訊特定於反向通路。
稀疏訓練亦可以非結構化方式使用,從而與結構化稀疏訓練相比改進訓練保真度。可減少在訓練期間需要的記憶體使用及計算資源。然而,為了做到這一點,相關聯的硬體必須極其專業,此使得難以在相同硬體上支援非稀疏訓練。
與非結構化稀疏性相比,M中N稀疏性在記憶體存取及計算方面更容易加速。然而,產生可轉置遮罩可對權重、錯誤、及/或啟動矩陣應用額外約束。此可進一步降低訓練效能。
第10圖圖示了用於訓練神經網路的示例方法1000,若不考慮轉置的平衡約束,則該方法使得結構化稀疏訓練能夠匹配M中N稀疏性的效能。此種途徑可保持可用於非稀疏的特定加速器設計。此種途徑可被稱為動態掩蔽。動態掩蔽移除對權重遮罩的轉置性約束,使結構化的稀疏訓練與非結構化稀疏訓練相比更具競爭力。為動態稀疏性產生遮罩亦可比使用線性程式設計迭代地創建完美最佳化的可轉置遮罩快多達一千倍或更多。與現有的稀疏訓練方法論(諸如,可轉置遮罩)相比,此增加訓練的保真度,同時仍在反向傳播期間係計算上稀疏的,並且沒有增加為每個通路或通路集合產生複雜遮罩的計算費用。
方法1000可藉由一或多個計算系統執行,諸如系統100及/或200。更具體地,方法1000可藉由與複數個節點通訊的訓練管理器(諸如訓練管理器122)執行,該等節點可以經配置為訓練機器學習模型。實施此種方法的技術效應係計算資源使用的改進。
於1010,方法1000包括,對於在第一維度上具有整數維度M
1並且在第二維度上具有整數維度M
2的權重矩陣,產生在第一維度上為M
1中N
1遮罩的第一平衡稀疏性遮罩。例如,在第11圖中,圖示了將變得稀疏的原始權重矩陣1100的熱圖。應用M
1中N
1遮罩(其中沿著列N
1=1並且M
1=4)以產生稀疏權重矩陣1120。
返回到第10圖,於1020,方法1000包括在推理期間將第一平衡稀疏性遮罩應用於權重矩陣。在前向通路期間產生的遮罩可簡單地係標準的M中N遮罩,但其未被快取。替代地,在反向傳播期間,使用轉置的權重矩陣創建並且應用新的M中N遮罩,從而產生逐列的M中N稀疏矩陣。此矩陣將具有準確的M中N個非零參數。
於1030,方法1000包括產生第二平衡稀疏性遮罩用於權重矩陣的轉置,第二平衡稀疏性遮罩在第二維度中為M
2中N
2遮罩。例如,在第12圖中,圖示了權重矩陣1200的熱圖,該權重矩陣係權重矩陣1100的轉置。應用M
2中N
2遮罩(其中沿著列N=1並且M=4)以產生稀疏權重矩陣1220。
在一些實例中,權重矩陣將經配置為使得M
1=M
2。在一些實例中,第一平衡稀疏性遮罩及第二平衡稀疏性遮罩可為N
1及N
2使用相同的整數值。換言之,用於列選擇的與第一平衡稀疏性遮罩相同的原理及參數應用於第二平衡稀疏性遮罩。在一些實例中,可至少基於top-K函數產生第一平衡稀疏性遮罩及第二平衡稀疏性遮罩。在一些實例中,第二平衡稀疏性遮罩可係第一平衡稀疏性遮罩的轉置。
於1040,方法1000包括在反向傳播期間將第二平衡稀疏性遮罩應用於方形權重矩陣的轉置。換言之,第二平衡稀疏性遮罩可用於在反向傳播期間執行梯度計算。因此,不需要使用可轉置稀疏性的有損近似。
以此方式執行掩蔽不一定表示梯度的直通估計。例如,一些有影響的權重可係在推理期間未使用的錯誤傳遞,以及反之亦然。然而,與使用不能在硬體位準下加速的不平衡掩蔽方案相比,發生的任何錯誤對訓練準確性或損失具有邊際影響。動態掩蔽可顯著增加稀疏矩陣與原始的密集矩陣的保真度,從而與使用來自前向通路的技術上正確但不平衡的轉置矩陣相反,導致對訓練的邊際影響。
由於稀疏性本身係密集訓練的近似,額外近似可能不會顯著影響訓練。特定而言,在訓練的初始階段期間,模型正在執行更多的探索性操作,以更粗的粒度工作。因此,少量的雜訊由已經發生的量化抑制。稀疏性可以用在量化之上以渦輪增壓壓縮方案。因此,稀疏性可以不僅改進計算利用率,亦改進記憶體儲存/頻寬、及通訊。
在訓練結束時,添加雜訊或稀疏性可以導致模型在有前景的子空間中從局部最小值漂移。因此,可更多的識別添加了多少雜訊及稀疏性。在訓練開始時維持速度及計算資源的選擇係執行稀疏階梯訓練,其中精確度不那麼關鍵,但改進了對稍後訓練階段的準確性。
在本文描述的用於稀疏訓練的系統及方法的任一者中,稀疏階梯訓練可用於加速訓練及降低訓練的成本,而不影響所得的經訓練模型的準確性。稀疏階梯訓練可在訓練期間適當時根據訓練目標的需要逐漸減小、增加或循環稀疏性。例如,在訓練開始時,當網路正在探索並且可以用相對高的稀疏性來訓練時,因此實現速度增加而不影響最終效能位準。如果並且當高稀疏性影響效能時,例如,訓練減慢,則可以在訓練期間減小稀疏性。
稀疏階梯訓練可藉由利用損失在開始訓練時下降得多快來產生超過標準密集訓練的增加的效率。由於網路隨機初始化,因此初始進程在學習的早期階段非常快,而與網路的實際容量無關。隨著訓練繼續,網路開始填充其容量,並且更慢地學習進程。在初始快速學習階段期間,高稀疏性位準可以用於加速訓練,而不顯著影響損失。隨著網路達到其容量,可減小稀疏性小,因此增加容量,並且進一步改進模型損失。可重複此程序,直到網路執行為完全密集網路,同時使用與完全密集訓練相比少得多的計算。
第13圖圖示了用於稀疏階梯訓練的示例方法1300。方法1300可由一或多個計算系統,諸如系統100及/或200來執行。更具體地,方法1300可藉由與複數個節點通訊的訓練管理器執行,諸如訓練管理器122,該等節點可以經配置為訓練機器學習模型。實施此種方法的技術效應係計算資源使用的改進。
於1310,方法1300包括在複數個順序階段上執行訓練,每個階段包括複數個輪次,並且其中最初使用初始稀疏性位準執行第一階段訓練。作為一個實例,早期訓練階段可藉由使用高稀疏性位準(例如,87.5%、75%)用於權重及/或用於啟動及錯誤張量中的一者或兩者來加速。稀疏性位準及經選擇為稀疏的張量可被認為係可調諧的超參數,該等超參數可以經調節為實現在交易訓練速度與訓練準確性之間的平衡。
作為一個實例,第14圖圖示了用於執行稀疏階梯訓練的假設時序圖1400。時序圖1400包括曲線1402及曲線1404,曲線1402指示複數個連續訓練輪次上的稀疏性位準,而曲線1404指示複數個連續訓練輪次上的梯度雜訊(歸一化為任意單位)。梯度雜訊的增加與訓練效能的降低相關。於時間t
0,訓練在第一階段1405中以87.5%的稀疏性位準執行。
返回到第13圖,於1320,方法1300包括決定在每個輪次之後的訓練效能的度量。可基於梯度雜訊的閾值改變來切換稀疏性位準,該梯度雜訊係可藉由稀疏性顯著且成比例地影響的統計量。閾值改變可係與具體模型類型的已知基線的偏差。此種增加可對應於與代表性基線相比表現更差的訓練,並且因此將獲益於切換到較低稀疏性位準。因此,可在網路的一或多個層處設置梯度雜訊的最大允許閾值。因此,可以由此動態地切換稀疏性程度,以便與密集基線相比維持期望的訓練效能。額外或替代地,隨著訓練進行,損失的改變率將潛在地降低(例如,變平)到閾值0內,並且可用作切換稀疏性位準的指示符。
在一些實例中,可在初始訓練之前選擇階梯排程,其中稀疏性位準的切換以自動排程間隔執行,例如,在預定數量的迭代結束時。可基於對不同大小的稀疏網路的幂律的分析來決定此種排程,使得基於在網路效能與容量之間的折衷以及因此稀疏訓練可以多好地恢復完全密集訓練的效能來實施不同稀疏性位準。藉由注意到稀疏訓練與密集網路相比更改了幂律(諸如用於訓練效率的幂律)的地方,可以建立最佳化所需的稀疏性及總計算的階梯排程。
返回到第13圖,於1330,方法1300包括,回應於訓練效能降低到第一閾值以下的度量,藉由將初始稀疏性位準調節到降低的稀疏性位準來將訓練進行到第二階段。作為一實例,在訓練過程的中途可將稀疏性位準從75%降低到50%(例如,M中N增加),並且訓練重新開始。隨著稀疏性降低,網路容量更高,並且損失可能開始再次下降。
例如,如第14圖所示,於時間t
1,梯度雜訊增加到第一閾值1407。因此,訓練進入第二階段1410並且稀疏性位準從87.5%降低到75%。建立新的梯度雜訊閾值1412用於量測第二階段1410中的訓練效能。
返回到第13圖,於1340,方法1300包括,回應於訓練效能降低到第二閾值以下的度量,藉由將降低的稀疏性位準調節到進一步降低的稀疏性位準來將訓練進行到第三階段。
例如,如第14圖所示,於時間t
2,梯度雜訊增加到第二閾值1412。因此,訓練進入第三階段1415並且稀疏性位準從75%降低到50%。建立新的梯度雜訊閾值1417用於量測第三階段1415中的訓練效能。可建立任何數量的階段及閾值。在一些實例中,如第14圖所示,可應用靜態閾值,而非可調節閾值。如圖所示,於時間t
3,梯度雜訊增加到第三閾值1417。因此,訓練進入第四階段1420並且稀疏性位準從50%降低到25%。建立新的梯度雜訊閾值1422,用於量測第四階段1420中的訓練效能。
返回到第13圖,於1350,方法1300視情況包括,回應於訓練效能降低到最終閾值以下的度量,藉由將進一步降低的稀疏性位準調節到完全密集位準來將訓練進行到最終階段。若期望完全密集效能,則可以使用小的完全密集精細調諧來恢復網路的完全準確性。在一些實例中,諸如對於非常大的網路或其中已經應用了較低稀疏性位準的情況,不需要密集精細調諧的階段,並且稀疏效能合理地接近密集效能。如第14圖所示,於時間t
4,梯度雜訊增加到第四閾值1422。因此,訓練進入第五階段1425並且稀疏性位準從25%降低到0%。藉由以此方式調節稀疏性,訓練的準確性在使用較不稀疏矩陣的每個階段處逐漸恢復,藉由使用較高稀疏性位準來降低早期階段計算位準。
階梯可應用於一或多個通路,例如,僅反向傳播通路。例如,反向通路可能比推理明顯更易受稀疏性影響。在一個實例中,網路可在前向及反向通路兩者中以75%的稀疏性初始訓練。隨後,獨立於前向通路,可以逐步減小反向通路的稀疏性。以此方式,訓練效能在損失方面得以改進,但不需要前向通路亦在較低稀疏性位準下緩慢運行。此可允許在單個迭代中訓練稀疏網路,而不需要單獨的密集精細調諧步驟來恢復歸因於稀疏性導致的準確性損失。
權重大體易於稀疏化,並且例如,與錯誤項及反向傳播相比,啟動可能對稀疏性不太敏感。另外,取決於模型正準備用於哪個平台,不同參數及方向可以不同的程度稀疏化。在模型經訓練為以稀疏設置執行推理的情況下,可能期望僅在反向通路上執行稀疏階梯訓練(例如,錯誤項、梯度項、啟動),同時將前向通路維持在固定的稀疏性程度。因此,一旦完成訓練,模型可以稀疏配置實施。若將模型訓練為執行密集推理,稀疏階梯訓練可應用於反向通路及前向通路兩者以增加所有位準下的準確性。
特定而言,藉由實施稀疏階梯訓練,在計算及記憶體方面實現了時間節省。例如,在75%的稀疏性下,取決於硬體設計,完成訓練步驟的速度可能比完全密集訓練中的等效步驟快四倍。藉由以較低稀疏性階梯化,可以在縮短的總時間段中達到基線效能位準。
本文描述的用於稀疏訓練的實施方式具有降低機器學習模型的訓練及開發中的計算成本的技術效應,藉此降低消費者獲得此種模型的成本。已經用稀疏性訓練的稀疏神經網路可以直接用於稀疏推理,此通常係滿足時延及成本目標所需的,而無需任何額外的精細調諧階段。
可使最終使用者能夠控制在推理期間稀疏性的程度。取決於用於實施經訓練模型的目標硬體平台、網路、或系統,可在訓練的前向通路期間相應地調節訓練約束。可以稀疏化啟動及錯誤項而不考慮轉置。因此,與密集訓練相比,可以基於速度與保真度的折衷來設置彼等項的稀疏性位準。此途徑的技術效應係可以在沒有昂貴、耗時、密集的訓練程序的情況下獲得的可定製程度更高的軟體封裝。
在一些實施例中,本文描述的方法及製程可涉及一或多個計算裝置的計算系統。特定而言,可將此種方法及製程實施為電腦應用程式或服務、應用程式設計介面(application-programming interface; API)、程式庫、及/或其他電腦程式產品。
第15圖示意性圖示可以執行本文描述的方法及製程中的一或多者的計算系統1500的非限制性實施例。計算系統1500以簡化形式圖示。計算系統1500可採取一或多個個人電腦、伺服器電腦、平板電腦、家庭娛樂電腦、網路計算裝置、遊戲裝置、行動計算裝置、行動通訊裝置(例如,智慧電話)、及/或其他計算裝置的形式。系統100、200、及300可係計算系統1500的實例。
計算系統1500包括邏輯機器1510及儲存機器1520。計算系統1500可視情況包括顯示子系統1530、輸入子系統1540、通訊子系統1550、及/或在第15圖中未圖示的其他部件。
邏輯機器1510包括經配置為執行指令的一或多個實體裝置。例如,邏輯機器可經配置為執行指令,該等指令係一或多個應用、服務、程式、常式、程式庫、物件、部件、資料結構、或其他邏輯構造的部分。可實施此種指令以執行任務、實施資料類型、轉換一或多個部件的狀態、實現技術效應、或以其他方式達成期望結果。
邏輯機器可包括經配置為執行軟體指令的一或多個處理器。額外或替代地,邏輯機器可包括經配置為執行硬體或韌體指令的一或多個硬體或韌體邏輯機器。邏輯機器的處理器可係單核或多核的,並且其上執行的指令可經配置為用於連續、平行、及/或分散式處理。邏輯機器的獨立部件視情況可在兩個或多個分離裝置之中分佈,該等裝置可遠端定位及/或經配置為用於協調處理。邏輯機器的態樣可經虛擬化並且藉由遠端可存取的聯網計算裝置執行,該等計算裝置以雲端計算配置來配置。
除了一或多個GPU 1554之外,邏輯子系統可包括一或多個CPU 1552,並且一或多個CPU 1552可經配置為將可執行指令及/或資料發送到一或多個GPU 1554。回應於藉由一或多個GPU 1554處理指令及/或資料,CPU 1552可從一或多個GPU 1554接收結果資料。以此方式,邏輯子系統可經由GPU並行地執行大量的計算。特定而言,邏輯子系統可有效地執行第8圖的方法800、第10圖的方法1000、及第13圖的方法1300。
本揭示係關於GPU作為良好適用於分散式學習過程的計算裝置,因為GPU經配置為並行地執行相同程式(例如,GPU核心)的非常大量的多次重複實例,其中程式的每個實例接收不同輸入資料並且在不同輸入資料上工作。然而,將理解,邏輯子系統的其他態樣可經配置為提供相同或類似益處。因此,將理解,GPU的任何論述亦適用於其他適宜的計算部件,並且本揭示不以任何方式限於執行方法800、1000、1300,或在GPU上訓練機器學習模型的任何其他態樣,來排除其他適宜的計算裝置。
儲存機器1520包括經配置為保存可藉由邏輯機器執行的指令以實施本文描述的方法及製程的一或多個實體裝置。當實施此種方法及製程時,可轉換儲存機器1520的狀態,例如,用於保存不同資料。
儲存機器1520可包括可移除及/或內置裝置。儲存機器1520可包括光學記憶體(例如,CD、DVD、HD-DVD、藍光光碟等等)、半導體記憶體(例如,RAM、EPROM、EEPROM等等)、及/或磁性記憶體(例如,硬碟驅動、軟碟驅動、磁帶驅動、MRAM等等)等。儲存機器1520可包括揮發性、非揮發性、動態、靜態、讀取/寫入、唯讀、隨機存取、順序存取、位置可定址、文件可定址、及/或內容可定址裝置。
將瞭解,儲存機器1520包括一或多個實體裝置。然而,本文描述的指令的態樣替代地可藉由通訊媒體(例如,電磁信號、光學信號等等)傳播,該通訊媒體不藉由實體裝置保存達有限持續時間。
邏輯機器1510及儲存機器1520的態樣可一起整合到一或多個硬體邏輯部件中。例如,此種硬體邏輯部件可包括現場可程式設計閘陣列(field-programmable gate array; FPGA)、程式及特殊應用積體電路(program- and application-specific integrated circuit; PASIC/ASIC)、程式及特殊應用標準產品(program- and application-specific standard product; PSSP/ASSP)、晶片上系統(system-on-a-chip; SOC)、及複雜可程式設計邏輯裝置(complex programmable logic device; CPLD)。
術語「模組」、「程式」及「引擎」可用於描述經實施以執行特定功能的計算系統1500的態樣。在一些情況下,模組、程式、或引擎可經由邏輯機器1510實例化,該邏輯機器執行藉由儲存機器1520保存的指令。將理解,不同模組、程式、及/或引擎可從相同的應用、服務、代碼區塊、物件、程式庫、常式、API、功能等實例化。同樣,相同模組、程式、及/或引擎可藉由不同應用、服務、代碼區塊、物件、常式、API、功能等實例化。術語「模組」、「程式」、及「引擎」可涵蓋獨立或成組的可執行檔、資料檔、程式庫、驅動程式、腳本、資料庫記錄等。
將瞭解,如本文使用,「服務」係跨多個使用者通信期可執行的應用程式。服務可應用於一或多個系統部件、程式、及/或其他服務。在一些實施方式中,服務可在一或多個伺服器-計算裝置上運行。
當包括在內時,顯示子系統1530可用於表示藉由儲存機器1520保存的資料的視覺表示。此視覺表示可採取圖形使用者介面(graphical user interface; GUI)的形式。由於本文描述的方法及製程改變藉由儲存機器保存的資料,並且因此轉換儲存機器的狀態,可同樣轉換顯示子系統1530的狀態以視覺表示基礎資料的改變。顯示子系統1530可包括虛擬地利用任何類型技術的一或多個顯示裝置。此種顯示裝置可與共享外殼中的邏輯機器1510及/或儲存機器1520結合,或此種顯示裝置可係周邊顯示裝置。
當包括在內時,輸入子系統1540可包含一或多個使用者輸入裝置或與一或多個使用者輸入裝置介接,該等使用者輸入裝置諸如鍵盤、滑鼠、觸控式螢幕、或遊戲控制器。在一些實施例中,輸入子系統可包含所選的自然使用者輸入(natural user input; NUI)部件或與所選的自然使用者輸入(NUI)部件介接。此種部件可係整合或周邊的,並且輸入動作的轉換及/或處理可在板上或板外處理。示例NUI部件可包括:用於語音及/或音訊識別的麥克風;用於機器視覺及/或姿勢識別的紅外、彩色、立體、及/或深度照相機;用於運動偵測及/或意圖識別的頭部跟蹤器、眼部跟蹤器、加速度計、及/或陀螺儀;以及用於評估大腦活動的電場感測部件。
當包括在內時,通訊子系統1550可經配置為將計算系統1500與一或多個其他計算裝置通訊地耦合。通訊子系統1550可包括與一或多個不同通訊協定相容的有線及/或無線通訊裝置。作為非限制性實例,通訊子系統可經配置為用於經由無線電話網路、或有線或無線區域或廣域網路的通訊。在一些實施例中,通訊子系統可允許計算系統1500經由網路(諸如網際網路)將訊息發送至其他裝置及/或從其他裝置接收訊息。
在一個實例中,一種用於訓練操作神經網路的方法包含:對於在第一維度中具有整數維度M
1並且在第二維度中具有整數維度M
2的權重矩陣,產生在第一維度中為M
1中N
1遮罩的第一平衡稀疏性遮罩;在推理期間將第一平衡稀疏性遮罩應用於權重矩陣;產生第二平衡稀疏性遮罩,用於權重矩陣的轉置,第二平衡稀疏性遮罩在第二維度中為M
2中N
2遮罩;以及在反向傳播期間將第二平衡稀疏性遮罩應用於權重矩陣的轉置。在此種實例、或任何其他實例中,N
1及N
2額外或替代地係相同的整數值。在先前實例、或任何其他實例的任一者中,第二平衡稀疏性遮罩額外或替代地係第一平衡稀疏性遮罩的轉置。在先前實例、或任何其他實例的任一者中,第一平衡稀疏性遮罩及第二平衡稀疏性遮罩額外或替代地係基於至少top-K函數產生的。在先前實例、或任何其他實例的任一者中,額外或替代地在複數個順序階段上執行訓練,每個階段包括複數個輪次,並且其中訓練的第一順序階段額外或替代地使用初始稀疏性位準執行。在先前實例、或任何其他實例的任一者中,方法額外或替代地包含決定在每個輪次之後的訓練效能的度量。在先前實例、或任何其他實例的任一者中,方法額外或替代地包含,回應於訓練效能降低到第一閾值以下的度量,藉由將初始稀疏性位準調節到降低的稀疏性位準來將訓練進行到第二階段。在先前實例、或任何其他實例的任一者中,方法額外或替代地包含,回應於訓練效能降低到第二閾值以下的度量,藉由將降低的稀疏性位準調節到進一步降低的稀疏性位準來將訓練進行到第三階段。實施此種方法的技術效應係計算資源使用的改進。
在另一實例中,一種用於訓練神經網路的方法包含:對於在第一維度中具有整數維度J並且在第二維度中具有整數維度K的權重矩陣,將權重矩陣再成形為在第一維度中具有整數維度M並且在第二維度中具有整數維度M的一或多個方形權重矩陣;對於每個方形權重矩陣:產生在第一維度中為M中N遮罩的第一平衡稀疏性遮罩;產生在第二維度中為M中N遮罩的第二平衡稀疏性遮罩,用於方形權重矩陣的轉置;組合第一平衡稀疏性遮罩及第二平衡稀疏性遮罩以產生第三稀疏性遮罩;在推理期間將第三稀疏性遮罩應用於方形權重矩陣;以及在反向傳播期間將第三稀疏性矩陣的轉置應用於方形權重矩陣的轉置。在此種實例、或任何其他實例中,第一平衡稀疏性遮罩及第二平衡稀疏性遮罩額外或替代地係基於至少top-K函數產生的。在先前實例、或任何其他實例的任一者中,方法額外或替代地包含為第三稀疏性遮罩設置期望的輸出稀疏性;以及產生稀疏性大於期望輸出稀疏性的第一及第二平衡稀疏性遮罩。在先前實例、或任何其他實例的任一者中,組合第一稀疏性遮罩及第二稀疏性遮罩以產生第三稀疏性遮罩額外或替代地包括使用逐元素布耳AND運算組合第一稀疏性遮罩及第二稀疏性遮罩。在先前實例、或任何其他實例的任一者中,方法額外或替代地包含在反向傳播期間將M中N稀疏性應用於啟動張量及錯誤張量中的一或多個。在先前實例、或任何其他實例的任一者中,額外或替代地在複數個順序階段上執行訓練,每個階段包括複數個輪次,並且其中第一階段訓練額外或替代地使用初始稀疏性位準執行。在先前實例、或任何其他實例的任一者中,方法額外或替代地包含決定在每個輪次之後的訓練效能的度量。在先前實例、或任何其他實例的任一者中,方法額外或替代地包含,回應於訓練效能降低到第一閾值以下的度量,藉由將初始稀疏性位準調節到降低的稀疏性位準來將訓練進行到第二階段。在先前實例、或任何其他實例的任一者中,方法額外或替代地包含,回應於訓練效能降低到第二閾值以下的度量,藉由將降低的稀疏性位準調節到進一步降低的稀疏性位準來將訓練進行到第三階段。實施此種方法的技術效應係降低在訓練及開發機器學習模型中的計算成本。
在又一實例中,一種用於操作深度神經網路的計算系統包含一或多個邏輯機器;以及一或多個儲存機器,每個儲存機器保存指令,當藉由一或多個邏輯機器執行時該等指令導致計算系統,對於在第一維度中具有整數維度M並且在第二維度中具有整數維度M的權重矩陣,產生在第一維度中為M中N遮罩的第一平衡稀疏性遮罩;在前向通路期間將第一平衡稀疏性遮罩應用於權重矩陣;產生第二平衡稀疏性遮罩,用於權重矩陣的轉置,第二平衡稀疏性遮罩在第二維度中為M中N遮罩;以及在反向通路期間將第二平衡稀疏性遮罩應用於權重矩陣的轉置。在此種實例、或任何其他實例中,第二平衡稀疏性遮罩額外或替代地係第一平衡稀疏性遮罩的轉置。在先前實例、或任何其他實例的任一者中,儲存機器額外或替代地保存指令,當藉由一或多個邏輯機器執行時該等指令導致計算系統在複數個順序階段上執行訓練,每個階段包括複數個輪次,並且其中使用初始稀疏性位準執行第一階段訓練;決定在每個輪次之後的訓練效能的度量;以及回應於訓練效能降低到第一閾值以下的度量,藉由將初始稀疏性位準調節到降低的稀疏性位準來將訓練進行到第二階段。實施此種方法的技術效應係計算資源使用的改進。
將理解,本文描述的配置及/或途徑本質上係示例性的,並且此等具體實施例或實例不認為係限制意義,因為許多變化係可能的。本文描述的具體常式或方法可表示任何數量的處理策略中的一或多者。因此,示出及/或描述的各種動作可以示出及/或描述的序列執行、以其他序列執行、並行執行、或省去。同樣,可改變上文描述的製程的次序。
本揭示的標的包括本文揭示的各種製程、系統及配置、以及其他特徵、功能、動作、及/或性質的所有新穎及非顯而易見的組合及子組合,以及其任何及全部等效物。
100:系統
102:神經網路
104:訓練資料
110:輸入層
112:隱藏層
114:輸出層
120:節點
122:訓練管理器
130:代理
132:工人
134:代理處理單元
136:訓練過程
138:代理記憶體
142:工人處理單元
144:工人記憶體
200:多層神經網路
202:輸入層
204:隱藏層
206:隱藏層
208:輸出層
210:神經元
211:神經元
212:神經元
213:神經元
214:神經元
220:神經元
221:神經元
222:神經元
230:神經元
231:神經元
232:神經元
233:神經元
241:神經元
242:神經元
250:權重矩陣
251:權重矩陣
252:權重矩陣
300:稀疏版本
302:隱藏層輸入層
304:隱藏層
306:隱藏層
308:輸出層
410:熱圖
420:稀疏矩陣
510:遮罩
520:遮罩
600:遮罩
610:遮罩
620:遮罩
630:遮罩
710:稀疏性遮罩
720:轉置遮罩
800:方法
900:熱圖
910:第一稀疏性矩陣
920:轉置
930:矩陣
1000:方法
1100:原始權重矩陣
1120:稀疏權重矩陣
1200:權重矩陣
1220:稀疏權重矩陣
1300:方法
1400:假設時序圖
1402:曲線
1404:曲線
1405:第一階段
1407:第一閾值
1410:第二階段
1412:第二閾值
1415:第三階段
1417:新的梯度雜訊閾值
1420:第四階段
1422:新的梯度雜訊閾值
1425:第五階段
1500:計算系統
1510:邏輯機器
1520:儲存機器
1530:顯示子系統
1540:輸入子系統
1550:通訊子系統
1552:CPU
1554:GPU
t
0:時間
t
1:時間
t
2:時間
t
3:時間
t
4:時間
W
1:權重矩陣
W
1':權重矩陣
W
2:權重矩陣
W
2':權重矩陣
W
3:權重矩陣
W
3':權重矩陣
X
0:輸入層
X
0':隱藏層輸入層
X
1:隱藏層
X
1':隱藏層
X
2:隱藏層
X
2':隱藏層
X
3:輸出層
X
3':輸出層
第1圖示意性圖示了用於訓練神經網路的示例系統。
第2圖示意性圖示了神經網路的密集訓練的實例。
第3圖示意性圖示了神經網路的稀疏訓練的實例。
第4圖示意性圖示了簡單矩陣稀疏化。
第5圖示意性圖示了非結構化及平衡稀疏性遮罩。
第6圖示意性圖示了具有變化的稀疏性程度的稀疏性遮罩。
第7圖示意性圖示了轉置的稀疏性遮罩。
第8圖係用於神經網路的稀疏訓練的示例方法的流程圖。
第9圖示意性圖示了用於產生雙M中N遮罩的方法。
第10圖係用於神經網路的稀疏訓練的示例方法的流程圖。
第11圖示意性圖示了用於將平衡的M中N遮罩應用於權重矩陣來用於推理的方法。
第12圖示意性圖示了用於將平衡的M中N遮罩應用於轉置的權重矩陣來用於反向傳播的方法。
第13圖係用於神經網路的稀疏階梯訓練的示例方法的流程圖。
第14圖係用於神經網路的稀疏階梯訓練的時序圖。
第15圖示意性描繪了示例計算系統。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
100:系統
102:神經網路
104:訓練資料
110:輸入層
112:隱藏層
114:輸出層
120:節點
122:訓練管理器
130:代理
132:工人
134:代理處理單元
136:訓練過程
138:代理記憶體
142:工人處理單元
144:工人記憶體
Claims (20)
- 一種訓練操作一神經網路的方法,包含以下步驟: 對於在一第一維度中具有一整數維度M 1並且在一第二維度中具有一整數維度M 2的一權重矩陣,產生在該第一維度中為一M 1中N 1遮罩的一第一平衡稀疏性遮罩; 在推理期間將該第一平衡稀疏性遮罩應用於該權重矩陣; 產生一第二平衡稀疏性遮罩,用於該權重矩陣的一轉置,該第二平衡稀疏性遮罩在該第二維度中為一M 2中N 2遮罩;以及 在反向傳播期間將該第二平衡稀疏性遮罩應用於該權重矩陣的該轉置。
- 如請求項1所述的方法,其中N 1及N 2係相同的整數值。
- 如請求項1所述的方法,其中該第二平衡稀疏性遮罩係該第一平衡稀疏性遮罩的一轉置。
- 如請求項1所述的方法,其中至少基於一top-K函數來產生該第一平衡稀疏性遮罩及該第二平衡稀疏性遮罩。
- 如請求項1所述的方法,其中在複數個順序階段上執行該訓練,每個階段包括複數個輪次,並且其中使用一初始稀疏性位準來執行訓練的一第一順序階段。
- 如請求項5所述的方法,進一步包含以下步驟: 決定在每個輪次之後的訓練效能的一度量。
- 如請求項6所述的方法,進一步包含以下步驟: 回應於訓練效能降低到一第一閾值以下的該度量,藉由將該初始稀疏性位準調節到一降低的稀疏性位準來將該訓練進行到一第二階段。
- 如請求項7所述的方法,進一步包含以下步驟: 回應於訓練效能降低到一第二閾值以下的該度量,藉由將該降低的稀疏性位準調節到一進一步降低的稀疏性位準來將該訓練進行到一第三階段。
- 一種訓練一神經網路的方法,包含以下步驟: 對於在一第一維度中具有一整數維度J並且在一第二維度中具有一整數維度K的一權重矩陣,將該權重矩陣再成形為在該第一維度中具有一整數維度M並且在該第二維度中具有一整數維度M的一或多個方形權重矩陣; 對於每個方形權重矩陣: 產生在該第一維度中為一M中N遮罩的一第一平衡稀疏性遮罩; 產生在該等第二維度中為一M中N遮罩的一第二平衡稀疏性遮罩,用於該方形權重矩陣的一轉置; 組合該第一平衡稀疏性遮罩及該第二平衡稀疏性遮罩以產生一第三稀疏性遮罩; 在推理期間將該第三稀疏性遮罩應用於該方形權重矩陣;以及 在反向傳播期間將該第三稀疏性遮罩的一轉置應用於該方形權重矩陣的該轉置。
- 如請求項9所述的方法,其中至少基於一top-K函數來產生該第一平衡稀疏性遮罩及該第二平衡稀疏性遮罩。
- 如請求項9所述的方法,進一步包含以下步驟: 為該第三稀疏性遮罩設置一期望輸出稀疏性;以及 產生一稀疏性大於該期望輸出稀疏性的該等第一及第二平衡稀疏性遮罩。
- 如請求項9所述的方法,其中組合該第一稀疏性遮罩及該第二稀疏性遮罩以產生該第三稀疏性遮罩之步驟包括以下步驟:使用一逐元素布耳AND運算組合該第一稀疏性遮罩及該第二稀疏性遮罩。
- 如請求項9所述的方法,進一步包含以下步驟: 在該反向傳播期間將M中N稀疏性應用於一啟動張量及一錯誤張量中的一或多個。
- 如請求項9所述的方法,其中在複數個順序階段上執行該訓練,每個階段包括複數個輪次,並且其中使用一初始稀疏性位準來執行一第一階段訓練。
- 如請求項14所述的方法,進一步包含以下步驟: 決定在每個輪次之後的訓練效能的一度量。
- 如請求項15所述的方法,進一步包含以下步驟: 回應於訓練效能降低到一第一閾值以下的該度量,藉由將該初始稀疏性位準調節到一降低的稀疏性位準來將該訓練進行到一第二階段。
- 如請求項16所述的方法,進一步包含以下步驟: 回應於訓練效能降低到一第二閾值以下的該度量,藉由將該降低的稀疏性位準調節到一進一步降低的稀疏性位準來將該訓練進行到一第三階段。
- 一種用於操作一深度神經網路的計算系統,包含: 一或多個邏輯機器;以及 一或多個儲存機器,每個儲存機器保存指令,當藉由該一或多個邏輯機器執行時該等指令導致該計算系統: 對於在一第一維度中具有整數維度M並且在一第二維度中具有整數維度M的一權重矩陣,產生在該第一維度中為一M中N遮罩的一第一平衡稀疏性遮罩; 在一前向通路期間將該第一平衡稀疏性遮罩應用於該權重矩陣; 產生一第二平衡稀疏性遮罩用於該權重矩陣的一轉置,該第二平衡稀疏性遮罩在該第二維度中為一M中N遮罩;以及 在一反向通路期間將該第二平衡稀疏性遮罩應用於該權重矩陣的該轉置。
- 如請求項18所述的計算系統,其中該第二平衡稀疏性遮罩係該第一平衡稀疏性遮罩的一轉置。
- 如請求項18所述的計算系統,其中該儲存機器進一步保存指令,當藉由該一或多個邏輯機器執行時該等指令導致該計算系統: 在複數個順序階段上執行該訓練,每個階段包括複數個輪次,並且其中使用一初始稀疏性位準來執行一第一階段訓練; 決定在每個輪次之後的訓練效能的一度量;以及 回應於訓練效能降低到一第一閾值以下的該度量,藉由將該初始稀疏性位準調節到一降低的稀疏性位準來將該訓練進行到一第二階段。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/657,112 US20230316080A1 (en) | 2022-03-29 | 2022-03-29 | Sparsity masking methods for neural network training |
US17/657,112 | 2022-03-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202338668A true TW202338668A (zh) | 2023-10-01 |
Family
ID=85199561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112106054A TW202338668A (zh) | 2022-03-29 | 2023-02-20 | 用於神經網路訓練的稀疏性掩蔽方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230316080A1 (zh) |
TW (1) | TW202338668A (zh) |
WO (1) | WO2023191879A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117743538B (zh) * | 2023-12-19 | 2024-06-18 | 中国人寿保险股份有限公司山东省分公司 | 实时客服云端数据的管理方法、装置及计算机设备 |
CN118036678A (zh) * | 2024-04-11 | 2024-05-14 | 清华大学 | 自动化注意力稀疏化方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112990420A (zh) * | 2019-12-02 | 2021-06-18 | 北京华航无线电测量研究所 | 一种用于卷积神经网络模型的剪枝方法 |
-
2022
- 2022-03-29 US US17/657,112 patent/US20230316080A1/en active Pending
- 2022-12-26 WO PCT/US2022/054019 patent/WO2023191879A1/en unknown
-
2023
- 2023-02-20 TW TW112106054A patent/TW202338668A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20230316080A1 (en) | 2023-10-05 |
WO2023191879A1 (en) | 2023-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11580386B2 (en) | Convolutional layer acceleration unit, embedded system having the same, and method for operating the embedded system | |
CN110476172B (zh) | 用于卷积神经网络的神经架构搜索 | |
KR101959376B1 (ko) | 멀티 코어 최적화된 순환 신경망을 위한 시스템 및 방법 | |
US11392829B1 (en) | Managing data sparsity for neural networks | |
TW202338668A (zh) | 用於神經網路訓練的稀疏性掩蔽方法 | |
KR102061615B1 (ko) | 인공 신경망 모델에서 메모리 효율성 및 학습 속도 향상을 위한 드롭아웃 방법과 이를 이용한 학습 방법 | |
WO2018180263A1 (ja) | 情報処理装置、情報処理方法、及びコンピュータ可読記憶媒体 | |
CN114207635A (zh) | 使用元建模对机器学习和深度学习模型进行快速准确的超参数优化 | |
KR101738825B1 (ko) | 비연속적으로 확률 뉴런을 가지는 딥러닝 모델 및 지식 전파에 기반한 학습 방법 및 그 시스템 | |
JP2021528717A (ja) | 再構成可能なコアレベルおよびベクトルレベルの並列性を有する並列計算アーキテクチャ | |
JP7403638B2 (ja) | 高速なスパースニューラルネットワーク | |
JP7438517B2 (ja) | ニューラルネットワークの圧縮方法、ニューラルネットワーク圧縮装置、コンピュータプログラム、及び圧縮されたニューラルネットワークデータの製造方法 | |
US20210397963A1 (en) | Method and apparatus for neural network model compression with micro-structured weight pruning and weight unification | |
JP7323715B2 (ja) | 微細構造化マスクを用いたマルチレートニューラル画像圧縮のための方法、装置およびコンピュータプログラム | |
WO2019157442A1 (en) | Contiguous sparsity pattern neural networks | |
US10755175B2 (en) | Early generation of individuals to accelerate genetic algorithms | |
JP2022546271A (ja) | カーネルチューニングパラメータを予測するための方法及び装置 | |
KR20210073242A (ko) | 모델 최적화 방법 및 장치 및 모델 최적화 장치를 포함한 가속기 시스템 | |
JP2024502225A (ja) | ワークロードが平準化された活性化スパース性を用いた畳込みのための方法およびシステム | |
US11704562B1 (en) | Architecture for virtual instructions | |
KR20220049325A (ko) | 가속기 및 이를 포함한 전자 장치 | |
TW202340980A (zh) | 用於稀疏矩陣乘法的系統及方法 | |
US11748251B2 (en) | Storing tensors in memory based on depth | |
CN117112145B (zh) | 训练模型分配方法、装置、计算机设备和存储介质 | |
KR20230123309A (ko) | 프루닝 방법 및 장치 |