国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

節(jié)省顯存新思路,在 PyTorch 里使用 2 bit 激活壓縮訓(xùn)練神經(jīng)網(wǎng)絡(luò)

新聞 深度學(xué)習(xí)
隨著超大規(guī)模深度學(xué)習(xí)模型逐漸成為 AI 的趨勢,如何在有限的 GPU 內(nèi)存下訓(xùn)練這些模型成為了一個難題。

 [[410937]]

本文將介紹來自加州伯克利大學(xué)的 ActNN,一個基于 PyTorch 的激活壓縮訓(xùn)練框架。在同樣的內(nèi)存限制下,ActNN 通過使用 2 bit 激活壓縮,可以將 batch size 擴大 6-14 倍,將模型尺寸或者輸入圖片擴大 6-10 倍。ActNN 相關(guān)論文已被 ICML 2021 接收為 Long Talk,代碼開源于 github。

論文 https://arxiv.org/abs/2104.14129

代碼 https://github.com/ucbrise/actnn

AI 訓(xùn)練撞上「內(nèi)存墻」

從 AlexNet,ResNet 到 GPT-3,深度學(xué)習(xí)性能的突破都離不開模型規(guī)模的瘋狂增長。大模型有更好的性能已經(jīng)成為業(yè)界的共識。過去幾年,不僅訓(xùn)練一個最先進模型需要的算力在指數(shù)增長,訓(xùn)練一個最先進模型需要的內(nèi)存也在指數(shù)增長。如下圖所示,大型 Transformer 模型的參數(shù)量以每兩年翻 240 倍的速度指數(shù)增長。但是,單個 GPU 的內(nèi)存卻只以每兩年翻 2 倍的速度在緩慢增長。另外,在訓(xùn)練模型時,不光要存儲模型參數(shù),還要存儲中間結(jié)果激活值和優(yōu)化器狀態(tài),所需要的內(nèi)存更多。如何在有限的 GPU 內(nèi)存下訓(xùn)練這些大規(guī)模模型成為了挑戰(zhàn)。

節(jié)省顯存新思路,在 PyTorch 里使用 2 bit 激活壓縮訓(xùn)練神經(jīng)網(wǎng)絡(luò)

source:Gholami A, Yao Z, Kim S, Mahoney MW, Keutzer K. AI and Memory Wall. RiseLab Medium Blog Post, University of California Berkeley

節(jié)省訓(xùn)練內(nèi)存的方法

目前,節(jié)省訓(xùn)練內(nèi)存的方法主要有三類:1. 重計算(Gradient checkpointing/Rematerialization) 2. 使用 CPU 內(nèi)存進行交換 (swapping) 和 3. 使用分布式訓(xùn)練將 Tensor 分散存儲在多個 GPU 上。這三類方法互相不沖突,可以結(jié)合使用。大部分機器學(xué)習(xí)框架對這些方法都提供了一些支持,也有不少相關(guān)的論文。但是,想要高效、自動化地實現(xiàn)這些策略并不容易。與已有方法不同,我們提出了 ActNN,一個新的基于壓縮的內(nèi)存節(jié)省框架。在提供理論證明的同時,我們基于 PyTorch 提供了一個高效易用的實現(xiàn)。Table.1 比較了 ActNN 和已有的一些內(nèi)存節(jié)省系統(tǒng)。ActNN 支持 PyTorch 的動態(tài)圖執(zhí)行模式,并且不需要預(yù)先進行復(fù)雜的策略搜索。ActNN 作為一個獨立的 Python 庫,使用時 import 即可,不需要修改或重新編譯 PyTorch。與已有的工作相比,ActNN 靈活且易于使用。同時,ActNN 在理論上也可以和已有的技術(shù)相互疊加。

節(jié)省顯存新思路,在 PyTorch 里使用 2 bit 激活壓縮訓(xùn)練神經(jīng)網(wǎng)絡(luò)

ActNN:2 bit 激活壓縮訓(xùn)練

在訓(xùn)練一個多層神經(jīng)網(wǎng)絡(luò)時,在前向傳播中,每一層的中間結(jié)果都要被存下來用于計算反向傳播的梯度。這些中間結(jié)果,又被叫做「激活值」(activation),實際上占據(jù)了大部分的內(nèi)存消耗,尤其是在 batch size 較大或者輸入圖片較大的時候。ActNN 的原理是就是壓縮這些激活值來節(jié)省內(nèi)存。如下圖所示,左圖表示的是普通的前向傳播和反向傳播,前向傳播時會存下所有層的 fp32 激活值用于反向傳播,內(nèi)存使用在計算 loss 的時候達到峰值。右圖表示的是 ActNN 的訓(xùn)練方法:在前向傳播時,通過一個壓縮操作 Q 將激活值壓縮后再存儲;反向傳播時,通過解壓縮操作 Q^-1 將激活值解壓再計算梯度。

節(jié)省顯存新思路,在 PyTorch 里使用 2 bit 激活壓縮訓(xùn)練神經(jīng)網(wǎng)絡(luò)

如果只是為了節(jié)省內(nèi)存,這里可以使用各種壓縮算法,但是大部分現(xiàn)有的壓縮算法并不能高效地運行在 GPU 上,會引入較大的開銷。ActNN 選擇了使用 2-bit 量化作為這里的壓縮算法。量化操作的代價較小,而且有一些好的數(shù)學(xué)性質(zhì)允許我們使用有損壓縮達到較大的壓縮比。

把 fp32 浮點數(shù)量化為 2-bit 整數(shù)是一個有損壓縮,會引入一些誤差。論文從理論上分析了量化引入的誤差是如何影響訓(xùn)練的收斂性的。

第一,存在一個隨機化的量化策略,使得使用有損量化壓縮后,估計出的有損梯度是原梯度的一個無偏估計。

節(jié)省顯存新思路,在 PyTorch 里使用 2 bit 激活壓縮訓(xùn)練神經(jīng)網(wǎng)絡(luò)

在這一條件下,我們套用已有的隨機梯度下降收斂性定理,得出最后收斂時的誤差會被梯度的方差所限制。

第二,我們推導(dǎo)出了使用量化壓縮之后,隨機梯度下降計算出的梯度的方差。

節(jié)省顯存新思路,在 PyTorch 里使用 2 bit 激活壓縮訓(xùn)練神經(jīng)網(wǎng)絡(luò)

等號右邊的第一項是隨機梯度下降在 minibatch 采樣時產(chǎn)生的方差,等號右邊的第二項是有損壓縮額外引入的方差。這條公式顯示地刻畫了有損壓縮帶來的影響。注意到,當(dāng)有損量化壓縮帶來的方差遠(yuǎn)小于原來隨機梯度下降自帶的方差時,ActNN 引入的有損壓縮就不會影響訓(xùn)練的收斂性。更多關(guān)于公式的推導(dǎo)和可視化參見文末的論文鏈接。論文對不同的算子(conv2d,batch norm,linear等)都提供了詳細(xì)的分析。

由上述公式啟發(fā),我們提出了一些新的量化技巧用于降低有損壓縮引入的額外方差。我們引入了新的量化技巧 ( Per-group Quantization,F(xiàn)ine-Grained Mixed-Precision,Runtime Adaptation) 來利用梯度在不同樣本,不同緯度,不同層之間的異構(gòu)特性。最后的壓縮算法會分配更多的 bit 給更重要的激活值。平均每個浮點數(shù)分配到 2 bit。

在具體實現(xiàn)壓縮算法時,還有很多可以調(diào)節(jié)的參數(shù)。這里產(chǎn)生了一個內(nèi)存節(jié)省和訓(xùn)練速度的取舍。一般來說,使用更復(fù)雜的壓縮算法可以節(jié)省更多的內(nèi)存,但是也會引入更多額外的開銷,使訓(xùn)練速度變慢。為了給用戶較大的靈活性,ActNN 提供了 5 個優(yōu)化等級 L1-L5 供用戶選擇。低的優(yōu)化等級節(jié)省的內(nèi)存較少,但是運行速度快。高的優(yōu)化等級節(jié)省的內(nèi)存多,但是運行也更慢。在最高優(yōu)化等級 L5 下,ActNN 會結(jié)合一個簡單的內(nèi)存交換策略,將壓縮后的激活值移到 CPU 內(nèi)存上,進一步節(jié)省內(nèi)存。

實現(xiàn)

要在 PyTorch 實現(xiàn) ActNN 算法非常簡單。對于一個 PyTorch nn Module,我們只需要在其 forward 函數(shù)里加入量化壓縮,在其 backward 函數(shù)里加入解壓縮操作。所有的計算還是在 fp32 下進行,與原來一樣,偽代碼如下圖所示。

ActNN 為大部分常用的 PyTorch nn.Module 實現(xiàn)了使用量化壓縮的版本。用戶只需將模型里的所有 PyTorch nn.Module 替換成 ActNN 對應(yīng)的 Module (如把 nn.Conv2d 替換成 actnn.Conv2d),即可節(jié)省內(nèi)存,不需要更改其他代碼。ActNN 同時也提供了一個 wrapper 實現(xiàn)一行代碼自動替換。

節(jié)省顯存新思路,在 PyTorch 里使用 2 bit 激活壓縮訓(xùn)練神經(jīng)網(wǎng)絡(luò)

實驗結(jié)果

因為 ActNN 進行的是有損壓縮,所以最重要的一點是先驗證 ActNN 是否會影響模型的精度。下圖是使用 ActNN 在 ImageNet 上訓(xùn)練 ResNet-50 的結(jié)果。FP 代表普通的 fp32 訓(xùn)練, BLPA 是來自 NeurIPS 2019 的一個相關(guān)工作。可以看到,在 ActNN 的 2-bit 壓縮模式下,模型幾乎沒有損失精度。在更極限的 1.25 bit 的情況下,ActNN 也能收斂,只不過會損失一些精度。而之前的工作 BLPA 在小于 4 bit 的情況就下無法收斂。

節(jié)省顯存新思路,在 PyTorch 里使用 2 bit 激活壓縮訓(xùn)練神經(jīng)網(wǎng)絡(luò)

我們還在圖像分割,物體檢測,以及自監(jiān)督學(xué)習(xí)等多個任務(wù)上進行了實驗。ActNN 都能在 2-bit 壓縮模式下達到和普通 fp32 幾乎一樣的結(jié)果。在部分任務(wù)上,因為 ActNN 可以使用更大的 batch size,甚至可以取得更好的測試結(jié)果。詳細(xì)的實驗結(jié)果和訓(xùn)練記錄參見文末的論文與 github 鏈接。

之后,我們對比了 ActNN 與普通 fp32 訓(xùn)練的實際內(nèi)存使用情況。如下表所示,ActNN 可以將激活值占用的內(nèi)存壓縮 12 倍,將訓(xùn)練使用的總內(nèi)存壓縮 4 - 7 倍。這一實際內(nèi)存壓縮效果符合理論推導(dǎo)。為什么激活值壓縮倍率是 12 而不是 32 bit / 2 bit = 16?主要是因為 ActNN 不能使用 inplace 的 ReLU,以及需要存儲少量額外的 min 和 scale 用于解壓縮。

節(jié)省顯存新思路,在 PyTorch 里使用 2 bit 激活壓縮訓(xùn)練神經(jīng)網(wǎng)絡(luò)

最后,我們測試了 ActNN 的訓(xùn)練速度。因為 ActNN 在訓(xùn)練過程中進行了壓縮,這些壓縮在節(jié)省內(nèi)存的同時也會引入額外的計算開銷。一般來說,省得內(nèi)存越多,進入的額外開銷就越多,訓(xùn)練也就越慢。我們在 NVIDIA T4 (16 GB 內(nèi)存) 上對比了 ActNN 和已有內(nèi)存節(jié)省系統(tǒng)的訓(xùn)練速度。如下圖所示,DTR (ICLR 2020),BLPA (NeurIPS 2019)和 swap 分別是基于重計算,壓縮和內(nèi)存交換的三種方法,紅叉代表 Out-of-memory。y 軸是訓(xùn)練吞吐量 (images per second),越高越好。綠色的曲線是綜合 ActNN 在不同優(yōu)化等級下的最優(yōu)結(jié)果。可以看到,ActNN 不僅能開到最大的 batch size(即最省內(nèi)存),同時在所有 batch size 下都比 baseline 的訓(xùn)練速度更快。

節(jié)省顯存新思路,在 PyTorch 里使用 2 bit 激活壓縮訓(xùn)練神經(jīng)網(wǎng)絡(luò)

我們還對更多的網(wǎng)絡(luò)進行了測試。在同樣的內(nèi)存限制下,ActNN 可以將 batch size 擴大 6-14 倍,將模型尺寸或者輸入圖片擴大 6-10 倍。詳細(xì)的實驗設(shè)置和結(jié)果參見文末的論文鏈接。

兩行代碼即可在 PyTorch 中使用

  1. import actnn 
  2. model = actnn.QModule(model) 

ActNN 提供了一個自動模型轉(zhuǎn)換封裝。只需在訓(xùn)練腳本里插入兩行代碼,即可將普通的 PyTorch 模型轉(zhuǎn)換為使用 ActNN 的模型。同時,ActNN 也提供了更高級的 API 支持定制化的使用場景。

更多的例子參見 github 鏈接。我們提供了在圖像識別、圖像分割、物體檢測,以及自監(jiān)督學(xué)習(xí)等多個任務(wù)上使用 actnn 的完整例子和訓(xùn)練記錄,歡迎試用!

 

責(zé)任編輯:張燕妮 來源: 機器之心Pro
相關(guān)推薦

2017-10-09 11:21:46

神經(jīng)網(wǎng)絡(luò)OpenAI非線性

2022-04-02 15:56:43

神經(jīng)網(wǎng)絡(luò)人工智能技術(shù)

2021-12-28 08:48:54

PyTorch神經(jīng)網(wǎng)絡(luò)人工智能

2017-08-28 21:31:37

TensorFlow深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

2022-09-26 00:00:00

神經(jīng)網(wǎng)絡(luò)激活函數(shù)sigmoid

2017-12-22 08:47:41

神經(jīng)網(wǎng)絡(luò)AND運算

2017-09-28 16:15:12

神經(jīng)網(wǎng)絡(luò)訓(xùn)練多層

2017-01-10 14:28:01

數(shù)據(jù)管理大數(shù)據(jù)SAP

2019-08-19 00:31:16

Pytorch神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)

2017-08-29 13:50:03

TensorFlow深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

2017-03-27 16:18:30

神經(jīng)網(wǎng)絡(luò)TensorFlow人工智能

2017-04-26 08:31:10

神經(jīng)網(wǎng)絡(luò)自然語言PyTorch

2023-04-18 15:15:06

神經(jīng)網(wǎng)絡(luò)激活函數(shù)開發(fā)

2018-12-14 08:02:55

神經(jīng)網(wǎng)絡(luò)機器學(xué)習(xí)二值模型

2009-01-11 10:27:00

小型辦公室網(wǎng)絡(luò)組建

2021-01-10 08:46:43

神經(jīng)網(wǎng)絡(luò)激活函數(shù)人工神經(jīng)網(wǎng)絡(luò)

2024-11-07 08:26:31

神經(jīng)網(wǎng)絡(luò)激活函數(shù)信號

2024-07-24 08:04:24

神經(jīng)網(wǎng)絡(luò)激活函數(shù)

2018-07-03 16:10:04

神經(jīng)網(wǎng)絡(luò)生物神經(jīng)網(wǎng)絡(luò)人工神經(jīng)網(wǎng)絡(luò)

2025-02-19 15:12:17

神經(jīng)網(wǎng)絡(luò)PyTorch大模型
點贊
收藏

51CTO技術(shù)棧公眾號

日韩最新中文字幕电影免费看| 日韩在线视频网站| 日韩精品在线中文字幕| 欧美天天综合| 精品欧美乱码久久久久久1区2区| 乱小说综合网站| 久久一区中文字幕| 国产精品美女主播| 国产精品videossex撒尿| 欧美午夜精品久久久久久孕妇| 天天操天天爱天天爽| 精品在线观看免费| 国产在线观看一区二区三区| 欧美国产中文高清| 亚洲天堂av电影| 麻豆电影在线播放| 欧美视频在线观看 亚洲欧| 四虎黄色影院| 日本一区二区三区视频视频| 无码粉嫩虎白一线天在线观看| 日韩中文字幕91| 国产精品久久7| 偷偷www综合久久久久久久| 欧美一区三区三区高中清蜜桃| 国产精品亚洲第一区在线暖暖韩国| 欧美一级片在线观看| 99re资源| 日韩电影毛片| 乱馆动漫1~6集在线观看| 国产精品无人区| 免费黄色网页在线观看| 久久国产精品99久久久久久老狼| 91老司机在线| 日韩久久精品网| 日本精品视频在线| 精品午夜电影| 国内精品一区二区三区| 亚洲综合色婷婷在线观看| 中文字幕欧美视频在线| 中文字幕在线官网| 亚洲国产精品大全| 色呦呦在线视频| 亚洲国产精品va在线观看黑人| 羞羞的视频在线观看| 欧美一区在线视频| 欧美24videosex性欧美| 亚洲成人免费网站| 亚洲精品中文字幕| 亚洲天堂男人天堂| 日韩黄色三级在线观看| 欧美疯狂xxxx大交乱88av| 久久夜色电影| 国产乱人伦真实精品视频| 久久久久久久久丰满| 精品一区二区三区自拍图片区| 日日夜夜免费精品视频| 大片在线观看网站免费收看| 99久久久国产精品免费蜜臀| caopor在线视频| 欧美—级在线免费片| 五十度飞在线播放| 欧美日韩视频第一区| 美女搞黄视频在线观看| 欧美成人精品在线视频| 成人综合久久| 裸模一区二区三区免费| 极品尤物av久久免费看| 欧美成人黑人猛交| 亚洲一区二区不卡免费| sm国产在线调教视频| 亚洲一区999| 99a精品视频在线观看| 国产精品一区二区三区成人| 久久久久久色| 欧美日韩第二页| 亚洲成人福利片| 在线heyzo| 欧美高清性猛交| 欧美成人一品| 成人免费在线网| 午夜国产不卡在线观看视频| 求av网址在线观看| 青青视频在线播放| 欧美疯狂性受xxxxx喷水图片| 91精品影视| 亚洲系列中文字幕| 美日韩黄色大片| 午夜精品美女自拍福到在线| 秋霞国产精品| 国产自产女人91一区在线观看| 亚洲国产精品久久久男人的天堂| 在线免费视频a| 99视频精品全部免费看| 96av麻豆蜜桃一区二区| 最大av网站| 亚洲成年网站在线观看| av综合网址| 欧美精品久久| 国产精品欧美一区喷水| 午夜在线视频| 久久精品国产成人| 性欧美欧美巨大69| 精品无码国产一区二区三区av| 精品二区三区线观看| 精品欧美日韩精品| 99精彩视频| 久久久久久久久久看片| 91porn在线观看| 欧美美最猛性xxxxxx| 日韩视频二区| 性欧美1819| 日韩大陆毛片av| 欧美丝袜激情| 久久国产亚洲精品无码| 欧美日韩免费观看一区二区三区| 麻豆国产一区二区三区四区| 国产伦精品一区二区三区免| 久久人人超碰精品| 欧美日韩色网| 91美女高潮出水| 日本一区二区三区国色天香| а_天堂中文在线| 亚洲精品日产aⅴ| 欧美国产精品久久| 蜜桃在线视频| 国产精品视频免费一区二区三区| 中文字幕av资源一区| 伊人久久视频| 精品视频第一区| 亚洲成人动漫精品| 999久久久久久久久6666| 丰满人妻一区二区三区53号| 日韩一区二区在线观看视频播放| 青青草成人影院| 亚洲一级免费观看| 中文字幕国产亚洲| 美女网站视频久久| 国产在线观看免费| 国产精品精品一区二区三区午夜版| 久久综合九色综合久久久精品综合| 波多野结衣久久| 欧美一区二区三区四区五区六区| 午夜激情一区二区| 亚洲精品亚洲人成在线| 成人观看免费完整观看| 亚洲全黄一级网站| 久久综合九色| 超碰97在线免费观看| 国产精品一区=区| 亚洲综合在线视频| 成人香蕉社区| 亚洲人成色77777| 久久五月天色综合| 不卡一区中文字幕| 日韩一区精品| 国产一区二区三区小说| 亚洲欧美日韩国产精品| 美女高潮久久久| 91破解版在线观看| 无遮挡亚洲一区| 亚洲成人激情在线| 黄一区二区三区| 日韩欧美一区二区三区免费观看 | 亚洲高清福利视频| 视频在线观看91| h片在线观看下载| 99热都是精品| 中文字幕亚洲精品| 久久影院午夜论| 任你弄精品视频免费观看| 最新av中文字幕| 国产精品果冻传媒潘| 精品福利av导航| 中日韩免视频上线全都免费| 一级黄色在线| 欧美午夜免费| 亚洲日本成人网| 久久精品视频免费| 成人在线免费观看网站| av资源在线观看免费高清| 亚洲欧美在线网| 日日骚久久av| 亚洲色欲色欲www| 黄色一区二区三区四区| 草美女在线观看| 国产成人无码一二三区视频| 欧美制服第一页| 欧美日韩精品一区二区三区蜜桃| 麻豆免费看一区二区三区| 国产一精品一av一免费爽爽| 诱受h嗯啊巨肉高潮| 日本高清不卡一区二区三| 最近中文字幕日韩精品| 亚洲欧美日韩久久| 久久精品中文| 韩国三级大全久久网站| 中文字幕在线视频不卡| 亚洲狠狠婷婷综合久久久| 欧美日韩国产成人| 欧美色精品在线视频|