讓模型訓(xùn)練速度提升2到4倍,「****假設(shè)」作者的這個(gè)全新PyTorch庫(kù)火了
登陸 GitHub 以來(lái),這個(gè)項(xiàng)目已經(jīng)收獲了 800 多個(gè) Star。
隨著越來(lái)越多的企業(yè)轉(zhuǎn)向人工智能來(lái)完成各種各樣的任務(wù),企業(yè)很快發(fā)現(xiàn),訓(xùn)練人工智能模型是昂貴的、困難的和耗時(shí)的。
一家公司 MosaicML 的目標(biāo)正是找到一種新的方法來(lái)應(yīng)對(duì)這些層出不窮的挑戰(zhàn)。近日, MosaicML 推出了一個(gè)用于高效神經(jīng)網(wǎng)絡(luò)訓(xùn)練的 PyTorch 庫(kù)「Composer」,旨在更快地訓(xùn)練模型、降低成本,并獲得表現(xiàn)更好的模型。
Composer 是一個(gè)用 PyTorch 編寫的開(kāi)源庫(kù),旨在集成更好的算法來(lái)加速深度學(xué)習(xí)模型的訓(xùn)練,同時(shí)實(shí)現(xiàn)更低的成本和更高的準(zhǔn)確度。目前項(xiàng)目在 GitHub 平臺(tái)已經(jīng)收獲了超過(guò) 800 個(gè) Star。
項(xiàng)目地址:https://github.com/mosaicml/composer
Composer 具有一個(gè)功能界面(類似于 torch.nn.functional),用戶可以將其集成到自己的訓(xùn)練循環(huán)中;它還包含一個(gè) Trainer,可以將高效的訓(xùn)練算法無(wú)縫集成到訓(xùn)練循環(huán)中。
項(xiàng)目中已經(jīng)部署了 20 幾種加速方法,只需幾行代碼就能應(yīng)用在用戶的訓(xùn)練之中,或者與內(nèi)置 Trainer 一起使用。
總體而言,Composer 具備幾個(gè)亮點(diǎn):
20 多種加速計(jì)算機(jī)視覺(jué)和語(yǔ)言建模訓(xùn)練網(wǎng)絡(luò)的方法。當(dāng) Composer 為你完成工作時(shí),你就不需要浪費(fèi)時(shí)間嘗試復(fù)現(xiàn)研究論文。
一個(gè)易于使用的 Trainer,其編寫的目的是盡可能提高性能,并集成了高效訓(xùn)練的最佳實(shí)踐。
所有加速方法的功能形式,都允許用戶將它們集成到現(xiàn)有的訓(xùn)練循環(huán)中。
強(qiáng)大、可重現(xiàn)的基線,讓你盡可能地快開(kāi)始工作。
那么,使用 Composer 能夠獲得怎樣的訓(xùn)練效果提升呢?
多個(gè)模型系列的訓(xùn)練中減少的時(shí)間和成本。
據(jù)項(xiàng)目信息介紹,使用 Composer 訓(xùn)練,你可以做到:
ResNet-101 在 ImageNet 上的準(zhǔn)確率在 1 小時(shí) 30 分鐘內(nèi)達(dá)到 78.1%(AWS 上 49 美元),比基線快 3.5 倍,便宜 71%。
ResNet-50 在 ImageNet 上的準(zhǔn)確率在 1 小時(shí) 14 分鐘內(nèi)達(dá)到 76.51%(AWS 上 40 美元),比基線快 2.9 倍,便宜 65%。
在 4 小時(shí) 27 分鐘內(nèi)將 GPT-2 在 OpenWebText 上的困惑度提高到 24.11(AWS 上 145 美元),比基線快 1.7 倍,便宜 43%。
在 Reddit 社區(qū),項(xiàng)目作者 Jonathan Frankle 現(xiàn)身說(shuō)法,他介紹說(shuō),Composer 是自己關(guān)于****假設(shè)研究的直接延續(xù)。
2019 年,F(xiàn)rankle 和 Carbin 的《The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks》獲得了 ICLR 2019 的最佳論文榮譽(yù)。在這篇論文中,F(xiàn)rankle 等人發(fā)現(xiàn)標(biāo)準(zhǔn)的剪枝技術(shù)會(huì)自然地發(fā)現(xiàn)子網(wǎng)絡(luò),這些子網(wǎng)絡(luò)經(jīng)過(guò)初始化后能夠有效進(jìn)行訓(xùn)練。二人基于這些結(jié)果提出了「****假設(shè)」(lottery ticket hypothesis):密集、隨機(jī)初始化的前饋網(wǎng)絡(luò)包含子網(wǎng)絡(luò)(「中獎(jiǎng)****」),當(dāng)獨(dú)立訓(xùn)練時(shí),這些子網(wǎng)絡(luò)能夠在相似的迭代次數(shù)內(nèi)達(dá)到與原始網(wǎng)絡(luò)相當(dāng)?shù)臏y(cè)試準(zhǔn)確率。
目前,F(xiàn)rankle 是 Mosaic 公司的首席科學(xué)家,推動(dòng)了 Composer 的打造。
這次,F(xiàn)rankle 表示,深度學(xué)習(xí)背后的「數(shù)學(xué)」并沒(méi)有什么神圣之處。從根本上改變「數(shù)學(xué)」是完全沒(méi)問(wèn)題的(比如刪除很多權(quán)重)。你將獲得與其他方式不同的網(wǎng)絡(luò),但這不像原始網(wǎng)絡(luò)是「正確的」網(wǎng)絡(luò)。如果改變「數(shù)學(xué)」讓你的網(wǎng)絡(luò)變得同樣好(例如同樣的準(zhǔn)確性)而速度更快,那就是勝利。
如果你愿意打破深度學(xué)習(xí)背后的「數(shù)學(xué)」,****假設(shè)就是一個(gè)例子。Composer 有幾十種技術(shù)可以做到這一點(diǎn),并且擁有與之匹配的加速。
同時(shí),項(xiàng)目作者們也將 Composer 與 PyTorch Lightning 進(jìn)行了對(duì)比:「PyTorch Lightning 是一個(gè)具有不同 API 的不同訓(xùn)練庫(kù)。實(shí)際上,我們?cè)?PTL 之上構(gòu)建了我們的第一個(gè) Composer 實(shí)現(xiàn)?!?/span>
PyTorch Lightning 的創(chuàng)建者 William Falcon 也出現(xiàn)在了后續(xù)討論中,但二人似乎未達(dá)成共識(shí)。
目前,Composer 的訓(xùn)練器可以應(yīng)用于眾多模型,包括對(duì)于 Resnet-50、Resnet-101、UNet 和 GPT-2 的加速。
作者表示,未來(lái)還將擴(kuò)展至更多模型,比如 ViT、BERT、分割和目標(biāo)檢測(cè)等等。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。