TWI783355B - 深度學習模型的分布式訓練方法以及裝置 - Google Patents

深度學習模型的分布式訓練方法以及裝置 Download PDF

Info

Publication number
TWI783355B
TWI783355B TW110102762A TW110102762A TWI783355B TW I783355 B TWI783355 B TW I783355B TW 110102762 A TW110102762 A TW 110102762A TW 110102762 A TW110102762 A TW 110102762A TW I783355 B TWI783355 B TW I783355B
Authority
TW
Taiwan
Prior art keywords
training
nodes
node
elastic scaling
task
Prior art date
Application number
TW110102762A
Other languages
English (en)
Other versions
TW202207030A (zh
Inventor
喬蕭雅
劉國寶
周雍愷
Original Assignee
大陸商中國銀聯股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 大陸商中國銀聯股份有限公司 filed Critical 大陸商中國銀聯股份有限公司
Publication of TW202207030A publication Critical patent/TW202207030A/zh
Application granted granted Critical
Publication of TWI783355B publication Critical patent/TWI783355B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Neurology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Feedback Control In General (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本發明公開了一種深度學習模型的分布式訓練方法以及裝置,具體實現方案為:方法包括:獲取深度學習平臺發送的訓練任務對應的訓練狀態數據;根據訓練任務對應的集群資源需求生成彈性伸縮策略;採用彈性伸縮策略動態調整訓練任務對應的訓練節點的數量;根據訓練狀態數據和調整後的訓練節點,執行訓練任務。提高了訓練任務對應的集群資源需求的適應性,提高了GPU或CPU資源利用率,能夠確保在任何時候加入或删除訓練節點的情況下,利用調整後的訓練節點都能夠正確並高效的執行訓練任務。

Description

深度學習模型的分布式訓練方法以及裝置
本發明涉及深度學習領域,尤其涉及分布式訓練領域。
深度學習流程架/平臺支持分布式訓練模式,即使用多台設備,每台設備上可以設置多個GPU(圖形處理器,Graphics Processing Unit),深度學習模型在各台設備中的GPU上並行化地訓練。現有的深度學習流程架/平臺,例如,TensorFlow(基於數據流編程,dataflow programming)原生的PS(參數服務,Parameter server)架構,支持異步訓練模式。在深度學習流程架/平臺運行時,可以將深度學習流程架/平臺部署到具體的物理集群,TensorFlow集群中的節點被分為兩類:參數伺服器(parameter server)和工作伺服器(worker)。參數伺服器存放模型的參數,而工作伺服器負責計算參數的梯度,給工作伺服器配置GPU。在每個迭代過程,工作伺服器從參數伺服器中獲得參數,然後將計算的梯度返回給參數伺服器,參數伺服器聚合從工作伺服器傳回的梯度,然後更新參數,並將新的參數廣播給工作伺服器。
然而,由於深度學習模型在進行不同的訓練任務時,一些訓練任務需要更多的GPU,另一些訓練任務中則僅僅需要較少的GPU,或者一些特殊的訓練任務使用GPU時會呈現一定的周期性特徵,存在使用峰值和穀值,導致在一些訓練任務中,GPU會出現空置狀態。因此,針對不同的訓練任務,無法對工作伺服器的數量進行適應性調整,導致GPU集群利用率較低。
本發明實施例提供一種深度學習模型的分布式訓練方法以及裝置,以解決相關技術存在的問題,技術方案如下:
第一方面,本發明實施方式提供了一種深度學習模型的分布式訓練方法,包括:
獲取深度學習平臺發送的訓練任務對應的訓練狀態數據;
根據訓練任務對應的集群資源需求生成彈性伸縮策略;
採用彈性伸縮策略動態調整訓練任務對應的訓練節點的數量;
根據訓練狀態數據和調整後的訓練節點,執行訓練任務。
在一種實施方式中,獲取深度學習平臺發送的訓練任務對應的訓練狀態數據,包括:
獲取深度學習平臺發送的第一應用程式介面,第一應用程式介面是深度學習平臺根據用戶發送的調用指令調用得到的;
其中,第一應用程式介面包括訓練狀態數據,訓練狀態數據包括梯度和更新輪次N(N大於或等於1),梯度是調整前的訓練節點完成第N輪參數更新之後計算得到的。
在一種實施方式中,根據訓練任務對應的集群資源需求生成彈性伸縮策略,包括:
根據用戶發送的集群資源需求生成第一彈性伸縮策略,第一彈性伸縮策略包括增加或減少訓練節點的數量。
在一種實施方式中,根據訓練任務對應的集群資源需求生成彈性伸縮策略,包括:
對集群資源進行監控,確定閒置資源,並根據閒置資源生成第二彈性伸縮策略,第二彈性伸縮策略包括增加訓練節點的數量。
在一種實施方式中,根據訓練任務對應的集群資源需求生成彈性伸縮策略,包括:
對訓練任務對應的訓練節點進行監控,確定故障節點,並根據故障節點所釋放的集群資源生成第三彈性伸縮策略,第三彈性伸縮策略包括删除故障節點。
在一種實施方式中,根據訓練任務對應的集群資源需求生成彈性伸縮策略,包括:
根據優先級大於閾值的訓練任務所需的集群資源,生成第四彈性伸縮策略,第四彈性伸縮策略包括減少訓練節點的數量。
在一種實施方式中,採用彈性伸縮策略動態調整訓練任務對應的訓練節點的數量,包括:
調用第二應用程式介面,並將第二應用程式介面發送至算力平臺,以使算力平臺採用彈性伸縮策略動態調整訓練任務對應的訓練節點的數量;其中,第二應用程式介面包括第一彈性伸縮策略、第二彈性伸縮策略、第三彈性伸縮策略以及第四彈性伸縮策略中的至少一種。
在一種實施方式中,針對訓練狀態數據,根據訓練狀態數據和調整後的訓練節點,執行訓練任務,包括:
在訓練任務啓動的情況下,控制調整前的訓練節點執行主節點選舉進程,以確定主節點,並控制主節點執行構建調整前的訓練節點的通信拓撲的步驟。
在一種實施方式中,根據訓練狀態數據和調整後的訓練節點,執行訓練任務,包括:
在增加訓練節點的情況下,控制主節點執行基於調整前的訓練節點的通信拓撲和新增加的訓練節點,構建新的通信拓撲,並將新的通信拓撲和訓練狀態數據同步於調整後的訓練節點的步驟;
算力平臺根據彈性伸縮策略將增加後的訓練節點調度至對應的物理節點,以使物理節點針對訓練狀態數據,按照新的通信拓撲執行訓練任務。
在一種實施方式中,根據訓練狀態數據和調整後的訓練節點,執行訓練任務,包括:
在減少訓練節點的數量情況下,控制主節點基於調整後的訓練節點構建新的通信拓撲,並將新的通信拓撲同步於調整後的訓練節點;
算力平臺根據彈性伸縮策略將減少後的訓練節點調度至對應的物理節點,以使物理節點針對訓練狀態數據,按照新的通信拓撲執行訓練任務。
在一種實施方式中,還包括:
控制主節點存儲訓練狀態數據至數據庫中;
在訓練節點執行訓練任務失敗的情況下,重新啓動訓練節點,並加載數據庫中的訓練狀態數據,以恢復執行訓練任務。
在一種實施方式中,還包括:
控制主節點針對多個數據分區建立分區索引,數據分區是對訓練過程中所需的訓練元數據集合進行劃分得到的;
在主節點接收訓練節點發送的數據讀取請求的情況下,控制主節點執行利用分區索引為訓練節點配置數據分區的步驟。
在一種實施方式中,還包括:
記錄各個數據分區被讀取的次數,並在訓練節點執行訓練任務時,分配被讀取次數小於閾值的數據分區。
第二方面,本申請實施例提供一種深度學習模型的分布式訓練裝置,包括:
訓練狀態數據獲取模組,用於獲取深度學習平臺發送的訓練任務對應的訓練狀態數據;
彈性伸縮策略生成模組,用於根據訓練任務對應的集群資源需求生成彈性伸縮策略;
訓練節點數量調整模組,用於採用彈性伸縮策略動態調整訓練任務對應的訓練節點的數量;
訓練任務執行模組,用於根據訓練狀態數據和調整後的訓練節點,執行訓練任務。
在一種實施方式中,訓練狀態數據獲取模組,包括:
第一應用程序發送子模組,用於獲取深度學習平臺發送的第一應用程式介面,第一應用程式介面是深度學習平臺根據用戶發送的調用指令調用得到的;
其中,第一應用程式介面包括訓練狀態數據,訓練狀態數據包括梯度和更新輪次N(N大於或等於1),梯度是調整前的訓練節點完成第N輪參數更新之後計算得到的。
在一種實施方式中,彈性伸縮策略生成模組,包括:
第一策略生成子模組,用於根據用戶發送的集群資源需求生成第一彈性伸縮策略,第一彈性伸縮策略包括增加或減少訓練節點的數量。
在一種實施方式中,彈性伸縮策略生成模組,包括:
第二策略生成子模組,用於對集群資源進行監控,確定閒置資源,並根據閒置資源生成第二彈性伸縮策略,第二彈性伸縮策略包括增加訓練節點的數量。
在一種實施方式中,彈性伸縮策略生成模組,包括:
第三策略生成子模組,用於對訓練任務對應的訓練節點進行監控,確定故障節點,並根據故障節點所釋放的集群資源生成第三彈性伸縮策略,第三彈性伸縮策略包括删除故障節點。
在一種實施方式中,彈性伸縮策略生成模組,包括:
第四策略生成子模組,用於根據優先級大於閾值的訓練任務所需的集群資源,生成第四彈性伸縮策略,第四彈性伸縮策略包括減少訓練節點的數量。
在一種實施方式中,訓練節點數量調整模組,包括:
第二應用程序發送子模組,用於調用第二應用程式介面,並將第二應用程式介面發送至算力平臺,以使算力平臺採用彈性伸縮策略動態調整訓練任務對應的訓練節點的數量;其中,第二應用程式介面包括第一彈性伸縮策略、第二彈性伸縮策略、第三彈性伸縮策略以及第四彈性伸縮策略中的至少一種。
在一種實施方式中,訓練任務執行模組包括:
主節點選舉子模組,在訓練任務啓動的情況下,控制調整前的訓練節點執行主節點選舉進程,以確定主節點,並控制主節點執行構建調整前的訓練節點的通信拓撲的步驟。
在一種實施方式中,訓練任務執行模組,包括:
第一通信拓撲重建子模組,用於主節點執行基於調整前的訓練節點的通信拓撲和新增加的訓練節點,構建新的通信拓撲,並將新的通信拓撲和訓練狀態數據同步於調整後的訓練節點的步驟;
第一訓練任務執行子模組,用於算力平臺根據彈性伸縮策略將增加後的訓練節點調度至對應的物理節點,以使物理節點針對訓練狀態數據,按照新的通信拓撲執行訓練任務。
在一種實施方式中,訓練任務執行模組,包括:
第二通信拓撲重建子模組,用於在減少訓練節點的數量情況下,控制主節點基於減少後的訓練節點構建新的通信拓撲,並將新的通信拓撲同步於調整後的訓練節點;
第二訓練任務執行子模組,用於算力平臺根據彈性伸縮策略將減少後的訓練節點調度至對應的物理節點,以使物理節點針對訓練狀態數據,按照新的通信拓撲執行訓練任務。
在一種實施方式中,還包括:
數據存儲模組,用於控制主節點存儲訓練狀態數據至數據庫中;
容錯恢復模組,用於在訓練節點執行訓練任務失敗的情況下,重新啓動訓練節點,並加載數據庫中的訓練狀態數據,以恢復執行訓練任務。
在一種實施方式中,還包括:
索引建立模組,用於控制主節點針對多個數據分區建立分區索引,數據分區是對訓練過程中所需的訓練元數據集合進行劃分得到的;
數據分區配置模組,用於在主節點接收訓練節點發送的數據讀取請求的情況下,控制主節點執行利用分區索引為訓練節點配置數據分區的步驟。
在一種實施方式中,還包括:
數據管理模組,用於記錄各個數據分區被讀取的次數,並在訓練節點執行訓練任務時,分配被讀取次數小於閾值的數據分區。
第三方面,提供了一種電子設備,包括:
至少一個處理器;以及
與至少一個處理器通信連接的記憶體;其中,
記憶體存儲有可被至少一個處理器執行的指令,指令被至少一個處理器執行,以使至少一個處理器能夠執行上述任一項的方法。
第四方面,提供了一種存儲有電腦指令的非瞬時電腦可讀存儲介質,電腦指令用於使電腦執行上述任一項的方法。
上述發明中的一個實施例具有如下優點或有益效果:由於根據訓練任務對應的集群資源需求來確定彈性伸縮策略,提高了訓練任務對應的集群資源需求的適應性,提高了GPU或CPU資源利用率。由於採用彈性伸縮策略動態調整訓練任務對應的訓練節點的數量,根據訓練狀態數據和調整後的訓練節點,執行訓練任務,所以,能夠確保在任何時候加入或删除訓練節點的情況下,利用調整後的訓練節點都能夠正確並高效的執行訓練任務。
上述可選方式所具有的其他效果將在下文中結合具體實施例加以說明。
以下結合附圖對本發明的示範性實施例做出說明,其中包括本發明實施例的各種細節以助於理解,應當將它們認為僅僅是示範性的。因此,本領域普通技術人員應當認識到,可以對這裏描述的實施例做出各種改變和修改,而不會背離本發明的保護範圍和精神。同樣,為了清楚和簡明,以下的描述中省略了對習知功能和結構的描述。
如圖1所示,本實施方式提供了一種深度學習模型的分布式訓練方法,包括如下步驟:
步驟S110:獲取深度學習平臺發送的訓練任務對應的訓練狀態數據;
步驟S120:根據訓練任務對應的資源需求生成彈性伸縮策略;
步驟S130:採用彈性伸縮策略動態調整訓練任務對應的訓練節點的數量;
步驟S140:根據訓練狀態數據和調整後的訓練節點,執行訓練任務。
一種示例中,深度學習平臺可以包括TensorFlow(基於數據流編程,dataflow programming)原生的PS(參數服務,Parameter server)架構、飛漿(PaddlePaddle)以及Caffe(Convolutional Architecture for Fast Feature Embedding)等。深度學習平臺選擇訓練任務和預訓練的神經網絡模型,並利用訓練元數據對預訓練的神經網絡模型進行多次訓練,得到訓練好的神經網絡模型。其中,訓練元數據包括:預訓練的神經網絡模型的參數、數據集索引以及參數的更新輪次等。例如,創建多個mini-batch(小批數據集),對每一個mini-batch,採用梯度下降法來對參數(例如,權重等參數)進行多次更新,最終得到訓練好的參數,進而得到訓練好的神經網絡模型。在訓練的過程中,在完成第N輪參數更新之後,計算梯度,訓練狀態數據包括梯度和更新輪次。深度學習平臺(TensorFlow)將訓練任務對應的訓練狀態數據發送至彈性伸縮裝置。
如圖2所示,彈性伸縮裝置包括訓練任務管理模組、彈性伸縮調度模組、容錯恢復模組、數據傳輸模組以及數據管理模組。集群資源指的是CPU資源或GPU資源。集群資源需求可以包括用戶發送的資源需求、閒置資源、更高級別的訓練任務所需的資源、故障節點所釋放資源等多種情況下的需求。由於不同的訓練任務所需要的集群資源需求可能不同,或者同一訓練任務在不同階段或者狀況下的集群資源需求也可能不同。所以,彈性伸縮調度模組根據訓練任務對應的集群資源需求生成彈性伸縮策略。彈性伸縮策略包括訓練節點的增加或減少的策略。不同的集群資源需求對應不同的彈性伸縮策略。
TensorFlow中的所有計算都會被轉化為計算圖上的節點,即訓練節點。例如,TensorFlow集群中的訓練節點包括參數伺服器(parameter server)和工作伺服器(worker)。訓練任務管理模組對所有的訓練節點進行管理,對於每個訓練任務,都會在執行訓練任務的全部訓練節點中選出主節點。主節點管理剩餘的訓練節點,例如,主節點監控工作伺服器(worker)執行訓練任務,工作伺服器(worker)的訓練進度,構建工作伺服器(worker)之間的通信拓撲,保存不同的工作伺服器(worker)中模型訓練的訓練元數據。訓練元數據包括模型參數、數據集索引、模型參數更新輪次等。
彈性伸縮調度模組獲取深度學習平臺(TensorFlow)發送的訓練狀態數據,並將訓練狀態數據和彈性伸縮策略發送至訓練任務對應的主節點。訓練任務管理模組控制主節點執行根據調整後的訓練節點的數量,重新構建計算圖的步驟。例如,彈性伸縮策略為增加訓練節點的情況下,在不停止原有計算圖的情況下,添加新的訓練節點,重新構建計算圖。彈性伸縮策略為減少訓練節點的情況下,在不停止原有計算圖的情況下,删除訓練節點,重新構建計算圖。可以預先設置重新構建計算圖所需的時間,有效降低由於彈性伸縮策略動態調整訓練節點的數量而產生的延時。
算力平臺採用彈性伸縮策略,來動態調整訓練任務對應的訓練節點的數量。算力平臺可以包括K8S系統(Kubernetes,容器集群管理系)等GPU集群調度管理系統。K8S系統為調整後的訓練節點分配CPU或GPU的集群資源。K8S系統採用彈性伸縮策略動態增加或删除訓練節點。K8S系統的物理節點包括master節點(主節點)和node節點(計算節點),master節點上的調度器根據彈性伸縮策略,將調整後的訓練節點(worker)調度到node節點上。由於前面已經確定了調整後的訓練節點對應的新的計算圖,所以,在node節點上,針對訓練狀態數據,按照新的通信拓撲執行訓練任務。
本實施方式中,彈性伸縮裝置設計為TensorFlow和K8S之間的模組。由於彈性伸縮裝置根據訓練任務對應的集群資源需求來確定彈性伸縮策略,提高了訓練任務對應的集群資源需求的適應性,提高了GPU資源利用率。由於採用彈性伸縮策略動態調整訓練任務對應的訓練節點的數量,根據訓練狀態數據和調整後的訓練節點,執行訓練任務,所以,能夠確保在任何時候加入或删除訓練節點的情況下,能夠確保在任何時候加入或删除訓練節點的情況下,利用調整後的訓練節點都能夠正確並高效的執行訓練任務。
在一種實施方式中,如圖3所示,步驟S110包括:
步驟S111:獲取深度學習平臺發送的第一應用程式介面,第一應用程式介面是深度學習平臺根據用戶發送的調用指令調用得到的;
其中,第一應用程式介面包括訓練狀態數據,訓練狀態數據包括梯度和更新輪次N(N大於或等於1),梯度是調整前的訓練節點完成第N輪參數更新之後計算得到的。
一種示例中,將彈性伸縮裝置作為一個庫引入到Python中。深度學習平臺根據用戶發送的調用指令調用第一應用程式介面,並將第一應用程式介面發送至彈性伸縮裝置,使得彈性伸縮調度模組接收第一應用程序。具有高可移植性,面向集群及深度學習流程架提供簡單的API,可適應多種GPU集群管理調度方案及深度學習流程架。
本實施方式中,深度學習平臺通過調用第一應用程序的方式將訓練狀態數據發送至彈性伸縮裝置,有效避免對深度學習平臺的侵入式修改。
在一種實施方式中,如圖3所示,步驟S120,包括:
步驟S121:根據用戶發送的集群資源需求生成第一彈性伸縮策略,第一彈性伸縮策略包括增加或減少訓練節點的數量。
一種示例中,在顯示界面中,具有集群資源需求的設置按鍵,用戶可以根據訓練任務適應性的設置集群資源需求。響應於用戶點擊按鍵的指令,彈性伸縮調度模組用於根據用戶發送的集群資源需求生成第一彈性伸縮策略,第一彈性伸縮策略包括增加或減少訓練節點的數量。彈性伸縮調度模組將第一彈性伸縮策略發送至算力平臺,例如K8S系統,算力平臺根據第一伸縮策略為增加的訓練節點分配CPU或GPU資源,或者獲取減少的訓練節點釋放的CPU或GPU資源。
本實施方式中,通過用戶發送的集群資源需求來增加或減少訓練節點的數量,使得深度學習模型的分布式訓練過程中對集群資源需求的靈活性和適應性。
在一種實施方式中,如圖3所示,步驟S120,包括:
步驟S122:對集群資源進行監控,確定閒置資源,並根據閒置資源生成第二彈性伸縮策略,第二彈性伸縮策略包括增加訓練節點的數量。
本實施方式中,彈性伸縮調度模組對集群資源進行監控,確定閒置資源,並根據閒置資源的大小增加對應數量的訓練節點,得到第二彈性伸縮策略。彈性伸縮調度模組將第二彈性伸縮策略發送至算力平臺,例如K8S系統,算力平臺根據第二伸縮策略將閒置的CPU或GPU資源分配給增加的訓練節點,有效提高閒置資源的利用率。
在一種實施方式中,如圖3所示,步驟S120,包括:
步驟S123:對訓練任務對應的訓練節點進行監控,確定故障節點,並根據故障節點所釋放的集群資源生成第三彈性伸縮策略,第三彈性伸縮策略包括删除故障節點。
本實施方式中,由於故障節點無法執行訓練任務,所以將故障節點删除,以釋放對應的集群資源,得到第三彈性伸縮策略。彈性伸縮調度模組將第三彈性伸縮策略發送至算力平臺,例如K8S系統,算力平臺根據第三伸縮策略將釋放的CPU或GPU資源返回至深度學習平臺,以便於其它訓練任務再次使用,有效提高了CPU或GPU資源的利用率。
在一種實施方式中,如圖3所示,步驟S120,包括:
步驟S124:根據優先級大於閾值的訓練任務所需的集群資源,生成第四彈性伸縮策略,第四彈性伸縮策略包括減少訓練節點的數量。
本實施方式中,由於優先級較高的訓練任務可能需要大量集群資源,所以,根據優先級大於閾值的訓練任務所需的集群資源減少訓練節點的數量,釋放已減少的訓練節點對應的CPU或GPU資源。彈性伸縮調度模組將第四彈性伸縮策略發送至算力平臺,例如K8S系統,算力平臺根據第四伸縮策略將釋放的CPU或GPU資源返回至深度學習平臺,以便於優先級較高的訓練任務使用,有效提高了CPU或GPU資源的適應性。
在一種實施方式中,如圖3所示,步驟S130包括:
步驟S131:調用第二應用程式介面,並將訓練狀態數據和第二應用程式介面發送至算力平臺,以使算力平臺採用彈性伸縮策略動態調整訓練任務對應的訓練節點的數量;其中,第二應用程式介面包括第一彈性伸縮策略、第二彈性伸縮策略、第三彈性伸縮策略以及第四彈性伸縮策略中的至少一種。
一種示例中,彈性伸縮調度模組調用第二應用程式介面,並將第二應用程式介面發送至訓練節點中的主節點,主節點將第二應用程序轉發至算力平臺。算力平臺根據第二應用程序中的彈性伸縮策略增加或删除訓練節點,用戶方面並無明顯感知,具有高可移植性,可適應多種GPU集群管理調度系統和深度學習平臺。
在一種實施方式中,如圖4所示,步驟140,包括:
步驟S141:在訓練任務啓動的情況下,控制調整前的訓練節點執行主節點選舉進程,以確定主節點,並控制主節點執行構建調整前的訓練節點的通信拓撲的步驟。
一種示例中,當一個訓練任務啓動時,訓練任務管理模組控制調整前的每個訓練節點執行主節點選舉過程,以確定主節點。每一個加入或退出的訓練節點都需要通知主節點。將主節點的地址作為連接信息,訓練節點通過請求該信息與主節點連接。對於環狀的分布式訓練結構(ringallreduce),每個工作伺服器(worker)通過向相鄰工作伺服器(worker)註册形成連接,每次只需要保存起始的工作伺服器(worker)的地址信息即可。對於參數管理的分布式訓練結構(parameter server worker),所有的工作伺服器(worker)向參數伺服器(parameter server)註册,保存參數伺服器(parameter server)的地址信息,並將該地址信息寫入ETCD,並成為主節點。
主節點需要定期刷新其地址信息。如果主節點沒有定期刷新更新地址信息,則該地址信息將自動過期。如果連接信息無效或過期,訓練節點再次進行主節點選舉,可以隨機選擇一個訓練節點,將選擇的訓練節點的地址寫入ETCD(分布式一致性鍵值存儲系統),並將隨機選擇的訓練節點作為主節點。
充當主節點角色的訓練節點可能會因為計算圖的擴張或縮小而退出。因此,在每個訓練節點中都運行一個主節點發現/選舉進程,當主節點對所有訓練節點不可見時,該進程會啓動選舉產生一個新的主節點。在選擇了一個主節點之後,其他訓練節點將連接到該主節點並發送註册消息以加入訓練任務。在訓練任務執行期間,主節點將從每個mini-batch訓練之後的梯度同步請求中推斷出訓練節點進程的活躍程度。
在一種實施方式中,如圖4所示,步驟140,包括:
步驟S142:在增加訓練節點的情況下,控制主節點執行基於調整前的訓練節點的通信拓撲和新增加的訓練節點,構建新的通信拓撲,並將新的通信拓撲和訓練狀態數據同步於調整後的訓練節點的步驟;
步驟S143:算力平臺根據彈性伸縮策略將增加後的訓練節點調度至對應的物理節點,以使物理節點針對訓練狀態數據,按照新的通信拓撲執行訓練任務。
一種示例中,為了減少並行調整訓練節點的時間,彈性伸縮調度模組可以使得整個計算在不停止的情況下構建計算圖,並在集群資源充足的情況下,添加新的訓練節點進程。在增加訓練節點的情況下,向正在運行的訓練任務添加新的訓練節點進程需要三個步驟:第一、執行上下文準備;第二、通信拓撲構建;第三、模型準備。執行上下文準備包括加載動態庫,例如cuDNN(用於深度神經網絡的GPU加速庫)、cuBLAS(CUDA標準的線代庫,CUDA,Compute Unified Device Architecture,通用並行計算架構),準備訓練狀態數據,在GPU內存和CPU內存上分配空間等,耗時最長的步驟。類似TensorFlow這樣的聲明性流程架也需要構建和優化計算圖。對於通信拓撲構建,新的訓練節點加入需要鏈接至主節點進程,所有的訓練節點都需要形成一個新的環形拓撲來進行模型參數的同步。新的訓練節點在開始訓練之前還需要同步至最新的模型。
當新的訓練節點加入時,不需要停止調整前的訓練節點的進程。每個新的訓練節點線程啓動兩個獨立的線程,一個主線程和一個後臺線程。主線程執行上下文準備,同時後臺線程執行主節點選舉線程並向主節點發送註册請求。主節點在接收到新訓練節點的註册請求後,訓練任務管理模組控制主節點構建一個新的通信拓撲,並將其廣播給所有訓練節點。此時調整前的訓練節點的通信拓撲還沒有被破壞,因此,調整前的訓練節點可以繼續訓練而不受影響。當新的訓練節點進程完成執行上下文準備並接收到新的通信拓撲時,它會向主節點發送一個準備完成的消息。主節點接收到準備完成的消息後,監控調整前的訓練節點的通信拓撲,訓練節點完成mini-batch的t輪的訓練之後,由主節點隨機選擇一個訓練節點將其參數同步給新的訓練節點,並通知訓練任務的所有訓練節點按照新的通信拓撲組織,並執行訓練任務。
在一種實施方式中,如圖4所示,步驟140,包括:
步驟S144:在減少訓練節點的數量情況下,控制主節點基於調整後的訓練節點構建新的通信拓撲,並將新的通信拓撲同步於調整後的訓練節點;
步驟S145:算力平臺根據彈性伸縮策略將減少後的訓練節點調度至對應的物理節點,以使物理節點針對訓練狀態數據,按照新的通信拓撲執行訓練任務。
在一種示例中,在減少訓練節點的數量情況下,例如删除故障點或根據用戶需求減少訓練節點等,在一個mini-batch訓練結束時,K8S系統終止並剔除訓練節點,保證不影響調整前的訓練節點的執行任務過程。主節點在接收到減少訓練節點的請求時,訓練任務管理模組控制主節點將構造一個新的通信拓撲,並將其廣播給其餘的訓練節點。同時主節點監控調整前的訓練節點完成t輪的訓練之後,再允許訓練節點退出。剩餘訓練節點按照新的通信拓撲開始訓練。如果此時主節點離開,它將删除其與訓練節點連接的地址,以便訓練節點可以選舉新主節點。舊的主節點將在退出前將訓練元數據發送給新的主節點,其餘所有訓練節點將在預定時間連接到新的主節點。在正常退出的情況下,其餘訓練節點不需要停下來等待訓練節點退出,因此延時可以忽略不計。
在一種實施方式中,如圖4所示,還包括:
步驟S161:控制主節點存儲訓練狀態數據至數據庫中;
步驟S162:在訓練節點執行訓練任務失敗的情況下,重新啓動訓練節點,並加載數據庫中的訓練狀態數據,以恢復執行訓練任務。
一種示例中,訓練任務管理模組控制主節點定期將訓練狀態數據寫入數據庫中,例如,持久化存儲庫(ETCD)。如果一個訓練節點進程在完成所有同步之前失敗,那麽其他訓練節點進程上的模型只能完成部分更新。所以,當訓練失敗時,容錯恢復模組可以通過加載訓練狀態數據,恢復訓練任務。
本實施方式中,提出一致性恢復策略使得訓練從故障中恢復,定期存儲的訓練狀態數據可以一定程度上確保模型更新的一致性。近似性恢復粗略則是基於現有的訓練節點構建新的通信拓撲,繼續訓練。
在一種實施方式中,如圖5所示,還包括:
步驟S171:控制主節點針對多個數據分區建立分區索引,數據分區是對訓練過程中所需的訓練元數據集合進行劃分得到的;
步驟S172:在主節點接收訓練節點發送的數據讀取請求的情況下,控制主節點執行利用分區索引為訓練節點配置數據分區的步驟。
一種示例中,數據集在邏輯上被劃分為多個數據分區,訓練任務管理模組控制主節點建立數據集的分區索引,當一個訓練節點需要一個新的數據分區時,向主節點發送一個數據讀取請求,主節點使用未分配分區的元數據(文件大小、路徑、偏移量等)來響應請求,使得訓練節點讀取未分配分區的數據。按照不同訓練節點的訓練需求動態地將數據分區分配給訓練節點。數據傳輸模組使得GPU或CPU訓練一直在相對飽和的狀態。數據傳輸模組都可以保證每個epoch(一代訓練)都可以對數據集進行一次遍歷。
為了跟踪數據分配的進度,每個訓練節點在其當前任務中記錄一個偏移量,該偏移量指示下一個batch(數據集)應該從當前數據分區的何處開始讀取。訓練節點在每次mini-batch訓練結束時,向主節點同步偏移量和模型參數。當新的訓練節點加入一個訓練任務時,主節點只需為他們分配一些未處理的分區數據。當一個訓練節點進程在正常退出狀態下離開時,它向主節點報告當前分區的元數據及其在分區中的偏移量,以便主節點可以將此分區中剩餘的未處理數據分配給另一個訓練節點進程。如果主節點需要離開,它會在新主節點退出之前將分區索引列表和所有訓練節點的訓練進度發送給新主節點。主節點同時也會將數據分區的索引列表和不同訓練節點對數據的使用進度一起存入持久化存儲庫(ETCD)中,以便在訓練失敗時及時的恢復訓練任務。
在一種實施方式中,如圖5所示,還包括:
步驟S180:記錄各個數據分區被讀取的次數,並在訓練節點執行訓練任務時,分配被讀取次數小於閾值的數據分區。
一種示例中,為了跟踪數據分配的進度,指定特定的數據管理模組,數據管理模組被彈性調度模組監控,主要記錄每個數據塊被讀取的情況,例如讀取次數,隨著訓練節點的數據讀取而更新,當新的訓練節點加入一個訓練任務時,由數據管理模組為訓練節點分配被讀取次數較少的分區數據。
在另一種具體實施方式中,如圖6所示,提供了一種深度學習模型的分布式訓練裝置,包括:
訓練狀態數據獲取模組110,用於獲取深度學習平臺發送的訓練任務對應的訓練狀態數據;
彈性伸縮策略生成模組120,用於根據訓練任務對應的集群資源需求生成彈性伸縮策略;
訓練節點數量調整模組130,用於採用彈性伸縮策略動態調整訓練任務對應的訓練節點的數量;
訓練任務執行模組140,用於根據訓練狀態數據和調整後的訓練節點,執行訓練任務。
在一種實施方式中,如圖7所示,訓練狀態數據獲取模組110,包括:
第一應用程序發送子模組111,用於獲取深度學習平臺發送的第一應用程式介面,第一應用程式介面是深度學習平臺根據用戶發送的調用指令調用得到的;
其中,第一應用程式介面包括訓練狀態數據,訓練狀態數據包括梯度和更新輪次N(N大於或等於1),梯度是調整前的訓練節點完成第N輪參數更新之後計算得到的。
在一種實施方式中,如圖7所示,彈性伸縮策略生成模組120,包括:
第一策略生成子模組121,用於根據用戶發送的集群資源需求生成第一彈性伸縮策略,第一彈性伸縮策略包括增加或減少訓練節點的數量。
在一種實施方式中,彈性伸縮策略生成模組120,包括:
第二策略生成子模組122,用於對集群資源進行監控,確定閒置資源,並根據閒置資源生成第二彈性伸縮策略,第二彈性伸縮策略包括增加訓練節點的數量。
在一種實施方式中,如圖7所示,彈性伸縮策略生成模組120,包括:
第三策略生成子模組123,用於對訓練任務對應的訓練節點進行監控,確定故障節點,並根據故障節點所釋放的集群資源生成第三彈性伸縮策略,第三彈性伸縮策略包括删除故障節點。
在一種實施方式中,如圖7所示,彈性伸縮策略生成模組120,包括:
第四策略生成子模組124,用於根據優先級大於閾值的訓練任務所需的集群資源,生成第四彈性伸縮策略,第四彈性伸縮策略包括減少訓練節點的數量。
在一種實施方式中,如圖7所示,訓練節點數量調整模組130,包括:
第二應用程序發送子模組131,用於調用第二應用程式介面,並將第二應用程式介面發送至算力平臺,以使算力平臺採用彈性伸縮策略動態調整訓練任務對應的訓練節點的數量;其中,第二應用程式介面包括第一彈性伸縮策略、第二彈性伸縮策略、第三彈性伸縮策略以及第四彈性伸縮策略中的至少一種。
在一種實施方式中,如圖8所示,訓練任務執行模組140,包括:
主節點選舉子模組141,在訓練任務啓動的情況下,控制調整前的訓練節點執行主節點選舉進程,以確定主節點,並控制主節點執行構建調整前的訓練節點的通信拓撲的步驟。
在一種實施方式中,如圖8所示,訓練任務執行模組140,包括:
第一通信拓撲重建子模組142,用於主節點執行基於調整前的訓練節點的通信拓撲和新增加的訓練節點,構建新的通信拓撲,並將新的通信拓撲和訓練狀態數據同步於調整後的訓練節點的步驟;
第一訓練任務執行子模組143,用於算力平臺根據彈性伸縮策略將增加後的訓練節點調度至對應的物理節點,以使物理節點針對訓練狀態數據,按照新的通信拓撲執行訓練任務。
在一種實施方式中,如圖8所示,訓練任務執行模組140,包括
第二通信拓撲重建子模組144,用於在減少訓練節點的數量情況下,控制主節點基於減少後的訓練節點構建新的通信拓撲,並將新的通信拓撲同步於調整後的訓練節點;
第二訓練任務執行子模組145,用於算力平臺根據彈性伸縮策略將減少後的訓練節點調度至對應的物理節點,以使物理節點針對訓練狀態數據,按照新的通信拓撲執行訓練任務。
在一種實施方式中,如圖8所示,還包括:
數據存儲模組161,用於控制主節點存儲訓練狀態數據至數據庫中;
容錯恢復模組162,用於在訓練節點執行訓練任務失敗的情況下,重新啓動訓練節點,並加載數據庫中的訓練狀態數據,以恢復執行訓練任務。
在一種實施方式中,如圖9所示,還包括:
索引建立模組171,用於控制主節點針對多個數據分區建立分區索引,數據分區是對訓練過程中所需的訓練元數據集合進行劃分得到的;
數據分區配置模組172,用於在主節點接收訓練節點發送的數據讀取請求的情況下,控制主節點執行利用分區索引為訓練節點配置數據分區的步驟。
在一種實施方式中,如圖9所示,還包括:
數據管理模組180,用於記錄各個數據分區被讀取的次數,並在訓練節點執行訓練任務時,分配被讀取次數小於閾值的數據分區。
請實施例各裝置中的各模組的功能可以參見上述方法中的對應描述,在此不再贅述。
根據本發明的實施例,本發明還提供了一種電子設備和一種可讀存儲介質。
如圖10所示,是根據本發明實施例的一種深度學習模型的分布式訓練方法的電子設備的流程圖。電子設備旨在表示各種形式的數位電腦,諸如,膝上型電腦、臺式電腦、工作臺、個人數位助理、伺服器、刀片式伺服器、大型電腦、和其它適合的電腦。電子設備還可以表示各種形式的移動裝置,諸如,個人數位處理、蜂窩電話、智能電話、可穿戴設備和其它類似的計算裝置。本文所示的部件、它們的連接和關係、以及它們的功能僅僅作為示例,並且不意在限制本文中描述的和/或者要求的本發明的實現。
如圖10所示,該電子設備包括:一個或多個處理器1001、記憶體1002,以及用於連接各部件的接口,包括高速接口和低速接口。各個部件利用不同的總線互相連接,並且可以被安裝在公共主板上或者根據需要以其它方式安裝。處理器可以對在電子設備內執行的指令進行處理,包括存儲在記憶體中或者記憶體上以在外部輸入/輸出裝置(諸如,耦合至接口的顯示設備)上顯示GUI的圖形信息的指令。在其它實施方式中,若需要,可以將多個處理器和/或多條總線與多個記憶體和多個記憶體一起使用。同樣,可以連接多個電子設備,各個設備提供部分必要的操作(例如,作為伺服器陣列、一組刀片式伺服器、或者多處理器系統)。圖10中以一個處理器1001為例。
記憶體1002即為本發明所提供的非瞬時電腦可讀存儲介質。其中,記憶體存儲有可由至少一個處理器執行的指令,以使至少一個處理器執行本申請所提供的一種深度學習模型的分布式訓練方法。本申請的非瞬時電腦可讀存儲介質存儲電腦指令,該電腦指令用於使電腦執行本發明所提供的一種深度學習模型的分布式訓練方法。
記憶體1002作為一種非瞬時電腦可讀存儲介質,可用於存儲非瞬時軟體程式、非瞬時電腦可執行程序以及模組,如本發明實施例中的一種深度學習模型的分布式訓練方法對應的程式指令/模組(例如,附圖6所示的訓練狀態數據獲取模組110、彈性伸縮策略生成模組120、訓練節點數量調整模組130、訓練任務執行模組140)。處理器1001通過運行存儲在記憶體1002中的非瞬時軟體程式、指令以及模組,從而執行伺服器的各種功能應用以及數據處理,即實現上述方法實施例中的一種深度學習模型的分布式訓練方法。
記憶體1002可以包括存儲程序區和存儲數據區,其中,存儲程序區可存儲操作系統、至少一個功能所需要的應用程序;存儲數據區可存儲根據一種深度學習模型的分布式訓練方法的電子設備的使用所創建的數據等。此外,記憶體1002可以包括高速隨機存取記憶體,還可以包括非瞬時記憶體,例如至少一個磁盤記憶體件、閃存器件、或其他非瞬時固態記憶體件。在一些實施例中,記憶體1002可選包括相對於處理器1001遠程設置的記憶體,這些遠程記憶體可以通過網絡連接至一種深度學習模型的分布式訓練方法的電子設備。上述網絡的實例包括但不限於互聯網、企業內部網、局域網、移動通信網及其組合。
一種深度學習模型的分布式訓練方法的電子設備還可以包括:輸入裝置1003和輸出裝置1004。處理器1001、記憶體1002、輸入裝置1003和輸出裝置1004可以通過總線或者其他方式連接,圖10中以通過總線連接為例。
輸入裝置1003可接收輸入的數位或字符信息,以及產生與一種       方法的電子設備的用戶設置以及功能控制有關的鍵信號輸入,例如觸碰螢幕、小鍵盤、鼠標、軌迹板、觸碰板、指示桿、一個或者多個鼠標按鈕、軌迹球、操縱桿等輸入裝置。輸出裝置1004可以包括顯示設備、輔助照明裝置(例如,LED)和觸覺反饋裝置(例如,振動電機)等。該顯示設備可以包括但不限於,液晶顯示器(LCD)、發光二極管(LED)顯示器和等離子體顯示器。在一些實施方式中,顯示設備可以是觸碰螢幕。
此處描述的系統和技術的各種實施方式可以在數位電子電路系統、積體電路系統、專用ASIC(專用積體電路)、電腦硬體、固件、軟體、和/或它們的組合中實現。這些各種實施方式可以包括:實施在一個或者多個電腦程序中,該一個或者多個電腦程序可在包括至少一個可編程處理器的可編程系統上執行和/或解釋,該可編程處理器可以是專用或者通用可編程處理器,可以從存儲系統、至少一個輸入裝置、和至少一個輸出裝置接收數據和指令,並且將數據和指令傳輸至該存儲系統、該至少一個輸入裝置、和該至少一個輸出裝置。
這些計算程式(也稱作程式、軟體、軟體應用、或者代碼)包括可編程處理器的機器指令,並且可以利用高級過程和/或面向對象的編程語言、和/或彙編/機器語言來實施這些計算程式。如本文使用的,術語“機器可讀介質”和“電腦可讀介質”指的是用於將機器指令和/或數據提供給可編程處理器的任何電腦程序產品、設備、和/或裝置(例如,磁盤、光盤、記憶體、可編程邏輯裝置(PLD)),包括,接收作為機器可讀信號的機器指令的機器可讀介質。術語“機器可讀信號”指的是用於將機器指令和/或數據提供給可編程處理器的任何信號。
為了提供與用戶的交互,可以在電腦上實施此處描述的系統和技術,該電腦具有:用於向用戶顯示信息的顯示裝置(例如,CRT(陰極射線管)或者LCD(液晶顯示器)監視器);以及鍵盤和指向裝置(例如,鼠標或者軌迹球),用戶可以通過該鍵盤和該指向裝置來將輸入提供給電腦。其它種類的裝置還可以用於提供與用戶的交互;例如,提供給用戶的反饋可以是任何形式的傳感反饋(例如,視覺反饋、聽覺反饋、或者觸覺反饋);並且可以用任何形式(包括聲輸入、語音輸入或者、觸覺輸入)來接收來自用戶的輸入。
可以將此處描述的系統和技術實施在包括後臺部件的計算系統(例如,作為數據伺服器)、或者包括中間件部件的計算系統(例如,應用伺服器)、或者包括前端部件的計算系統(例如,具有圖形用戶界面或者網絡瀏覽器的用戶電腦,用戶可以通過該圖形用戶界面或者該網絡瀏覽器來與此處描述的系統和技術的實施方式交互)、或者包括這種後臺部件、中間件部件、或者前端部件的任何組合的計算系統中。可以通過任何形式或者介質的數位數據通信(例如,通信網絡)來將系統的部件相互連接。通信網絡的示例包括:局域網(LAN)、廣域網(WAN)和互聯網。
電腦系統可以包括客戶端和伺服器。客戶端和伺服器一般遠離彼此並且通常通過通信網絡進行交互。通過在相應的電腦上運行並且彼此具有客戶端-伺服器關係的電腦程序來產生客戶端和伺服器的關係。
應該理解,可以使用上面所示的各種形式的流程,重新排序、增加或删除步驟。例如,本發明中記載的各步驟可以並行地執行也可以順序地執行也可以不同的次序執行,只要能夠實現本發明公開的技術方案所期望的結果,本文在此不進行限制。
上述具體實施方式,並不構成對本發明保護範圍的限制。本領域技術人員應該明白的是,根據設計要求和其他因素,可以進行各種修改、組合、子組合和替代。任何在本發明的精神和原則之內所作的修改、等同替換和改進等,均應包含在本發明保護範圍之內。
110:訓練狀態數據獲取模組 111:第一應用程序發送子模組 120:彈性伸縮策略生成模組 121:第一策略生成子模組 122:第二策略生成子模組 123:第三策略生成子模組 124:第四策略生成子模組 130:訓練節點數量調整模組 131:第二應用程序發送子模組 140:訓練任務執行模組 141:主節點選舉子模組 142:第一通信拓撲重建子模組 143:第一訓練任務執行子模組 144:第二通信拓撲重建子模組 145:第二訓練任務執行子模組 161:數據存儲模組 162:容錯恢復模組 171:索引建立模組 172:數據分區配置模組 180:數據管理模組 1001:處理器 1002:記憶體 1003:輸入裝置 1004:輸出裝置 S110:獲取深度學習平臺發送的訓練任務對應的訓練狀態數據; S111:獲取深度學習平臺發送的第一應用程式介面,第一應用程式介面是深度學習平臺根據用戶發送的調用指令調用得到的; S120:根據訓練任務對應的資源需求生成彈性伸縮策略; S121:根據用戶發送的集群資源需求生成第一彈性伸縮策略,第一彈性伸縮策略包括增加或減少訓練節點的數量; S122:對集群資源進行監控,確定閒置資源,並根據閒置資源生成第二彈性伸縮策略,第二彈性伸縮策略包括增加訓練節點的數量; S123:對訓練任務對應的訓練節點進行監控,確定故障節點,並根據故障節點所釋放的集群資源生成第三彈性伸縮策略,第三彈性伸縮策略包括删除故障節點; S124:根據優先級大於閾值的訓練任務所需的集群資源,生成第四彈性伸縮策略,第四彈性伸縮策略包括減少訓練節點的數量; S130:採用彈性伸縮策略動態調整訓練任務對應的訓練節點的數量; S131:調用第二應用程式介面,並將訓練狀態數據和第二應用程式介面發送至算力平臺,以使算力平臺採用彈性伸縮策略動態調整訓練任務對應的訓練節點的數量;其中,第二應用程式介面包括第一彈性伸縮策略、第二彈性伸縮策略、第三彈性伸縮策略以及第四彈性伸縮策略中的至少一種; S140:根據訓練狀態數據和調整後的訓練節點,執行訓練任務。 S141:在訓練任務啓動的情況下,控制調整前的訓練節點執行主節點選舉進程,以確定主節點,並控制主節點執行構建調整前的訓練節點的通信拓撲的步驟; S 142:在增加訓練節點的情況下,控制主節點執行基於調整前的訓練節點的通信拓撲和新增加的訓練節點,構建新的通信拓撲,並將新的通信拓撲和訓練狀態數據同步於調整後的訓練節點的步驟; S143:算力平臺根據彈性伸縮策略將增加後的訓練節點調度至對應的物理節點,以使物理節點針對訓練狀態數據,按照新的通信拓撲執行訓練任務; S144:在減少訓練節點的數量情況下,控制主節點基於調整後的訓練節點構建新的通信拓撲,並將新的通信拓撲同步於調整後的訓練節點; S145:算力平臺根據彈性伸縮策略將減少後的訓練節點調度至對應的物理節點,以使物理節點針對訓練狀態數據,按照新的通信拓撲執行訓練任務; S161:控制主節點存儲訓練狀態數據至數據庫中; S162:在訓練節點執行訓練任務失敗的情況下,重新啓動訓練節點,並加載數據庫中的訓練狀態數據,以恢復執行訓練任務; S171:控制主節點針對多個數據分區建立分區索引,數據分區是對訓練過程中所需的訓練元數據集合進行劃分得到的; S172:在主節點接收訓練節點發送的數據讀取請求的情況下,控制主節點執行利用分區索引為訓練節點配置數據分區的步驟; S180:記錄各個數據分區被讀取的次數,並在訓練節點執行訓練任務時,分配被讀取次數小於閾值的數據分區;
[圖1]是根據本發明一實施例的一種深度學習模型的分布式訓練方法的示意圖; [圖2]是根據本發明一實施例的一種深度學習模型的分布式訓練方法的場景示意圖; [圖3]是根據本發明一實施例的另一種深度學習模型的分布式訓練方法的示意圖; [圖4]是根據本發明一實施例的另一種深度學習模型的分布式訓練方法的示意圖; [圖5]是根據本發明一實施例的另一種深度學習模型的分布式訓練方法的示意圖; [圖6]是根據本發明一實施例的另一種深度學習模型的分布式訓練裝置的示意圖; [圖7]是根據本發明一實施例的另一種深度學習模型的分布式訓練裝置的示意圖; [圖8]是根據本發明一實施例的另一種深度學習模型的分布式訓練裝置的示意圖; [圖9]是根據本發明一實施例的另一種深度學習模型的分布式訓練裝置的示意圖; [圖10]是用來實現本發明實施例的一種深度學習模型的分布式訓練方法的電子設備的流程圖。
S110:獲取深度學習平臺發送的訓練任務對應的訓練狀態數據
S120:根據訓練任務對應的資源需求生成彈性伸縮策略
S130:採用彈性伸縮策略動態調整訓練任務對應的訓練節點的數量
S140:根據訓練狀態數據和調整後的訓練節點,執行訓練任務

Claims (28)

  1. 一種深度學習模型的分布式訓練方法,其特徵在於,包括:獲取深度學習平臺發送的訓練任務對應的訓練狀態數據;根據所述訓練任務對應的集群資源需求生成彈性伸縮策略;採用所述彈性伸縮策略動態調整所述訓練任務對應的訓練節點的數量;根據所述訓練狀態數據和調整後的訓練節點,執行所述訓練任務。
  2. 如請求項1所述的方法,其特徵在於,所述獲取深度學習平臺發送的訓練任務對應的訓練狀態數據,包括:獲取所述深度學習平臺發送的第一應用程式介面,所述第一應用程式介面是所述深度學習平臺根據用戶發送的調用指令調用得到的;其中,所述第一應用程式介面包括所述訓練狀態數據,所述訓練狀態數據包括梯度和更新輪次N(N大於或等於1),所述梯度是調整前的訓練節點完成第N輪參數更新之後計算得到的。
  3. 如請求項1所述的方法,其特徵在於,根據所述訓練任務對應的集群資源需求生成彈性伸縮策略,包括:根據用戶發送的集群資源需求生成第一彈性伸縮策略,所述第一彈性伸縮策略包括增加或減少所述訓練節點的數量。
  4. 如請求項1所述的方法,其特徵在於,根據所述訓練任務對應的集群資源需求生成彈性伸縮策略,包括:對所述集群資源進行監控,確定閒置資源,並根據所述閒置資源生成第二彈性伸縮策略,所述第二彈性伸縮策略包括增加所述訓練節點的數量。
  5. 如請求項1所述的方法,其特徵在於,根據所述訓練任務對應的集群資源需求生成彈性伸縮策略,包括:對所述訓練任務對應的訓練節點進行監控,確定故障節點,並根據所述故障節點所釋放的集群資源生成第三彈性伸縮策略,所述第三彈性伸縮策略包括删除所述故障節點。
  6. 如請求項1所述的方法,其特徵在於,根據所述訓練任務對應的集群資源需求生成彈性伸縮策略,包括:根據優先級大於閾值的訓練任務所需的集群資源,生成第四彈性伸縮策略,所述第四彈性伸縮策略包括減少所述訓練節點的數量。
  7. 如請求項3-6項中任一項所述的方法,其特徵在於,採用所述彈性伸縮策略動態調整所述訓練任務對應的訓練節點的數量,包括:調用第二應用程式介面,並將所述第二應用程式介面發送至算力平臺,以使所述算力平臺採用所述彈性伸縮策略動態調整所述訓練任務對應的訓練節點的數量;其中,所述第二應用程式介面包括所述第一彈性伸縮策略、所述第二彈性伸縮策略、所述第三彈性伸縮策略以及所述第四彈性伸縮策略中的至少一種。
  8. 如請求項7所述的方法,其特徵在於,根據所述訓練狀態數據和調整後的訓練節點,執行所述訓練任務,包括:在所述訓練任務啟動的情況下,控制調整前的訓練節點執行主節點選舉進程,以確定主節點,並控制所述主節點執行構建調整前的訓練節點的通信拓撲的步驟。
  9. 如請求項8所述的方法,其特徵在於,根據所述訓練狀態數據和調整後的訓練節點,執行所述訓練任務,包括: 在增加所述訓練節點的情況下,控制所述主節點執行基於所述調整前的訓練節點的通信拓撲和新增加的訓練節點,構建新的通信拓撲,並將所述新的通信拓撲和所述訓練狀態數據同步於所述調整後的訓練節點的步驟;所述算力平臺根據所述彈性伸縮策略將增加後的訓練節點調度至對應的物理節點,以使所述物理節點針對所述訓練狀態數據,按照所述新的通信拓撲執行所述訓練任務。
  10. 如請求項8所述的方法,其特徵在於,根據所述訓練狀態數據和調整後的訓練節點,執行所述訓練任務,包括:在減少所述訓練節點的數量情況下,控制所述主節點基於調整後的訓練節點構建新的通信拓撲,並將所述新的通信拓撲同步於所述調整後的訓練節點;所述算力平臺根據所述彈性伸縮策略將減少後的訓練節點調度至對應的物理節點,以使所述物理節點針對所述訓練狀態數據,按照所述新的通信拓撲執行所述訓練任務。
  11. 如請求項8所述的方法,其特徵在於,還包括:控制所述主節點存儲所述訓練狀態數據至數據庫中;在所述訓練節點執行所述訓練任務失敗的情況下,重新啟動所述訓練節點,並加載所述數據庫中的訓練狀態數據,以恢復執行所述訓練任務。
  12. 如請求項1所述的方法,其特徵在於,還包括:控制主節點針對多個數據分區建立分區索引,所述數據分區是對訓練過程中所需的訓練元數據集合進行劃分得到的;在所述主節點接收所述訓練節點發送的數據讀取請求的情況下,控制所述主節點執行利用所述分區索引為所述訓練節點配置數據分區的步驟。
  13. 如請求項11所述的方法,其特徵在於,還包括:記錄各個所述數據分區被讀取的次數,並在所述訓練節點執行所述訓練任務時,分配被讀取次數小於閾值的數據分區。
  14. 一種深度學習模型的分布式訓練裝置,其特徵在於,包括:訓練狀態數據獲取模組,用於獲取深度學習平臺發送的訓練任務對應的訓練狀態數據;彈性伸縮策略生成模組,用於根據所述訓練任務對應的集群資源需求生成彈性伸縮策略;訓練節點數量調整模組,用於採用所述彈性伸縮策略動態調整所述訓練任務對應的訓練節點的數量;訓練任務執行模組,用於根據所述訓練狀態數據和調整後的訓練節點,執行所述訓練任務。
  15. 如請求項14所述的裝置,其特徵在於,所述訓練狀態數據獲取模組,包括:第一應用程式發送子模組,用於獲取所述深度學習平臺發送的第一應用程式介面,所述第一應用程式介面是所述深度學習平臺根據用戶發送的調用指令調用得到的;其中,所述第一應用程式介面包括所述訓練狀態數據,所述訓練狀態數據包括梯度和更新輪次N(N大於或等於1),所述梯度是調整前的訓練節點完成第N輪參數更新之後計算得到的。
  16. 如請求項14所述的裝置,其特徵在於,所述彈性伸縮策略生成模組,包括: 第一策略生成子模組,用於根據用戶發送的集群資源需求生成第一彈性伸縮策略,所述第一彈性伸縮策略包括增加或減少所述訓練節點的數量。
  17. 如請求項14所述的裝置,其特徵在於,所述彈性伸縮策略生成模組,包括:第二策略生成子模組,用於對所述集群資源進行監控,確定閒置資源,並根據所述閒置資源生成第二彈性伸縮策略,所述第二彈性伸縮策略包括增加所述訓練節點的數量。
  18. 如請求項14所述的裝置,其特徵在於,所述彈性伸縮策略生成模組,包括:第三策略生成子模組,用於對所述訓練任務對應的訓練節點進行監控,確定故障節點,並根據所述故障節點所釋放的集群資源生成第三彈性伸縮策略,所述第三彈性伸縮策略包括删除所述故障節點。
  19. 如請求項14所述的裝置,其特徵在於,所述彈性伸縮策略生成模組,包括:第四策略生成子模組,用於根據優先級大於閾值的訓練任務所需的集群資源,生成第四彈性伸縮策略,所述第四彈性伸縮策略包括減少所述訓練節點的數量。
  20. 如請求項16-19所述的裝置,其特徵在於,所述訓練節點數量調整模組,包括:第二應用程序發送子模組,用於調用第二應用程式介面,並將所述第二應用程式介面發送至算力平臺,以使所述算力平臺採用所述彈性伸縮策略動態調整所述訓練任務對應的訓練節點的數量;其中,所述第二應用程式介面包括所述第 一彈性伸縮策略、所述第二彈性伸縮策略、所述第三彈性伸縮策略以及所述第四彈性伸縮策略中的至少一種。
  21. 如請求項20所述的裝置,其特徵在於,所述訓練任務執行模組包括:主節點選舉子模組,在所述訓練任務啟動的情況下,控制調整前的訓練節點執行主節點選舉進程,以確定主節點,並控制所述主節點執行構建調整前的訓練節點的通信拓撲的步驟。
  22. 如請求項21所述的裝置,其特徵在於,所述訓練任務執行模組,包括:第一通信拓撲重建子模組,用於在增加所述訓練節點的情況下,所述主節點執行基於所述調整前的訓練節點的通信拓撲和新增加的訓練節點,構建新的通信拓撲,並將所述新的通信拓撲和所述訓練狀態數據同步於所述調整後的訓練節點的步驟;第一訓練任務執行子模組,用於所述算力平臺根據所述彈性伸縮策略將增加後的訓練節點調度至對應的物理節點,以使所述物理節點針對所述訓練狀態數據,按照所述新的通信拓撲執行所述訓練任務。
  23. 如請求項21所述的裝置,其特徵在於,所述訓練任務執行模組,包括:第二通信拓撲重建子模組,用於在減少所述訓練節點的數量情況下,控制所述主節點基於減少後的訓練節點構建新的通信拓撲,並將所述新的通信拓撲同步於所述調整後的訓練節點; 第二訓練任務執行子模組,用於所述算力平臺根據所述彈性伸縮策略將所述減少後的訓練節點調度至對應的物理節點,以使所述物理節點針對所述訓練狀態數據,按照所述新的通信拓撲執行所述訓練任務。
  24. 如請求項21所述的裝置,其特徵在於,還包括:數據存儲模組,用於控制所述主節點存儲所述訓練狀態數據至數據庫中;容錯恢復模組,用於在所述訓練節點執行所述訓練任務失敗的情況下,重新啟動所述訓練節點,並加載所述數據庫中的訓練狀態數據,以恢復執行所述訓練任務。
  25. 如請求項21所述的裝置,其特徵在於,還包括:索引建立模組,用於控制主節點針對多個數據分區建立分區索引,所述數據分區是對訓練過程中所需的訓練元數據集合進行劃分得到的;數據分區配置模組,用於在所述主節點接收所述訓練節點發送的數據讀取請求的情況下,控制所述主節點執行利用所述分區索引為所述訓練節點配置數據分區的步驟。
  26. 如請求項24所述的裝置,其特徵在於,還包括:數據管理模組,用於記錄各個所述數據分區被讀取的次數,並在所述訓練節點執行所述訓練任務時,分配被讀取次數小於閾值的數據分區。
  27. 一種電子設備,其特徵在於,包括:至少一個處理器;以及與所述至少一個處理器通信連接的記憶體;其中, 所述記憶體存儲有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠執行請求項1-13項中任一項所述的方法。
  28. 一種存儲有電腦指令的非瞬時電腦可讀存儲介質,其特徵在於,所述電腦指令用於使所述電腦執行請求項1-13項中任一項所述的方法。
TW110102762A 2020-08-12 2021-01-26 深度學習模型的分布式訓練方法以及裝置 TWI783355B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010806430.8A CN112000473A (zh) 2020-08-12 2020-08-12 深度学习模型的分布式训练方法以及装置
CN202010806430.8 2020-08-12

Publications (2)

Publication Number Publication Date
TW202207030A TW202207030A (zh) 2022-02-16
TWI783355B true TWI783355B (zh) 2022-11-11

Family

ID=73463950

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110102762A TWI783355B (zh) 2020-08-12 2021-01-26 深度學習模型的分布式訓練方法以及裝置

Country Status (3)

Country Link
CN (1) CN112000473A (zh)
TW (1) TWI783355B (zh)
WO (1) WO2022033024A1 (zh)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112000473A (zh) * 2020-08-12 2020-11-27 中国银联股份有限公司 深度学习模型的分布式训练方法以及装置
CN112463056B (zh) * 2020-11-28 2023-06-09 苏州浪潮智能科技有限公司 一种多节点分布式训练方法、装置、设备及可读介质
TWI756974B (zh) * 2020-12-09 2022-03-01 財團法人工業技術研究院 機器學習系統及其資源配置方法
CN112416602B (zh) * 2020-12-10 2022-09-16 清华大学 一种分布式数据流资源弹性伸缩增强插件及增强方法
CN112463340A (zh) * 2020-12-10 2021-03-09 武汉工程大学 基于tensorflow的多任务弹性调度方法及系统
CN112596863B (zh) * 2020-12-28 2024-06-07 南方电网数字平台科技(广东)有限公司 监控训练任务的方法、系统及计算机存储介质
CN112860400A (zh) * 2021-02-09 2021-05-28 山东英信计算机技术有限公司 一种处理分布式训练任务的方法、系统、设备及介质
CN113032117A (zh) * 2021-03-10 2021-06-25 北京百度网讯科技有限公司 深度学习框架的训练方法、装置及存储介质
CN115271025A (zh) * 2021-04-29 2022-11-01 华为技术有限公司 数据处理方法、装置及系统
CN113505520A (zh) * 2021-05-17 2021-10-15 京东科技控股股份有限公司 用于支持异构联邦学习的方法、装置和系统
CN117396850A (zh) * 2021-05-28 2024-01-12 华为云计算技术有限公司 用于为深度学习作业弹性分配资源的系统、方法和介质
CN113504966B (zh) * 2021-06-22 2023-10-31 中国科学院计算技术研究所 Gpu集群调度策略模拟方法及gpu集群模拟器
CN113326116A (zh) * 2021-06-30 2021-08-31 北京九章云极科技有限公司 一种数据处理方法和系统
CN113703980A (zh) * 2021-08-31 2021-11-26 西安电子科技大学 一种分布式机器学习系统及适用于其的通信调度方法
CN114936117A (zh) * 2021-09-02 2022-08-23 华为技术有限公司 模型训练的方法、服务器、芯片以及系统
CN114169427B (zh) * 2021-12-06 2022-10-04 北京百度网讯科技有限公司 基于端到端自适应的分布式训练方法、装置、设备
CN114327886B (zh) * 2021-12-24 2022-12-16 国家石油天然气管网集团有限公司 一种基于大数据深度学习的动态资源调度方法
CN114675965B (zh) * 2022-03-10 2023-05-02 北京百度网讯科技有限公司 联邦学习方法、装置、设备和介质
US11811676B2 (en) * 2022-03-30 2023-11-07 International Business Machines Corporation Proactive auto-scaling
CN114741175A (zh) * 2022-04-15 2022-07-12 支付宝(杭州)信息技术有限公司 任务执行方法、装置、中心节点和下游节点设备
CN114816669A (zh) * 2022-04-29 2022-07-29 北京百度网讯科技有限公司 模型的分布式训练方法和数据处理方法
CN114764601B (zh) * 2022-05-05 2024-01-30 北京瑞莱智慧科技有限公司 一种梯度数据融合方法、装置及存储介质
CN114979141B (zh) * 2022-05-13 2024-04-26 北京百度网讯科技有限公司 一种任务处理方法、装置、设备以及存储介质
CN114820279B (zh) * 2022-05-18 2023-03-24 北京百度网讯科技有限公司 基于多gpu的分布式深度学习方法、装置及电子设备
CN114676795B (zh) * 2022-05-26 2022-08-23 鹏城实验室 一种深度学习模型的训练方法、装置、设备及存储介质
CN115031363B (zh) * 2022-05-27 2023-11-28 约克广州空调冷冻设备有限公司 预测空调性能的方法和装置
CN115048216B (zh) * 2022-05-31 2024-06-04 苏州浪潮智能科技有限公司 一种人工智能集群的资源管理调度方法、装置和设备
CN114756385B (zh) * 2022-06-16 2022-09-02 合肥中科类脑智能技术有限公司 一种深度学习场景下的弹性分布式训练方法
CN114971079B (zh) * 2022-06-29 2024-05-28 中国工商银行股份有限公司 秒杀型交易处理优化方法和装置
CN115829053B (zh) * 2022-11-25 2023-09-19 北京百度网讯科技有限公司 模型运行策略确定方法、装置、电子设备以及存储介质
CN116301796A (zh) * 2023-02-15 2023-06-23 四川省气象探测数据中心 一种基于人工智能技术的气象数据分析系统及方法
CN116089477B (zh) * 2023-04-10 2023-08-08 荣耀终端有限公司 分布式训练方法及系统
CN116483546B (zh) * 2023-06-21 2023-09-05 苏州浪潮智能科技有限公司 分布式训练任务调度方法、装置、设备及存储介质
CN116541338B (zh) * 2023-06-27 2023-11-03 苏州浪潮智能科技有限公司 一种计算系统、模型训练方法、装置及产品
CN116523030B (zh) * 2023-06-30 2023-09-15 支付宝(杭州)信息技术有限公司 动态调度模型训练资源的方法及装置
CN116934572B (zh) * 2023-09-18 2024-03-01 荣耀终端有限公司 图像处理方法和设备
CN116954873B (zh) * 2023-09-21 2024-01-23 浪潮电子信息产业股份有限公司 异构计算系统及其算力节点选择方法、装置、设备、介质
CN117332878B (zh) * 2023-10-31 2024-04-16 慧之安信息技术股份有限公司 一种基于自组网系统的模型训练方法和系统
CN117785446A (zh) * 2023-12-18 2024-03-29 慧之安信息技术股份有限公司 基于弹性资源分配策略的K8s存储资源分配方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109189401A (zh) * 2018-07-06 2019-01-11 曙光信息产业(北京)有限公司 一种深度学习框架的部署方法以及系统
TWI671690B (zh) * 2016-01-29 2019-09-11 美商奧誓公司 用於分散式深度機器學習之方法與系統
CN110502340A (zh) * 2019-08-09 2019-11-26 广东浪潮大数据研究有限公司 一种资源动态调整方法、装置、设备及存储介质
CN110659127A (zh) * 2018-06-29 2020-01-07 杭州海康威视数字技术股份有限公司 一种处理任务的方法、装置及系统
CN111090456A (zh) * 2019-12-06 2020-05-01 浪潮(北京)电子信息产业有限公司 一种深度学习开发环境的构建方法、装置、设备及介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874779B (zh) * 2018-06-21 2021-09-21 东北大学 基于K8s集群建立的依图写诗系统的控制方法
CN110738322B (zh) * 2018-07-03 2023-06-02 杭州海康威视数字技术股份有限公司 一种分布式训练方法、装置、设备及系统
US10922138B2 (en) * 2018-10-30 2021-02-16 Google Llc Resource conservation for containerized systems
CN109559734B (zh) * 2018-12-18 2022-02-18 百度在线网络技术(北京)有限公司 声学模型训练的加速方法和装置
CN112000473A (zh) * 2020-08-12 2020-11-27 中国银联股份有限公司 深度学习模型的分布式训练方法以及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI671690B (zh) * 2016-01-29 2019-09-11 美商奧誓公司 用於分散式深度機器學習之方法與系統
CN110659127A (zh) * 2018-06-29 2020-01-07 杭州海康威视数字技术股份有限公司 一种处理任务的方法、装置及系统
CN109189401A (zh) * 2018-07-06 2019-01-11 曙光信息产业(北京)有限公司 一种深度学习框架的部署方法以及系统
CN110502340A (zh) * 2019-08-09 2019-11-26 广东浪潮大数据研究有限公司 一种资源动态调整方法、装置、设备及存储介质
CN111090456A (zh) * 2019-12-06 2020-05-01 浪潮(北京)电子信息产业有限公司 一种深度学习开发环境的构建方法、装置、设备及介质

Also Published As

Publication number Publication date
TW202207030A (zh) 2022-02-16
WO2022033024A1 (zh) 2022-02-17
CN112000473A (zh) 2020-11-27

Similar Documents

Publication Publication Date Title
TWI783355B (zh) 深度學習模型的分布式訓練方法以及裝置
US9852173B1 (en) Systems and methods for using a reaction-based approach to managing shared state storage associated with a distributed database
JP2020024722A (ja) ストリーミング・サーバのセッション・アイドル最適化
JP2022008781A (ja) 分散型トレーニング方法、システム、デバイス、記憶媒体、及びプログラム
KR20200061393A (ko) 리소스 스케줄링 방법, 스케줄링 서버, 클라우드 컴퓨팅 시스템, 및 저장 매체
JP7170768B2 (ja) 開発マシン操作タスクの処理方法、電子機器、コンピュータ可読記憶媒体及びコンピュータプログラム
CN111782365B (zh) 定时任务处理方法、装置、设备及存储介质
US20200112628A1 (en) Heartbeat in failover cluster
US10565045B2 (en) Modularized collaborative performance issue diagnostic system
US11093279B2 (en) Resources provisioning based on a set of discrete configurations
CN111488121A (zh) 基于动态应用存取的映射系统和方法
Miao et al. Spotserve: Serving generative large language models on preemptible instances
CN111562969A (zh) 一种区块链的智能合约实现方法、装置、设备和介质
CN110413369B (zh) 用于虚拟化环境中的备份的系统和方法
US8621260B1 (en) Site-level sub-cluster dependencies
CN111290767B (zh) 具有业务快速恢复功能的容器组更新方法及系统
WO2023193527A1 (zh) 线程执行方法、装置、电子设备及计算机可读存储介质
WO2023280208A1 (zh) 数据处理方法、执行工作站、电子设备和存储介质
CN106453656B (zh) 一种集群主机选取方法及装置
JP7191493B2 (ja) スケジュール設定されたアンチエントロピー修復の設計のための技法
CN114780170B (zh) 容器资源的配置方法、装置、设备及存储介质
CN117493024B (zh) 多进程异构程序的迁移方法、存储介质及电子设备
WO2022268057A1 (en) Self orchestrated containers for cloud computing
US10922008B2 (en) System and method for backup of virtual machines organized using logical layers
US20240028431A1 (en) Leader election for groups of applications