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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FP8模型訓(xùn)練中Debug優(yōu)化思路

NVIDIA英偉達(dá)企業(yè)解決方案 ? 來源:NVIDIA英偉達(dá)企業(yè)解決方案 ? 2024-09-06 14:36 ? 次閱讀

目前,市場(chǎng)上許多公司都積極開展基于 FP8 的大模型訓(xùn)練,以提高計(jì)算效率和性能。在此,我們整理并總結(jié)了客戶及 NVIDIA 技術(shù)團(tuán)隊(duì)在 FP8 模型訓(xùn)練過程中的 debug 思路和方法,供大家參考。

在討論之前,建議大家使用我們推薦的 FP8 訓(xùn)練的 Recipe,即使用 Delayed scaling,在 History length 為 1024 的窗口中選取最大的 amax 數(shù)值作為計(jì)算 scaling factor 的方法。當(dāng)然,我們也在不斷優(yōu)化這個(gè) Recipe,未來隨著更多 FP8 的實(shí)踐案例,將繼續(xù)為大家總結(jié)和分享,期待共同探索和優(yōu)化 debug 的思路和方案。

在收集和整理了大量 FP8 訓(xùn)練的案例后,我們發(fā)現(xiàn),F(xiàn)P8 訓(xùn)練中遇到的問題一般可以分成以下三類。

第一類問題:Spike Issue

Spike Issue 其實(shí)并不是 FP8 訓(xùn)練所特有的,在 BF16 中也可能會(huì)遇到此類問題,并且實(shí)際上根據(jù) NVIDIA 技術(shù)團(tuán)隊(duì)內(nèi)部訓(xùn)練的一些曲線,可以看到 FP8 的 Spike Issue 要比 BF16 還要小一些。所以,如果遇到了 Spike Issue,很多情況下可以暫時(shí)不用特別關(guān)注 FP8。另外,這里推薦兩篇關(guān)于 Spike 的研究,供大家參考。

關(guān)于 Adam Optimizer 對(duì) Spike 的影響。

關(guān)于使用 SWA 增強(qiáng)訓(xùn)練的穩(wěn)定性,減少 Spike 出現(xiàn)的情況。

整體上,如果我們遇到的 Spike 和曾經(jīng)在 BF16 上遇到的差不多,這種情況很可能不是 FP8 的問題。當(dāng)然,也有例外的情況,比如我們遇到的 Spike 需要很多迭代步才能夠恢復(fù)正常,那這種情況下可以說明這個(gè) loss 和 BF16 有本質(zhì)上的差異, 可以考慮是第二類問題。

第二類問題:

FP8 loss 和 BF16 不匹配或者發(fā)散

在 Validation loss 曲線上,不論是預(yù)訓(xùn)練還是 SFT,如果有 BF16 作為 Baseline,并且可以看到 FP8 和 BF16 有差距,這種情況下應(yīng)該如何處理?

一般這類問題可以分成兩種情況,包括:

情況 1:在訓(xùn)練的初始階段,不論是 Train from scratch 還是 Continue train,如果剛切換到 FP8 進(jìn)行訓(xùn)練,一開始就出現(xiàn)了 loss 比較大或者直接跑飛,這種情況下大概率是軟件問題造成的,因此建議大家使用 NVIDIA 最新Transformer EngineMegatron Core 的軟件棧,這樣很多軟件的問題可以及時(shí)被修復(fù),從而讓大家少跑一些彎路。同時(shí)還有另外一種情況,在軟件不斷的更新過程中,為了性能的優(yōu)化會(huì)增加很多新的特性。如果一些特性是剛剛加入的,可能在 FP8 上暫時(shí)還沒有遇到特殊情況,因此建議,大家如果使用了一些很新的特性,屆時(shí)可以先嘗試關(guān)閉掉這些新特性,檢查是否是由于這些新特性的實(shí)現(xiàn)不夠完善造成 loss 的問題。

情況 2:我們已經(jīng)訓(xùn)練了一段時(shí)間,比如已經(jīng)訓(xùn)練了幾百 Billion 的 Tokens,loss 出現(xiàn)了差距,這種情況一般就不是軟件問題了。問題可能是給大家推薦的這個(gè) Recipe 并不適用于某些數(shù)據(jù)集或某些模型結(jié)構(gòu)。這種情況下,可以通過下面的案例去進(jìn)行拆解

第三類問題:FP8 loss 非常吻合,

但是 Downstream tasks 會(huì)有一些差異

訓(xùn)練中,我們的 Validation loss 曲線吻合的非常好,比如 loss 差距的量級(jí)大概是在十的負(fù)三次方,但是在一些下游任務(wù)上打分的方面可能會(huì)出現(xiàn)問題,那應(yīng)該如何處理?這樣的問題一般分為兩種情況,包括:

情況 1:進(jìn)行下游任務(wù)打分的時(shí)候,會(huì)進(jìn)行多任務(wù)打分。如果所有的任務(wù)和 BF16 baseline 對(duì)比,或者和當(dāng)時(shí)上一代的模型對(duì)比,打分結(jié)果差異很大,這種情況大概率是評(píng)估過程中出現(xiàn)了問題。比如,Checkpoint 導(dǎo)出來的格式不對(duì),或者 Scale 沒有取對(duì)等評(píng)估流程的問題。因此我們還需要進(jìn)行排除,確認(rèn)是否是導(dǎo)出模型和評(píng)估流程出現(xiàn)了問題。

情況 2:另一種情況,如前文提到的“在訓(xùn)練了幾百 Billion 的 Token 之后,loss 出現(xiàn)了差距”,和這種情況很相似,此時(shí)大部分任務(wù)都沒問題,只有個(gè)別的一兩個(gè)任務(wù)發(fā)現(xiàn)跟 BF16 的 Baseline 有明顯差距,如 3% 或者 5% 的掉點(diǎn)。這種情況下,建議改變 FP8 訓(xùn)練的 Recipe,默認(rèn)的 Recipe 是 Delayed scaling,即選用先前迭代步存下來的 scale 值,我們可以替換成 Current scaling,即選用當(dāng)前迭代步的 scale 值,或者把部分的矩陣做一些回退到 BF16 的操作,具體方法下文會(huì)進(jìn)行介紹。

以下是一個(gè)案例,通過這個(gè)案例,可以初步了解哪些方法在現(xiàn)階段可以進(jìn)行嘗試。

wKgZombaox2AA-QIAACNQpC9OX8898.jpg

這是一個(gè)類似于 Llama 2 的模型,雖然模型規(guī)模較小,但已經(jīng)訓(xùn)練了 1.1T 個(gè) Tokens,使用了如下推薦的配置,包括:

Pytorch 23.10 版本

TE Commit 為 d76118d

FP8 format:hybird

History Length:1024

Algo:Max

FP8 Wgrad Override:True

我們發(fā)現(xiàn),比較接近 loss 末尾的時(shí)候,差異就會(huì)隨之出現(xiàn),并且顯然已經(jīng)不是十的負(fù)三次方的量級(jí),這種情況下,可以考慮以下的步驟進(jìn)行問題的排查。

wKgaombaZZWADmmKAAB_pnXO4Qo355.jpg

第一步:Sequence Parallel off

在軟件前期的時(shí)候,首先盡可能嘗試關(guān)閉一些根據(jù)經(jīng)驗(yàn)判斷可能有問題的特性。比如在引入 FP8 初期,軟件上的 Sequence Paralleism(SP)經(jīng)常會(huì)引起一些問題,因此可以先嘗試進(jìn)行關(guān)閉,如果發(fā)現(xiàn)關(guān)閉后并沒有問題,可以初步判斷 loss 不是由軟件引起的,從而大概率可以推斷是 Recipe 不夠完善造成的。

第二步:我們可以做一個(gè)恢復(fù)性實(shí)驗(yàn)

嘗試看一下當(dāng)前訓(xùn)練出現(xiàn)問題的 FP8 的 Checkpoint,比如最后一個(gè)點(diǎn),把這個(gè) Checkpoint 切換到 BF16 訓(xùn)練,查看是否可以恢復(fù)到 BF16 的 Baseline。我們目前遇到的大多數(shù)情況都是可以恢復(fù)的。因此在這個(gè)基礎(chǔ)的情況下,可以繼續(xù)嘗試下一步 debug 的方法。

第三步:三類矩陣的問題排查

大多數(shù)情況下,整個(gè)模型跑在 FP8 上并不多見。對(duì)于 Transformer layer 的每個(gè) Gemm 來說,整個(gè)訓(xùn)練過程中,有三類矩陣跑在 FP8 上,包括它的前向 Fprop,以及反向 Wgrad 和 Dgrad,因此現(xiàn)在需要判斷三類矩陣的哪個(gè)矩陣出了問題,當(dāng)然,更細(xì)致一些應(yīng)該判斷具體是哪一個(gè) Transformer layer 的矩陣出了問題。不過,這個(gè)特性還在開發(fā)過程中,目前還是一個(gè)比較初步的判斷,需要檢查是前向的矩陣還是反向的兩個(gè)矩陣其中之一出現(xiàn)了差錯(cuò)。因此這一步中,可以首先把這三類矩陣全部轉(zhuǎn)成 BF16 訓(xùn)練。不過,我們做的是一個(gè) Fake quantization,通俗的解釋就是使用 BF16 進(jìn)行訓(xùn)練,但是在做 BF16 計(jì)算之前,會(huì)先把它的輸入 Cast 成 FP8,然后再 Cast back 回到 BF16。這個(gè)時(shí)候,其實(shí)數(shù)據(jù)表示它已經(jīng)是 FP8 表示范圍內(nèi)的值了, 自然這個(gè) scaling 使用的就是 Current scaling,或者說沒有 Scaling。這種情況下,會(huì)發(fā)現(xiàn)把三類矩陣全部都切回 Fake quantization 進(jìn)行訓(xùn)練的時(shí)候,此時(shí)的 loss 曲線是可以貼近 BF16 Baseline 的。因此,下面需要一個(gè)矩陣一個(gè)矩陣的進(jìn)行排除。

wKgZombaozmAF7h-AAFeySPfF5M564.jpg

三類矩陣包括前向的 Fprop,以及反向的 Wgrad 和 Dgrad。因此我們可以遵循一個(gè)相對(duì)簡單的思路——逐一嘗試,就是每次訓(xùn)練把其中一個(gè)矩陣設(shè)置為 BF16 計(jì)算, 經(jīng)我們嘗試后,可以看到:

在 Fprop 矩陣上面做 BF16 計(jì)算,會(huì)發(fā)現(xiàn)對(duì) loss 的影響并不是很大。

在 Wgrad 矩陣上面做 BF16 計(jì)算,影響也非常小。

在 Dgrad 矩陣上面做 BF16 計(jì)算,即只有 Dgrad 計(jì)算執(zhí)行在 BF16,而 Fprop 和 Wgrad 全部執(zhí)行在 FP8,此時(shí)會(huì)發(fā)現(xiàn) loss 會(huì)回到 BF16 的 Baseline。

現(xiàn)在我們已經(jīng)定位到了有問題的矩陣是 Dgrad,是否還有方法再做進(jìn)一步的挽救從而避免性能損失太多?這種情況下,可以去進(jìn)行以下嘗試。

wKgZombao0iAU4iCAADVLDYd6mA643.jpg

在 Transformer Engine (TE) 的后續(xù)版本中,計(jì)劃支持用戶使用 Current scaling,即還是使用 FP8 去做 Gemm 的運(yùn)算。但是我們不用前面給大家推薦的這個(gè) Delayed scaling recipe,而是使用當(dāng)前輸入的 scale 值,雖然會(huì)損失一點(diǎn)性能,但是相比于把整個(gè) Gemm 回退到 BF16 做計(jì)算,它的性能損失會(huì)小很多。

當(dāng)對(duì) Dgrad 使用了 Current scaling 之后,會(huì)發(fā)現(xiàn) loss 曲線已經(jīng)和 BF16 的 Baseline 吻合了。

以上就是一個(gè)相對(duì)完整的 debug 的思路,供大家參考和討論。

關(guān)于作者

高慧怡

NVIDIA 深度學(xué)習(xí)解決方案架構(gòu)師,2020 年加入 NVIDIA 解決方案架構(gòu)團(tuán)隊(duì),從事深度學(xué)習(xí)應(yīng)用在異構(gòu)系統(tǒng)的加速工作,目前主要支持國內(nèi) CSP 客戶在大語言模型的訓(xùn)練加速工作。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    5047

    瀏覽量

    103326
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3277

    瀏覽量

    48957
  • DEBUG
    +關(guān)注

    關(guān)注

    3

    文章

    94

    瀏覽量

    19939

原文標(biāo)題:探索 FP8 訓(xùn)練中 Debug 思路與技巧

文章出處:【微信號(hào):NVIDIA-Enterprise,微信公眾號(hào):NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深層神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練:過擬合優(yōu)化

    為了訓(xùn)練出高效可用的深層神經(jīng)網(wǎng)絡(luò)模型,在訓(xùn)練時(shí)必須要避免過擬合的現(xiàn)象。過擬合現(xiàn)象的優(yōu)化方法通常有三種。
    的頭像 發(fā)表于 12-02 14:17 ?2772次閱讀
    深層神經(jīng)網(wǎng)絡(luò)<b class='flag-5'>模型</b>的<b class='flag-5'>訓(xùn)練</b>:過擬合<b class='flag-5'>優(yōu)化</b>

    【大語言模型:原理與工程實(shí)踐】大語言模型的預(yù)訓(xùn)練

    大語言模型的核心特點(diǎn)在于其龐大的參數(shù)量,這賦予了模型強(qiáng)大的學(xué)習(xí)容量,使其無需依賴微調(diào)即可適應(yīng)各種下游任務(wù),而更傾向于培養(yǎng)通用的處理能力。然而,隨著學(xué)習(xí)容量的增加,對(duì)預(yù)訓(xùn)練數(shù)據(jù)的需求也相應(yīng)
    發(fā)表于 05-07 17:10

    【「基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化」閱讀體驗(yàn)】+大模型微調(diào)技術(shù)解讀

    今天學(xué)習(xí)<基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化>這本書。大模型微調(diào)是深度學(xué)習(xí)領(lǐng)域中的一項(xiàng)關(guān)鍵技術(shù),它指的是在已經(jīng)預(yù)訓(xùn)練好的大型深度學(xué)習(xí)模型
    發(fā)表于 01-14 16:51

    Pytorch模型訓(xùn)練實(shí)用PDF教程【中文】

    本教程以實(shí)際應(yīng)用、工程開發(fā)為目的,著重介紹模型訓(xùn)練過程中遇到的實(shí)際問題和方法。在機(jī)器學(xué)習(xí)模型開發(fā),主要涉及三大部分,分別是數(shù)據(jù)、模型和損失
    發(fā)表于 12-21 09:18

    分享一種用于神經(jīng)網(wǎng)絡(luò)處理的新8位浮點(diǎn)交換格式

    ,以便更好地匹配值(權(quán)重、激活,漸變等)被處理,而不是僅僅依賴于 FP8 格式。此外,模型可以在與 FP8 相同的格式下進(jìn)行訓(xùn)練和部署,而定點(diǎn)格式,特別是 int
    發(fā)表于 09-15 15:15

    小米在預(yù)訓(xùn)練模型的探索與優(yōu)化

    大家?guī)硇∶自陬A(yù)訓(xùn)練模型的探索與優(yōu)化。 01 預(yù)訓(xùn)練簡介 預(yù)訓(xùn)練與詞向量的方法一脈相承。詞向量是從任務(wù)無關(guān)和大量的無監(jiān)督語料中學(xué)習(xí)到詞的分布
    的頭像 發(fā)表于 12-31 10:17 ?2639次閱讀
    小米在預(yù)<b class='flag-5'>訓(xùn)練</b><b class='flag-5'>模型</b>的探索與<b class='flag-5'>優(yōu)化</b>

    Multilingual多語言預(yù)訓(xùn)練語言模型的套路

    Facebook在Crosslingual language model pretraining(NIPS 2019)一文中提出XLM預(yù)訓(xùn)練多語言模型,整體思路基于BERT,并提出了針對(duì)多語言預(yù)
    的頭像 發(fā)表于 05-05 15:23 ?3008次閱讀

    介紹幾篇EMNLP&apos;22的語言模型訓(xùn)練方法優(yōu)化工作

    來自:圓圓的算法筆記 今天給大家介紹3篇EMNLP 2022語言模型訓(xùn)練方法優(yōu)化的工作,這3篇工作分別是: 針對(duì)檢索優(yōu)化語言
    的頭像 發(fā)表于 12-22 16:14 ?1001次閱讀

    【AI簡報(bào)20231103期】ChatGPT參數(shù)揭秘,中文最強(qiáng)開源大模型來了!

    訓(xùn)練擴(kuò)展模型大小,節(jié)約訓(xùn)練成本的最關(guān)鍵技術(shù)之一。相比于當(dāng)前的 16 位和 32 位浮點(diǎn)混合精度訓(xùn)練,使用
    的頭像 發(fā)表于 11-03 19:15 ?1501次閱讀
    【AI簡報(bào)20231103期】ChatGPT參數(shù)揭秘,中文最強(qiáng)開源大<b class='flag-5'>模型</b>來了!

    NVIDIA GPU架構(gòu)下的FP8訓(xùn)練與推理

    FP8 訓(xùn)練利用 E5M2/E4M3 格式,具備與 FP16 相當(dāng)?shù)膭?dòng)態(tài)范圍,適用于反向傳播與前向傳播。
    的頭像 發(fā)表于 04-25 10:01 ?807次閱讀
    NVIDIA GPU架構(gòu)下的<b class='flag-5'>FP8</b><b class='flag-5'>訓(xùn)練</b>與推理

    深度學(xué)習(xí)模型訓(xùn)練過程詳解

    深度學(xué)習(xí)模型訓(xùn)練是一個(gè)復(fù)雜且關(guān)鍵的過程,它涉及大量的數(shù)據(jù)、計(jì)算資源和精心設(shè)計(jì)的算法。訓(xùn)練一個(gè)深度學(xué)習(xí)模型,本質(zhì)上是通過優(yōu)化算法調(diào)整
    的頭像 發(fā)表于 07-01 16:13 ?1391次閱讀

    TensorRT-LLM低精度推理優(yōu)化

    Optimizer(簡稱 ModelOpt)及其快速實(shí)現(xiàn)量化功能的方法。第三部分為 Debug。隨后講解 FP8 的 Deep-Dive,并進(jìn)行總結(jié)。
    的頭像 發(fā)表于 11-19 14:29 ?354次閱讀
    TensorRT-LLM低精度推理<b class='flag-5'>優(yōu)化</b>

    FP8數(shù)據(jù)格式在大型模型訓(xùn)練的應(yīng)用

    本文主要介紹了 FP8 數(shù)據(jù)格式在大型模型訓(xùn)練的應(yīng)用、挑戰(zhàn)及最佳實(shí)踐,展示了 FP8 在提升訓(xùn)練
    的頭像 發(fā)表于 11-19 14:54 ?389次閱讀
    <b class='flag-5'>FP8</b>數(shù)據(jù)格式在大型<b class='flag-5'>模型</b><b class='flag-5'>訓(xùn)練</b><b class='flag-5'>中</b>的應(yīng)用

    如何使用FP8新技術(shù)加速大模型訓(xùn)練

    利用 FP8 技術(shù)加速 LLM 推理和訓(xùn)練越來越受到關(guān)注,本文主要和大家介紹如何使用 FP8 這項(xiàng)新技術(shù)加速大模型訓(xùn)練。 使用
    的頭像 發(fā)表于 12-09 11:30 ?236次閱讀

    采用FP8混合精度,DeepSeek V3訓(xùn)練成本僅557.6萬美元!

    一, 前言? ? 在AI領(lǐng)域,訓(xùn)練一個(gè)大型語言模型(LLM)是一個(gè)耗時(shí)且復(fù)雜的過程。根據(jù)之前在《從零開始訓(xùn)練一個(gè)大語言模型需要投資多少錢?》
    的頭像 發(fā)表于 01-13 11:12 ?69次閱讀
    主站蜘蛛池模板: 日本a级影院| 欧洲性freefree大白屁股| 屁股趴过来欠打高h| 九九视频热| 亚洲高清免费| 四虎影院久久| 欧美性喷潮xxxx| 国内自拍 亚洲系列 欧美系列| 国产精品va在线观看不| 一级特色黄大片| 欧美午夜在线观看| 2021最新国产成人精品视频| 丁香六月欧美| 正在播放91大神调教偷偷| 天天射色综合| 久久婷婷是五月综合色狠狠| dy天堂| 欧美在线视频看看| 色中色软件| 美女视频黄免费| 国产精品毛片在线大全| 亚洲第一香蕉视频| 国产精品一区牛牛影视| 亚洲视屏一区| 羞羞爱爱| 久久99精品久久久久久牛牛影视| 4虎影视国产在线观看精品| 啪啪伊人网| 苍井优一级毛片免费观看| 99视频热| 欧美精品一二区| 日韩免费网站| 黄 色 免费网 站 成 人| 性试验k8经典| 色网站观看| 在线观看jyzzjyzz| 女人张开腿让男人做爽爽| 在线资源网| 在线观看播放视频www| 亚洲综合情| 久久69|