国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

緩解模型訓練成本過高的問題

深度學習自然語言處理 ? 來源:夕小瑤的賣萌屋 ? 作者:jxyxiangyu ? 2022-05-10 15:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們都知道,為了讓以深度神經網絡為基礎的模型更快地訓練,人們提出了單機多卡、多機多卡等分布式訓練的方式,那么,在模型預測推理階段,有什么方法可以加速推理呢?遺憾的是,并行/分布式的加速方法并不適用于模型推理階段。

但這并不意味著沒有方法可以加速模型的推理。既然多核的方式不行,可以考慮在單核上面的加速,比如減小模型大小(即模型壓縮)。

模型壓縮可以分為模型剪枝(pruning)和模型蒸餾(distillation)。由于模型中的參數對模型推理的貢獻天生就是不平等的,我們可以利用剪枝將貢獻度不高的模型參數剪去,從而減小模型大小,但剪枝帶來的加速比并不高,最多只有2~3倍的速度提升;蒸餾的方法可以帶來較大的加速比,推理精度也不會有太大的損失,但通常情況下,蒸餾會用到大量無標簽的數據預訓練學生模型(student),然后用任務相關的帶標簽數據進一步微調或蒸餾學生模型,但是,預訓練階段又可能會花費大量的時間。

那么有沒有什么方法既能獲得較大的加速比和較低的精度損失,又可以緩解模型訓練成本過高的問題呢?

最近丹琦女神組提出了解決這一問題的方法,讓我們一起來看看吧。

論文標題:

Structured Pruning Learns Compact and Accurate Models

論文鏈接:

https://arxiv.org/pdf/2204.00408.pdf

github地址:

https://github.com/princeton-nlp/CoFiPruning

背景介紹

在介紹這篇論文提出的方法之前,還需要簡單說明下作者研究的背景。

作者提出的模型壓縮方法針對的是原模型(教師模型)為transformer 架構的模型壓縮。眾所周知, transformer 由多個塊組成,每個塊由一個多頭自注意力(multi-head self-attention,MHA)和兩個前饋神經網絡(FFN)組成。其中, MHAs 和 FFNs 的參數量比為 1:2。在 GPU 上,兩者的推理時間基本相同,而在 CPU 上, FFNs 則會耗費更多的推理時間。

正如前面所述,模型壓縮可以歸納為兩種方法:知識蒸餾和剪枝。知識蒸餾在通常情況下,需要預先定義一個結構固定的學生網絡(當然,也有一些嘗試動態學生網絡的研究),通過用大量無標簽數據預訓練學生網絡的方式進行模型參數初始化,然后用任務特定的帶標簽數據微調學生模型,當然,學生模型的初始化方式可以有很多種,例如用教師模型的某些層初始化學生模型等,但基本的解決思想是一致的。

剪枝則指的是從原模型中去除冗余的參數,按照剪枝的粒度可以分為以下幾種:

層剪枝(layer pruning):從模型中刪去整個 block 塊(包括 MHA 和 FFN ),一些研究表明,去除 50% 的層并不會有太多的精度下降,而且還可以獲得 2X 的加速比;

頭剪枝(head pruning):通過 mask 矩陣只保留一部分 head,但研究表明,這種做法并不能帶來較大的加速比,當僅保留一個 head 的時候,加速比為 1.4X;

前饋神經網絡剪枝(FFN pruning):去除整個 FFN 層或者去除 FFN 層的某些維度;

更加細粒度的塊和非結構化的剪枝:去除 MHA 和 FFN 中更小的塊或者去除某些參數權重,目前這種做法很難優化模型,也難以獲得推理加速

除此之外,還可以將剪枝和蒸餾融合起來,但目前,該方法具體實現尚不清晰。

結構化剪枝方法 CoFi

為獲得較大的加速比和較低的精度損失,以及緩解模型訓練成本過高的問題,作者提出了結構化剪枝方法CoFi(Coarse- andFine-grained Pruning),方法由兩個部分組成:粗粒度和細粒度的剪枝以及從原模型(未剪枝)到剪枝模型的逐層蒸餾

粗粒度和細粒度的剪枝

在頭剪枝(head pruning)中,經常通過由 組成的 mask 矩陣來保留一部分 head ,但是,當 mask 矩陣全為 0,即去除掉所有的 head 時,會使模型優化變得困難。為此,作者為每一層的 MHA 和 FFN 引入兩個掩碼變量 和 ,多頭自注意力和前饋神經網絡可以表示為:

其中, 是輸入向量, 是 head 數量, , , , 分別是 query、key、value 和輸出的權重矩陣, 是 attention 函數, 和 分別是 FFN 的兩個權重, 和 分別是掩碼矩陣變量。

作者用 和 控制每一層的 MHA 和 FFN 是否剪枝以及 和 控制每一層的 MHA 和 FFN 中的哪些 head 和哪些維度需要剪枝。

除此之外,作者還對 和 的輸出在維度上作剪枝操作。具體做法是將掩碼變量 應用到模型中所有的權重矩陣,掩碼跨層共享的原因是作者考慮到模型中的殘差使得隱向量中的每個維度都可以連接到下一層相應的維度。

此外,作者定義了預期稀疏度:

其中, 是整個模型大小, 是 block 層數, 是隱藏層維度, 是多頭自注意力的每個 head 的向量維度, 是前饋網絡的維度,一般情況下,。

模型訓練階段,所有的掩碼元素的值處于之間,推理階段,會將低于閾值的掩碼變量映射為 0,得到最終的剪枝模型,其中,閾值由每個權重矩陣的預期稀疏度確定。

從原模型到剪枝模型的蒸餾

考慮到將剪枝和蒸餾融合可以提高性能,作者提出了用于剪枝的逐層蒸餾方法。與一般的蒸餾做法不同,作者沒有預先定義從教師網絡到學生網絡的固定的層映射,而是動態地搜索兩者之間的層映射。具體來說,假設 表示準備將知識蒸餾到學生網絡的教師網絡的層的集合, 是層映射函數,表示從教師網絡的第 層映射到的學生網絡的層,那么,隱藏層的蒸餾 可以定義為:

其中, 是線性變換矩陣, 和 分別是第 層學生網絡和第 層教師網絡的隱藏層表示。 定義如下:

其中,計算兩個層集合之間的距離(MSE)的操作是可以并行執行的。通過上面的層映射函數,教師網絡和學生網絡之間的層映射總是按照最有利于剪枝的方向進行。

最后,作者將逐層蒸餾和來自預測層(模型輸出)的蒸餾結合起來,得到最終的loss:

其中, 是超參, 和 分別是學生模型和教師模型的輸出概率分布。

實驗

數據集

作者使用的是 GLUE 數據集和 SQuAD v1.1 數據集,其中, GLUE 數據集包括 SST2、MNLI、QQP、QNLI、MRPC、CoLA、STS-B 和 RTE 八個數據集。

在四個相對較大的 GLUE 數據集(包括 MNLI、QNLI、SST-2 和 QQP)以及 SQuAD 數據集上,作者訓練了 20 個 epoch,并對最終的學生網絡微調了額外 20 個 epoch。在前 20 個 epoch 中,作者使用蒸餾的目標函數對模型進行微調 1 個 epoch,然后在 2 個 epoch 之內使模型達到期望的目標稀疏度。而對于四個較小的 GLUE 數據集,作者訓練了 100 個 epoch 并微調 20 個 epoch。作者用蒸餾目標函數微調模型 4 個epoch,并在接下來的 20 個 epoch 內將模型剪枝到期望的目標稀疏度。在達到目標稀疏度后,還會在剩余的訓練 epoch 階段繼續剪枝以搜索性能更好的網絡結構。

作者在每個數據集上依次訓練并微調不同目標稀疏度的模型。此外,作者在實驗中發現,訓練結束后的微調可以有效地保持模型不會有太大的精度損失。

模型對比

作者將 、、、、 作為 baseline,對比了 CoFi 和 baseline 在不同的加速比和模型大小的情況下準確率(acc)和 f1 的變化

e2b658c8-cf96-11ec-bce3-dac502259ad0.png

可以看到,在相同的加速比或相同的模型大小下,作者提出的方法 CoFi 都可以獲得更高的準確率(acc)或 f1

此外,作者還展示了 CoFi 和 的對比結果。

e2d4b732-cf96-11ec-bce3-dac502259ad0.png

其中, 使用大量無標簽數據通過預訓練的方式初始化學生網絡,和大規模預訓練語言模型一樣,這種從大規模語料庫中獲取通用知識的方式對學生模型性能有著十分重要的作用,但預訓練會花費太多的時間,如下圖所示:

e2e5e02a-cf96-11ec-bce3-dac502259ad0.png

從表 2 可以看到,CoFi 可以獲得和 基本一致的加速比和略高的模型預測準確度,與此同時,CoFi 模型的訓練時間較 得到了大幅的縮減,也證明了以蒸餾目標函數訓練的剪枝方法在模型壓縮方面是經濟且高效的。

除此之外,作者還使用相同的任務特定的數據分別為 和 CoFi 做數據增強,并對比了數據增強后的模型性能。

e30231c6-cf96-11ec-bce3-dac502259ad0.png

可以看到,數據增強后,CoFi 也基本有著高于 的模型性能。

e31d6158-cf96-11ec-bce3-dac502259ad0.png

▲sota剪枝和蒸餾方法的性能對比

消融實驗

作者做了一系列的消融實驗,證明了 CoFi 各個模塊的有效性。實驗結果如下所示:

e347ac1a-cf96-11ec-bce3-dac502259ad0.png

▲CoFi消融實驗-剪枝單元

e35c543a-cf96-11ec-bce3-dac502259ad0.png

▲CoFi消融實驗-蒸餾目標函數

剪枝后的模型的結構

作者研究了經過 CoFi 剪枝后得到的模型的結構,作者分別在五個數據集上在不同的目標稀疏度下訓練微調得到剪枝后的模型,并對模型的 FFN 層的平均中間維度以及 MHA 層的 head 平均剩余數量做了統計,結果如下:

e378ed0c-cf96-11ec-bce3-dac502259ad0.png

可以看到:

幾乎在所有的稀疏度下,前饋神經網絡層都存在明顯的剪枝,這表明 FFN 層比 MHA 層存在更多的冗余信息;

CoFi 傾向于更多地剪枝上層網絡結構

作者還詳細地展示了不同數據集下經 CoFi 剪枝后的模型的具體結構,下圖展示的是每個模型每層 MHA 和 FFN 模塊的保留情況。盡管模型大小基本一致,但不同的數據集卻訓練出結構存在明顯差異的模型,從側面也證明了不同的數據集存在不同的最優學生模型。

e3dcec76-cf96-11ec-bce3-dac502259ad0.png

▲經CoFi剪枝后的模型不同層子模塊保留情況

總結

作者提出的結構化剪枝方法 CoFi 在幾乎沒有太多精度損失的情況下,達到了 10 倍以上的加速比,同時,和常規的蒸餾做法相比,避免了因使用大量無標簽數據預訓練模型而帶來的訓練成本過高的問題,按作者的話來說,該方法可以是蒸餾的一個有效替代品。

當然,作者也指出,盡管 CoFi 可以應用到任務無關的模型的剪枝中,比如大規模預訓練語言模型,但由于上游剪枝方案設計的復雜性,作者還是將 CoFi 的應用場景限制到任務相關的模型壓縮中。試想下,如果可以將任務無關的模型壓縮到可以部署到移動設備或者可穿戴智能設備上,那么,世界又會是一番怎樣的景象呢?不知道這是不是丹琦女神給我們新開的一個“坑”呢?

審核編輯 :李倩

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

    關注

    68

    文章

    11278

    瀏覽量

    224960
  • 神經網絡
    +關注

    關注

    42

    文章

    4838

    瀏覽量

    107756
  • 模型
    +關注

    關注

    1

    文章

    3752

    瀏覽量

    52101

原文標題:ACL'22 | 陳丹琦提出CoFi模型剪枝,加速10倍,精度幾乎無損

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    訓練到推理:大模型算力需求的新拐點已至

    在大模型產業發展的早期階段,行業焦點主要集中在大模型訓練所需的算力投入。一個萬億參數大模型訓練可能需要數千張GPU芯片連續運行數月,
    的頭像 發表于 02-05 16:07 ?794次閱讀
    從<b class='flag-5'>訓練</b>到推理:大<b class='flag-5'>模型</b>算力需求的新拐點已至

    在Ubuntu20.04系統中訓練神經網絡模型的一些經驗

    本帖欲分享在Ubuntu20.04系統中訓練神經網絡模型的一些經驗。我們采用jupyter notebook作為開發IDE,以TensorFlow2為訓練框架,目標是訓練一個手寫數字識
    發表于 10-22 07:03

    ai_cube訓練模型最后部署失敗是什么原因?

    ai_cube訓練模型最后部署失敗是什么原因?文件保存路徑里也沒有中文 查看AICube/AI_Cube.log,看看報什么錯?
    發表于 07-30 08:15

    模型應用成本與門檻成CES?Asia?2025論壇熱議焦點

    在CES?Asia?2025同期舉辦的“大模型前沿與應用落地”論壇上,降低大模型應用成本與門檻的議題引發了熱烈討論。當前,盡管大模型展現出強大的潛力,在多領域實現了創新性應用,但
    的頭像 發表于 07-11 09:33 ?424次閱讀

    make sence成的XML文件能上傳到自助訓練模型上嗎?

    make sence成的XML文件能上傳到自助訓練模型上嗎
    發表于 06-23 07:38

    OCR識別訓練完成后給的是空壓縮包,為什么?

    OCR識別 一共弄了26張圖片,都標注好了,點擊開始訓練,顯示訓練成功了,也將壓縮包發到郵箱了,下載下來后,壓縮包里面是空的 OCR圖片20幾張圖太少了。麻煩您多添加點,參考我們的ocr識別訓練數據集 請問
    發表于 05-28 06:46

    海思SD3403邊緣計算AI數據訓練概述

    模型,將模型轉化為嵌入式AI模型,模型升級AI攝像機,進行AI識別應用。 AI訓練模型是不斷迭
    發表于 04-28 11:11

    恩智浦eIQ Time Series Studio工具使用教程之模型訓練

    大家好,eIQ Time SeriesStudio又和大家見面啦!本章為大家帶來工具核心部分-模型訓練
    的頭像 發表于 03-25 15:25 ?1707次閱讀
    恩智浦eIQ Time Series Studio工具使用教程之<b class='flag-5'>模型</b><b class='flag-5'>訓練</b>

    請問如何在imx8mplus上部署和運行YOLOv5訓練模型

    我正在從事 imx8mplus yocto 項目。我已經在自定義數據集上的 YOLOv5 上訓練了對象檢測模型。它在 ubuntu 電腦上運行良好?,F在我想在我的 imx8mplus 板上運行該模型
    發表于 03-25 07:23

    數據標注服務—奠定大模型訓練的數據基石

    數據標注是大模型訓練過程中不可或缺的基礎環節,其質量直接影響著模型的性能表現。在大模型訓練中,數據標注承擔著將原始數據轉化為機器可理解、可學
    的頭像 發表于 03-21 10:30 ?3286次閱讀

    標貝數據標注服務:奠定大模型訓練的數據基石

    數據標注是大模型訓練過程中不可或缺的基礎環節,其質量直接影響著模型的性能表現。在大模型訓練中,數據標注承擔著將原始數據轉化為機器可理解、可學
    的頭像 發表于 03-21 10:27 ?1109次閱讀
    標貝數據標注服務:奠定大<b class='flag-5'>模型</b><b class='flag-5'>訓練</b>的數據基石

    利用RAKsmart服務器托管AI模型訓練的優勢

    AI模型訓練需要強大的計算資源、高效的存儲和穩定的網絡支持,這對服務器的性能提出了較高要求。而RAKsmart服務器憑借其核心優勢,成為托管AI模型訓練的理想選擇。下面,AI部落小編為
    的頭像 發表于 03-18 10:08 ?687次閱讀

    憶聯PCIe 5.0 SSD支撐大模型全流程訓練

    當前,大模型全流程訓練對數據存儲系統的要求已突破傳統邊界。企業級SSD作為AI算力基礎設施的核心組件,其高可靠性、高性能及智能化管理能力,正成為支撐大模型訓練效率與穩定性的關鍵。 從海
    的頭像 發表于 03-11 10:26 ?1144次閱讀
    憶聯PCIe 5.0 SSD支撐大<b class='flag-5'>模型</b>全流程<b class='flag-5'>訓練</b>

    訓練好的ai模型導入cubemx不成功怎么處理?

    訓練好的ai模型導入cubemx不成功咋辦,試了好幾個模型壓縮了也不行,ram占用過大,有無解決方案?
    發表于 03-11 07:18

    是否可以輸入隨機數據集來生成INT8訓練后量化模型?

    無法確定是否可以輸入隨機數據集來生成 INT8 訓練后量化模型
    發表于 03-06 06:45