本公開涉及計算機,尤其涉及一種模型訓練方法及裝置、電子設備和存儲介質。
背景技術:
1、近些年,大語言模型引發了人工智能領域的風潮,很多公司都想要更輕松、快速、經濟的訓練和部署自己的大語言模型。但是,隨著模型越來越大,訓練成本隨之增加,訓練這樣的大模型,需要昂貴的多卡多節點gpu集群,硬件資源昂貴。即使擁有了gpu集群,現有的開源系統訓練效率對機器利用率低。deepspeed是一個開源深度學習優化庫,旨在提高大規模模型訓練的效率和可擴展性。當前,亟需一種模型訓練方法,以使得可以利用deepspeed這樣的模型訓練框架,適配自身的gpu集群實現大模型訓練。
技術實現思路
1、本公開提出了一種模型訓練方法及裝置、電子設備和存儲介質的技術方案。
2、根據本公開的一方面,提供了一種模型訓練方法,包括:確定第一模型訓練框架,其中,所述第一模型訓練框架為調用第一gpu進行模型訓練的模型訓練框架,所述第一模型訓練框架是對第二模型訓練框架進行參數轉換后得到的,所述第二模型訓練框架為調用第二gpu進行模型訓練的模型訓練框架,其中,所述第一gpu和所述第二gpu為不同類型架構配置的gpu;基于所述第一模型訓練框架,調用所述第一gpu進行模型預訓練。
3、在一種可能的實現方式中,所述確定第一模型訓練框架,包括:對所述第二模型訓練框架對應的第一源代碼進行參數轉換,得到所述第一模型訓練框架對應的第二源代碼;調用所述第一gpu對應的編譯器,對所述第二源代碼執行代碼編譯操作,得到所述第一模型訓練框架對應的目標可執行文件。
4、在一種可能的實現方式中,所述第一模型訓練框架中包括:適配所述第一gpu對應的第一軟件棧的第一類型應用程序編程接口api、第一類型頭文件、第一類型通信庫;所述對所述第二模型訓練框架對應的第一源代碼進行參數轉換,得到所述第一模型訓練框架對應的第二源代碼,包括:在所述第一源代碼中,對第二類型api執行接口轉換操作,得到所述第一類型api,其中,所述第二類型api為適配所述第二gpu對應的第二軟件棧的api;在所述第一源代碼中,對第二類型頭文件執行替換操作,得到所述第一類型頭文件,其中,所述第二類型頭文件為適配所述第二軟件棧的頭文件;在所述第一源代碼中,對第二類型通信庫執行替換操作,得到所述第一類型通信庫,其中,所述第二類型通信庫為適配所述第二軟件棧的通信庫。
5、在一種可能的實現方式中,所述第一模型訓練框架中包括:適配所述第一軟件棧的第一類型加速器;所述方法還包括:在所述第一源代碼中,基于加速器基類,確定以及配置所述第一類型加速器。
6、在一種可能的實現方式中,所述方法還包括:在所述第一源代碼中,篩選非必要函數,以及為所述非必要函數設置注釋標簽,其中,所述非必要函數為與模型訓練無關的函數,所述注釋標簽用于指示不運行所述非必要函數。
7、在一種可能的實現方式中,所述調用所述第一gpu對應的編譯器,對所述第二源代碼執行代碼編譯操作,得到所述第一模型訓練框架對應的目標可執行文件,包括:在所述第二源代碼中,對第一文件類型的核函數文件執行文件類型轉換操作,得到第二文件類型的核函數文件,其中,所述第一文件類型為適配所述第二gpu對應的編譯器的文件類型,所述第二文件類型為適配所述第一gpu對應的編譯器的文件類型;調用所述第一gpu對應的編譯器,對執行完文件類型轉換操作后得到的第三源代碼執行代碼編譯操作,得到所述目標可執行文件。
8、在一種可能的實現方式中,所述調用所述第一gpu對應的編譯器,對執行完文件類型轉換操作后得到的第三源代碼執行代碼編譯操作,得到所述目標可執行文件,包括:調用所述第一gpu對應的編譯器,對所述第三源代碼執行代碼編譯操作,得到編譯結果;在所述編譯結果不存在編譯錯誤項的情況下,根據所述編譯結果,得到所述目標可執行文件。
9、在一種可能的實現方式中,所述方法還包括:在所述編譯結果存在編譯錯誤項的情況下,對所述第三源代碼中對所述編譯錯誤項的相關代碼進行適配操作,得到更新后的所述第三源代碼;調用所述第一gpu對應的編譯器,對更新后的所述第三源代碼執行代碼編譯操作,得到所述目標可執行文件。
10、根據本公開的一方面,提供了一種模型訓練裝置,包括:訓練框架確定模塊,用于確定第一模型訓練框架,其中,所述第一模型訓練框架為調用第一gpu進行模型訓練的模型訓練框架,所述第一模型訓練框架是對第二模型訓練框架進行參數轉換后得到的,所述第二模型訓練框架為調用第二gpu進行模型訓練的模型訓練框架,其中,所述第一gpu和所述第二gpu為不同類型架構配置的gpu;預訓練模塊,用于基于所述第一模型訓練框架,調用所述第一gpu進行模型預訓練。
11、根據本公開的一方面,提供了一種電子設備,包括:處理器;用于存儲處理器可執行指令的存儲器;其中,所述處理器被配置為調用所述存儲器存儲的指令,以執行上述方法。
12、根據本公開的一方面,提供了一種計算機可讀存儲介質,其上存儲有計算機程序指令,所述計算機程序指令被處理器執行時實現上述方法。
13、在本公開實施例中,通過對適配第二gpu的第二模型訓練框架進行參數轉換,確定適配第一gpu的第一模型訓練框架,進而可以基于第一模型訓練框架,調用第一gpu進行模型預訓練,從而有效使得第一gpu具備基于第一模型訓練框架進行大模型預訓練的能力。
14、應當理解的是,以上的一般描述和后文的細節描述僅是示例性和解釋性的,而非限制本公開。根據下面參考附圖對示例性實施例的詳細說明,本公開的其它特征及方面將變得清楚。
1.一種模型訓練方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述確定第一模型訓練框架,包括:
3.根據權利要求2所述的方法,其特征在于,所述第一模型訓練框架中包括:適配所述第一gpu對應的第一軟件棧的第一類型應用程序編程接口api、第一類型頭文件、第一類型通信庫;
4.根據權利要求3所述的方法,其特征在于,所述第一模型訓練框架中包括:適配所述第一軟件棧的第一類型加速器;
5.根據權利要求3所述的方法,其特征在于,所述方法還包括:
6.根據權利要求2所述的方法,其特征在于,所述調用所述第一gpu對應的編譯器,對所述第二源代碼執行代碼編譯操作,得到所述第一模型訓練框架對應的目標可執行文件,包括:
7.根據權利要求6所述的方法,其特征在于,所述調用所述第一gpu對應的編譯器,對執行完文件類型轉換操作后得到的第三源代碼執行代碼編譯操作,得到所述目標可執行文件,包括:
8.根據權利要求7所述的方法,其特征在于,所述方法還包括:
9.一種模型訓練裝置,其特征在于,包括:
10.一種電子設備,其特征在于,包括:
11.一種計算機可讀存儲介質,其上存儲有計算機程序指令,其特征在于,所述計算機程序指令被處理器執行時實現權利要求1至8中任意一項所述的方法。