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

為什么某些 batch size 會突然導(dǎo)致性能下降? 原創(chuàng)

發(fā)布于 2024-12-16 14:48
瀏覽
0收藏

編者按:你是否曾在優(yōu)化深度學(xué)習(xí)模型時感到困惑,明明增加了 batch size,GPU 利用率卻沒有如預(yù)期提升?在實(shí)際項(xiàng)目中,這個問題可能導(dǎo)致資源浪費(fèi)、訓(xùn)練效率低下,甚至影響整個 AI 產(chǎn)品的交付周期。

本文作者深入剖析了現(xiàn)代 GPU 批處理的工作原理,揭示了內(nèi)存帶寬與計(jì)算能力之間的微妙關(guān)系。通過建立理論模型并結(jié)合實(shí)際實(shí)驗(yàn),作者不僅解釋了為什么某些 batch size 會突然導(dǎo)致性能下降,還提供了如何找到最佳 batch size 的方法。

作者 | Finbarr Timbers

編譯 | 岳揚(yáng)

一般來說,對于現(xiàn)代深度學(xué)習(xí)系統(tǒng)而言,你能做的第一個也是最重要的優(yōu)化措施就是實(shí)現(xiàn)批處理(batching)。在進(jìn)行推理時,不是單獨(dú)處理單個輸入,而是同時處理包含 N 個輸入的一批數(shù)據(jù)。大多數(shù)情況下,這個操作是無需額外成本的 —— 無論是處理單個輸入還是 N 個輸入,推理所需的時間幾乎相同。這又是為何呢?表面上看,批量處理數(shù)據(jù)似乎應(yīng)該消耗更多資源,畢竟,工作量增加了 N 倍。

然而,如果我們使用一個簡單或者不成熟的模型來理解神經(jīng)網(wǎng)絡(luò)的工作方式,那么批處理(batching)的計(jì)算并不是沒有成本的。實(shí)際上,批處理確實(shí)需要 N 倍的計(jì)算能力。如果你在 CPU 上運(yùn)行某個特定的計(jì)算任務(wù),你會發(fā)現(xiàn)前文提到的這一點(diǎn)是成立的。

為什么某些 batch size 會突然導(dǎo)致性能下降?-AI.x社區(qū)

然而,在現(xiàn)代 GPU 上運(yùn)行相同的計(jì)算任務(wù)時,情況卻并非如此。以下是我們在一款 T4 GPU 上觀察到的情況:

為什么某些 batch size 會突然導(dǎo)致性能下降?-AI.x社區(qū)

從圖中可以看到,batch size 從 1 到 3 時,所消耗的時間并不會增加。但是,一旦 batch size 超過 3,時間消耗就會呈線性增長。

這是什么原因呢?關(guān)鍵在于并發(fā)處理能力。現(xiàn)代 GPU 能夠同時執(zhí)行多次運(yùn)算(盡管在單線程處理時,它們其實(shí)比 CPU 要慢)。

通常,當(dāng)我們談?wù)摗坝媚P蛯蝹€數(shù)據(jù)樣本進(jìn)行推理”時,容易把模型看作一個整體塊(single block)。但實(shí)際上,模型是由眾多矩陣組成的。推理過程中,每個矩陣都會被加載到內(nèi)存中。具體來說,矩陣的每個塊都會被加載到設(shè)備的共享內(nèi)存單元(在 A100 顯卡上僅有 192 kb)。這個塊隨后用于計(jì)算 batch 中每個元素的結(jié)果。需要注意的是,這與 GPU RAM(即 HBM)不同。A100 顯卡根據(jù)型號不同,配備了 40 GB 或 80 GB 的 HBM,但設(shè)備內(nèi)存僅有 192 kb。這導(dǎo)致在執(zhí)行數(shù)學(xué)運(yùn)算時,內(nèi)存帶寬成為了性能瓶頸,因?yàn)閿?shù)據(jù)需要不斷地在設(shè)備內(nèi)存中讀寫。我們可以通過模型大小除以內(nèi)存帶寬來估算傳輸權(quán)重所需的時間,通過模型的浮點(diǎn)運(yùn)算次數(shù)(FLOPS)除以 GPU 的 FLOPS 來估算計(jì)算所需的時間。

使用多層感知機(jī)(MLP),浮點(diǎn)運(yùn)算次數(shù)(FLOPS)大約是參數(shù)數(shù)量的兩倍乘以 batch 中元素的數(shù)量[1](即為 2 * m * n * b,數(shù)據(jù)批次大小(batch size)為 b ,矩陣為 m x n )。因此,當(dāng)傳輸時間等于計(jì)算時間時,意味著:

為什么某些 batch size 會突然導(dǎo)致性能下降?-AI.x社區(qū)

在此,我們可以觀察到左右兩邊的參數(shù)數(shù)量是可以相互抵消的:

為什么某些 batch size 會突然導(dǎo)致性能下降?-AI.x社區(qū)

同時,我們可以根據(jù) batch size 來重新排列:

為什么某些 batch size 會突然導(dǎo)致性能下降?-AI.x社區(qū)

當(dāng) batch size 小于 FLOPS 與內(nèi)存帶寬的比值時,內(nèi)存帶寬將成為性能瓶頸。而一旦 batch size 超過了這個比值,計(jì)算能力(FLOPS)則成為新的瓶頸。 請注意,這一分析僅適用于多層感知機(jī)(MLP),對于像 ResNet50 這樣的卷積神經(jīng)網(wǎng)絡(luò)來說,情況會更為復(fù)雜。

在 T4 GPU(產(chǎn)品規(guī)格表[2])上,其浮點(diǎn)運(yùn)算能力達(dá)到 65 TFLOPS(32位浮點(diǎn)數(shù)),內(nèi)存帶寬則是 300 GB/s,按照這個數(shù)據(jù),理想的運(yùn)算效率比(magic ratio)應(yīng)該是 216。實(shí)際運(yùn)行一個深度為 8、寬度為 1024 的多層感知機(jī)(MLP)模型時,我們得到的結(jié)果與預(yù)期相吻合。

為什么某些 batch size 會突然導(dǎo)致性能下降?-AI.x社區(qū)

盡管數(shù)據(jù)中存在一些噪聲干擾,但總體趨勢與我們的預(yù)測一致:推理時間在接近 128 的閾值時開始急劇增加(在此,我們采取逐步加倍的方式來觀察和記錄不同 batch size 對推理時間(inference time)的影響)。如果我們改變 MLP 層的寬度,會發(fā)現(xiàn)這一現(xiàn)象在多種架構(gòu)中都存在(下面是一張對數(shù)-對數(shù)(log-log)坐標(biāo)圖,以便所有的數(shù)據(jù)點(diǎn)都能在圖表中清晰地顯示)。

為什么某些 batch size 會突然導(dǎo)致性能下降?-AI.x社區(qū)

這真是太酷??了!我們可以看到在多種不同的模型架構(gòu)中,都存在一個關(guān)鍵的閾值。有趣的是,較小的網(wǎng)絡(luò)在處理速度上并沒有隨著 batch sizes(從 1 到 512)的增加而變化,基本保持恒定。 我對此的初步解釋是,這是因?yàn)?GPU 在執(zhí)行數(shù)學(xué)運(yùn)算時速度極快,而其他硬件(如 CPU)則相對較慢。在實(shí)驗(yàn)初期,我們觀察到了大量的噪聲干擾,對于這一現(xiàn)象,我暫時只能歸咎于“系統(tǒng)開銷(overhead)”。

對于許多機(jī)器學(xué)習(xí)工程師而言,他們的時間往往沒有花在機(jī)器學(xué)習(xí)本身,而是花在消除這些系統(tǒng)開銷上,這些開銷大多出現(xiàn)在非機(jī)器學(xué)習(xí)相關(guān)的代碼中。在強(qiáng)化學(xué)習(xí)(RL)研究領(lǐng)域,尤其是那些專注于持續(xù)學(xué)習(xí)問題(continual learning problems)的研究者,除非1)他們擁有一個非常大的神經(jīng)網(wǎng)絡(luò),或者2)對整個技術(shù)棧進(jìn)行了極致優(yōu)化,否則在實(shí)驗(yàn)中使用 GPU 往往并不劃算。如果你想讓一位曾在 DeepMind 工作過的工程師感到尷尬,可以問他們關(guān)于“內(nèi)置計(jì)算圖環(huán)境”(in-graph environments)的問題——在某個階段,我們甚至是在 TensorFlow 的計(jì)算圖中實(shí)現(xiàn) RL 環(huán)境。

那么,卷積神經(jīng)網(wǎng)絡(luò)的情況又是如何呢?

在卷積神經(jīng)網(wǎng)絡(luò)中,權(quán)重的總數(shù)是濾波器數(shù)量與濾波器尺寸的乘積。以 torch.nn.Conv2d 為例,權(quán)重的計(jì)算方式是 kernel_size^2 乘以 out_channels。假設(shè)我們處理的是一張分辨率為 (224, 224) 的圖像,步長為 1,卷積核大小為 3,那么每個濾波器會被重復(fù)使用 224 次。這就意味著,在卷積層中,批處理的優(yōu)勢并不明顯,因?yàn)槲覀儠磸?fù)使用相同的權(quán)重。至于池化層,其處理計(jì)算量與像素?cái)?shù)量呈線性關(guān)系,這一點(diǎn)與你所想的相符。

Transformers 的情況又是怎么樣呢?

Transformers 本質(zhì)上就是多層感知機(jī)(MLPs),我們可以將它們視為相同的東西。它們具有注意力機(jī)制,但是,由于有了 KV 緩存(能夠?qū)⒂?jì)算數(shù)據(jù)保留在內(nèi)存中),注意力機(jī)制所消耗的時間被大幅減少。我之前已經(jīng)撰寫文章對此進(jìn)行了深入的探討[3]。

這一觀點(diǎn)同樣適用于混合專家模型(Mixture of Experts model)。在許多 Transformers 的實(shí)現(xiàn)中,KV 緩存是內(nèi)置于注意力類中的(例如,MaxText[4] 就是一個典型案例[5])。由于 MoE 模型與普通解碼器之間的差異僅在于,某些前饋網(wǎng)絡(luò)層被替換為了 MoE 層,因此 KV 緩存的表現(xiàn)將保持一致,推理過程也是如此,但有一點(diǎn)不同。

MoE 層中的門控機(jī)制會將數(shù)據(jù)批次(batch)分配到不同的專家上。如果門控沒有均勻分配數(shù)據(jù)批次,就可能會引發(fā)一些問題。雖然有避免這種情況的路由機(jī)制(如“expert’s choice”),但在自回歸解碼器中,我們通常只能采用“token’s choice”,這可能會導(dǎo)致門控出現(xiàn)偏差。強(qiáng)制門控均勻分配 tokens 是1)當(dāng)前研究的焦點(diǎn),并且是2)在訓(xùn)練過程中需要優(yōu)化的一個重要目標(biāo)。

Thanks for reading!

Hope you have enjoyed and learned new things from this blog!

About the authors

Finbarr Timbers

empiricist. ml researcher. previously: engineering at deepmind ??

END

本期互動內(nèi)容 ??

?你在實(shí)際項(xiàng)目中是如何選擇 batch size 的?有沒有遇到過意外的性能瓶頸?

??文中鏈接??

[1]??https://www.stat.cmu.edu/~ryantibs/convexopt-F18/scribes/Lecture_19.pdf??

[2]??https://www.nvidia.com/content/dam/en-zz/Solutions/Data-Center/tesla-t4/t4-tensor-core-datasheet-951643.pdf??

[3]??https://www.artfintel.com/p/where-do-llms-spend-their-flops??

[4]??https://github.com/google/maxtext??

[5]??https://github.com/google/maxtext/blob/main/MaxText/layers/attentions.py#L91??

原文鏈接:

??https://www.artfintel.com/p/how-does-batching-work-on-modern??


?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任
標(biāo)簽
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
日韩精品一区第一页| 欧美放荡办公室videos4k| 日韩精品一区在线| 色黄久久久久久| 国产99久久精品一区二区永久免费| 日韩电影免费网址| 精品国产亚洲一区二区三区| 欧美猛烈性xbxbxbxb| 国产精品免费一区豆花| 国产综合色一区二区三区| 久久草视频在线看| 欧洲一区av| 99久久精品情趣| 欧美亚洲爱爱另类综合| 成人97精品毛片免费看| 884aa四虎影成人精品一区| 国产一区视频在线播放| caoporen人人| 国产伦精品一区二区三区免费迷| 999在线观看免费大全电视剧| 免费在线视频你懂得| 久久日一线二线三线suv| 日本欧洲国产一区二区| 99视频精品全部免费在线视频| 欧美成人剧情片在线观看| 国产精品13p| 欧美日本韩国一区二区三区视频 | www.欧美三级电影.com| 日本在线播放| 欧美 日韩 国产 一区| 在线观看国产日韩| 狠狠色噜噜狠狠狠狠色吗综合| 九色网友自拍视频手机在线| 99久久这里只有精品| 欧美大片大片在线播放| 天堂√中文最新版在线| 日韩欧美一级片| 成人在线免费观看| 欧美日韩国产中文字幕 | 久久精品男人的天堂| 日本黄色播放器| 小h片在线观看| 欧美精品久久99| 香蕉视频免费版| 久久一区中文字幕| 精品中文字幕一区| 欧美大片专区| 国产精品v欧美精品∨日韩| 日韩电影免费观看| 成人av在线网| 奇米4444一区二区三区| 国产精品国产三级在线观看| 精品激情国产视频| 欧美三级一区| 欧美一区二区三区免费观看| 韩国中文字幕2020精品| 亚洲国产精品麻豆| 精品婷婷色一区二区三区蜜桃| 久久美女视频| 精品亚洲夜色av98在线观看| 国产蜜臀av在线播放| 国产亚洲1区2区3区| 草草草在线视频| 国产精品久久久久久久久免费丝袜 | 中文字幕av资源一区| www浪潮av99com| 亚洲综合在线视频| 一区二区三区四区在线免费视频| 欧美色播在线播放| 久操视频在线免费播放| 精品国产乱码久久久久久久| 向日葵污视频在线观看| 亚洲男人天堂一区| 经典三级在线| 日韩高清欧美高清| 亚洲免费av一区二区| 欧美日韩一区二区三区四区| 久草免费在线视频| 欧美丰满少妇xxxx| 91成人精品视频| 欧美久久精品午夜青青大伊人| 婷婷视频一区二区三区| 欧美一二三区在线观看| 成人av观看| 97国产精品视频| 中文字幕在线直播| 欧美美女18p| 你懂的亚洲视频| 中文精品无码中文字幕无码专区| 午夜久久福利| 亚洲午夜久久久影院伊人| 国产午夜一区二区三区| 免费国产在线观看| 最近2019年手机中文字幕 | 北岛玲精品视频在线观看| 日本乱人伦a精品| 日本最新不卡在线| jlzzjlzz欧美| 亚洲成成品网站| 美女精品一区最新中文字幕一区二区三区| 久久精品一区二区三区不卡免费视频| yourporn久久国产精品| 欧美日韩一区综合| 91一区二区在线| 欧美精品少妇| 久久综合久久88| 免费日韩成人| 欧美一区二区视频在线观看2022| 精品国产黄a∨片高清在线| 91精品国产综合久久久久久久久| 久久99精品国产麻豆不卡| 国产美女玉足交| 亚洲天堂男人天堂女人天堂| 无需播放器亚洲| 37pao成人国产永久免费视频| 欧美绝品在线观看成人午夜影视| 波多野结衣在线一区二区| 欧美亚洲免费高清在线观看| 亚洲黄一区二区三区| 99热最新网址| 日韩欧美一区在线| 曰本一区二区三区视频| 国外成人在线播放| 中文亚洲字幕| 成人羞羞视频免费看看| 亚洲最新av在线| 亚洲少妇在线| 中文天堂在线观看| 精品欧美aⅴ在线网站| 欧美黄页免费| 天天综合色天天综合色hd| 性感美女久久精品| 亚洲精品套图| 国外色69视频在线观看| 国产高清一区日本| 污的网站在线观看| 国产精品入口免费| 亚洲第一福利视频在线| 婷婷视频一区二区三区| 日韩xxxx视频| 伊人久久久久久久久久久久久| 日日夜夜免费精品| 黄色一级大片在线免费看产| 亚洲已满18点击进入在线看片| 国产一区二区三区四区三区四| 色片在线免费观看| xxxx性欧美| 成人在线视频一区| 欧美日韩电影免费看| 亚洲一区美女| 亚洲精品电影在线观看| 日本一不卡视频| 性网站在线观看| 蜜桃av久久久亚洲精品| 国产在线视视频有精品| 日韩美女爱爱视频| 国产精品久久久久久久久搜平片| 欧美日韩卡一| 999在线观看视频| 亚洲精品网站在线播放gif| 日本成人在线一区| 超碰在线cao| 日韩一区二区高清视频| 永久555www成人免费| www.色精品| 视频精品国内| 激情丁香在线| 成人国产精品一区| 久久综合狠狠| 日本www在线| 欧美日韩免费观看一区| 制服丝袜在线91| 蜜桃在线一区二区三区| 性爽视频在线| 亚洲一区二区三区av无码| 丝袜美腿亚洲一区二区| 国产欧美一区二区精品婷婷| 久久a爱视频| 调教在线观看| 不卡日韩av| 亚洲大胆美女视频| 国产精品白丝jk白祙喷水网站| 国产精品蜜月aⅴ在线| 午夜dv内射一区二区| 欧美一区视频在线| 丁香五六月婷婷久久激情| 日韩视频一区| 亚洲欧洲自拍| 日韩视频第二页| 国产精品白嫩美女在线观看| 国产成人ay| 女同一区二区| 亚洲免费中文字幕| 91福利国产精品| 国产成人自拍网| 久久激情网站| 亚洲精品国产动漫| 久久久久久影院| 亚洲一区二三区| av成人综合网|