目錄
讓PyTorch 模型訓練更快
首頁 科技週邊 人工智慧 改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

Apr 11, 2023 pm 12:16 PM
模型 訓練

如何提升 PyTorch「煉丹」速度?

最近,知名機器學習與 AI 研究者 Sebastian Raschka 向我們展示了他的絕招。據他表示,他的方法在不影響模型準確率的情況下,僅僅透過改變幾行程式碼,將 BERT 優化時間從 22.63 分鐘縮減到 3.15 分鐘,訓練速度足足提升了 7 倍。

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

#作者更是表示,如果你有8 個GPU 可用,整個訓練過程只需要2 分鐘,實現11.5 倍的效能加速。

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

#下面我們來看看他到底是如何實現的。

讓PyTorch 模型訓練更快

首先是模型,作者採用DistilBERT 模型進行研究,它是BERT 的精簡版,與BERT 相比規模縮小了40 %,但性能幾乎沒有損失。其次是資料集,訓練資料集為大型電影評論資料集 IMDB Large Movie Review,該資料集總共包含 50000 則電影評論。作者將使用下圖中的 c 方法來預測資料集中的影評情緒。

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

基本任務交代清楚後,以下就是 PyTorch 的訓練過程。為了讓大家更能理解這項任務,作者也貼心地介紹了一下熱身練習,即如何在 IMDB 電影評論資料集上訓練 DistilBERT 模型。如果你想自己運行程式碼,可以使用相關的Python 函式庫來設定一個虛擬環境,如下所示:

#相關軟體的版本如下:

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

現在省略掉枯燥的資料載入介紹,只需要了解本文將資料集分割成35000 個訓練範例、5000 個驗證範例和10000 個測試範例。需要的程式碼如下:

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

#程式碼部分截圖

#完整程式碼位址:

#https://github.com/rasbt/faster-pytorch-blog /blob/main/1_pytorch-distilbert.py

#然後在A100 GPU 上執行程式碼,得到如下結果:

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

#部分結果截圖

#如上述程式碼所示,模型從第2 輪到第3輪開始有一點過擬合,驗證準確率從92.89% 下降到了92.09%。在模型運行了 22.63 分鐘後進行微調,最終的測試準確率為 91.43%。

使用Trainer 類別

#接下來是改進上述程式碼,改進部分主要是把PyTorch 模型包裝在LightningModule 中,這樣就可以使用來自Lightning 的Trainer 類別。部分程式碼截圖如下:

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

#完整程式碼位址:https://github.com/rasbt/faster-pytorch-blog/blob/main/2_pytorch- with-trainer.py

上述程式碼建立了一個LightningModule,它定義瞭如何執行訓練、驗證和測試。相較於前面給出的程式碼,主要變化是在第 5 部分(即 5 Finetuning),即微調模型。與先前不同的是,微調部分在 LightningModel 類別中包裝了 PyTorch 模型,並使用 Trainer 類別來擬合模型。

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

之前的程式碼顯示驗證準確率從第2 輪到第3 輪有所下降,但改進後的程式碼使用了ModelCheckpoint 以載入最佳模型。在同一台機器上,這個模型在 23.09 分鐘內達到了 92% 的測試準確率。

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

需要注意,如果禁用checkpointing 並允許PyTorch 以非確定性模式運行,本次運行最終將獲得與普通PyTorch 相同的運行時間(時間為22.63 分而非23.09 分)。

自動混合精準度訓練

#進一步,如果GPU 支援混合精準度訓練,可以開啟GPU 以提高運算效率。作者使用自動混合精度訓練,在 32 位和 16 位浮點之間切換而不會犧牲準確率。

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

#在這一最佳化下,使用Trainer 類,即能透過一行程式碼實現自動混合精準度訓練:

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

#上述操作可以將訓練時間從23.09 分鐘縮短到8.75 分鐘,這幾乎快了3倍。測試集的準確率為 92.2%,甚至比之前的 92.0% 還略有增加。 改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

使用Torch.Compile 靜態圖

最近PyTorch 2.0 公告顯示,PyTorch 團隊引進了新的toch.compile 函數。此函數可以透過產生最佳化的靜態圖來加速 PyTorch 程式碼執行,而不是使用動態圖來執行 PyTorch 程式碼。

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

#由於PyTorch 2.0 尚未正式發布,因而必須先安裝torchtriton,並更新到PyTorch 最新版本才能使用此功能。

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減


#然後透過新增這一行來修改程式碼:

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

在4 區塊GPU 上進行分散式資料並行

###

上文介紹了在單 GPU 上加速程式碼的混合精度訓練,接下來介紹多 GPU 訓練策略。下圖總結了幾種不同的多 GPU 訓練技術。

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

#想要實作分散式資料並行,可以透過DistributedDataParallel 來實現,只需修改一行程式碼就能使用Trainer。

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

經過這一步驟優化,在4 個A100 GPU 上,這段程式碼運行了3.52 分鐘就達到了93.1 % 的測試準確率。

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

DeepSpeed

最後,作者探討了在Trainer 中使用深度學習優化庫DeepSpeed 以及多GPU 策略的結果。首先必須安裝DeepSpeed 函式庫:

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

#接著只需更改一行程式碼即可啟用該函式庫:

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

這一波下來,用時3.15 分鐘就達到了92.6% 的測試準確率。不過 PyTorch 也有 DeepSpeed 的替代方案:fully-sharded DataParallel,透過 strategy="fsdp" 調用,最後花費 3.62 分鐘完成。

改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減

####以上就是作者能提升PyTorch 模型訓練速度的方法,有興趣的夥伴可以跟著原部落格嘗試一下,相信你會得到想要的結果。 ######

以上是改變幾行程式碼,PyTorch煉丹速度狂飆、模型最佳化時間大減的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

開源!超越ZoeDepth! DepthFM:快速且精確的單目深度估計! 開源!超越ZoeDepth! DepthFM:快速且精確的單目深度估計! Apr 03, 2024 pm 12:04 PM

0.這篇文章乾了啥?提出了DepthFM:一個多功能且快速的最先進的生成式單目深度估計模型。除了傳統的深度估計任務外,DepthFM還展示了在深度修復等下游任務中的最先進能力。 DepthFM效率高,可以在少數推理步驟內合成深度圖。以下一起來閱讀這項工作~1.論文資訊標題:DepthFM:FastMonocularDepthEstimationwithFlowMatching作者:MingGui,JohannesS.Fischer,UlrichPrestel,PingchuanMa,Dmytr

全球最強開源 MoE 模型來了,中文能力比肩 GPT-4,價格僅 GPT-4-Turbo 的近百分之一 全球最強開源 MoE 模型來了,中文能力比肩 GPT-4,價格僅 GPT-4-Turbo 的近百分之一 May 07, 2024 pm 04:13 PM

想像一下,一個人工智慧模型,不僅擁有超越傳統運算的能力,還能以更低的成本實現更有效率的效能。這不是科幻,DeepSeek-V2[1],全球最強開源MoE模型來了。 DeepSeek-V2是一個強大的專家混合(MoE)語言模型,具有訓練經濟、推理高效的特點。它由236B個參數組成,其中21B個參數用於啟動每個標記。與DeepSeek67B相比,DeepSeek-V2效能更強,同時節省了42.5%的訓練成本,減少了93.3%的KV緩存,最大生成吞吐量提高到5.76倍。 DeepSeek是一家探索通用人工智

AI顛覆數學研究!菲爾茲獎得主、華裔數學家領銜11篇頂刊論文|陶哲軒轉贊 AI顛覆數學研究!菲爾茲獎得主、華裔數學家領銜11篇頂刊論文|陶哲軒轉贊 Apr 09, 2024 am 11:52 AM

AI,的確正在改變數學。最近,一直十分關注這個議題的陶哲軒,轉發了最近一期的《美國數學學會通報》(BulletinoftheAmericanMathematicalSociety)。圍繞著「機器會改變數學嗎?」這個話題,許多數學家發表了自己的觀點,全程火花四射,內容硬核,精彩紛呈。作者陣容強大,包括菲爾茲獎得主AkshayVenkatesh、華裔數學家鄭樂雋、紐大電腦科學家ErnestDavis等多位業界知名學者。 AI的世界已經發生了天翻地覆的變化,要知道,其中許多文章是在一年前提交的,而在這一

你好,電動Atlas!波士頓動力機器人復活,180度詭異動作嚇到馬斯克 你好,電動Atlas!波士頓動力機器人復活,180度詭異動作嚇到馬斯克 Apr 18, 2024 pm 07:58 PM

波士頓動力Atlas,正式進入電動機器人時代!昨天,液壓Atlas剛「含淚」退出歷史舞台,今天波士頓動力就宣布:電動Atlas上崗。看來,在商用人形機器人領域,波士頓動力是下定決心要跟特斯拉硬剛一把了。新影片放出後,短短十幾小時內,就已經有一百多萬觀看。舊人離去,新角色登場,這是歷史的必然。毫無疑問,今年是人形機器人的爆發年。網友銳評:機器人的進步,讓今年看起來像人類的開幕式動作、自由度遠超人類,但這真不是恐怖片?影片一開始,Atlas平靜地躺在地上,看起來應該是仰面朝天。接下來,讓人驚掉下巴

替代MLP的KAN,被開源專案擴展到卷積了 替代MLP的KAN,被開源專案擴展到卷積了 Jun 01, 2024 pm 10:03 PM

本月初,來自MIT等機構的研究者提出了一種非常有潛力的MLP替代方法—KAN。 KAN在準確性和可解釋性方面表現優於MLP。而且它能以非常少的參數量勝過以更大參數量運行的MLP。例如,作者表示,他們用KAN以更小的網路和更高的自動化程度重現了DeepMind的結果。具體來說,DeepMind的MLP有大約300,000個參數,而KAN只有約200個參數。 KAN與MLP一樣具有強大的數學基礎,MLP基於通用逼近定理,而KAN基於Kolmogorov-Arnold表示定理。如下圖所示,KAN在邊上具

快手版Sora「可靈」開放測試:生成超120s視頻,更懂物理,複雜運動也能精準建模 快手版Sora「可靈」開放測試:生成超120s視頻,更懂物理,複雜運動也能精準建模 Jun 11, 2024 am 09:51 AM

什麼?瘋狂動物城被國產AI搬進現實了?與影片一同曝光的,是一款名為「可靈」全新國產影片生成大模型。 Sora利用了相似的技術路線,結合多項自研技術創新,生產的影片不僅運動幅度大且合理,還能模擬物理世界特性,具備強大的概念組合能力與想像。數據上看,可靈支持生成長達2分鐘的30fps的超長視頻,分辨率高達1080p,且支援多種寬高比。另外再劃個重點,可靈不是實驗室放出的Demo或影片結果演示,而是短影片領域頭部玩家快手推出的產品級應用。而且主打一個務實,不開空頭支票、發布即上線,可靈大模型已在快影

超級智能體生命力覺醒!可自我更新的AI來了,媽媽再也不用擔心資料瓶頸難題 超級智能體生命力覺醒!可自我更新的AI來了,媽媽再也不用擔心資料瓶頸難題 Apr 29, 2024 pm 06:55 PM

哭死啊,全球狂煉大模型,一網路的資料不夠用,根本不夠用。訓練模型搞得跟《飢餓遊戲》似的,全球AI研究者,都在苦惱怎麼才能餵飽這群資料大胃王。尤其在多模態任務中,這問題尤其突出。一籌莫展之際,來自人大系的初創團隊,用自家的新模型,率先在國內把「模型生成數據自己餵自己」變成了現實。而且還是理解側和生成側雙管齊下,兩側都能產生高品質、多模態的新數據,對模型本身進行數據反哺。模型是啥?中關村論壇上剛露面的多模態大模型Awaker1.0。團隊是誰?智子引擎。由人大高瓴人工智慧學院博士生高一鑷創立,高

美國空軍高調展示首個AI戰鬥機!部長親自試駕全程未乾預,10萬行代碼試飛21次 美國空軍高調展示首個AI戰鬥機!部長親自試駕全程未乾預,10萬行代碼試飛21次 May 07, 2024 pm 05:00 PM

最近,軍事圈被這個消息刷屏了:美軍的戰鬥機,已經能由AI完成全自動空戰了。是的,就在最近,美軍的AI戰鬥機首次公開,揭開了神秘面紗。這架戰鬥機的全名是可變穩定性飛行模擬器測試飛機(VISTA),由美空軍部長親自搭乘,模擬了一對一的空戰。 5月2日,美國空軍部長FrankKendall在Edwards空軍基地駕駛X-62AVISTA升空注意,在一小時的飛行中,所有飛行動作都由AI自主完成! Kendall表示——在過去的幾十年中,我們一直在思考自主空對空作戰的無限潛力,但它始終顯得遙不可及。然而如今,

See all articles