System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及大模型,尤其涉及一種基于動態自適應蒸餾的模型壓縮方法、一種基于動態自適應蒸餾的模型壓縮系統以及一種電子設備。
技術介紹
1、近年來,大語言模型(large?language?model,llms)在自然語言處理(nlp)領域取得了巨大的突破,特別是在機器翻譯、文本摘要和智能問答等方面。然而,這些大型的語言模型通常包含數十億到數千億的參數。這導致訓練和推理的計算成本極高,使得它們很難在資源有限的環境中部署,如移動設備和邊緣計算。為了解決資源的問題,對模型進行壓縮是非常重要的。常見的模型壓縮方法有下面兩種。
2、知識蒸餾:這是一種模型壓縮技術,通過將大模型(稱為教師模型)中學到的知識傳遞給較小的模型(稱為學生模型)。它通過最小化學生模型與教師模型輸出之間的差異來實現。對于這種差異,一般采用庫貝克-萊布勒散度來衡量。其使學生模型更多地關注教師模型的概率較高的類別,在一定程度上提高了學生模型的收斂速度和性能表現。
3、參數剪枝:通過移除神經網絡中的冗余參數來減少模型的大小和計算復雜度。剪枝可以在訓練過程中逐步地進行,也可以在訓練后一次性進行。并且,它可以在剪枝后重新進行訓練,可以多次地進行剪枝和重新訓練。
4、但該兩種模型壓縮方法均存在一定缺陷,具體如下:
5、知識蒸餾:目前的文本生成任務的輸出概率分布具有較高的復雜性,這可能導致學生模型無法完全捕捉教師模型的輸出分布,或過于集中在高概率分布區域,這會導致學生模型不能獲得最佳的性能表現。其次,常規的知識蒸餾方法一般使用固定的數
6、參數剪枝:這種方法對于選擇合適的剪枝準則和閾值非常關鍵且困難,不同的準則可能導致不同的效果。并且,剪枝后模型的結構可能變得不規則,這可能對硬件的并行計算帶來挑戰。因此,它在穩定性方面表現不佳,過于依賴剪枝的準則和閾值參數,難以保證剪枝后模型的性能,難以適用于多種文本生成任務。
技術實現思路
1、針對上述問題,本專利技術提供了一種基于動態自適應蒸餾的模型壓縮方法、系統及設備,通過采用模型凍結的策略進行訓練,不僅能大幅度降低模型訓練的內存、顯存等資源需求,還能提升模型的訓練效率和實際的性能,采用知識蒸餾方式訓練的同時引入動態自適應蒸餾損失函數,在實現模型壓縮的同時,能高效地將教師模型的知識傳遞給學生模型,動態自適應蒸餾損失函數結合迭代次數和余弦函數的動態漸變性,其能自適應地調節學生模型自身的優化目標,不僅能高效地學習教師模型的輸出偏好,同時還能防止其高估教師模型分布的低概率區域。
2、為實現上述目的,本專利技術提供了一種基于動態自適應蒸餾的模型壓縮方法,包括:
3、獲取與大模型相關的通用公共數據,并篩選得到訓練數據集;
4、依據開源框架將所述訓練數據集輸入現有大模型進行微調訓練,將微調訓練后的模型作為教師模型;
5、確定學生模型,并采用部分權重凍結策略確定所述學生模型的訓練狀態;
6、將所述訓練數據分別輸入所述學生模型和所述教師模型進行前向傳播,以skl和srkl結合的動態自適應蒸餾損失函數,計算動態自適應蒸餾損失并更新優化權重,完成對所述學生模型的蒸餾訓練,實現由所述教師模型向所述學生模型的壓縮。
7、在上述技術方案中,優選地,基于動態自適應蒸餾的模型壓縮方法還包括:
8、對訓練完成的所述學生模型進行測試驗證,確定所述學生模型能夠達到期望的預測結果。
9、在上述技術方案中,優選地,所述獲取與大模型相關的通用公共數據,并篩選得到訓練數據集,具體過程包括:
10、收集與所述大模型相關的通用公共數據,并由所述通用公共數據中篩選得到優質數據,其中,所述通用公共數據包括閱讀理解、信息抽取、文本摘要、機器翻譯和智能問答方面的數據;
11、針對所述優質數據,以“instruction”、“input”和“output”三個鍵值對的形式保存為json文件,作為所述訓練數據集,其中,“instruction”表示對模型下達的任務指令,“input”表示輸入模型的文本內容,“output”表示模型標準的響應結果。
12、在上述技術方案中,優選地,所述依據開源框架將所述訓練數據集輸入現有大模型進行微調訓練,將微調訓練后的模型作為教師模型,具體過程包括:
13、將所述訓練數據集輸入internlm2-7b,依據開源框架huggingface進行微調訓練,所述微調訓練包括原始文本的分詞處理、數據及模型的并行、前向傳播并計算損失值、反向梯度計算及更新、模型權重保存;
14、將微調訓練后的internlm2-7b模型作為教師模型。
15、在上述技術方案中,優選地,所述確定學生模型,并采用部分權重凍結策略確定所述學生模型的訓練狀態,具體過程包括:
16、將internlm2-1.8b模型作為學生模型;
17、采用首尾兩端及中間部分層放開訓練、其余層凍結的部分權重凍結策略,確定所述學生模型的訓練狀態。
18、在上述技術方案中,優選地,所述將所述訓練數據分別輸入所述學生模型和所述教師模型進行前向傳播,以skl和srkl結合的動態自適應蒸餾損失函數,計算動態自適應蒸餾損失并更新優化權重,具體過程包括:
19、初始化蒸餾訓練的超參數,加載訓練數據和所述學生模型的分詞器,并將所述訓練數據進行分詞;
20、加載所述學生模型,按照所述訓練狀態對所述學生模型進行訓練;
21、加載所述教師模型,并設置為模型驗證狀態,對每個批次的所述訓練數據,分別輸入至所述學生模型和所述教師模型進行前向傳播,得到對應的輸出概率;
22、對所述學生模型和所述教師模型的輸出概率分別進行常規損失函數計算和蒸餾損失計算,其中,常規損失計算表示對預測結果與標簽進行交叉熵損失函數計算,蒸餾損失計算基于傾斜kl散度損失skl和傾斜反向kl散度損失srkl得到,skl損失采用參數控制所述學生模型和所述教師模型分布的混合比例,srkl損失通過將所述學生模型和所述教師模型的輸出概率進行互換計算得到;
23、采用余弦函數和迭代次數將所述skl損失和所述srkl損失進行結合得到動態自適應蒸餾損失,
24、將所述常規損失函數與所述動態自適應蒸餾損失進行加權計算,并隨著迭代次數增加對模型權重進行更新優化,使得所述學生模型的輸出概率向所述教師模型的輸出概率分布靠近以模仿所述教師模型的預測方式。
25、在上述技術方案中,優選地,所述對訓練完成的所述學生模型進行測試驗證的具體過程包括:
26、采用transformer庫記載訓練完成的所述學生模型和分詞器,通過所述分詞器對實際測試數據進行分詞;
27、將得到的分詞id輸入至所述學生模型進行模型推理本文檔來自技高網...
【技術保護點】
1.一種基于動態自適應蒸餾的模型壓縮方法,其特征在于,包括:
2.根據權利要求1所述的基于動態自適應蒸餾的模型壓縮方法,其特征在于,還包括:
3.根據權利要求1或2所述的基于動態自適應蒸餾的模型壓縮方法,其特征在于,所述獲取與大模型相關的通用公共數據,并篩選得到訓練數據集,具體過程包括:
4.根據權利要求3所述的基于動態自適應蒸餾的模型壓縮方法,其特征在于,所述依據開源框架將所述訓練數據集輸入現有大模型進行微調訓練,將微調訓練后的模型作為教師模型,具體過程包括:
5.根據權利要求4所述的基于動態自適應蒸餾的模型壓縮方法,其特征在于,所述確定學生模型,并采用部分權重凍結策略確定所述學生模型的訓練狀態,具體過程包括:
6.根據權利要求5所述的基于動態自適應蒸餾的模型壓縮方法,其特征在于,所述將所述訓練數據分別輸入所述學生模型和所述教師模型進行前向傳播,以SKL和SRKL結合的動態自適應蒸餾損失函數,計算動態自適應蒸餾損失并更新優化權重,具體過程包括:
7.根據權利要求2所述的基于動態自適應蒸餾的模型壓縮方法,其特
8.一種基于動態自適應蒸餾的模型壓縮系統,其特征在于,應用如權利要求1至7中任一項所述的基于動態自適應蒸餾的模型壓縮方法,包括:
9.根據權利要求8所述的基于動態自適應蒸餾的模型壓縮系統,其特征在于,還包括模型測試驗證模塊,用于對訓練完成的所述學生模型進行測試驗證,確定所述學生模型能夠達到期望的預測結果。
10.一種電子設備,其特征在于,所述電子設備包括存儲器及處理器,所述存儲器用于存儲至少一個指令,所述處理器用于執行所述至少一個指令,以實現如權利要求1至7中任一項所述的基于動態自適應蒸餾的模型壓縮方法。
...【技術特征摘要】
1.一種基于動態自適應蒸餾的模型壓縮方法,其特征在于,包括:
2.根據權利要求1所述的基于動態自適應蒸餾的模型壓縮方法,其特征在于,還包括:
3.根據權利要求1或2所述的基于動態自適應蒸餾的模型壓縮方法,其特征在于,所述獲取與大模型相關的通用公共數據,并篩選得到訓練數據集,具體過程包括:
4.根據權利要求3所述的基于動態自適應蒸餾的模型壓縮方法,其特征在于,所述依據開源框架將所述訓練數據集輸入現有大模型進行微調訓練,將微調訓練后的模型作為教師模型,具體過程包括:
5.根據權利要求4所述的基于動態自適應蒸餾的模型壓縮方法,其特征在于,所述確定學生模型,并采用部分權重凍結策略確定所述學生模型的訓練狀態,具體過程包括:
6.根據權利要求5所述的基于動態自適應蒸餾的模型壓縮方法,其特征在于,所述將所述訓練數據分別輸入所述學生模型和所述教師模型...
【專利技術屬性】
技術研發人員:王帆,
申請(專利權)人:北京思特奇信息技術股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。