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

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

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

3天內不再提示

NVIDIA AI 技術助力 vivo 文本預訓練大模型性能提升

NVIDIA英偉達 ? 來源:未知 ? 2023-05-26 07:15 ? 次閱讀

vivo AI 團隊與 NVIDIA 團隊合作,通過算子優化,提升 vivo 文本預訓練大模型的訓練速度。在實際應用中,訓練提速 60%,滿足了下游業務應用對模型訓練速度的要求。通過 NVIDIA Nsight Systems 性能分析工具進行性能瓶頸分析,并在此基礎上,針對 gather、dropout、softmax、scale、layernorm 等算子進行優化。

客戶簡介及應用背景

vivo 是一家以設計驅動創造偉大產品,以智能終端和智慧服務為核心的科技公司。自 2017 年開始,vivo 不斷地思考著如何通過 AI 技術能力,為全球超過 4 億的用戶提供更好的智能服務。基于此愿景,vivo 打造了針對消費互聯網場景的 1001 個 AI 便利。其中,vivo AI 團隊研發了面向自然語言理解任務的文本預訓練模型 3MP-Text。在中文語言理解測評基準 CLUE 榜單上,3MP-Text 1 億參數模型效果排名同規模第一,7 億參數模型排名總榜第十(不包括人類);在 vivo 內部的多個應用場景如內容理解、輿情分析、語音助手上測試,3MP-Text 1 億模型效果明顯優于同規模開源模型,展現出優秀的中文語言理解能力,具有良好的應用價值。

b2d82c3e-fb51-11ed-90ce-dac502259ad0.png

此圖片來源于 vivo

*如果您有任何疑問或需要使用此圖片,請聯系 vivo

客戶挑戰

為提升預訓練模型的效果,往往需要對模型的結構做一定修改,(比如改變位置編碼的實現方式,改變模型的寬度和深度等)而這些修改,可能造成模型訓練速度的下降。

3MP-Text 模型,采用 Deberta V2 的模型結構,該結構使用相對位置編碼,相對于絕對位置編碼,效果更好,但其相對位置編碼的實現過程,增加了模型在注意力機制部分的計算量,從而降低了模型的訓練速度。如圖 1 所示,在 NVIDIA GPU 單卡測試中,含有相對位置編碼的注意力機制的計算耗時占了單次迭代耗時的 71.5%。

另一方面,已有的研究和實踐驗證顯示,相同參數規模下,減小模型隱層維度,增加模型層數,能提升效果(效果對比見圖 2),因此,3MP-Text 模型采用了這種 DeepNarrow 的結構。

b3275912-fb51-11ed-90ce-dac502259ad0.png

圖 1. Deberta V2 xlarge 模型在 NVIDIA GPU 單卡上,batch size = 20 時一次迭代的 nsys timeline。單次迭代耗時 965ms,含有相對位置編碼的注意力機制(DisentangledSelfAttention)前后向計算耗時 690ms,占比 71.5%。

b378d1d4-fb51-11ed-90ce-dac502259ad0.png

圖 2. 實際驗證的數據表格

以上兩點修改,使得 3MP-Text 模型,相比同參數規模的 BERT 模型,訓練時間多 60%,訓練成本相應增加,對模型在實際業務場景的應用,造成一定障礙。比如,采用領域預訓練的方法,提升 3MP-Text 模型在手機輿情領域任務上的整體表現,由于模型訓練時間比 BERT 長 60%,采用該模型會使業務功能的上線時間明顯延遲,從而影響了正常迭代優化。

應用方案

本案例將以 NVIDIA GPU 單卡訓練情況為例,展開介紹 NVIDIA 所進行的算子優化。

如上文提到,含有相對位置編碼的注意力機制計算耗時占比達 71.5%,因此,NVIDIA 團隊優先對該模塊進行了優化,其中包括 gather 算子、dropout 算子、softmax 算子和 scale 算子的優化。

Gather 算子優化:

對于 gather 操作本身,在 cuda kernel 實現方面,采用了 float4/half4 等數據類型進行向量化讀寫(一次讀寫 4 個 float 或 4 個 half 元素),并且利用 shared memory 確保合并訪問,從而優化 gather(前向)/ scatter(反向)cuda kernels。

除了 gather 本身的優化外,如圖 3 所示的 pytorch 代碼中看到,有不少 elementwise 的操作(紅框所示)可以通過 kernel 融合(kernel fusion)的優化手段,把它們都融合到一個 cuda kernel(藍框所示)中,從而提升性能。如圖 4 所示,在進行 kernel 融合前,完成相應計算需要 9 個 cuda kernels,kernel 融合后,只需要 4 個 cuda kernels。

綜合 gather kernel 優化和 kernel 融合優化,該模塊性能提升 3.3 倍。

b3a89964-fb51-11ed-90ce-dac502259ad0.png

圖 3. gather 及相關操作的 pytorch 源碼。紅框為 gather 操作上下游的 elementwise 操作。藍框示意進行 kernel 融合后,對應 cuda kernel 所執行的全部操作。

b3d8f730-fb51-11ed-90ce-dac502259ad0.png

圖 4. gather 及相關操作優化 nsys timeline 對比。(a) 優化前,前向 (fw) 6 個 cuda kernels 耗時 2.6ms,反向 (bw) 3 個cuda kernels 耗時 3.6 ms;(b)優化后,前向 (fw) 2 個 cuda kernels 耗時 0.88ms,反向 (bw) 2 個 cuda kernels 耗時 0.99ms。優化后加速比 3.3x。

Dropout 算子優化:

在 debertaV2 中會使用 StableDropout,如果仔細對比 pytorch 代碼,會發現其計算公式絕大部分情況下可以簡化為:

  • Step 1. rand_data = torch.rand_like(input)

  • Step 2. x.bernoulli_(1 - dropout) == rand_data < (1 - dropout)

  • Step 3. mask = (1 - torch.empty_like(input).bernoulli_(1 - dropout)).to(torch.bool)

  • Step 4. input.masked_fill(mask, 0) * (1.0 / (1 - dropout))

顯然上述操作涉及大量的 elementwise 的操作,因此把 step 2~4 融合到一個獨立的 cuda kernel 中,同時再次采用了 float4/half4 等數據類型進行向量化讀寫來優化 cuda kernel。

如圖 5 所示,在進行 kernel 融合前,完成相應計算需要 9 個 cuda kernels,kernel 融合后,只需要 3 個 cuda kernels。

綜合 dropout kernel 優化和 kernel 融合優化,該模塊性能提升 4.5 倍。

b3fe5020-fb51-11ed-90ce-dac502259ad0.png

圖 5. dropout 及相關操作優化 nsys timeline 對比。(a) 優化前,前向 (fw) 6 個 cuda kernels 耗時 3.4ms,反向 (bw) 3 個 cuda kernels 耗時 1.9 ms;(b)優化后,前向 (fw) 2 個 cuda kernels 耗時 0.82ms,反向 (bw) 1 個 cuda kernels 耗時 0.37ms。優化后加速比 4.5x。

Softmax 算子優化:

與 dropout 類似,根據源碼對 Softmax 算子的計算步驟進行如下劃分:

  • Step 1. rmask = ~(mask.to(torch.bool))

  • Step 2. output = input.masked_fill(rmask, torch.tensor(torch.finfo(input.dtype).min))

  • Step 3. output = torch.softmax(output, self.dim)

  • Step 4. output.masked_fill_(rmask, 0)

把 step 1~4 融合到一個獨立的 cuda kernel 中。由于 softmax 計算中涉及 cuda 線程之間的同步操作,當采用 float4/half4 等數據類型進行向量化讀寫時,也減少了參與同步的 cuda 線程數目,從而減少了同步的開銷。此外,NVIDIA 團隊也利用寄存器數組來緩存數據,避免了多次從全局內存中讀取數據。

在 softmax 優化中,只優化了其前向,沿用了原有的反向實現。如圖 6 所示,經過優化后,該模塊前向性能提升 4 倍。

b422b6cc-fb51-11ed-90ce-dac502259ad0.png

圖 6. softmax 及相關操作優化 nsys timeline 對比。(a) 優化前,前向 (fw) 6 個 cuda kernels 耗時 2.1ms;(b)優化后,前向 (fw) 1 個 cuda kernels 耗時 0.5ms。優化后加速比 4x。

Scale 算子優化:

如圖 7 所示,在 attention 部分,計算 attention score 時會有一個除以 scale 的操作,這個除法操作其實可以很容易通過 cublas 的 API 融合 到矩陣乘法之中,因此,直接調用 cublasGemmStridedBatchedEx() API,實現了一個融合 gemm + scale 的 torch op。取得了 1.9x 的加速比(優化前 1.42 ms,優化后 0.75 ms)。

b451bf9e-fb51-11ed-90ce-dac502259ad0.png

圖 7. Attention 部分,scale 操作相關源碼。

Layernorm 算子優化:

除了上述提到算子外,還通過改造 apex 中的 layer_norm 模塊(https://github.com/NVIDIA/apex/tree/master/apex/contrib/csrc/layer_norm),以便在 hidden dim=512 情況下,優化 layernorm 算子,取得了 2.4 倍的加速比(優化前 0.53 ms,優化后 0.22 ms)。

使用效果及影響

使用 NVIDIA 做的算子優化,vivo 3MP-Text 模型的訓練速度提升 60%,達到了和同規模 BERT 模型相同的速度,下游業務應用時,模型的訓練速度不再成為瓶頸,訓練成本進一步降低。另外,這些算子優化,也可以應用到其他使用 Deberta V2 模型的場景中。

未來,vivo AI 團隊和 NVIDIA 將在大模型分布式訓練、推理等方面持續合作,共同推進生成式 AI 在手機場景行業的應用落地(如語音助手、智能創作、智能辦公等)和性能提升。

點擊 “閱讀原文”,或掃描下方海報二維碼,在 5 月 29 日觀看 NVIDIA 創始人兼 CEO 黃仁勛為 COMPUTEX 2023 帶來的主題演講直播,了解AI、圖形及其他領域的最新進展!


原文標題:NVIDIA AI 技術助力 vivo 文本預訓練大模型性能提升

文章出處:【微信公眾號:NVIDIA英偉達】歡迎添加關注!文章轉載請注明出處。


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

    關注

    22

    文章

    3848

    瀏覽量

    91990

原文標題:NVIDIA AI 技術助力 vivo 文本預訓練大模型性能提升

文章出處:【微信號:NVIDIA_China,微信公眾號:NVIDIA英偉達】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【「基于大模型的RAG應用開發與優化」閱讀體驗】+大模型微調技術解讀

    今天學習<基于大模型的RAG應用開發與優化>這本書。大模型微調是深度學習領域中的一項關鍵技術,它指的是在已經訓練好的大型深度學
    發表于 01-14 16:51

    NVIDIA推出面向RTX AI PC的AI基礎模型

    NVIDIA 今日發布能在 NVIDIA RTX AI PC 本地運行的基礎模型,為數字人、內容創作、生產力和開發提供強大助力
    的頭像 發表于 01-08 11:01 ?245次閱讀

    KerasHub統一、全面的訓練模型

    深度學習領域正在迅速發展,在處理各種類型的任務中,訓練模型變得越來越重要。Keras 以其用戶友好型 API 和對易用性的重視而聞名,始終處于這一動向的前沿。Keras 擁有專用的內容庫,如用
    的頭像 發表于 12-20 10:32 ?172次閱讀

    NVIDIA推出全新生成式AI模型Fugatto

    NVIDIA 開發了一個全新的生成式 AI 模型。利用輸入的文本和音頻,該模型可以創作出包含任意的音樂、人聲和聲音組合的作品。
    的頭像 發表于 11-27 11:29 ?431次閱讀

    NVIDIA AI助力實現更好的癌癥檢測

    由美國頂級醫療中心和研究機構的專家組成了一個專家委員會,該委員會正在使用 NVIDIA 支持的聯邦學習來評估聯邦學習和 AI 輔助注釋對訓練 AI 腫瘤分割
    的頭像 發表于 11-19 15:54 ?246次閱讀

    AI模型訓練數據來源分析

    AI模型訓練數據來源廣泛且多元化,這些數據源對于構建和優化AI模型至關重要。以下是對AI
    的頭像 發表于 10-23 15:32 ?1166次閱讀

    NVIDIA Nemotron-4 340B模型幫助開發者生成合成訓練數據

    Nemotron-4 340B 是針對 NVIDIA NeMo 和 NVIDIA TensorRT-LLM 優化的模型系列,該系列包含最先進的指導和獎勵模型,以及一個用于生成式
    的頭像 發表于 09-06 14:59 ?383次閱讀
    <b class='flag-5'>NVIDIA</b> Nemotron-4 340B<b class='flag-5'>模型</b>幫助開發者生成合成<b class='flag-5'>訓練</b>數據

    蘋果揭示AI新動向:Apple Intelligence模型在谷歌云端芯片上訓練

    蘋果公司在最新的技術論文中披露了一項重要信息,其全新的人工智能系統Apple Intelligence所依賴的模型并非傳統上大型科技公司首選的NVIDIA GPU,而是選擇了在谷歌設計的云端芯片上進行
    的頭像 發表于 07-30 15:00 ?586次閱讀

    大語言模型訓練

    能力,逐漸成為NLP領域的研究熱點。大語言模型訓練是這一技術發展的關鍵步驟,它通過在海量無標簽數據上進行訓練,使
    的頭像 發表于 07-11 10:11 ?539次閱讀

    訓練模型的基本原理和應用

    訓練模型(Pre-trained Model)是深度學習和機器學習領域中的一個重要概念,尤其是在自然語言處理(NLP)和計算機視覺(CV)等領域中得到了廣泛應用。
    的頭像 發表于 07-03 18:20 ?3161次閱讀

    進一步解讀英偉達 Blackwell 架構、NVlink及GB200 超級芯片

    NVIDIA NVLink,支持 FP4 AI 精度。 GB200 NVL72是一款性能卓越的計算平臺,采用更快的第二代Transformer引擎和FP8精度,可將大型語言模型
    發表于 05-13 17:16

    【大語言模型:原理與工程實踐】大語言模型訓練

    如此卓越的性能,就是通過其核心能力對海量數據進行訓練,再進行微調或對其什么型更好的根據人類的指令和偏好,發揮這些性能。隨著語言模型參數的不
    發表于 05-07 17:10

    【大語言模型:原理與工程實踐】大語言模型的基礎技術

    特定任務對模型進行微調。這種方法的成功不僅是自然語言處理發展的一個轉折點,還為許多現實世界的應用場帶來了前所未有的性能提升。從廣為人知的GPT到BERT,
    發表于 05-05 12:17

    【大語言模型:原理與工程實踐】核心技術綜述

    訓練和微調,直到模型的部署和性能評估。以下是對這些技術的綜述: 模型架構: LLMs通常采
    發表于 05-05 10:56

    【大語言模型:原理與工程實踐】揭開大語言模型的面紗

    Transformer架構,利用自注意力機制對文本進行編碼,通過訓練、有監督微調和強化學習等階段,不斷提升性能,展現出強大的語言理解和生成
    發表于 05-04 23:55
    主站蜘蛛池模板: 免费一级特黄特色黄大任片 | 西西人体44renti大胆亚洲 | 亚洲综合色色图 | 久久99热狠狠色精品一区 | 能可以直接看的av网址 | 精品亚洲国产国拍 | 手机看片免费永久在线观看 | 亚洲色图在线视频 | 白浆喷射 | ts视频在线观看 | 禁网站在线观看免费视频 | 亚洲成a人不卡在线观看 | 日韩欧美高清色码 | 亚洲综合精品 | 奇米影视四色7777 | 高hnp汁水bl总受软萌受 | 欧洲妇女成人淫片aaa视频 | 一本到中文字幕高清不卡在线 | 日韩精品视频免费在线观看 | 国内真实下药迷j在线观看 国内自拍 亚洲系列 欧美系列 | 爱爱永久免费视频网站 | 国产成人精品亚洲77美色 | 久久久久免费精品国产 | 欧美亚洲啪啪 | 国产精品国产三级国产普通话对白 | 亚洲天堂免费看 | 亚洲欧美一区二区久久香蕉 | 免费观看四虎精品国产永久 | 女人张开双腿让男人桶爽免 | 农村一级片| 免费又黄又爽的禁片视频 | 97夜夜澡人人爽人人喊一欧美 | 超级黄色毛片 | 日本三级成人中文字幕乱码 | 婷婷六月天激情 | 午夜剧场操一操 | 一级做a爰片久久毛片毛片 一级做a爰片久久毛片美女图片 | you ji z z日本人在线观看 | 去毛片 | 精品福利视频网 | 五月天婷五月天综合网在线 |