在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用加速PyTorrch2.0變異器

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-09-04 16:15 ? 次閱讀

如何使用加速PyTorrch2.0變異器和新推出的變異器irch. combile 。以下列示例為例加速大語言模型的方法納米gptGPT模式在Andrej Karpropt的 Andrej Karpathy 中采用,采用新的規模化的 dot 產品關注量操作員通過加速PT2變換器,我們選擇閃光點定制內核,并實現每個批次(用Nvidia A100 GPUs測量)更快的培訓時間,從~143ms/批量基線到~113ms/批量基準,此外,利用SDPA操作員加強實施提供更好的數字穩定性。最后,利用加插投入進一步優化,如果加插投入與加插關注相結合,導致~87ms/批量。

最近,在日常生活中大量采用大型語言模式(LLMs)和創性AI,在時間和硬件利用方面,與這些不斷增長的模式緊密結合,培訓成本不斷增加。加速變壓器(以前稱為“更好的變換器”)和JIT 匯編PyTorch 2.0 點火2.0.

在博客文章中,我們探索了利用SDPA的定制內核實施(也稱“縮放點產品關注”)獲得的培訓優化,這是變壓器模型中的一個關鍵層。SDPA的定制內核用一個全球優化的內核取代了若干獨立的連續操作,避免分配大量的CUDA中間內存。這個方法提供了許多優勢,包括但不限于:通過減少記憶帶寬瓶頸,減少記憶足跡以支持較大批量尺寸,提高SDPA的性能計算,減少記憶足跡以支持較大批量尺寸,以及最終通過預先縮放輸入壓強器增加數字穩定性。 這些優化在NameGPT上展示,這是Andrej Karpath公司對GPT的開放源實施。

背景

擴大對點產品的關注是多頭公司關注的基本構件,正如在2002年“注意是你們所需要的一切”并在LLM和產生性AI模型中廣泛應用。

wKgaomTv__SAasDHAALmRvZpA1k001.png

圖1:以“注意是你們所需要的一切”使用新的PyTorrch SDPA操作員,多點關注由投射線層、SDPA操作員和投射線層有效實施。

使用新的縮放的多位元產品注意操作器,多頭關注可以僅僅在三個步驟中進行:投射線性層、SDPA和投射線性層。

PyTorrch 2. 支持為特定用途案例優化的多個不同內核,并有具體要求。內核拾取器為特定輸入參數組合選擇最佳內核。如果不為特定輸入參數組合優化“自定義內核 ” , 內核拾取器將選擇一個能夠處理所有輸入組合的普通內核。

PyTorch 2.0 點火2.0號發射裝置為SDPA操作員安裝了3個裝置:

用于執行函數中SDPA的數學方程式的通用內核sdpa_math 地圖 ()

基于文件的優化內核“閃電注意”支持對SDPA進行評價,在計算SM80結構(A100)時采用16位浮點數據類型。

基于文件的優化內核“不需要O(n%2) 內存執行,并落實:舊前,它支持了范圍更廣的建筑結構(SM40和以后的SM40)上的32和16位浮數據類型。效率( mem) 效率( P)內核

請注意,兩個優化的內核(上面列出兩個和三個)都支持一個鍵嵌入面罩,并將支持的注意面罩限制為因果注意。 今天加速的 PyTorch 2.0 點火2.0 變換器只在指定使用因 - 因 - 因 - 因 - 原因當指定掩罩時,將選擇通用內核,因為分析所提供掩罩的內容太昂貴,無法確定它是否為因果遮罩。PT2 加速變換器博客.

使用納米GPPT的快速加速變換器

SDPA操作員是GPT模型的關鍵組成部分,我們確定開放源碼納米GPT模型是展示PyTorch 2.0 點火2.0加速變異器實施方便和效益的絕佳候選者。 以下展示了加速變異器在NAMGPT上啟用的確切過程。

這一過程主要圍繞取代現有的SDPA實施程序,由新加入的F.scald_dot_product_product_access 運營商取代。功能.py。這個程序可以很容易地調整,使操作員能夠進入許多其他LLMs。或者,用戶可以選擇調用 F. multi_head_attention_forward () 或酌情直接使用 nn. Multi HeadAtention 模塊。以下代碼片斷從 Karpathy 的 N納米GPT 倉庫中修改。

第1步:確定現有的SDPA執行情況

就納米GPT而言,SDPA是在模型中實施的。以因果自 心類別。在撰寫本報告時,為該員額對最初執行部分作如下調整。

wKgZomTwACqAeGBXAAjpKEgW_tQ137.png

第2步:用火炬取代縮放_ dot_ product_ 注意

目前,我們可以注意到以下幾點:

第36至42行界定我們正在取代的SDPA的數學實施

39號線上應用的面具不再相關,因為我們使用的是縮放_dot_product_product_product_acceptions因 - 因 - 因 - 因 - 原因旗幟。

第41行使用的輟學層現在也沒有必要。

換掉SDPA 的火炬( 縮放為_ dot_ product_ product_ attention), 并刪除多余的代碼, 產生以下效果 。

wKgaomTwAMCAZAZAAAcayJe5cBE128.png

或者,也可以將原始面罩傳遞到attn-mask 縮略圖然而,由于上述內核限制,將執行限制在只支持通用sdpa_math 地圖內核

第3步(邦斯):用墊板更快的墊板

除了SDPA的性能改善之外,我們的分析還取得了良好的附帶勝利。 在Andrej的“迄今為止對納米GPT(~25%的加速率)最戲劇化的優化 ” , 就是簡單地將鱷魚的體積從50257個增加到50304個(接近64個的倍數 ) 。 ”

vocab 大小決定了 GPT 輸出層的 matmuls 尺寸, 這些尺寸太大, 以至于它們正在使用占多數整個訓練循環的時間點。 我們發現,他們的表現大大低于A100GPU上可以達到的最高量。NVIDIA的制表文件64 元素對齊將產生更好的效果。 事實上, 掛貼這些配制板可以實現近3x加速 。 根本原因是不對齊的內存存存取大大降低了效率。 更深入的分析可見于此推特線索.

通過這種優化,我們進一步縮短了每批培訓時間,從~113毫斯(利用閃光關注)減少到~87毫斯。

結果結果結果 結果 結果

下圖顯示了利用Pytorch定制內核取得的性能。

基準線(執行NanoGPT):~14 300米

sdpa_math 地圖( generic): ~ 134ms (6. 71% 更快)

效率( mem) 效率( P)內核:~119米(快20.16%)

閃閃注意內核:~113米(26.54%更快)

閃光- 注意加插 vocab:~ 8700米(64.37%更快)

所有代碼都運行在80GB HBM[A100 SXM4 80GB]的8x NVIDIA Corporation A100服務器上,為試驗目的,將這一輟學率設為0。

wKgaomTwAWSAU0ClAAEIi0R4cvw244.png

圖2:使用定制內核和火炬的量級點產品注意和定制內核和火炬。納米gpt在此顯示 。

加強數字模型穩定

除了速度更快之外,PyTorrch的實施工作通過避免許多執行方案失去準確性,提高了數字穩定性。在這里,但基本上PyTollch 實施規模的查詢和關鍵矩陣之前由于SDPA的合并定制內核結構,這一縮放在計算關注結果時不會增加間接費用,相比之下,個別計算組成部分的實施需要分別進行預先縮放,按額外費用計算。

改進內存消耗

然而,使用SDPA火炬內核的另一個大優點是記憶足跡減少,從而可以使用較大的批量尺寸。下圖比較了經過一小時的閃光關注培訓和因果關注基線實施后的最佳驗證損失。從可以看出,基線因果關注實施(在8x NVIDIA Corporation A100服務器上,有80GB HBM, 80 GB HBM)實現的最大批量規模為24個,大大低于以閃光關注實現的最大數量,即39個。

wKgZomTwAX6AXE4LAABvecbjV64984.png

圖3:使用 " 閃電注意 " 使得能夠使用較大批量的批量,使用戶在經過一小時培訓后獲得較低的驗證損失(越小越好)。

結 結 結 結

新推出的PyTorrch SDPA運營商為培訓變異器模型提供了更好的性能,對昂貴的大型語言模型培訓特別有價值。

與固定批量規模的基準相比,培訓速度加快26%以上

與基準量相比,用加插詞匯表實現進一步加快速度,使總優化率達到約64%

額外數字穩定性

附錄A:分析注意數字穩定

我們在本節更深入地解釋前文提到的通過預估SDPA輸入矢量而獲得的增強數字穩定性。 下面是納米GPT數學應用SDPA的簡化版本。 這里需要指出的是,查詢在不縮放的情況下進行矩陣倍增。

# 納米gpt implementation of SDPA
# notice q (our query vector) is not scaled !
att = (q @ k.transpose(-2, -1)) * (1.0 / math.sqrt(k.size(-1)))
att = att.masked_fill(self.bias[:,:,:T,:T] == 0, float('-inf'))
att = F.softmax(att, dim=-1)

# Dropout is set to 0, so we can safely ignore this line in the implementation# att = self.attn_dropout(att) 

y_ nanogpt 識別器( y_ nanogpt) = att @ v # (B, nh, T, T) x (B, nh, T, hs) -> (B, nh, T, hs)

以下是火炬中等量的數學執行情況。縮放_ dot_ product_ 注意.

調

在數學方面,兩種方法應當相等,然而,我們的實驗表明,在實踐中,我們從每一種方法得到的結果不同。

使用上述方法,我們核實了y 之前的 y_ 縮數(_S)匹配使用縮放_ dot_ product_ 注意方法時y_ nanogpt 識別器( y_ nanogpt)沒有。

排火炬聯盟具體地說,我們表明:

y_dpa = cherch.nn. 功能._ scald_dot_ product_atunited( q, k, v, attn-mask 縮略圖=self. bias) [, : : : , T, : T] ! = 0, diut_ p= 0.0, 需要_ attn_ weights = False, 原因=False, ) toch.allclose( y_ sdpa, y_ nanogpt)

附錄B:復制實驗結果

試圖復制這些結果的研究人員應首先從Andrej納米GPT存儲庫的以下承諾開始:b3c17c6c6a363357623f2223aaa4a8b1e89d0a465。在測量每批量速度改進時,這一承諾被用作基準。對于包括添加詞匯優化(按批量速度進行最大改進)在內的結果,使用以下承諾:77e7e04c26577846df30c1ca2d9f7cbb93ddeab。從任一取出中,選擇實驗的內核與使用該內核相比是微不足道的。

可以通過上下文管理器選擇想要的內核 :

火炬. 后端. cuda. sdp_ 內核( 啟用_ math = False, 啟用_ flash = False, 啟用_ mem_ valid = true): 火車( 模型)

審核編輯:彭菁

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 變壓器
    +關注

    關注

    159

    文章

    7483

    瀏覽量

    135312
  • GPT
    GPT
    +關注

    關注

    0

    文章

    354

    瀏覽量

    15380
  • pytorch
    +關注

    關注

    2

    文章

    808

    瀏覽量

    13226
收藏 人收藏

    評論

    相關推薦

    離體培養下的遺傳與變異

    教學目的與要求:掌握離體培養中體細胞變異的特點和規律;了解體細胞變異的細胞遺傳學和分子遺傳學基礎;掌握體細胞變異的應用途徑和選擇方法。細胞組織的離體培
    發表于 02-17 09:53 ?0次下載

    基于邊界變異的量子粒子群優化算法

    將邊界變異操作引入到量子粒子群優化算法中,提出基于邊界變異的量子粒子群優化算法QPSOB。該算法將越界粒子隨機分布在邊界附近的可行域內,以增加種群的多樣性、提高算法的
    發表于 04-20 10:01 ?15次下載

    變異原理在入侵檢測技術中的應用

    在對基于免疫學原理的入侵檢測技術研究的基礎上,借鑒免疫系統的變異原理及淋巴細胞的親和力成熟過程,設計一個生成記憶檢測的算法,實現快速識別已經出現過的入侵行為
    發表于 04-22 08:37 ?16次下載

    概化理論的方差分量變異量的估計

    摘要 概化理論廣泛應用于心理與教育測量實踐中, 方差分量估計是進行概化理論分析的關鍵。方差分 量估計受限于抽樣, 需要對其變異量進行探討。采用蒙特卡洛(Monte Carlo)數據模擬技術, 在正態分布下討 論不同方法對基于概化理論的方差分量變異量估計的影響。
    發表于 01-13 11:51 ?47次下載

    結合變異粒子群和字典學習的遙感影像去噪

    針對在線字典學習需將所有字典原子全部更新、優化方向難以進行估算等原因造成精度下降的不足,提出基于變異粒子群優化的在線字典學習算法。算法基于ODL的基礎,在字典學習的迭代過程中對梯度下降函數進行優化
    發表于 11-17 14:40 ?11次下載

    基于DSEA的弱變異測試用例集生成方法

    為解決基于集合進化算法(SEA)的弱變異測試用例集生成過程中個體規模固定和執行開銷大的問題,提出一種基于動態集合進化算法( DSEA)的弱變異測試用例集生成方法。以測試用例集為個體,生成覆蓋所有變異
    發表于 11-28 16:11 ?0次下載

    基于柯西-高斯動態消減變異的果蠅優化算法研究

    針對果蠅優化算法易陷入局部極值收斂速度減慢的不足,結合柯西變異和高斯變異的各自優點,提出了變異效能系數和柯西高斯動態消減變異因子等概念,進而提出了一種柯西高斯動態消減
    發表于 11-29 16:23 ?0次下載

    基于數據競爭故障的變異策略

    針對并發程序變異測試中并發變異算予觸發數據競爭故障能力較低的問題,提出了基于數據競爭故障的變異策略。從并發變異算子設計的角度給出了面向鎖對象的變異
    發表于 12-09 11:23 ?0次下載

    消息傳遞并行程序的變異測試

    并行程序執行的不確定性,增加了測試的復雜性和難度.研究消息傳遞并行程序的變異測試,提出其弱變異測試轉化方法,以提高該程序變異測試的效率.首先,根據消息傳遞并行程序包含語句的類型和語句變異
    發表于 01-10 15:31 ?0次下載

    基于雙變異策略的骨架差分算法

    骨架差分進化算法能夠較好規避差分進化算法控制參數和變異策略選擇問題。針對基于雙變異策略的經典骨架差分算法( MGBDE)沒有根據個體進化差異選擇適合的變異策略和考慮早熟收斂的問題,提出一種改進算法
    發表于 01-16 16:08 ?0次下載

    識別文字的AI也能發現新冠病毒變異

    MIT科學家發現識別文字的AI也能發現新冠病毒變異,變異,病毒,新冠病毒,病毒株,抗體
    發表于 03-02 17:50 ?900次閱讀

    基于數據流分析的冗余變異體識別方法

    變異測試是一種基于故障的軟件測試技術,廣泛用來評估測試用例集的充分性與軟件測試技術的有效性。盡管變異測試具有較強的故障檢測能力,但由于數量龐大的變異體導致了計算開銷大的問題,阻礙了變異
    發表于 03-31 09:54 ?15次下載
    基于數據流分析的冗余<b class='flag-5'>變異</b>體識別方法

    基于數據流分析的冗余變異體識別及測試

    變異測試是一種基于故障的軟件測試技術,廣泛用來評估測試用例集的充分性與軟件測試技術的有效性。盡管變異測試具有較強的故障檢測能力,但由于數量龐大的變異體導致了計算開銷大的冋題,阻礙了變異
    發表于 06-01 16:26 ?4次下載

    基于軟件的Vitis AI 2.0加速解決方案

    Vitis AI 2.0 全面發布!作為賽靈思 FPGA 和自適應 SoC 上最綜合全面的基于軟件的 AI 加速解決方案,Vitis AI 繼續為用戶的 AI 產品貢獻價值與競爭力。2.0 版本
    的頭像 發表于 03-15 17:39 ?2350次閱讀

    初識變異源分析

    實施六西格瑪管理的目標就是希望生產出的產品的特性指標的標準差要盡可能小(只調節均值對中效果有限)。 讓標準差盡可能小不是件簡單的事,它可能牽涉生產中的很多因素。生產中產生的變異這么大,到底是哪些原因
    的頭像 發表于 01-30 11:10 ?682次閱讀
    主站蜘蛛池模板: 国产超爽人人爽人人做 | 国产理论片在线观看| 一级美女片| 三级毛片免费看| 爱爱永久免费视频网站| 成人午夜影院在线观看| 亚洲毛片大全| 国产一区二区三区不卡观| 国内精品久久久久久久久野战| 成人午夜毛片| 2020天天操| 久热久| 另类毛片| 好吊色视频988gao在线观看| 4438x全国免费| 高h乱肉辣文辣书阁| 免费欧洲美女与动zooz| 日本在线看小视频网址| 国产伦精品一区二区三区免| 伊人久久大香线蕉电影院| 国语自产拍在线观看7m| 成人黄色在线| 视频在线欧美| 黄色三级网站免费| 国产亚洲情侣久久精品| 网www天堂资源在线| 69视屏| 日本一二区视频| 精品免费久久久久久成人影院| 国产在视频线精品视频2021| 新激情五月| 九九精品久久久久久噜噜| 国产精品露脸脏话对白| 婷婷丁香综合| 天天舔天天操| 68日本xxxxxxxxx xx| 欧美日韩亚洲国内综合网俺| 永久在线免费| aaaaa级毛片免费视频| 成人网在线视频| 欧美一区亚洲|