姓名:張萌? ? ? ? ? 學號17021211113
轉自:https://mp.weixin.qq.com/s/O-NDsFs6AOwl43LyevXtzg
【嵌牛導讀】:近日银酬,OpenAI 在其一篇題為《Block-Sparse GPU Kernels》的博文中發(fā)布了一個低級別神經網絡架構的高度優(yōu)化 GPU 內核,并且這個神經網絡帶有「塊稀疏」(block-sparse)權重筐钟。根據已選的稀疏性揩瞪,這些內核可以比 cuBLAS 或 cuSPARSE 運行快幾個數量級,并在文本情感分析與文本盗棵、圖像生成建模方面取得了當前最優(yōu)結果壮韭。
【嵌牛鼻子】:圖像生成建模
【嵌牛提問】:這些內核在文本情感分析與文本、圖像生成建模方面有什么進展纹因?
【嵌牛正文】:近日喷屋,OpenAI 在其一篇題為《Block-Sparse GPU Kernels》的博文中發(fā)布了一個低級別神經網絡架構的高度優(yōu)化 GPU 內核,并且這個神經網絡帶有「塊稀疏」(block-sparse)權重瞭恰。根據已選的稀疏性屯曹,這些內核可以比 cuBLAS 或 cuSPARSE 運行快幾個數量級,并在文本情感分析與文本惊畏、圖像生成建模方面取得了當前最優(yōu)結果恶耽。機器之心對博文進行了編譯,GitHub 鏈接及論文摘要請見文中颜启。
GitHub 地址:https://github.com/openai/blocksparse
論文地址:https://s3-us-west-2.amazonaws.com/openai-assets/blocksparse/blocksparsepaper.pdf
深度學習模型架構和算法的發(fā)展在很大程度上受限于基本操作的高效 GPU 實現(xiàn)的可用性偷俭。這其中的一個問題是缺乏稀疏線性操作的高效 GPU 實現(xiàn),它也正是今天我們發(fā)布的內容缰盏,以及用其實現(xiàn)一些稀疏模式的初步結果涌萤。這些初步結果很有潛在價值但還存在不確定性,因此我們想邀請社區(qū)加入進來口猜,共同解決這一難題负溪。
密集層(左)可由寬而稀疏的層(中)或者深而稀疏的層(右)替代,并同時近似地保持計算時間济炎。
與密集權重矩陣相反川抡,稀疏權重矩陣具有大量為零的項目。稀疏權重矩陣作為模型的構建模塊很有吸引力须尚,因為矩陣乘法和稀疏塊卷積的計算成本僅與非零塊的數量成比例崖堤。例如,稀疏使得某些神經網絡的訓練成為可能耐床,這些神經網絡比給定相同參數和計算預算的其它網絡更寬倘感、更深,例如具有數萬個隱藏單元的 LSTM(目前訓練的最大的 LSTM 只有數千個隱藏單元)咙咽。
??????????????????????????????????????????????????????????????????????????? 內核
密集權重矩陣(左)和塊稀疏(中)權重矩陣的可視化老玛,其中白色代表零值權重。
內核允許在全連接層和卷積層高效地使用塊稀疏權重(如上所示)。對于卷積層蜡豹,內核允許輸入和輸出特征維度的稀疏性麸粮;連接性在空間維度上不受影響。稀疏性是在塊的層面被定義的(如上右圖所示)镜廉,并已經優(yōu)化為 8x8(本實例中)弄诲、 16x16 或 32x32 的塊大小。在塊的層面上娇唯,稀疏性模式是完全可配置的齐遵。由于內核跳過零值塊的計算,所以計算成本只與非零權重的數量成正比塔插,而不是輸入/輸出特征的數量梗摇。存儲參數的成本也只與非零權重的數量成正比。
不同級別的稀疏性相對于 cuBLAS 的加速效果想许,其使用了寬狀態(tài)(12288 個隱藏單元)伶授、32x32 的塊大小和 32 的批尺寸。該對比實驗使用英偉達 Titan X Pascal GPU 和 CUDA 8 完成流纹。和 cuSPARSE 對比的加速效果更佳糜烹。
使用稀疏內核
以下是在 TensorFlow 中進行稀疏矩陣乘法運算的示例代碼:
小世界(Small-World)LSTM
塊稀疏內核的一個很有趣的應用是用于創(chuàng)建小世界(small-world)神經網絡。小世界圖的連接方式是圖中的任意兩個節(jié)點之間僅通過少量幾步就能連接漱凝,即使圖中有數百萬個節(jié)點疮蹦。我們實現(xiàn)小世界連接的動機是,即使具有高度的稀疏度茸炒,我們仍然希望信息在網絡中能快速地傳播挚币。大腦中的連接模式就是小世界的,這使我們好奇同樣的性質能不能用于提高 LSTM 的性能扣典。我們使用小世界稀疏連接高效地訓練了擁有大約兩萬個隱藏單元(與擁有相似參數數量的密集網絡相比具有 5 倍的寬度)的 LSTM,提升了文本生成建模和半監(jiān)督情緒分類的結果慎玖,詳情參見我們的論文贮尖。
在小世界圖中,小世界圖的連接方式是圖中的任意兩個節(jié)點之間僅通過少量幾步就能連接趁怔,即使圖中有數百萬個節(jié)點湿硝。以上動圖展示了一個二維 Watts-Strogatz 小世界圖上的中心節(jié)點(像素)的激活擴散現(xiàn)象(隨機平滑灰度僅僅是為了審美效果)。在這個圖中润努,節(jié)點之間的平均路徑長度小于 5关斜,和我們在 LSTM 實驗中使用的 Barabasi-Albert 圖相似。
情緒表征學習
通過使用在我們的情緒神經實驗(Unsupervised Sentiment Neuron铺浇,https://blog.openai.com/unsupervised-sentiment-neuron/)中的設置痢畜,我們使用近似相等的參數數量訓練 LSTM,并比較了使用密集權重矩陣的模型和一個塊稀疏的變體。稀疏模型在所有的情緒數據集上的性能都超越了相對的密集模型丁稀。我們的稀疏模型將在文檔級 IMDB 數據集上的當前最佳性能從 5.91% 誤差率(Miyato 等,2016)降低到了 5.01%吼拥。相對于我們之前的結果(Unsupervised Sentiment Neuron,僅在短句級數據集上獲得最佳結果),這個提升是很有潛在價值的。
在密集特征上訓練的線性模型和稀疏生成模型的情緒分類錯誤率(%)秃臣,兩者擁有近似相等的參數總數般贼。
壓縮結果
通過使用稀疏和寬的 LSTM,在我們實驗中的每個特征占用的比特數從 1.059 下降到了 1.048(在相等參數數量的前提下喊递,即大約 1 億個參數)。擁有塊稀疏線性層的架構也可以提高相對于使用密集連接線性層的結果。我們對在 CIFAR-10 自然圖像上訓練的 PixelCNN++模型做了一個簡單的修改敛助。用稀疏內核替代了常規(guī)的 2D 卷積核,同時增加網絡深度棘捣,但保持其它超參數不變辜腺,使每個維度占用的比特數從 2.92 下降到 2.90,達到了在該數據集上的當前最佳乍恐。
研究方向
我們在這里提幾個對未來研究的建議评疗。
大多數神經網絡的權重(連接)在訓練完成之后都可以修剪掉。如果能結合剪枝技術和我們的稀疏內核茵烈,能獲得怎樣的加速效果呢百匆?
在生物大腦中,除了連接強度以外呜投,網絡的稀疏結構部分地在成長過程中確定加匈。是否可以在人工神經網絡中實現(xiàn)類似的行為,即不僅將梯度用于學習連接強度仑荐,還用于尋找最優(yōu)的稀疏結構雕拼。最新的一篇論文提出了一種方法用于學習塊稀疏 RNN(https://arxiv.org/abs/1711.02782)。我們近日也提出了一種算法用于在神經網絡中進行 L0 正則化粘招,可用于實現(xiàn)這一目標啥寇。
我們訓練了擁有成千上萬個隱藏單元的 LSTM,可以更好地處理文本洒扎。更一般地說辑甜,稀疏層使得訓練擁有大型權重矩陣(但參數數量、計算開銷和相對的密集模型相等)的模型成為可能袍冷。這種模型能為哪些領域帶來顯著的進步呢磷醋?
論文:GPU Kernels for Block-SparseWeights
論文鏈接:https://s3-us-west-2.amazonaws.com/openai-assets/blocksparse/blocksparsepaper.pdf
摘要:我們正在發(fā)布一個低級別神經網絡架構(帶有塊稀疏(block-sparse)權重)的高度優(yōu)化 GPU 內核,它允許在權重矩陣中帶有靈活可配置的塊稀疏性模式的線性層(包括卷積層)的高效評估與微分胡诗。我們發(fā)現(xiàn)根據已選稀疏性邓线,這些內核可以比 cuBLAS 或 cuSPARSE 運行快幾個數量級淌友。我們借助這些內核取得了文本情感分析與文本、圖像生成建模方面的當前最優(yōu)結果褂痰。通過公開發(fā)布這些內核亩进,我們希望可以促進模型和算法設計的進一步發(fā)展。