本公開涉及計算機,尤其涉及一種圖中斷優化方法、圖中斷優化裝置、電子設備、計算機可讀存儲介質和計算機程序產品。
背景技術:
1、隨著人工智能技術的快速發展,大語言模型(如chatgpt)在自然語言處理、機器翻譯、文本生成等領域展現出了卓越的性能。然而,大語言模型的復雜性和規模也帶來了巨大的訓練成本和資源需求。大語言模型通常需要昂貴的多卡多節點gpu(graphicsprocessing?unit,圖像處理單元)集群進行訓練,這不僅增加了硬件成本,還對訓練效率提出了更高的要求。相關技術中的開源系統在訓練大語言模型時,機器利用率通常較低,導致資源浪費。
2、為了應對這些挑戰,相關技術將torchcompile引入到megatron-lm框架中,基于圖優化技術可以進一步提升分布式訓練的性能。盡管torchcompile提供了顯著的性能提升,但在實際應用中,torchdynamo會創建圖中斷(graph?break),導致限制了torchcompile在megatron-lm框架中的性能提升。
技術實現思路
1、本公開提供了一種圖中斷優化技術方案。
2、根據本公開的一方面,提供了一種圖中斷優化方法,包括:
3、捕獲目標模型的計算過程,生成所述目標模型的計算圖;
4、對于所述計算圖的生成過程中出現的圖中斷,識別所述圖中斷的中斷產生原因;
5、根據所述中斷產生原因,消除所述圖中斷;
6、響應于所述圖中斷消除,更新所述計算圖。
7、在一種可能的實現方式中,所述根據所述中斷產生原因,消除所述圖中斷,包括:
8、響應于所述中斷產生原因為應用程序編程接口集合通信操作不支持捕獲到計算圖中,將所述集合通信操作替換為支持捕獲到計算圖中的等效集合通信操作。
9、在一種可能的實現方式中,所述集合通信操作不支持捕獲到計算圖中包括:
10、所述集合通信操作不被靜態圖捕獲工具支持,或者,所述集合通信操作與靜態圖執行模式不兼容。
11、在一種可能的實現方式中,所述根據所述中斷產生原因,消除所述圖中斷,包括:
12、響應于所述中斷產生原因為存在自定義操作,獲得所述自定義操作的描述信息,其中,所述自定義操作的描述信息包括所述自定義操作的操作類型、輸入輸出格式和執行邏輯中的至少部分;
13、根據所述自定義操作的描述信息,在深度學習框架中注冊所述自定義操作。
14、在一種可能的實現方式中,所述根據所述中斷產生原因,消除所述圖中斷,包括:
15、響應于所述中斷產生原因為斷言檢查,暫時移除或禁用所述斷言檢查,并在輸入數據參與自動微分計算之前,將所述輸入數據的內存布局轉換為連續的。
16、在一種可能的實現方式中,所述根據所述中斷產生原因,消除所述圖中斷,包括:
17、響應于所述中斷產生原因為原有代碼包含預設的上下文環境設置信息,采用不包含所述預設的上下文環境設置信息的等效代碼替換所述原有代碼。
18、在一種可能的實現方式中,
19、在所述識別所述圖中斷的中斷產生原因之后,所述根據所述中斷產生原因,消除所述圖中斷之前,所述方法還包括:將所述中斷產生原因存儲在預設集合中,其中,所述預設集合用于自動去除重復的中斷產生原因;
20、所述根據所述中斷產生原因,消除所述圖中斷,包括:對于所述預設集合中的任意一種中斷產生原因,根據所述中斷產生原因,批量消除所述中斷產生原因對應的所有圖中斷。
21、在一種可能的實現方式中,所述根據所述中斷產生原因,消除所述圖中斷,包括:
22、響應于所述中斷產生原因屬于預設的中斷產生原因集,根據所述中斷產生原因,消除所述圖中斷。
23、根據本公開的一方面,提供了一種圖中斷優化裝置,包括:
24、生成模塊,用于捕獲目標模型的計算過程,生成所述目標模型的計算圖;
25、識別模塊,用于對于所述計算圖的生成過程中出現的圖中斷,識別所述圖中斷的中斷產生原因;
26、消除模塊,用于根據所述中斷產生原因,消除所述圖中斷;
27、更新模塊,用于響應于所述圖中斷消除,更新所述計算圖。
28、在一種可能的實現方式中,所述消除模塊用于:
29、響應于所述中斷產生原因為應用程序編程接口集合通信操作不支持捕獲到計算圖中,將所述集合通信操作替換為支持捕獲到計算圖中的等效集合通信操作。
30、在一種可能的實現方式中,所述集合通信操作不支持捕獲到計算圖中包括:
31、所述集合通信操作不被靜態圖捕獲工具支持,或者,所述集合通信操作與靜態圖執行模式不兼容。
32、在一種可能的實現方式中,所述消除模塊用于:
33、響應于所述中斷產生原因為存在自定義操作,獲得所述自定義操作的描述信息,其中,所述自定義操作的描述信息包括所述自定義操作的操作類型、輸入輸出格式和執行邏輯中的至少部分;
34、根據所述自定義操作的描述信息,在深度學習框架中注冊所述自定義操作。
35、在一種可能的實現方式中,所述消除模塊用于:
36、響應于所述中斷產生原因為斷言檢查,暫時移除或禁用所述斷言檢查,并在輸入數據參與自動微分計算之前,將所述輸入數據的內存布局轉換為連續的。
37、在一種可能的實現方式中,所述消除模塊用于:
38、響應于所述中斷產生原因為原有代碼包含預設的上下文環境設置信息,采用不包含所述預設的上下文環境設置信息的等效代碼替換所述原有代碼。
39、在一種可能的實現方式中,
40、所述裝置還包括:存儲模塊,用于將所述中斷產生原因存儲在預設集合中,其中,所述預設集合用于自動去除重復的中斷產生原因;
41、所述消除模塊用于:對于所述預設集合中的任意一種中斷產生原因,根據所述中斷產生原因,批量消除所述中斷產生原因對應的所有圖中斷。
42、在一種可能的實現方式中,所述消除模塊用于:
43、響應于所述中斷產生原因屬于預設的中斷產生原因集,根據所述中斷產生原因,消除所述圖中斷。
44、根據本公開的一方面,提供了一種電子設備,包括:一個或多個處理器;用于存儲可執行指令的存儲器;其中,所述一個或多個處理器被配置為調用所述存儲器存儲的可執行指令,以執行上述方法。
45、根據本公開的一方面,提供了一種計算機可讀存儲介質,其上存儲有計算機程序指令,所述計算機程序指令被處理器執行時實現上述方法。
46、根據本公開的一方面,提供了一種計算機程序產品,包括計算機可讀代碼,或者承載有計算機可讀代碼的非易失性計算機可讀存儲介質,當所述計算機可讀代碼在電子設備中運行時,所述電子設備中的處理器執行上述方法。
47、在本公開實施例中,通過捕獲目標模型的計算過程,生成所述目標模型的計算圖,對于所述計算圖的生成過程中出現的圖中斷,識別所述圖中斷的中斷產生原因,根據所述中斷產生原因,消除所述圖中斷,并響應于所述圖中斷消除,更新所述計算圖,由此通過消除圖中斷,可以使得更多的算子被包含在計算圖中,即,能夠減少計算圖的子圖的數量,從而能夠進一步提高圖優化能力。通過采用本公開實施例,能夠生成更加連續和完整的計算圖。連續的計算圖可以提高執行效率,減少訓練過程中的延遲和開銷,從而提升模型訓練的性能。另外,本公開實施例能夠減少因圖中斷導致的額外計算和內存使用,使得計算資源得到更有效的利用。此外,本公開實施例具備可擴展性,能夠適應不同的硬件平臺和訓練環境。
48、應當理解的是,以上的一般描述和后文的細節描述僅是示例性和解釋性的,而非限制本公開。
49、根據下面參考附圖對示例性實施例的詳細說明,本公開的其它特征及方面將變得清楚。