JP2024529206A - Distributed Training for Container Scheduling for Intelligent Computing - Google Patents

Distributed Training for Container Scheduling for Intelligent Computing Download PDF

Info

Publication number
JP2024529206A
JP2024529206A JP2023547139A JP2023547139A JP2024529206A JP 2024529206 A JP2024529206 A JP 2024529206A JP 2023547139 A JP2023547139 A JP 2023547139A JP 2023547139 A JP2023547139 A JP 2023547139A JP 2024529206 A JP2024529206 A JP 2024529206A
Authority
JP
Japan
Prior art keywords
node
container
containers
target
model
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2023547139A
Other languages
Japanese (ja)
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 JP2024529206A publication Critical patent/JP2024529206A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本開示は、インテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法提供し、当該方法は、対象モデルを分割して複数のサブモデルを得るステップと、前記複数のサブモデルに基づいて、前記複数のサブモデルを配置するための少なくとも1つの計算ノードを決定し、前記少なくとも1つの計算ノード上に複数のコンテナを作成して、前記複数のサブモデルを前記複数のコンテナにそれぞれ配置するステップと、前記サンプルデータを用いてモデルトレーニングタスクを実行して、前記複数のコンテナ内に配置された前記複数のサブモデルをトレーニングするステップと、前記少なくとも1つの計算ノードの負荷データと、前記複数のコンテナのそれぞれに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを対象ノードとして決定するステップと、前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するステップと、コンテナの分布が調整された各計算ノードに基づいて、前記対象モデルのトレーニングタスクを実行するステップと、を含む。【選択図】図1The present disclosure provides a distributed training method for container scheduling for intelligent computing, the method including the steps of: dividing a target model to obtain a plurality of sub-models; determining at least one computing node for arranging the plurality of sub-models based on the plurality of sub-models, creating a plurality of containers on the at least one computing node, and arranging the plurality of sub-models in the plurality of containers, respectively; executing a model training task using the sample data to train the plurality of sub-models arranged in the plurality of containers; determining a computing node for which a distribution of containers needs to be adjusted as a target node based on load data of the at least one computing node and a computing time corresponding to each of the plurality of containers; adjusting the distribution of containers in the target node with the adjustment target that the computing times corresponding to each of the plurality of containers are close to each other; and executing a training task of the target model based on each computing node with the adjusted distribution of containers.

Description

本開示は、コンピュータ技術分野に関し、特に、インテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニングの方法、装置、記憶媒体および電子デバイスに関する。 The present disclosure relates to the field of computer technology, and in particular to a method, apparatus, storage medium, and electronic device for distributed training for container scheduling for intelligent computing.

人工知能の発展に伴い、機械学習の応用分野は広さから深さへと発展し、モデルトレーニングと応用への要求が高まっている。モデルサイズとトレーニングデータ量の大幅な増加に伴い、モデルのトレーニング効率を向上させるために、コンテナに基づく分散トレーニングが広く利用されるようになっている。 With the development of artificial intelligence, the application field of machine learning has developed from breadth to depth, and the requirements for model training and application have increased. With the significant increase in model size and training data volume, container-based distributed training has become widely used to improve model training efficiency.

具体的に、モデルトレーニングを行う一般的な方法は、サーバがモデルに基づいて分割されたサブモデルを1つまたは複数のコンテナに配置し、複数のコンテナが物理マシン上の計算ノード(GPUなど)の計算リソースを共有してモデルトレーニングを行うことである。しかし、モデルトレーニングの過程において、各計算ノードの計算リソースが動的に変化する可能性があり、また、複数のコンテナが1台の物理マシンを共有しているため、コンテナの性能は他のコンテナの影響を受け、分散トレーニングの効率が低下する可能性がある。 Specifically, a common method for model training is for a server to place submodels divided based on a model in one or more containers, and for the multiple containers to share the computing resources of a computing node (such as a GPU) on a physical machine to perform model training. However, during the model training process, the computing resources of each computing node may change dynamically, and since multiple containers share a single physical machine, the performance of a container may be affected by other containers, which may reduce the efficiency of distributed training.

そのため、計算ノード内のサブモデルのトレーニング時間を近づけて、計算ノード間の負荷不均衡を軽減させるように、モデルをトレーニングするときに計算ノードに配置されるコンテナの分布をいかに動的に調整するかが喫緊の課題となっている。 Therefore, an urgent issue is how to dynamically adjust the distribution of containers placed on compute nodes when training a model so as to bring the training times of submodels within a compute node closer together and reduce load imbalance between compute nodes.

本開示は先行技術の上記問題点を解決するためのインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法、装置、記憶媒体および電子デバイスを提供する。 The present disclosure provides a distributed training method, apparatus, storage medium, and electronic device for container scheduling for intelligent computing to solve the above problems in the prior art.

本開示に用いられる技術的解決手段は、以下のとおりである。 The technical solutions used in this disclosure are as follows:

本開示はインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法を提供し、前記方法は、
サンプルデータおよび対象モデルを取得するステップと、
前記対象モデルを分割して複数のサブモデルを得るステップであって、前記複数のサブモデルの各サブモデルは、前記対象モデルにおけるネットワーク層の一部を含む、得るステップと、
前記複数のサブモデルに基づいて、前記複数のサブモデルを配置するための少なくとも1つの計算ノードを決定し、前記少なくとも1つの計算ノード上に複数のコンテナを作成して、前記複数のサブモデルを前記複数のコンテナにそれぞれ配置するステップと、
前記サンプルデータを用いてモデルトレーニングタスクを実行して、前記複数のコンテナ内に配置された前記複数のサブモデルをトレーニングするステップと、
モデルトレーニングタスクを実行するときの前記少なくとも1つの計算ノードの負荷データを取得し、前記複数のコンテナの各々について、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を、当該コンテナに対応する演算時間として決定するステップと、
前記少なくとも1つの計算ノードの負荷データと、前記複数のコンテナのそれぞれに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを対象ノードとして決定するステップと、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するステップと、
コンテナの分布が調整された各計算ノードに基づいて、前記対象モデルのトレーニングタスクを実行するステップと、を含む。
The present disclosure provides a distributed training method for container scheduling for intelligent computing, the method comprising:
obtaining sample data and a target model;
Dividing the target model into a plurality of sub-models, each of the plurality of sub-models including a portion of a network layer in the target model;
determining at least one computing node for arranging the sub-models based on the sub-models, creating a plurality of containers on the at least one computing node, and arranging the sub-models in the plurality of containers, respectively;
running a model training task using the sample data to train the sub-models disposed within the containers;
acquiring load data of the at least one computing node when executing a model training task, and determining, for each of the plurality of containers, a computation time of the sub-model arranged in the container when executing a training task of the sub-model as a computation time corresponding to the container;
determining a computation node that requires container distribution adjustment as a target node based on load data of the at least one computation node and a computation time corresponding to each of the plurality of containers;
adjusting a distribution of containers in the target node with an adjustment target that calculation times corresponding to the plurality of containers are close to each other;
and executing a training task of the target model based on each computing node on which the distribution of containers has been adjusted.

オプションで、前記対象モデルを分割して複数の前記サブモデルを得るステップは、
モデルトレーニングタスクを実行するときの前記対象モデルの演算時間を決定するステップと、
前記対象モデルの演算時間に基づいて、前記対象モデルに含まれるネットワーク層を分割して、前記複数のサブモデルを取得するステップと、を含む。
Optionally, the step of dividing the target model to obtain a plurality of said sub-models comprises:
determining a computation time of the target model when performing a model training task;
and dividing a network layer included in the target model based on a calculation time of the target model to obtain the plurality of sub-models.

オプションで、前記複数のコンテナの各々について、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を決定するステップは、
所定の共有ストレージシステムから、当該コンテナに対応するトレーニング統計情報を決定するステップと、
前記トレーニング統計情報に含まれる、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行する開始時刻と終了時刻に基づいて、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を決定するステップと、を含む。
前記共有ストレージシステムに記憶されたトレーニング統計情報は、モデルトレーニングタスクを実行するときに前記少なくとも1つの計算ノードの各計算ノードによって生成された対象ログに基づいて決定され、前記対象ログは、予め定められた指定キーワードに従って前記少なくとも1つの計算ノードの各計算ノードによって生成されたログからフィルタリングされ、前記トレーニング統計情報は、特定数を蓄積した後に前記共有ストレージシステムに書き込まれ、前記少なくとも1つの計算ノードから削除される。
Optionally, the step of determining, for each of the plurality of containers, a computation time of the sub-model when executing a training task of the sub-model located within the container, comprises:
determining training statistics corresponding to the container from a given shared storage system;
The method includes a step of determining a calculation time for the sub-model placed in the container when executing a training task for the sub-model placed in the container, based on a start time and an end time for executing a training task for the sub-model placed in the container, the start time and the end time being included in the training statistical information.
The training statistics stored in the shared storage system are determined based on target logs generated by each of the at least one computing node when executing a model training task, the target logs are filtered from the logs generated by each of the at least one computing node according to predetermined designated keywords, and the training statistics are written to the shared storage system and deleted from the at least one computing node after accumulating a certain number.

オプションで、前記少なくとも1つの計算ノードの負荷データと、前記複数のコンテナのそれぞれに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するステップは、
前記複数のコンテナのそれぞれに対応する演算時間の大きい順に、前記複数のコンテナをソートして第1のソート結果を得るステップと、
前記第1のソート結果において、所定の順位より前にあるコンテナを対象コンテナとするステップと、
前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するステップと、を含む。
Optionally, the step of determining a computing node that needs to adjust the distribution of containers based on the load data of the at least one computing node and the computing time corresponding to each of the plurality of containers includes:
Sorting the plurality of containers in descending order of the calculation time corresponding to each of the plurality of containers to obtain a first sorting result;
determining a container that is prior to a predetermined order in the first sorting result as a target container;
determining a computing node for which a distribution of containers needs to be adjusted based on the target container and load data of the at least one computing node.

オプションで、前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するステップは、
前記対象コンテナが配置された計算ノードを第1のノードとして決定するステップと、
前記第1のノードの負荷データに基づいて、前記第1のノードの負荷が第1の設定閾値より高いと判定された場合、他の計算ノードから、前記第1のノードにおけるコンテナの一部を配置するための計算ノードを第2のノードとして決定するステップと、
前記第1のノードおよび前記第2のノードを、コンテナの分布を調整する必要がある計算ノードとして決定するステップと、を含む。
Optionally, the step of determining a compute node that needs to adjust a distribution of containers based on the target container and load data of the at least one compute node comprises:
determining a computing node on which the target container is placed as a first node;
determining, when a load of the first node is determined to be higher than a first set threshold based on the load data of the first node, a computation node for allocating a part of the containers in the first node as a second node from among other computation nodes;
determining the first node and the second node as computation nodes that need to adjust distribution of containers.

オプションで、前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するステップは、
前記対象コンテナに対応する演算時間と、他のコンテナに対応する演算時間との差が第2の設定閾値を超えると判定された場合、前記少なくとも1つの計算ノードの負荷データに基づいて、作成すべき新しいコンテナを配置する計算ノードを、コンテナの分布を調整する必要がある計算ノードとして決定するステップを含み、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するステップは、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードに新しいコンテナを作成し、前記対象コンテナに配置されたサブモデルのモデルデータのコピーを作成し、コピーによって得られたサブモデルを前記新しいコンテナに配置するステップを含む。
Optionally, the step of determining a compute node that needs to adjust a distribution of containers based on the target container and load data of the at least one compute node comprises:
determining, when it is determined that the difference between the calculation time corresponding to the target container and the calculation time corresponding to another container exceeds a second set threshold, a calculation node on which a new container to be created is to be placed as a calculation node on which a distribution of containers needs to be adjusted based on load data of the at least one calculation node;
The step of adjusting the distribution of containers in the target node with an adjustment target that the calculation times corresponding to the plurality of containers are close to each other includes:
The method includes the steps of creating a new container in the target node, making a copy of model data of a sub-model placed in the target container, and placing the sub-model obtained by copying in the new container, with the adjustment target being that the calculation times corresponding to each of the plurality of containers are close to each other.

オプションで、前記少なくとも1つの計算ノードの負荷データに基づいて、作成すべき新しいコンテナを配置する計算ノードを、コンテナの分布を調整する必要がある計算ノードとして決定するステップは、
前記少なくとも1つの計算ノードの負荷データが小さい順に、前記対象コンテナが配置された計算ノード以外の計算ノードをソートして第2のソート結果を得るステップと、
前記第2のソート結果に従って、ソートされた隣接する2つの計算ノード間の負荷差が所定の範囲内にあるかどうかを順次判定するステップと、
前記他の計算ノードのうち、ソートされた隣接する任意の2つの計算ノードについて、
当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にないと判定された場合、当該ソートされた隣接する2つの計算ノードのうち、負荷の低いノードを、作成すべき新しいコンテナを配置する計算ノードとし、
当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあると判定された場合、前記第2のソート結果におけるすべての計算ノードがトラバースされるまで、または作成すべき新しいコンテナを配置する計算ノードが決定されるまで、次のソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあるかどうかを判定するステップと、を含む。
Optionally, the step of determining a computing node on which a new container to be created is to be placed as a computing node on which distribution of containers needs to be adjusted based on load data of the at least one computing node comprises:
sorting the computing nodes other than the computing node on which the target container is placed in order of increasing load data of the at least one computing node to obtain a second sorting result;
Sequentially determining whether a load difference between two sorted adjacent computing nodes is within a predetermined range according to the second sorting result;
For any two sorted adjacent computing nodes among the other computing nodes,
if it is determined that the load difference between the two sorted adjacent computation nodes is not within the predetermined range, the node with the lower load among the two sorted adjacent computation nodes is set as the computation node on which a new container to be created is to be placed;
If it is determined that the load difference between the two sorted adjacent computing nodes is within the predetermined range, determining whether the load difference between the next two sorted adjacent computing nodes is within the predetermined range until all computing nodes in the second sorted result are traversed or until a computing node on which to place a new container to be created is determined.

オプションで、前記方法は、
前記第2のソート結果におけるソートされた隣接する2つの計算ノード間の各負荷差が前記所定の範囲内にあると判定された場合、前記作成すべき新しいコンテナに対応するサブモデルとネットワーク層の依存関係を有するサブモデルを、関連サブモデルとして決定するステップと、
前記関連サブモデルが配置された計算ノードを、関連ノードとして決定するステップと、
前記関連ノードと、前記関連ノード以外の他の計算ノードとの間のネットワーク遅延を測定するステップと、
測定によって得られたネットワーク遅延に基づいて、前記関連ノード以外の計算ノードから、作成すべき新しいコンテナを配置する計算ノードを決定するステップと、をさらに含む。
Optionally, the method further comprises:
determining, when it is determined that each load difference between two sorted adjacent computing nodes in the second sorting result is within the predetermined range, a sub-model having a network layer dependency relationship with the sub-model corresponding to the new container to be created as a related sub-model;
determining a computation node on which the associated sub-model is located as an associated node;
measuring a network delay between the relevant node and a computing node other than the relevant node;
The method further includes a step of determining, based on the network delay obtained by the measurement, a computation node on which to place a new container to be created, from computation nodes other than the associated node.

オプションで、前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するステップは、
前記対象コンテナが配置された計算ノードを決定するステップと、
前記対象コンテナが配置された計算ノードに指定コンテナが配置されたと判定された場合、前記対象コンテナが配置された計算ノードを、コンテナの分布を調整する必要がある計算ノードとするステップであって、前記指定コンテナに配置されたサブモデルは、前記対象コンテナに配置されたサブモデルと同じである、ステップと、を含み、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するステップは、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象コンテナが配置された計算ノードにおける前記対象コンテナまたは前記指定コンテナを削除するステップを含む。
Optionally, the step of determining a compute node that needs to adjust a distribution of containers based on the target container and load data of the at least one compute node comprises:
determining a computing node on which the target container is located;
a step of determining, when it is determined that a designated container has been placed on the computation node on which the target container has been placed, that the computation node on which the target container has been placed is a computation node on which a distribution of containers needs to be adjusted, and a sub-model placed on the designated container is the same as the sub-model placed on the target container;
The step of adjusting the distribution of containers in the target node with an adjustment target that the calculation times corresponding to the plurality of containers are close to each other includes:
The method includes a step of deleting the target container or the designated container from the calculation node on which the target container is placed, with the adjustment target being that the calculation times corresponding to each of the plurality of containers are close to each other.

オプションで、前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するステップは、
前記複数のコンテナのそれぞれに対応する演算時間が近く、かつ、前記少なくとも1つの計算ノードのそれぞれの負荷が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するステップと、
前記対象コンテナに対応する演算時間が他のコンテナに対応する演算時間より大きいコンテナの数は第1の閾値を超える場合、前記対象コンテナに対応する計算ノードを第1の対象ノードとするステップと、
前記各計算ノードのうちの任意の2つの計算ノードの負荷データの差が第2の閾値より大きい場合、前記任意の2つの計算ノードから負荷の軽い計算ノードを第2の対象ノードとして決定するステップと、を含む。
Optionally, the step of adjusting the distribution of containers in the target node with an adjustment target that the calculation times corresponding to the plurality of containers are close to each other includes:
adjusting a distribution of containers in the target node, with the adjustment targets being that the calculation times corresponding to the plurality of containers are close to each other and that the loads of the at least one computing node are close to each other;
When the number of containers whose calculation time corresponding to the target container is greater than the calculation time corresponding to other containers exceeds a first threshold, the calculation node corresponding to the target container is set as a first target node;
and when a difference in load data between any two of the computing nodes is greater than a second threshold, determining the computing node with the lighter load from the two computing nodes as a second target node.

本開示はインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング装置を提供し、前記装置は、
サンプルデータおよび対象モデルを取得するように構成される第1の取得モジュールと、
前記対象モデルを分割して複数のサブモデルを得るように構成される分割モジュールであって、前記複数のサブモデルの各サブモデルは、前記対象モデルにおけるネットワーク層の一部を含む、分割モジュールと、
前記複数のサブモデルに基づいて、前記複数のサブモデルを配置するための少なくとも1つの計算ノードを決定し、前記少なくとも1つの計算ノード上に複数のコンテナを作成して、前記複数のサブモデルを前記複数のコンテナにそれぞれ配置するように構成される第1の決定モジュールと、
前記サンプルデータを用いてモデルトレーニングタスクを実行して、前記複数のコンテナ内に配置された前記複数のサブモデルをトレーニングするように構成される第1のトレーニングモジュールと、
モデルトレーニングタスクを実行するときの前記少なくとも1つの計算ノードの負荷データを取得し、前記複数のコンテナの各々について、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を、当該コンテナに対応する演算時間として決定するように構成される第2の取得モジュールと、
前記少なくとも1つの計算ノードの負荷データと、前記複数のコンテナのそれぞれに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを対象ノードとして決定するように構成される第2の決定モジュールと、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するように構成される調整モジュールと、
コンテナの分布が調整された各計算ノードに基づいて、前記対象モデルのトレーニングタスクを実行するように構成される第2のトレーニングモジュールと、を備える。
The present disclosure provides a distributed training apparatus for container scheduling for intelligent computing, the apparatus comprising:
a first acquisition module configured to acquire sample data and an object model;
a segmentation module configured to segment the object model into a plurality of sub-models, each sub-model of the plurality of sub-models comprising a portion of a network layer in the object model;
a first determination module configured to determine at least one computing node for placing the plurality of sub-models based on the plurality of sub-models, create a plurality of containers on the at least one computing node, and place the plurality of sub-models in the plurality of containers, respectively;
a first training module configured to perform a model training task using the sample data to train the sub-models disposed within the containers;
a second acquisition module configured to acquire load data of the at least one computing node when executing a model training task, and determine, for each of the plurality of containers, a computation time of the sub-model arranged in the container when executing a training task of the sub-model as a computation time corresponding to the container;
A second determination module configured to determine a computation node that needs to adjust the distribution of containers as a target node based on load data of the at least one computation node and a computation time corresponding to each of the plurality of containers;
an adjustment module configured to adjust a distribution of containers in the target node with an adjustment target that calculation times corresponding to the plurality of containers are close to each other;
and a second training module configured to execute a training task of the target model based on each computing node on which the distribution of containers has been adjusted.

オプションで、前記分割モジュールは、具体的に、
モデルトレーニングタスクを実行するときの前記対象モデルの演算時間を決定し、
前記対象モデルの演算時間に基づいて、前記対象モデルに含まれるネットワーク層を分割して、前記複数のサブモデルを取得するように構成される。
Optionally, the splitting module specifically:
determining a computation time for the target model when performing a model training task;
The network layer included in the target model is divided based on the calculation time of the target model to obtain the plurality of sub-models.

オプションで、前記第2の取得モジュールは、具体的に、
所定の共有ストレージシステムから、当該コンテナに対応するトレーニング統計情報を決定し、
前記トレーニング統計情報に含まれる、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行する開始時刻と終了時刻に基づいて、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を決定するように構成される。
前記共有ストレージシステムに記憶されたトレーニング統計情報は、モデルトレーニングタスクを実行するときに前記少なくとも1つの計算ノードの各計算ノードによって生成された対象ログに基づいて決定され、前記対象ログは、予め定められた指定キーワードに従って前記少なくとも1つの計算ノードの各計算ノードによって生成されたログからフィルタリングされ、前記トレーニング統計情報は、特定数を蓄積した後に前記共有ストレージシステムに書き込まれ、前記少なくとも1つの計算ノードから削除される。
Optionally, the second acquisition module specifically comprises:
determining training statistics corresponding to the container from a given shared storage system;
The system is configured to determine the calculation time of the sub-model when executing the training task of the sub-model placed in the container, based on the start time and end time of executing the training task of the sub-model placed in the container, which are included in the training statistical information.
The training statistics stored in the shared storage system are determined based on target logs generated by each of the at least one computing node when executing a model training task, the target logs are filtered from the logs generated by each of the at least one computing node according to predetermined designated keywords, and the training statistics are written to the shared storage system and deleted from the at least one computing node after accumulating a certain number.

オプションで、前記第2の決定モジュールは、具体的に、
前記複数のコンテナのそれぞれに対応する演算時間の大きい順に、前記複数のコンテナをソートして第1のソート結果を得、
前記第1のソート結果において、所定の順位より前にあるコンテナを対象コンテナとし、
前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するように構成される。
Optionally, the second decision module specifically:
sorting the plurality of containers in descending order of the calculation times corresponding to the plurality of containers to obtain a first sorting result;
A container that is located before a predetermined order in the first sorting result is set as a target container;
The system is configured to determine a computing node that requires an adjustment of a distribution of containers based on the target container and load data of the at least one computing node.

オプションで、前記第2の決定モジュールは、具体的に、
前記複数のコンテナのそれぞれに対応する演算時間の大きい順に、前記複数のコンテナをソートして第1のソート結果を得、
前記第1のソート結果において、所定の順位より前にあるコンテナを対象コンテナとし、
前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するように構成される。
Optionally, the second decision module specifically:
sorting the plurality of containers in descending order of the calculation times corresponding to the plurality of containers to obtain a first sorting result;
A container that is located before a predetermined order in the first sorting result is set as a target container;
The system is configured to determine a computing node that requires an adjustment of a distribution of containers based on the target container and load data of the at least one computing node.

オプションで、前記第2の決定モジュールは、具体的に、
前記対象コンテナに対応する演算時間と、他のコンテナに対応する演算時間との差が第2の設定閾値を超えると判定された場合、前記少なくとも1つの計算ノードの負荷データに基づいて、作成すべき新しいコンテナを配置する計算ノードを、コンテナの分布を調整する必要がある計算ノードとして決定するように構成される。
前記調整モジュールは、具体的に、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードに新しいコンテナを作成し、前記対象コンテナに配置されたサブモデルのモデルデータのコピーを作成し、コピーによって得られたサブモデルを前記新しいコンテナに配置するように構成される。
Optionally, the second decision module specifically:
When it is determined that the difference between the calculation time corresponding to the target container and the calculation time corresponding to another container exceeds a second set threshold, the calculation node on which the new container to be created is to be placed is determined as a calculation node on which the distribution of containers needs to be adjusted, based on load data of the at least one calculation node.
The adjustment module specifically includes:
The method is configured to create a new container in the target node, create a copy of model data of a sub-model placed in the target container, and place the sub-model obtained by copying in the new container, with the adjustment target being that the calculation times corresponding to each of the plurality of containers are close to each other.

オプションで、前記第2の決定モジュールは、具体的に、
前記少なくとも1つの計算ノードの負荷データが小さい順に、前記対象コンテナが配置された計算ノード以外の計算ノードをソートして第2のソート結果を得、
前記第2のソート結果に従って、ソートされた隣接する2つの計算ノード間の負荷差が所定の範囲内にあるかどうかを順次判定し、
前記他の計算ノードのうち、ソートされた隣接する任意の2つの計算ノードについて、
当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にないと判定された場合、当該ソートされた隣接する2つの計算ノードのうち、負荷の低いノードを作成すべき新しいコンテナを配置する計算ノードとし、
当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあると判定された場合、前記第2のソート結果におけるすべての計算ノードがトラバースされるまで、または作成すべき新しいコンテナを配置する計算ノードが決定されるまで、次のソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあるかどうかを判定するように構成される。
Optionally, the second decision module specifically:
sorting the computation nodes other than the computation node on which the target container is placed in order of increasing load data of the at least one computation node to obtain a second sorting result;
Sequentially determining whether a load difference between two sorted adjacent computing nodes is within a predetermined range according to the second sorting result;
Among the other computing nodes, for any two sorted adjacent computing nodes,
If it is determined that the load difference between the two sorted adjacent calculation nodes is not within the predetermined range, the calculation node with the lower load among the two sorted adjacent calculation nodes is set as the calculation node to which the new container to be created is to be placed;
If it is determined that the load difference between the two sorted adjacent computing nodes is within the predetermined range, the system is configured to determine whether the load difference between the next two sorted adjacent computing nodes is within the predetermined range until all computing nodes in the second sorted result are traversed or until a computing node on which to place a new container to be created is determined.

オプションで、前記第2の決定モジュールは、さらに、
前記第2のソート結果におけるソートされた隣接する2つの計算ノード間の各負荷差が前記所定の範囲内にあると判定された場合、前記作成すべき新しいコンテナに対応するサブモデルとネットワーク層の依存関係を有するサブモデルを、関連サブモデルとして決定し、
前記関連サブモデルが配置された計算ノードを、関連ノードとして決定し、
前記関連ノードと、前記関連ノード以外の他の計算ノードとの間のネットワーク遅延を測定し、
測定によって得られたネットワーク遅延に基づいて、前記関連ノード以外の計算ノードから、作成すべき新しいコンテナを配置する計算ノードを決定するように構成される。
Optionally, the second decision module further comprises:
If it is determined that each load difference between two sorted adjacent computing nodes in the second sorting result is within the predetermined range, a submodel having a network layer dependency relationship with the submodel corresponding to the new container to be created is determined as a related submodel;
determining a computation node on which the related sub-model is located as a related node;
Measure a network delay between the relevant node and a computing node other than the relevant node;
The network node is configured to determine, based on the measured network delay, a computation node on which to place a new container to be created, from computation nodes other than the associated node.

オプションで、前記第2の決定モジュールは、具体的に、
前記対象コンテナが配置された計算ノードを決定し、
前記対象コンテナが配置された計算ノードに指定コンテナが配置されたと判定された場合、前記対象コンテナが配置された計算ノードを、コンテナの分布を調整する必要がある計算ノードとするように構成され、前記指定コンテナに配置されたサブモデルは、前記対象コンテナに配置されたサブモデルと同じである。
前記調整モジュールは、具体的に、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象コンテナが配置された計算ノードにおける前記対象コンテナまたは前記指定コンテナを削除するように構成される。
Optionally, the second decision module specifically:
determining a computing node on which the target container is located;
When it is determined that a designated container has been placed on the computation node on which the target container is placed, the computation node on which the target container is placed is configured to be a computation node for which a distribution of containers needs to be adjusted, and the sub-model placed on the designated container is the same as the sub-model placed on the target container.
The adjustment module specifically includes:
The target container or the designated container is deleted from the calculation node on which the target container is placed, with the adjustment target being that the calculation times corresponding to the plurality of containers are close to each other.

オプションで、前記調整モジュールは、具体的に、
前記複数のコンテナのそれぞれに対応する演算時間が近く、かつ、前記少なくとも1つの計算ノードのそれぞれの負荷が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するように構成される。
Optionally, the adjustment module specifically:
The distribution of containers in the target node is adjusted so that the calculation times corresponding to the plurality of containers are close to each other and the loads of the at least one calculation node are close to each other as adjustment targets.

本開示はコンピュータ可読記憶媒体を提供し、前記コンピュータ可読記憶媒体はコンピュータプログラムを記憶しており、前記コンピュータプログラムがプロセッサによって実行されると、上記インテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法が実施される。 The present disclosure provides a computer-readable storage medium that stores a computer program, which, when executed by a processor, performs the distributed training method for container scheduling for intelligent computing.

本開示は電子デバイスを提供し、前記電子デバイスは、メモリと、プロセッサと、前記メモリに記憶され、前記プロセッサ上で実行可能なコンピュータプログラムとを含み、前記プロセッサが前記コンピュータプログラムを実行すると、上記インテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法を実施する。 The present disclosure provides an electronic device, the electronic device including a memory, a processor, and a computer program stored in the memory and executable on the processor, the electronic device implementing the distributed training method for container scheduling for intelligent computing when the processor executes the computer program.

本開示で用いられる上記技術的解決手段の少なくとも1つは、以下の有益な効果を達成することができる。 At least one of the above technical solutions used in this disclosure can achieve the following beneficial effects:

本開示にて提供されるインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法は、対象モデルを分割して各サブモデルを得、各サブモデルに基づいて、各サブモデルを配置するための各計算ノードを決定し、各計算ノード上にコンテナを作成して、各サブモデルを各コンテナにそれぞれ配置し、サンプルデータを用いてモデルトレーニングタスクを実行して、各コンテナ内に配置されたサブモデルをトレーニングし、各計算ノードの負荷データと各コンテナに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを対象ノードとして決定し、サブモデルが配置された各計算ノードにおけるコンテナに対応する演算時間が近いことを調整目標として、対象ノードにおける各コンテナの分布を調整し、対象モデルのトレーニングタスクの実行を継続する。 The distributed training method for container scheduling for intelligent computing provided in the present disclosure divides a target model to obtain submodels, determines the computation nodes for placing the submodels based on the submodels, creates containers on the computation nodes, places the submodels in the containers, executes a model training task using sample data to train the submodels placed in the containers, determines the computation nodes for which the distribution of containers needs to be adjusted as target nodes based on the load data of the computation nodes and the computation times corresponding to the containers, adjusts the distribution of the containers in the target nodes with the adjustment goal that the computation times corresponding to the containers in the computation nodes on which the submodels are placed are close to each other, and continues execution of the training task for the target model.

上記方法から分かるように、モデルトレーニングタスクを実行するとき、まず対象モデルを複数のサブモデルに分割し、次に各サブモデルを配置するための各計算ノードを決定し、各計算ノード上にコンテナを作成して、各サブモデルを各前記コンテナにそれぞれ配置して、各計算ノードを通じてトレーニングタスクを完了する。モデルトレーニングの過程において、本開示は、各計算ノードの負荷データを測定し、サブモデルが配置された各計算ノードにおけるコンテナに対応する演算時間が近いことを調整目標として、各前記ノードにおける各コンテナの分布を動的に調整し、これにより、各計算ノード間の負荷分散に有利となり、モデルレーニングの効率をさらに向上させることができる。 As can be seen from the above method, when performing a model training task, first divide the target model into multiple submodels, then determine each computing node for placing each submodel, create a container on each computing node, place each submodel in each of the containers, and complete the training task through each computing node. During the model training process, the present disclosure measures the load data of each computing node, and dynamically adjusts the distribution of each container on each computing node with the adjustment goal that the calculation time corresponding to the container on each computing node where the submodel is placed is close, which is favorable for load distribution among each computing node and can further improve the efficiency of model training.

ここで説明される添付図面は、本開示の理解を深めるために用いられ、本開示の一部を構成し、本開示の例示的な実施形態およびその説明は、本開示を説明するために用いられ、本開示の不当な限定を構成するものではない。 The accompanying drawings described herein are used to enhance understanding of the present disclosure and constitute a part of the present disclosure, and the exemplary embodiments of the present disclosure and their description are used to explain the present disclosure and do not constitute an undue limitation of the present disclosure.

本開示の実施形態にて提供されるインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法のフローを示す概略図である。FIG. 1 is a schematic diagram showing a flow of a distributed training method for container scheduling for intelligent computing provided in an embodiment of the present disclosure. 本開示の実施形態にて提供されるシステム関係を示す概略図である。FIG. 1 is a schematic diagram showing system relationships provided in an embodiment of the present disclosure. 本開示の実施形態にて提供されるコンテナ調整を示す概略図である。FIG. 1 is a schematic diagram illustrating a container arrangement provided in an embodiment of the present disclosure. 本開示の実施形態にて提供されるインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング装置の構成を示す概略図である。FIG. 2 is a schematic diagram showing the configuration of a distributed training device for container scheduling for intelligent computing provided in an embodiment of the present disclosure. 本開示の実施形態にて提供される電子デバイスを示す概略図である。1 is a schematic diagram illustrating an electronic device provided in an embodiment of the present disclosure.

本開示の目的、技術的解決手段および利点をより明確にするために、以下、本開示の特定の実施形態および対応する添付図面と併せて、本開示の技術的解決手段を明確かつ完全に説明する。明らかに、説明された実施形態は、本開示の実施形態の一部に過ぎず、そのすべてではない。本開示の実施形態に基づいて、当業者が創作的な労力を要することなく得られる他のすべての実施形態は、いずれも本開示の保護範囲に属する。 In order to make the objectives, technical solutions and advantages of the present disclosure clearer, the technical solutions of the present disclosure will be described below clearly and completely in conjunction with specific embodiments of the present disclosure and corresponding accompanying drawings. Obviously, the described embodiments are only a part, but not all, of the embodiments of the present disclosure. All other embodiments that can be obtained by a person skilled in the art based on the embodiments of the present disclosure without requiring creative efforts all belong to the protection scope of the present disclosure.

以下、添付図面と併せて、本開示の各実施形態にて提供される技術的解決手段を詳細に説明する。 The technical solutions provided in each embodiment of the present disclosure are described in detail below with reference to the attached drawings.

図1は、本開示実施形態にて提供されるインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法のフローを示す概略図であり、以下のステップを含む。 Figure 1 is a schematic diagram showing the flow of a distributed training method for container scheduling for intelligent computing provided in an embodiment of the present disclosure, which includes the following steps:

S100において、サンプルデータおよび対象モデルを取得する。 In S100, sample data and target model are obtained.

S102において、前記対象モデルを分割して複数のサブモデルを得、各サブモデルは、前記対象モデルにおけるネットワーク層の一部を含む。 In S102, the target model is divided to obtain a plurality of sub-models, each of which includes a portion of the network layer in the target model.

モデルサイズとトレーニングデータ量の大幅な増加に伴い、大規模モデルは1台の物理マシン上で完全に配置できない可能性があり、1枚のGPUカードのメモリ容量も大規模モデルトレーニングの要求を満たすことができない。本開示は、モデルのトレーニング効率を向上させるために、インテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法を提供し、マルチマシン・マルチGPU方式を用いてモデルの分散トレーニングを実行する。 With the significant increase in model size and training data volume, large-scale models may not be fully deployed on a single physical machine, and the memory capacity of a single GPU card cannot meet the requirements of large-scale model training. The present disclosure provides a distributed training method for container scheduling for intelligent computing to improve model training efficiency, and performs distributed training of models using a multi-machine, multi-GPU approach.

本開示の実行主体は、システムであってもよく、ノートパソコン、デスクトップパソコンなどの電子デバイスであってもよく、モデルトレーニングタスクを実行するためのシステム(当該システムは、複数の端末デバイスからなるデバイスクラスタで構成されてもよい)であってもよい。説明の便宜上、以下、実行主体としてシステムのみを例に、本開示にて提供されるインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法について説明する。 The execution subject of the present disclosure may be a system, an electronic device such as a laptop or desktop computer, or a system for executing a model training task (the system may be configured as a device cluster consisting of multiple terminal devices). For ease of explanation, the following describes the distributed training method for container scheduling for intelligent computing provided in the present disclosure, using only a system as an example of the execution subject.

システムが、サンプルデータおよび対象モデルを取得し、対象モデルを分割して複数のサブモデルを得てもよく、ここで、各サブモデルは、対象モデルにおけるネットワーク層の一部を含む。 The system may obtain sample data and a target model, and divide the target model to obtain multiple sub-models, where each sub-model includes a portion of a network layer in the target model.

本開示では、システムが対象モデルの分割を実行できる様々な方法がある。 In this disclosure, there are various ways in which the system can perform segmentation of the target model.

具体的に、システムは、モデルトレーニングタスクを実行するときの対象モデルの演算時間を、対象モデルの演算時間として決定してもよい。システムは、決定された対象モデルの演算時間に基づいて、モデルのトレーニングタスクを実行するときの各サブモデルの演算時間が近いことを調整目標として、対象モデルに含まれる異なるネットワーク層を分割してもよい。 Specifically, the system may determine the computation time of the target model when performing the model training task as the computation time of the target model. Based on the determined computation time of the target model, the system may divide different network layers included in the target model with an adjustment goal that the computation times of each sub-model when performing the model training task are close to each other.

例えば、対象モデルに含まれるネットワーク層が30層であると仮定すると、システムは、対象モデルの演算時間に従って分割を行い、分割後の2つのサブモデルを得、そのうちの1つのサブモデルには対象モデルの最初の10層のネットワーク層が含まれ、もう1つのサブモデルには対象モデルの最後の20層のネットワーク層が含まれるようにしてもよい。この場合、システムは、この2つのサブモデルのトレーニングタスクを実行するとき、2つのサブモデルの演算時間長が近い、すなわち、この2つのサブモデルの演算時間の差が所定の範囲内にある。 For example, assuming that the target model contains 30 network layers, the system may divide the target model according to its calculation time to obtain two sub-models after division, one of which contains the first 10 network layers of the target model and the other of which contains the last 20 network layers of the target model. In this case, when the system executes the training task of the two sub-models, the calculation time lengths of the two sub-models are close, i.e., the difference in calculation time between the two sub-models is within a predetermined range.

もちろん、システムは、対象モデルに含まれるネットワーク層の数に基づいて、対象モデルを直接分割してもよい。対象モデルに含まれるネットワーク層が30層であると仮定すると、システムは、対象モデルのネットワーク層の数を均等に分け、分割された2つのサブモデルのうち、1つのサブモデルには対象モデルの最初の15層のネットワーク層が含まれ、もう1つのサブモデルには対象モデルの最後の15層のネットワーク層が含まれるようにしてもよい。本開示は、モデルを分割する方法を限定しない。 Of course, the system may directly divide the target model based on the number of network layers included in the target model. Assuming that the target model includes 30 network layers, the system may equally divide the number of network layers in the target model into two sub-models, one of which includes the first 15 network layers of the target model and the other of which includes the last 15 network layers of the target model. The present disclosure does not limit the method of dividing the model.

S104において、前記複数のサブモデルに基づいて、前記複数のサブモデルを配置するための少なくとも1つの計算ノードを決定し、前記少なくとも1つの計算ノード上に複数のコンテナを作成して、前記複数のサブモデルを前記複数のコンテナにそれぞれ配置する。 In S104, at least one computation node for placing the submodels is determined based on the submodels, multiple containers are created on the at least one computation node, and the submodels are placed in the containers, respectively.

システムは、複数のサブモデルに基づいて、複数のサブモデルを配置するための計算ノードを決定し、これらの計算ノード上に複数のコンテナを作成して、複数のサブモデルを前記複数のコンテナにそれぞれデ配置してもよい。 The system may determine, based on the sub-models, computational nodes for placing the sub-models, create containers on the computational nodes, and place the sub-models in the containers, respectively.

例えば、現在、5台の物理マシンがモデルトレーニングタスクを共同で完了し、各物理マシン上に2つの計算ノード(例えば、GPU)があると仮定すると、対象モデルを20個のサブモデルに分割した後、システムは、各計算ノード上に合計20個のコンテナを作成して、分割によって得られた20個のサブモデルをそれぞれ20個のコンテナに配置してもよい。 For example, assuming that five physical machines currently jointly complete a model training task and there are two computing nodes (e.g., GPUs) on each physical machine, after dividing the target model into 20 sub-models, the system may create a total of 20 containers on each computing node and place the 20 sub-models obtained by the division into the 20 containers, respectively.

S106において、前記サンプルデータを用いてモデルトレーニングタスクを実行して、前記複数のコンテナ内に配置された複数のサブモデルをトレーニングする。 At S106, a model training task is executed using the sample data to train the sub-models arranged within the containers.

システムは、サンプルデータを用いてモデルトレーニングタスクを実行して、各コンテナ内に配置されたサブモデルをトレーニングしてもよい。 The system may then run a model training task using the sample data to train the sub-models placed within each container.

具体的に、各サブモデルに対してモデルトレーニングを行うとき、システムは、ログ収集フレームワークを用いて、各サブモデルのトレーニング過程における関連データを収集してもよく、関連データは、各サブモデルがトレーニング過程で生成したすべてのデータが含まれ、各サブモデルのコンテナ上での計算および実行状況を反映するために用いられる。 Specifically, when performing model training for each submodel, the system may use a log collection framework to collect relevant data during the training process of each submodel, where the relevant data includes all data generated by each submodel during the training process and is used to reflect the calculation and execution status of each submodel on the container.

具体的に、システムは、ロギング(Logging)方式を用いて関連データを収集してもよい。各サブモデルがトレーニングを行うとき、システムは、モデル計算の開始と終了、メモリアクセスの開始と終了などの時点をトレーニング統計情報としてログ出力してもよい。 Specifically, the system may collect relevant data using a logging method. When each sub-model trains, the system may log the start and end of model calculation, the start and end of memory access, and other time points as training statistics.

関連データからトレーニング統計情報をフィルタリングするために、ログを出力するとき、システムは、コンテナアドレス情報やスレッド番号などのトレーニングスレッドを一意に識別できる情報をログコンテンツに追加してもよく、また、container-adaptive-adjustなど、他のログコンテンツと区別するキーワードをログコンテンツに追加してもよい。 To filter the training statistics from the related data, when outputting the log, the system may add information to the log content that can uniquely identify the training thread, such as container address information or thread number, and may also add keywords to the log content that distinguish it from other log content, such as container-adaptive-adjust.

各サブモデルに対してモデルのトレーニングを行うとき、システムは新たに生成されたログを連続的にスキャンしてもよい。開始時点のログがスキャンされた場合、システムは今回のトレーニング過程におけるサブモデルの実行(計算、ストレージアクセスなど)時間とスレッド番号などの一意の識別情報を記録し、その後、終了時点のログがスキャンされるまでスキャンを継続し、今回のトレーニング過程の実行時間を計算してもよい。 When training a model for each submodel, the system may continuously scan newly generated logs. When the start log is scanned, the system may record the execution time (computation, storage access, etc.) of the submodel in this training process and unique identification information such as the thread number, and then continue scanning until the end log is scanned and calculate the execution time of this training process.

システムは、キーワードに基づいてモデルトレーニングのために生成された対象ログをフィルタリングし、対象ログに基づいてサブモデルの実行開始時刻および終了時刻を決定し、対象ログに記録されたサブモデルの実行時間およびスレッド番号などの情報を、サブモデルの対応するコンテナに対応するトレーニング統計情報として共有ストレージシステムに送信して記憶してもよい。 The system may filter the target logs generated for model training based on keywords, determine the execution start time and end time of the sub-model based on the target logs, and transmit and store information such as the execution time and thread number of the sub-model recorded in the target logs to the shared storage system as training statistics information corresponding to the corresponding container of the sub-model.

具体的に、モデルトレーニングタスクを実行する各計算ノードに対して、各計算ノードはフィルタリングされた対象ログを通じて、各サブモデルのトレーニング統計情報を取得する。トレーニング統計情報の数が所定の閾値を超えていない場合、システムはトレーニング統計情報の数が所定の閾値を超えるまでログをスキャンし続けてもよい。このとき、システムはトレーニング統計情報を所定の共有ストレージシステムに一括送信する。 Specifically, for each computing node that executes a model training task, each computing node obtains training statistics of each sub-model through the filtered target log. If the number of training statistics does not exceed a predetermined threshold, the system may continue to scan the log until the number of training statistics exceeds the predetermined threshold. At this time, the system transmits the training statistics to a predetermined shared storage system in bulk.

なお、各計算ノードがトレーニング統計情報を共有ストレージシステムに一括送信した後、システムは、各計算ノードが保有するトレーニング統計情報を削除し、分散トレーニングが終了するまで各コンテナに対応するトレーニング統計情報を記録し続けてもよい。 After each computing node transmits the training statistics to the shared storage system in bulk, the system may delete the training statistics held by each computing node and continue to record the training statistics corresponding to each container until the distributed training is completed.

もちろん、システムは一括送信時間を予め設定してもよく、システムが前回トレーニング統計情報を共有ストレージシステムに一括送信した時間が予め設定された送信時間を超えた場合、トレーニング統計情報を共有ストレージシステムに一括送信してもよい。例えば、予め設定された送信時間が15分である場合、システムは、各サブモデルのトレーニング過程において、15分ごとにトレーニング統計情報を共有ストレージシステムに一括送信してもよい。 Of course, the system may preset a batch transmission time, and if the time since the system last batch-transmitted the training statistics to the shared storage system exceeds the preset transmission time, the system may batch-transmit the training statistics to the shared storage system. For example, if the preset transmission time is 15 minutes, the system may batch-transmit the training statistics to the shared storage system every 15 minutes during the training process of each sub-model.

すなわち、共有ストレージシステムに記憶された各トレーニング統計情報は、モデルトレーニングタスクを実行するときに各計算ノードによって生成された対象ログに基づいて決定され、対象ログは、予め定められた指定キーワードに従って各計算ノードによって生成されたログからフィルタリングされ、トレーニング統計情報は、特定数を蓄積した後、または予め設定された時間に達した後、共有ストレージシステムに書き込まれ、各計算ノードから削除される。 That is, each training statistical information stored in the shared storage system is determined based on the target logs generated by each computing node when executing the model training task, the target logs are filtered from the logs generated by each computing node according to predetermined specified keywords, and the training statistical information is written to the shared storage system and deleted from each computing node after accumulating a certain number or after reaching a preset time.

S108において、モデルトレーニングタスクを実行するときの前記少なくとも1つの計算ノードの負荷データを取得し、各コンテナについて、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を、当該コンテナに対応する演算時間として決定する。 In S108, load data of the at least one computing node when executing a model training task is acquired, and for each container, the computation time of the sub-model placed in the container when executing a training task of the sub-model is determined as the computation time corresponding to the container.

システムは、モデルトレーニングタスクを実行するときの各計算ノードの負荷データを取得し、各コンテナについて、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を、当該コンテナに対応する演算時間として決定してもよい。 The system may obtain load data for each computation node when executing a model training task, and for each container, determine the computation time of the sub-model placed in the container when executing a training task for that sub-model as the computation time corresponding to that container.

その後、システムは、各コンテナに対応する演算時間と各計算ノードの負荷データに基づいてコンテナの動作状態を分析し、コンテナの分布を調整してもよい。 The system may then analyze the operating status of the containers based on the computing time corresponding to each container and the load data of each computing node, and adjust the distribution of the containers.

具体的に、システムは、所定の共有ストレージシステムから、各コンテナに対応するトレーニング統計情報を読み出してもよい。各コンテナについて、システムは、トレーニング統計情報に含まれる、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行する開始時刻と終了時刻に基づいて、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を決定してもよい。 Specifically, the system may read training statistics corresponding to each container from a predetermined shared storage system. For each container, the system may determine a calculation time for the sub-model placed in the container when executing the training task for the sub-model, based on the start time and end time for executing the training task for the sub-model placed in the container, which are included in the training statistics.

モデルトレーニングの過程において、システムはトレーニング統計情報を共有ストレージシステムに継続的に書き込み、分散トレーニングへの影響を低減するために、システムが共有ストレージシステムからシステムが各コンテナに対応するトレーニング統計情報を読み出してコンテナの状態を分析するとき、各サブモデルの前回のトレーニング時に生成されたトレーニング統計情報を取得してもよい。 During the model training process, the system continuously writes the training statistics to the shared storage system, and may obtain the training statistics generated during the previous training of each sub-model when the system reads the training statistics corresponding to each container from the shared storage system to analyze the state of the container, in order to reduce the impact on distributed training.

つまり、システムがコンテナの動作状態を分析するときに使用するデータに対応するトレーニング反復順序は、現在のモデルトレーニングのトレーニング反復順序より1つ遅れている。例えば、現在のモデルトレーニングのトレーニング反復順序がiであると仮定すると、システムが共有ストレージシステムから読み出したトレーニング統計情報に対応するトレーニング反復順序はi-1である。 That is, the training iteration order corresponding to the data that the system uses to analyze the operating state of the container is one behind the training iteration order of the current model training. For example, assuming that the training iteration order of the current model training is i, the training iteration order corresponding to the training statistics information that the system reads from the shared storage system is i-1.

なお、共有ストレージシステムの性能を向上させるために、システムは、同じ反復順序に対応するトレーニング統計情報が連続的に格納されるように、トレーニング反復順序もキーワードの1つとして共有ストレージシステムに格納してもよい。 In addition, to improve the performance of the shared storage system, the system may also store the training iteration order as one of the keywords in the shared storage system so that training statistics corresponding to the same iteration order are stored consecutively.

S110において、前記少なくとも1つの計算ノードの負荷データと、前記複数のコンテナのそれぞれに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを対象ノードとして決定する。 In S110, a computing node for which the distribution of containers needs to be adjusted is determined as a target node based on the load data of the at least one computing node and the calculation time corresponding to each of the multiple containers.

S112において、前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整する。 In S112, the distribution of containers in the target node is adjusted so that the calculation times corresponding to each of the multiple containers are close to each other.

各計算ノードの負荷データと各コンテナの対応する演算時間を決定した後、システムはコンテナの分布を調整する必要がある計算ノードを対象ノードとして決定してもよい。 After determining the load data of each computing node and the corresponding computing time of each container, the system may determine the computing nodes that need to adjust the distribution of containers as target nodes.

具体的に、システムは、複数のコンテナのそれぞれに対応する演算時間の大きい順に、コンテナをソートして第1のソート結果を得、第1のソート結果において、所定の順位より前にある1つまたは複数のコンテナを1つまたは複数の対象コンテナとしてもよい。
システムは、各コンテナに対応する演算時間で各コンテナの動作状態を反映し、その後、各コンテナに対応する演算時間に基づいてコンテナの分布を調整する必要がある計算ノードを決定することができる。
Specifically, the system may sort the multiple containers in descending order of the calculation time corresponding to each of the multiple containers to obtain a first sorting result, and may select one or more containers that are prior to a predetermined rank in the first sorting result as one or more target containers.
The system can reflect the operating state of each container with the computing time corresponding to each container, and then determine the computing nodes that need to adjust the distribution of containers based on the computing time corresponding to each container.

例えば、所定の順位の具体的な値を5であると仮定すると、システムは、各計算ノードにおける各コンテナに対応する演算時間の大きい順に、第1のソート結果を得、そしてソート結果における最初の5つのコンテナを対象コンテナとしてもよい。 For example, assuming that the specific value of the predetermined ranking is 5, the system may obtain a first sorting result in descending order of the computation time corresponding to each container on each computing node, and the first five containers in the sorting result may be the target containers.

もちろん、システムは他の方法で対象コンテナを決定してもよい。 Of course, the system may determine the target container in other ways.

例えば、システムは各計算ノードの負荷情報を取得し、各計算ノードの負荷情報に基づいて、計算ノードにおけるGPU使用率が最も低い計算ノードを決定し、当該計算ノードのGPU使用率が所定の閾値よりも低い場合、当該計算ノードにおけるI/O負荷が最も高いコンテナを対象コンテナとしてもよい。 For example, the system may acquire load information for each computing node, and based on the load information for each computing node, determine the computing node with the lowest GPU usage rate, and if the GPU usage rate of the computing node is lower than a predetermined threshold, the container with the highest I/O load on the computing node may be set as the target container.

対象コンテナを決定した後、システムは対象コンテナと各計算ノードの負荷データに基づいて、ココンテナの分布を調整する必要がある計算ノードを決定してもよい。 After determining the target container, the system may determine the compute nodes for which the distribution of co-containers needs to be adjusted based on the load data of the target container and each compute node.

具体的に、システムは、対象コンテナが配置された計算ノードを第1のノードとして決定し、第1のノードの負荷データに基づいて、第1のノードの負荷が第1の設定閾値より高いと判定された場合、他の計算ノードから、第1のノードにおけるコンテナの一部を配置するための計算ノードを第2のノードとして決定してもよい。 Specifically, the system may determine the computation node on which the target container is placed as the first node, and if it is determined based on the load data of the first node that the load of the first node is higher than a first set threshold, determine from among the other computation nodes as the second node a computation node on which to place a portion of the container on the first node.

システムは、第1のノードおよび第2のノードを、コンテナの分布を調整する必要がある計算ノードとして決定し、サブモデルが配置された各計算ノードにおけるコンテナに対応する演算時間が近いことを調整目標として、第1のノードにおける対象コンテナを第2のノードに移行させることができる。 The system determines the first node and the second node as the computation nodes that require container distribution adjustment, and can migrate the target container in the first node to the second node with the adjustment goal that the calculation times corresponding to the containers in each computation node where the submodel is placed are close to each other.

ここで、第1の設定閾値は、予め設定されてもよく、第1のノード以外の計算ノードの負荷の平均値であってもよい。 Here, the first set threshold may be set in advance, or may be the average load of the computing nodes other than the first node.

例えば、システムは、第1のノードの負荷データに基づいて、第1のノードの負荷値が20である(負荷値は、負荷の高さを表すために使用され、負荷値は負荷と正の相関がある)と決定し、第1の設定閾値が10である場合、または、この時点の各計算ノードの負荷の平均値が10である場合、システムは、第1のノード以外の計算ノードから、第1のノードにおけるコンテナの一部を配置するための計算ノードを第2のノードとして決定する必要がある。 For example, the system determines based on the load data of the first node that the load value of the first node is 20 (the load value is used to indicate the level of load, and the load value is positively correlated with the load), and if the first set threshold is 10, or if the average load value of each computing node at this time is 10, the system needs to determine a computing node other than the first node as the second node for placing some of the containers in the first node.

具体的に、システムは、まず、第1のノードにおけるI/O負荷が最も高い対象コンテナを決定し、次に、第1のノード以外の計算ノードの負荷データに基づいて、I/O負荷が最も低い計算ノードを第2のノードとして決定し、このとき、第1のノードにおける対象コンテナを第2のノードに移行して、各計算ノードにおけるコンテナの分布を調整してもよい。 Specifically, the system first determines the target container with the highest I/O load on the first node, then determines the computation node with the lowest I/O load as the second node based on the load data of the computation nodes other than the first node, and at this time, migrates the target container on the first node to the second node to adjust the distribution of containers on each computation node.

もちろん、本開示では、コンテナの分布の調整が必要な計算ノードを他の方法によって決定してもよい。 Of course, this disclosure may use other methods to determine which compute nodes require container distribution adjustment.

システムが、対象コンテナに対応する演算時間と、他のコンテナに対応する演算時間との差が第2の設定閾値を超えると判定した場合、システムは、各計算ノードの負荷データに基づいて、作成すべき新しいコンテナを配置する計算ノードを、コンテナの分布を調整する必要がある計算ノードとして決定してもよい。 If the system determines that the difference between the computation time corresponding to the target container and the computation time corresponding to other containers exceeds a second set threshold, the system may determine, based on the load data of each computation node, the computation node on which to place the new container to be created as a computation node on which the distribution of containers needs to be adjusted.

ここで、第2の設定閾値は、予め設定されてもよく、各コンテナの対応する演算時間に対応する平均値であってもよい。 Here, the second set threshold may be preset or may be an average value corresponding to the corresponding calculation time for each container.

例えば、対象コンテナの数が1で、当該対象コンテナに対応する演算時間が20minで、当該対象コンテナ以外のコンテナに対応する演算時間が10minであると決定された場合、システムは、対象コンテナに対応する演算時間と、他のコンテナに対応する演算時間との差が第2の設定閾値(例えば、5min)を超えていると判定し、このとき、システムは、各計算ノードの負荷データに基づいて、作成すべき新しいコンテナを配置する計算ノードを、コンテナの分布を調整する必要がある計算ノードである対象ノードとして決定してもよい。 For example, if it is determined that the number of target containers is 1, the calculation time corresponding to the target container is 20 minutes, and the calculation time corresponding to containers other than the target container is 10 minutes, the system determines that the difference between the calculation time corresponding to the target container and the calculation time corresponding to the other containers exceeds a second set threshold (e.g., 5 minutes), and at this time, the system may determine, based on the load data of each calculation node, the calculation node on which the new container to be created is to be placed as the target node, which is the calculation node for which the distribution of containers needs to be adjusted.

この場合、システムが対象ノードを決定する方法は様々かある。 In this case, there are various ways the system can determine the target node.

具体的に、システムは、計算ノードの負荷データが小さい順に、対象コンテナが配置された計算ノード以外の計算ノードをソートして第2のソート結果を得、第2のソート結果に従って、ソートされた隣接する2つの計算ノード間の負荷差が所定の範囲内にあるかどうかを順次判定してもよい。 Specifically, the system may sort the computation nodes other than the computation node on which the target container is placed in order of the smallest load data of the computation nodes to obtain a second sorting result, and sequentially determine whether the load difference between two sorted adjacent computation nodes is within a predetermined range according to the second sorting result.

上記の他の計算ノードのうち、ソートされた隣接する任意の2つの計算ノードについて、当該ソートされた隣接する2つの計算ノード間の負荷差が所定の範囲内にないと判定された場合、システムは、当該ソートされた隣接する2つの計算ノードのうち、負荷の低いノードを作成すべき新しいコンテナを配置する計算ノードとし、当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあると判定された場合、第2のソート結果におけるすべての計算ノードがトラバースされるまで、または作成すべき新しいコンテナを配置する計算ノードが決定されるまで、次のソートされた隣接する2つの計算ノード間の負荷差が所定の範囲内にあるかどうかを判定してもよい。 If it is determined that the load difference between any two sorted adjacent computing nodes among the other computing nodes is not within a predetermined range, the system may determine that the node with the lower load among the two sorted adjacent computing nodes is the computing node on which to place the new container to be created, and if it is determined that the load difference between the two sorted adjacent computing nodes is within the predetermined range, it may determine whether the load difference between the next two sorted adjacent computing nodes is within a predetermined range until all computing nodes in the second sorted result are traversed or until the computing node on which to place the new container to be created is determined.

ここで、各計算ノードの負荷データは、GPU使用率、CPU使用率、メモリ使用率、およびストレージデバイスの帯域幅で表すことができる。 Here, the load data for each computing node can be expressed in terms of GPU usage, CPU usage, memory usage, and storage device bandwidth.

例えば、システムは、各計算ノードのGPU使用率が小さい順に、対象コンテナが配置された計算ノード以外の計算ノードをソートしてもよい。 For example, the system may sort the compute nodes other than the compute node on which the target container is placed in order of the lowest GPU usage rate of each compute node.

前記他の計算ノードのうち、ソートされた隣接する任意の2つの計算ノードについて、当該ソートされた隣接する2つの計算ノード間のGPU使用率の差が所定の範囲内にないと判定された場合、当該ソートされた隣接する2つの計算ノードのうち、GPU使用率の低いノードを作成すべき新しいコンテナを配置する計算ノードとし、当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあると判定された場合、作成すべき新しいコンテナを配置する計算ノードが決定されるまで、次のソートされた隣接する2つの計算ノード間のGPU使用率の差が所定の範囲内にあるかどうかを判定する。 If it is determined that the difference in GPU usage between any two sorted adjacent computing nodes among the other computing nodes is not within a predetermined range, the node with the lower GPU usage among the two sorted adjacent computing nodes is set as the computing node on which to place the new container to be created, and if it is determined that the load difference between the two sorted adjacent computing nodes is within the predetermined range, it is determined whether the difference in GPU usage between the next two sorted adjacent computing nodes is within a predetermined range until the computing node on which to place the new container to be created is determined.

第2のソート結果において、各ソートされた隣接する2つの計算ノードのGPU使用率の差が所定の範囲内にある場合、システムは、各計算ノードのGPU使用率が小さい順に、対象コンテナが配置された計算ノード以外の計算ノードを再度ソートして、第2のソート結果を再度得てもよい。 If the difference in GPU usage between each pair of sorted adjacent computing nodes in the second sorting result is within a predetermined range, the system may re-sort the computing nodes other than the computing node on which the target container is placed in order of the GPU usage of each computing node from smallest to largest, thereby obtaining the second sorting result again.

このとき、ソートされた隣接する任意の2つの計算ノードについて、当該ソートされた隣接する2つの計算ノード間のGPU使用率の差が所定の範囲内にないと判定された場合、当該ソートされた隣接する2つの計算ノードのうち、GPU使用率の低いノードを作成すべき新しいコンテナを配置する計算ノードとする。 At this time, if it is determined that the difference in GPU usage between any two sorted adjacent computing nodes is not within a predetermined range, the node with the lower GPU usage is selected as the computing node in which to place the new container to be created.

このように、システムは、作成すべき新しいコンテナを配置する計算ノードが決定されるまで、計算ノードのGPU使用率、CPU使用率、メモリ使用率、ストレージデバイスの帯域幅などのデータサイズを順次比較してもよい。 In this way, the system may sequentially compare the data size of the compute nodes, such as GPU utilization, CPU utilization, memory utilization, and storage device bandwidth, until a compute node is determined on which to place the new container to be created.

システムが、計算ノードのGPU使用率、CPU使用率、メモリ使用率、ストレージデバイスの帯域幅などのデータサイズを順次比較しても、作成すべき新しいコンテナを配置する計算ノードを決定していない場合、システムは、他の方法で作成すべき新しいコンテナを配置する計算ノードを決定してもよい。 If the system has not yet determined the computation node on which to place the new container to be created by sequentially comparing the data size of the computation nodes, such as the GPU usage, CPU usage, memory usage, and storage device bandwidth, the system may determine the computation node on which to place the new container to be created by another method.

具体的に、システムが前記第2のソート結果におけるソートされた隣接する2つの計算ノード間の負荷差が所定の範囲内にあると判定した場合、システムは、作成すべき新しいコンテナに対応するサブモデルとネットワーク層の依存関係を有するサブモデルを、関連サブモデルとして決定してもよい。例えば、あるサブモデルの出力が別のサブモデルの入力である場合、この2つのサブモデルを関連サブモデルとすることができる。 Specifically, if the system determines that the load difference between two sorted adjacent computing nodes in the second sorting result is within a predetermined range, the system may determine, as a related submodel, a submodel that has a network layer dependency with a submodel corresponding to a new container to be created. For example, if the output of one submodel is the input of another submodel, the two submodels can be related submodels.

また、システムは、関連サブモデルが配置された計算ノードを、関連ノードとして決定しともよい。システムは、関連ノードと、前記関連ノード以外の他の計算ノードとの間のネットワーク遅延を測定し、測定によって得られたネットワーク遅延に基づいて、前記関連ノード以外の計算ノードから、作成すべき新しいコンテナを配置する計算ノードを決定してもよい。 The system may also determine a computation node on which a related submodel is placed as a related node. The system may measure a network delay between the related node and a computation node other than the related node, and determine a computation node on which to place a new container to be created from among the computation nodes other than the related node, based on the network delay obtained by the measurement.

例えば、システムは、関連ノードとの間のネットワーク遅延が最も小さい計算ノードを、作成すべき新しいコンテナを配置する計算ノードとしてもよい。あるいは、システムは、関連ノードと他の計算ノードとの間のネットワーク遅延の平均値を決定し、関連ノードとのネットワーク遅延が当該平均値より低い他の計算ノードを、作成すべき新しいコンテナを配置する計算ノードとしてもよい。 For example, the system may select a computation node with the smallest network latency between the associated node as the computation node on which to place the new container to be created. Alternatively, the system may determine an average value of the network latency between the associated node and other computation nodes, and select other computation nodes with network latency between the associated node and other computation nodes that is lower than the average value as the computation node on which to place the new container to be created.

作成すべき新しいコンテナを配置する計算ノードが決定された後、システムは、サブモデルが配置された計算ノードにおけるコンテナに対応する演算時間が近いことを調整目標として、対象ノードに新しいコンテナを作成し、対象コンテナに配置されたサブモデルのモデルデータのコピーを作成し、コピーによって得られたサブモデルを新しいコンテナに配置してもよい。 After determining the computation node on which to place the new container to be created, the system may create a new container on the target node, make a copy of the model data of the submodel placed in the target container, and place the submodel obtained by copying in the new container, with the adjustment goal that the computation time corresponding to the container on the computation node on which the submodel is placed is close.

これに加えて、システムは、他の方法で対象ノードを決定してもよい。 In addition, the system may determine the target node in other ways.

具体的に、システムは、まず対象コンテナが配置された計算ノードを決定し、対象コンテナが配置された計算ノードに指定コンテナが配置されたと判定された場合、対象コンテナが配置された計算ノードを、コンテナの分布を調整する必要がある計算ノードとしてもよい。ここで、指定コンテナに配置されたサブモデルは、対象コンテナに配置されたサブモデルと同じである。 Specifically, the system first determines the computation node on which the target container is placed, and if it is determined that the designated container is placed on the computation node on which the target container is placed, the computation node on which the target container is placed may be determined to be the computation node on which the distribution of containers needs to be adjusted. Here, the sub-model placed in the designated container is the same as the sub-model placed in the target container.

対象ノードが決定された後、システムは、サブモデルが配置された計算ノードにおけるコンテナに対応する演算時間が近いことを調整目標として、対象コンテナが配置された計算ノードにおける対象コンテナまたは指定コンテナを削除してもよい。 After the target node is determined, the system may delete the target container or a specified container on the computation node on which the target container is placed, with the adjustment goal that the computation time corresponding to the container on the computation node on which the submodel is placed is close.

すなわち、サブモデルのモデルパラメータが同じである複数のコンテナが同時に1つの物理ノード(例えば、同じ物理マシン)上に配置されている場合、システムは、サブモデルが配置された計算ノードにおけるコンテナに対応する演算時間が近いことを調整目標として、その物理ノード上のコンテナを削除し、当該物理ノード上に配置されているサブモデルのモデルパラメータが同じである1つのコンテナだけを保持してもよい。 In other words, when multiple containers with the same model parameters of sub-models are simultaneously placed on one physical node (e.g., the same physical machine), the system may delete the container on the physical node on which the sub-models are placed, and retain only one container with the same model parameters of the sub-models placed on that physical node, with the adjustment goal that the calculation times corresponding to the containers on the calculation node on which the sub-models are placed are close to each other.

なお、本開示では、対象ノードにおける各コンテナの分布を調整するとき、システムは、サブモデルが配置された計算ノードにおけるコンテナに対応する演算時間が近く、かつ、コンテナが配置された計算ノードの負荷が近いことを調整目標として、対象ノードにおける各コンテナの分布を調整する。 In addition, in this disclosure, when adjusting the distribution of each container in a target node, the system adjusts the distribution of each container in the target node with the adjustment goal that the calculation times corresponding to the containers in the computation nodes on which the submodels are placed are similar, and that the loads of the computation nodes on which the containers are placed are similar.

S114において、コンテナの分布が調整された各計算ノードに基づいて、前記対象モデルのトレーニングタスクを実行する。 At S114, a training task for the target model is executed based on each computing node where the distribution of containers has been adjusted.

システムが対象ノードにおける各コンテナの分布を調整した後、コンテナの分布が調整された各計算ノードに基づいて、システムは、サンプルデータを使用して、対象モデルのトレーニングタスクを引き続き実行してもよい。 After the system adjusts the distribution of each container on the target nodes, the system may continue to perform the training task of the target model using the sample data based on each computation node on which the distribution of containers has been adjusted.

なお、対象ノードにおけるコンテナの分布を調整する前に、システムは、現在のすべてのコンテナに対してチェックポイント(checkpoint)操作を実行し、現在のトレーニング反復順序のトレーニング情報を保存してもよい。 Note that before adjusting the distribution of containers on the target node, the system may perform a checkpoint operation on all current containers and save the training information of the current training iteration order.

コンテナの分布が調整された各計算ノードに基づいて、ロード(load)操作により、システムは、以前に保存されるトレーニング情報を取得し、次に、すべてのコンテナ内のサブモデルに対するトレーニングスレッドを起動して、各サブモデルのトレーニングを継続してもよい。なお、新しく作成されたコンテナ内のサブモデルの中間トレーニング変数は、当該サブモデルのモデルデータと同じである他のコンテナからコピーしてもよい。 Based on each computing node with the adjusted distribution of containers, the system may retrieve the previously saved training information through a load operation, and then launch training threads for the sub-models in all containers to continue training each sub-model. Note that the intermediate training variables of the sub-models in the newly created container may be copied from other containers that are the same as the model data of the sub-model.

なお、本開示で述べた上記の内容は、実行主体としてシステムのみを例に、インテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法について説明したものである。しかし、実際には、当該システムは、複数の計算ノード、アナライザ、およびスケジューラから構成されてもよい。 The above contents of this disclosure have been used to explain the distributed training method for container scheduling for intelligent computing, taking only a system as an execution entity as an example. However, in reality, the system may be composed of multiple computing nodes, analyzers, and schedulers.

図2は、本開示にて提供されるシステム関係を示す概略図である。 Figure 2 is a schematic diagram showing the system relationships provided in this disclosure.

図2に示すように、各計算ノードが各サブモデルに対して分散トレーニングを行う過程において、各計算ノードはトレーニング統計情報を共有ストレージシステムに一括書き込み続ける。 As shown in Figure 2, while each computing node performs distributed training for each submodel, each computing node continues to write training statistics to the shared storage system in bulk.

各計算ノードに含まれるコンテナの分布を調整する前に、アナライザは、モデルトレーニングタスクを実行するときの各計算ノードの負荷データを取得するために、共有ストレージシステムからトレーニング統計情報を読み出し、各コンテナについて、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を、当該コンテナに対応する演算時間として決定してもよい。 Before adjusting the distribution of containers contained in each computation node, the analyzer may read training statistics from the shared storage system to obtain load data for each computation node when executing a model training task, and may determine, for each container, the computation time of the sub-model placed in the container when executing a training task for that sub-model as the computation time corresponding to that container.

アナライザが各計算ノードの負荷データと各コンテナに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを決定した後に、スケジューラは、各計算ノードにおけるコンテナの分布を調整してもよい。 After the analyzer determines the compute nodes for which the distribution of containers needs to be adjusted based on the load data of each compute node and the computation time corresponding to each container, the scheduler may adjust the distribution of containers on each compute node.

図3は、本開示にて提供されるコンテナ調整を示す概略図である。 Figure 3 is a schematic diagram showing the container adjustments provided in this disclosure.

図3に示すように、スケジューラは、サブモデルが配置された各計算ノードにおけるコンテナに対応する演算時間が近いことを調整目標として、対象ノードにおける各コンテナの分布を調整してもよい。具体的な調整方法については、ステップS110~ステップS112で詳細に説明した。 As shown in FIG. 3, the scheduler may adjust the distribution of each container on the target node, with the adjustment goal that the computation times corresponding to the containers on each computing node on which the submodel is placed are close to each other. The specific adjustment method is described in detail in steps S110 to S112.

スケジューラがコンテナの分布を調整した後、コンテナの分布が調整された各計算ノードに基づいて、各計算ノードは対象モデルの学習タスクを継続して実行してもよい。 After the scheduler adjusts the distribution of containers, each computing node may continue to execute the learning task of the target model based on the adjusted distribution of containers for each computing node.

上記の方法から分かるように、モデルトレーニングタスクを実行するとき、まず対象モデルを複数のサブモデルに分割し、次に各サブモデルを配置するための各計算ノードを決定し、各計算ノード上にコンテナを作成して、各サブモデルを各前記コンテナにそれぞれ配置して、各計算ノードを通じてトレーニングタスクを完了する。モデルトレーニングの過程において、本開示は、各計算ノードの負荷データを測定し、サブモデルが配置された各計算ノードにおけるコンテナに対応する演算時間が近いことを調整目標として、各前記ノードにおける各コンテナの分布を動的に調整し、これにより、各計算ノード間の負荷分散に有利となり、モデルレーニングの効率をさらに向上させることができる。 As can be seen from the above method, when performing a model training task, first divide the target model into multiple submodels, then determine each computing node for placing each submodel, create a container on each computing node, place each submodel in each container, and complete the training task through each computing node. In the process of model training, the present disclosure measures the load data of each computing node, and dynamically adjusts the distribution of each container on each computing node with the adjustment goal that the calculation time corresponding to the container on each computing node where the submodel is placed is close, which is favorable for load distribution among each computing node, and can further improve the efficiency of model training.

以上が、本開示の1つまたは複数の実施形態にて提供される方法であり、同じ考えに基づいて、本開示は図4に示すような、対応するインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング装置をさらに提供する。 The above is a method provided in one or more embodiments of the present disclosure. Based on the same idea, the present disclosure further provides a corresponding distributed training device for container scheduling for intelligent computing, as shown in FIG. 4.

図4は、本開示にて提供されるインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング装置を示す概略図であり、前記装置は、
サンプルデータおよび対象モデルを取得するように構成される第1の取得モジュール400と、
前記対象モデルを分割して複数のサブモデルを得るように構成される分割モジュール402であって、前記複数のサブモデルの各サブモデルは、前記対象モデルにおけるネットワーク層の一部を含む、分割モジュール402と、
前記複数のサブモデルに基づいて、前記複数のサブモデルを配置するための少なくとも1つの計算ノードを決定し、前記少なくとも1つの計算ノード上に複数のコンテナを作成して、前記複数のサブモデルを前記複数のコンテナにそれぞれ配置するように構成される第1の決定モジュール404と、
前記サンプルデータを用いてモデルトレーニングタスクを実行して、前記複数のコンテナ内に配置された前記複数のサブモデルをトレーニングするように構成される第1のトレーニングモジュール406と、
モデルトレーニングタスクを実行するときの前記少なくとも1つの計算ノードの負荷データを取得し、前記複数のコンテナの各々について、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を、当該コンテナに対応する演算時間として決定するように構成される第2の取得モジュール408と、
前記少なくとも1つの計算ノードの負荷データと、前記複数のコンテナのそれぞれに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを対象ノードとして決定するように構成される第2の決定モジュール410と、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するように構成される調整モジュール412と、
コンテナの分布が調整された各計算ノードに基づいて、前記対象モデルのトレーニングタスクを実行するように構成される第2のトレーニングモジュール414と、を備える。
FIG. 4 is a schematic diagram showing a distributed training device for container scheduling for intelligent computing provided in the present disclosure, the device comprising:
a first acquisition module 400 configured to acquire sample data and an object model;
a segmentation module 402 configured to segment the object model into a plurality of sub-models, each sub-model of the plurality of sub-models comprising a portion of a network layer in the object model;
a first determination module 404 configured to determine at least one computing node for placing the plurality of sub-models based on the plurality of sub-models, create a plurality of containers on the at least one computing node, and place the plurality of sub-models in the plurality of containers, respectively;
a first training module 406 configured to perform a model training task using the sample data to train the sub-models disposed within the containers;
a second acquisition module 408 configured to acquire load data of the at least one computing node when executing a model training task, and determine, for each of the plurality of containers, a computation time of the sub-model arranged in the container when executing a training task of the sub-model as a computation time corresponding to the container;
A second determination module 410 configured to determine a computing node that needs to adjust the distribution of containers as a target node based on the load data of the at least one computing node and the computing time corresponding to each of the plurality of containers;
an adjustment module 412 configured to adjust a distribution of containers in the target node with an adjustment target that the calculation times corresponding to the plurality of containers are close to each other;
and a second training module 414 configured to execute a training task of the target model based on each computing node to which the distribution of containers has been adjusted.

オプションで、前記分割モジュール402は、具体的に、
モデルトレーニングタスクを実行するときの前記対象モデルの演算時間を決定し、
前記対象モデルの演算時間に基づいて、前記対象モデルに含まれるネットワーク層を分割して、前記複数のサブモデルを取得するように構成される。
Optionally, the segmentation module 402 specifically:
determining a computation time for the target model when performing a model training task;
The network layer included in the target model is divided based on the calculation time of the target model to obtain the plurality of sub-models.

オプションで、前記第2の取得モジュール408は、具体的に、
所定の共有ストレージシステムから、当該コンテナに対応するトレーニング統計情報を決定し、
前記トレーニング統計情報に含まれる、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行する開始時刻と終了時刻に基づいて、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を決定するように構成される。
前記共有ストレージシステムに記憶されたトレーニング統計情報は、モデルトレーニングタスクを実行するときに前記少なくとも1つの計算ノードの各計算ノードによって生成された対象ログに基づいて決定され、前記対象ログは、予め定められた指定キーワードに従って前記少なくとも1つの計算ノードの各計算ノードによって生成されたログからフィルタリングされ、前記トレーニング統計情報は、特定数を蓄積した後に前記共有ストレージシステムに書き込まれ、前記少なくとも1つの計算ノードから削除される。
Optionally, the second acquisition module 408 specifically:
determining training statistics corresponding to the container from a given shared storage system;
The system is configured to determine the calculation time of the sub-model when executing the training task of the sub-model placed in the container, based on the start time and end time of executing the training task of the sub-model placed in the container, which are included in the training statistical information.
The training statistics stored in the shared storage system are determined based on target logs generated by each of the at least one computing node when executing a model training task, the target logs are filtered from the logs generated by each of the at least one computing node according to predetermined designated keywords, and the training statistics are written to the shared storage system and deleted from the at least one computing node after accumulating a certain number.

オプションで、前記第2の決定モジュール410は、具体的に、
前記複数のコンテナのそれぞれに対応する演算時間の大きい順に、前記複数のコンテナをソートして第1のソート結果を得、
前記第1のソート結果において、所定の順位より前にあるコンテナを対象コンテナとし、
前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するように構成される。
Optionally, the second determination module 410 specifically determines whether
sorting the plurality of containers in descending order of the calculation times corresponding to the plurality of containers to obtain a first sorting result;
A container that is located before a predetermined order in the first sorting result is set as a target container;
The system is configured to determine a computing node that requires an adjustment of a distribution of containers based on the target container and load data of the at least one computing node.

オプションで、前記第2の決定モジュール410は、具体的に、
前記対象コンテナが配置された計算ノードを第1のノードとして決定し、
前記第1のノードの負荷データに基づいて、前記第1のノードの負荷が第1の設定閾値より高いと判定された場合、他の計算ノードから、前記第1のノードにおけるコンテナの一部を配置するための計算ノードを第2のノードとして決定し、
前記第1のノードおよび前記第2のノードを、コンテナの分布を調整する必要がある計算ノードとして決定するように構成される。
Optionally, the second determination module 410 specifically determines whether
determining a computing node on which the target container is placed as a first node;
determining, when a load of the first node is determined to be higher than a first set threshold based on the load data of the first node, a computation node for allocating a part of the containers of the first node as a second node from among the other computation nodes;
The first node and the second node are configured to determine the first node and the second node as computation nodes that need to adjust the distribution of containers.

オプションで、前記第2の決定モジュール410は、具体的に、
前記対象コンテナに対応する演算時間と、他のコンテナに対応する演算時間との差が第2の設定閾値を超えると判定された場合、前記少なくとも1つの計算ノードの負荷データに基づいて、作成すべき新しいコンテナを配置する計算ノードを、コンテナの分布を調整する必要がある計算ノードとして決定するように構成される。
前記調整モジュール412は、具体的に、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードに新しいコンテナを作成し、前記対象コンテナに配置されたサブモデルのモデルデータのコピーを作成し、コピーによって得られたサブモデルを前記新しいコンテナに配置するように構成される。
Optionally, the second determination module 410 specifically:
When it is determined that the difference between the calculation time corresponding to the target container and the calculation time corresponding to another container exceeds a second set threshold, the calculation node on which the new container to be created is to be placed is determined as a calculation node on which the distribution of containers needs to be adjusted, based on load data of the at least one calculation node.
The adjustment module 412 specifically includes:
The method is configured to create a new container in the target node, create a copy of model data of a sub-model placed in the target container, and place the sub-model obtained by copying in the new container, with the adjustment target being that the calculation times corresponding to each of the plurality of containers are close to each other.

オプションで、前記第2の決定モジュール410は、具体的に、
前記少なくとも1つの計算ノードの負荷データが小さい順に、前記対象コンテナが配置された計算ノード以外の計算ノードをソートして第2のソート結果を得、
前記第2のソート結果に従って、ソートされた隣接する2つの計算ノード間の負荷差が所定の範囲内にあるかどうかを順次判定し、
前記他の計算ノードのうち、ソートされた隣接する任意の2つの計算ノードについて、
当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にないと判定された場合、当該ソートされた隣接する2つの計算ノードのうち、負荷の低いノードを作成すべき新しいコンテナを配置する計算ノードとし、
当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあると判定された場合、前記第2のソート結果におけるすべての計算ノードがトラバースされるまで、または作成すべき新しいコンテナを配置する計算ノードが決定されるまで、次のソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあるかどうかを判定するように構成される。
Optionally, the second determination module 410 specifically determines whether
sorting the computation nodes other than the computation node on which the target container is placed in order of increasing load data of the at least one computation node to obtain a second sorting result;
Sequentially determining whether a load difference between two sorted adjacent computing nodes is within a predetermined range according to the second sorting result;
For any two sorted adjacent computing nodes among the other computing nodes,
If it is determined that the load difference between the two sorted adjacent calculation nodes is not within the predetermined range, the calculation node with the lower load among the two sorted adjacent calculation nodes is set as the calculation node to which the new container to be created is to be placed;
If it is determined that the load difference between the two sorted adjacent computing nodes is within the predetermined range, the system is configured to determine whether the load difference between the next two sorted adjacent computing nodes is within the predetermined range until all computing nodes in the second sorted result are traversed or until a computing node on which to place a new container to be created is determined.

オプションで、前記第2の決定モジュール410は、さらに、
前記第2のソート結果におけるソートされた隣接する2つの計算ノード間の各負荷差が前記所定の範囲内にあると判定された場合、前記作成すべき新しいコンテナに対応するサブモデルとネットワーク層の依存関係を有するサブモデルを、関連サブモデルとして決定し、
前記関連サブモデルが配置された計算ノードを、関連ノードとして決定し、
前記関連ノードと、前記関連ノード以外の他の計算ノードとの間のネットワーク遅延を測定し、
測定によって得られたネットワーク遅延に基づいて、前記関連ノード以外の計算ノードから、作成すべき新しいコンテナを配置する計算ノードを決定するように構成される。
Optionally, the second determination module 410 further comprises:
If it is determined that each load difference between two sorted adjacent computing nodes in the second sorting result is within the predetermined range, a submodel having a network layer dependency relationship with the submodel corresponding to the new container to be created is determined as a related submodel;
determining a computation node on which the related sub-model is located as a related node;
Measure a network delay between the relevant node and a computing node other than the relevant node;
The network node is configured to determine, based on the measured network delay, a computation node on which to place a new container to be created, from computation nodes other than the associated node.

オプションで、前記第2の決定モジュール410は、具体的に、
前記対象コンテナが配置された計算ノードを決定し、
前記対象コンテナが配置された計算ノードに指定コンテナが配置されたと判定された場合、前記対象コンテナが配置された計算ノードを、コンテナの分布を調整する必要がある計算ノードとするように構成され、前記指定コンテナに配置されたサブモデルは、前記対象コンテナに配置されたサブモデルと同じである。
前記調整モジュール412は、具体的に、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象コンテナが配置された計算ノードにおける前記対象コンテナまたは前記指定コンテナを削除するように構成される。
Optionally, the second determination module 410 specifically:
determining a computing node on which the target container is located;
When it is determined that a designated container has been placed on the computation node on which the target container is placed, the computation node on which the target container is placed is configured to be a computation node for which a distribution of containers needs to be adjusted, and the sub-model placed on the designated container is the same as the sub-model placed on the target container.
The adjustment module 412 specifically includes:
The target container or the designated container is deleted from the calculation node on which the target container is placed, with the adjustment target being that the calculation times corresponding to the plurality of containers are close to each other.

オプションで、前記調整モジュール412は、具体的に、
前記複数のコンテナのそれぞれに対応する演算時間が近く、かつ、前記少なくとも1つの計算ノードのそれぞれの負荷が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するように構成される。
Optionally, the adjustment module 412 specifically:
The distribution of containers in the target node is adjusted so that the calculation times corresponding to the plurality of containers are close to each other and the loads of the at least one calculation node are close to each other as adjustment targets.

本開示はコンピュータ可読記憶媒体をさらに提供し、当該コンピュータ可読記憶媒体はコンピュータプログラムを記憶しており、コンピュータプログラムは上記図1にて提供されるインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法を実行するために用いられる。 The present disclosure further provides a computer-readable storage medium, the computer-readable storage medium storing a computer program, the computer program being used to execute the distributed training method for container scheduling for intelligent computing provided in FIG. 1 above.

本開示は図5に示す電子デバイスをさらに提供する。図5に示すように、ハードウェアレベルでは、当該電子デバイスは、プロセッサ、内部バス、ネットワークインタフェース、内部メモリ、および不揮発性メモリを含み、もちろん、他の動作に必要なハードウェアも含み得る。プロセッサは、不揮発性メモリから対応するコンピュータプログラムを内部メモリに読み込んで実行し、上記の図1で説明したインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法を実施する。 The present disclosure further provides an electronic device as shown in FIG. 5. As shown in FIG. 5, at the hardware level, the electronic device includes a processor, an internal bus, a network interface, an internal memory, and a non-volatile memory, and may of course include other hardware required for operation. The processor loads the corresponding computer program from the non-volatile memory into the internal memory and executes it to implement the distributed training method for container scheduling for intelligent computing described in FIG. 1 above.

もちろん、ソフトウェアによる実現の他に、本開示は、論理デバイスやハードウェアとソフトウェアの組み合わせなど、他の実現方式を排除するものではなく、つまり、以下の処理プロセスの実行主体は、各の論理ユニットに限定されず、ハードウェアや論理デバイスであってもよい。 Of course, in addition to realization by software, this disclosure does not exclude other realization methods, such as logical devices or a combination of hardware and software. In other words, the entity that executes the following processing process is not limited to each logical unit, but may be hardware or a logical device.

1990年代には、ある技術の改良は、ハードウェアの改良(ダイオード、トランジスタ、スイッチなどの回路構造の改良など)とソフトウェアの改良(方法フローの改良)に明確に区別することができる。しかし、技術の発展に伴い、現在の方法フローの改良の多くは、ハードウェア回路構造に対する直接的な改良と見なすことができるようになった。設計者は、改良された方法フローをハードウェア回路にプログラミングすることで、対応するハードウェア回路構造を得ることがほとんどである。従って、方法フローの改良がハードウェア物理モジュールにより実現できないとは言い切れない。例えば、プログラマブルロジックデバイス(Programmable Logic Device、PLD)(例えばフィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA))はこのような集積回路であり、その論理機能がデバイスのユーザーによるプログラミングによって決定される。チップメーカーが専用の集積回路チップを設計・製造する代わりに、設計者がプログラミングしてデジタルシステムを1枚のPLD上に「集積」する。そして、現在では、集積回路チップを手作りする代わりに、このプログラミングは「論理コンパイラ(logic compiler)」というソフトウェアを使って実現されることがほとんどであり、これは、プログラムを書くときに使うソフトウェアコンパイラと類似し、前のオリジナルコードをコンパイルするためには、特定のプログラミング言語で書く必要があり、これはハードウェア記述言語(Hardware Description Language、HDL)と呼ばれ、HDLは1種類だけではなく、ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)など、多くの種類があり、現在最もよく使われているのはVHDL(Very-High-Speed Integrated Circuit Hardware Description Language)とVerilogである。方法フローを、上記のハードウェア記述言語のいくつかでちょっと論理的にプログラミングして集積回路にプログラミングするだけで、論理的な方法フローを実現するハードウェア回路は簡単に得られることは、当業者には明らかであろう。 In the 1990s, improvements in a technology could be clearly divided into hardware improvements (such as improvements to circuit structures such as diodes, transistors, and switches) and software improvements (improvements to method flows). However, with the development of technology, many of the current method flow improvements can be considered as direct improvements to hardware circuit structures. Designers mostly obtain the corresponding hardware circuit structures by programming the improved method flows into the hardware circuits. Therefore, it cannot be said that method flow improvements cannot be realized by hardware physical modules. For example, a programmable logic device (PLD) (e.g., a Field Programmable Gate Array (FPGA)) is such an integrated circuit, whose logical function is determined by the user's programming of the device. Instead of chip manufacturers designing and manufacturing dedicated integrated circuit chips, designers program and "integrate" digital systems onto a single PLD. Nowadays, instead of handcrafting integrated circuit chips, this programming is mostly achieved using software called a "logic compiler," which is similar to a software compiler used to write a program. In order to compile the original code, it is necessary to write it in a specific programming language, which is called a Hardware Description Language (HDL). There is not just one type of HDL, but several different languages, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), etc. There are many types of hardware description languages, such as RHDL (Ruby Hardware Description Language), Lava, Lola, MyHDL, PALASM, and RHDL (Ruby Hardware Description Language), and the most commonly used languages at present are VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog. It will be clear to those skilled in the art that a hardware circuit that realizes a logical method flow can be easily obtained by simply programming a method flow logically in some of the above hardware description languages and programming it into an integrated circuit.

コントローラは、任意の適切な方法で実現されてもよく、例えば、コントローラはマイクロプロセッサまたはプロセッサと、当該(マイクロ)プロセッサによって実行可能なコンピュータ可読プログラムコード(例えば、ソフトウェアまたはファームウェア)を記憶するコンピュータ可読記憶媒体と、論理ゲート、スイッチ、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、プログラマブルロジックコントローラおよび埋め込みマイクロコントローラの形態を採用してもよく、コントローラの例として、ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20、Silicone Labs C8051F320などのマイクロコントローラを含むが、これらに限定されず、メモリコントローラはさらに、メモリの制御ロジックの一部として実現されることも可能である。また、純粋なコンピュータ可読プログラムコードでコントローラを実現することに加えて、方法ステップを論理的にプログラミングすることで、コントローラに、論理ゲート、スイッチ、特定用途向け集積回路、プログラマブルロジックコントローラおよび埋め込みマイクロコントローラなどの形態で同じ機能を実行させることも完全に可能であることは、当業者には明らかであろう。従って、このようなコントローラを、ハードウェアコンポーネントとみなしてもよく、様々な機能を実現するためのその中に含まれる装置も、ハードウェアコンポーネント内の構造とみなしてもよい。または、さらに、様々な機能を実現するための装置を、方法を実現するソフトウェアモジュールであってもよいし、ハードウェアコンポーネント内の構造であってもよいと、みなしてもよい。 The controller may be implemented in any suitable manner, for example, the controller may take the form of a microprocessor or processor and a computer readable storage medium storing computer readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, application specific integrated circuits (ASICs), programmable logic controllers and embedded microcontrollers, examples of which include, but are not limited to, microcontrollers such as ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, Silicone Labs C8051F320, etc., and the memory controller may also be implemented as part of the control logic of the memory. It will be clear to those skilled in the art that in addition to implementing the controller purely in computer-readable program code, it is entirely possible to logically program the method steps to cause the controller to perform the same functions in the form of logic gates, switches, application specific integrated circuits, programmable logic controllers, embedded microcontrollers, etc. Thus, such controllers may be considered as hardware components, and the devices contained therein for implementing various functions may also be considered as structures within the hardware components. Alternatively, the devices for implementing various functions may further be considered as software modules implementing methods, or as structures within the hardware components.

上記実施形態で説明したシステム、装置、モジュールまたはユニットは、具体的に、コンピュータチップ、エンティティ、または何らかの機能を有する製品によって実現されてもよい。典型的な実現デバイスはコンピュータである。具体的に、コンピュータは例えば、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ付き電話、スマートフォン、パーソナルデジタルアシスタント、メディアプレーヤ、ナビゲーションデバイス、電子メールデバイス、ゲーム機、タブレット、ウェアラブルデバイス、またはこれらのデバイスの任意のいくつかの組み合わせであってもよい。 The systems, devices, modules or units described in the above embodiments may be specifically realized by a computer chip, an entity, or a product having some function. A typical realizing device is a computer. Specifically, the computer may be, for example, a personal computer, a laptop computer, a mobile phone, a camera phone, a smartphone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet, a wearable device, or any combination of these devices.

なお、説明の便宜上、上記の装置を説明するときに機能によって様々なユニットに分けてそれぞれ説明する。もちろん、本開示を実施する際に、各ユニットの機能を同一または複数のソフトウェアおよび/またはハードウェアで実現することも可能である。 For ease of explanation, the above device will be described by dividing it into various units according to their functions. Of course, when implementing this disclosure, it is also possible to realize the functions of each unit using the same or multiple pieces of software and/or hardware.

当業者であれば分かるように、本開示の実施形態が、方法、システム、またはコンピュータプログラム製品として提供されてもよい。従って、本開示は、ハードウェアだけからなる実施形態、ソフトウェアだけからなる実施形態、またはソフトウェアとハードウェアを組み合わせた実施形態なる形態を用いてもよい。さらに、本開示は、コンピュータで使用可能なプログラムコードを含む1つまたは複数のコンピュータで使用可能な記憶媒体(磁気ディスクメモリ、CD-ROM、光学メモリなどを含むが、これらに限定されない)において実施されるコンピュータプログラム製品の形態であってもよい。 As will be appreciated by those skilled in the art, embodiments of the present disclosure may be provided as a method, a system, or a computer program product. Thus, the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment that combines software and hardware. Additionally, the present disclosure may take the form of a computer program product embodied in one or more computer usable storage media (including, but not limited to, magnetic disk memory, CD-ROM, optical memory, etc.) that contains computer usable program code.

本開示は、本開示の実施形態による方法、デバイス(システム)、およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して説明される。フローチャートおよび/またはブロック図における各フローおよび/またはブロック、並びにフローチャートおよび/またはブロック図におけるフローおよび/またはブロックの組み合わせは、コンピュータプログラム命令によって実現されてもよいことが理解されるべきである。これらのコンピュータプログラム命令は、マシンを生成するために、汎用コンピュータ、専用コンピュータ、埋め込みプロセッサ、または他のプログラム可能なデータ処理デバイスのプロセッサに提供されてもよく、それにより、コンピュータまたは他のプログラム可能なデータ処理デバイスのプロセッサによって実行される命令により、フローチャートの1つまたは複数のフロー、および/またはブロック図の1つまたは複数のブロックにおいて指定される機能を実現するための装置が生成される。 The present disclosure will be described with reference to flowcharts and/or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present disclosure. It should be understood that each flow and/or block in the flowcharts and/or block diagrams, and combinations of flows and/or blocks in the flowcharts and/or block diagrams, may be realized by computer program instructions. These computer program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, whereby the instructions executed by the processor of the computer or other programmable data processing device generate an apparatus for implementing the functions specified in one or more flows of the flowcharts and/or one or more blocks of the block diagrams.

これらのコンピュータプログラム命令は、コンピュータまたは他のプログラム可能なデータ処理デバイスに特定の方法で作業するように指示することができるコンピュータ可読メモリに記憶されてもよく、その結果、当該コンピュータ可読メモリに記憶されている命令により、フローチャートの1つまたは複数のフローおよび/またはブロック図の1つまたは複数のブロックにおいて指定される機能を実現する命令装置を含む製品が生成される。 These computer program instructions may be stored in a computer-readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture that includes an instruction apparatus that implements the functions specified in one or more flows of the flowcharts and/or one or more blocks of the block diagrams.

これらのコンピュータプログラム命令は、コンピュータまたは他のプログラム可能なデータ処理デバイスにロードしてもよく、それにより、一連の動作ステップがコンピュータまたは他のプログラム可能なデバイス上で実行されることで、コンピュータにより実施される処理が生成され、それにより、コンピュータまたは他のプログラム可能なデバイス上で実行される命令により、フローチャートの1つまたは複数のフロー、および/またはブロック図の1つまたは複数のブロック内で指定される機能を実現するためのステップが提供される。 These computer program instructions may be loaded into a computer or other programmable data processing device such that a sequence of operational steps are executed on the computer or other programmable device to generate a computer-implemented process, whereby the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more flows of the flowcharts and/or one or more blocks of the block diagrams.

典型的な構成では、コンピューティングデバイスは、1つ以上のプロセッサ(CPU)、入力/出力インタフェース、ネットワークインタフェース、およびメモリを含む。 In a typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.

メモリは、コンピュータ可読記憶媒体のうちの揮発性メモリ、ランダムアクセスメモリ(RAM)および/または不揮発性メモリなどの形態を含み得、例えば、読み出し専用メモリ(ROM)またはフラッシュメモリ(flash RAM)である。メモリは、コンピュータ可読記憶媒体の一例である。 Memory may include volatile, random access memory (RAM) and/or non-volatile forms of computer-readable storage media, such as read-only memory (ROM) or flash memory (flash RAM). Memory is one example of a computer-readable storage medium.

コンピュータ可読記憶媒体は不揮発性および揮発性媒体、移動可能および非移動可能な媒体を含み、任意の方法または技術により情報記憶を実現し得る。情報はコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータであってもよい。コンピュータの記憶媒体は、相変化メモリ(Phase Change RAM、PRAM)、スタティックランダムアクセスメモリ(Static Random-Access Memory、SRAM)、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)、他のタイプのランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能プログラマブル読み出し専用メモリ(Electrically Erasable Programmable Read Only Memory、EEPROM)、フラッシュメモリ(flash Memory)または他のメモリ技術、コンパクトディスク読み出し専用メモリ(Compact Disc Read Only Memory、CD-ROM)、デジタル多用途ディスク(Digital Versatile Disc、DVD)または他の光学記憶、磁気カセットテープ、磁気テープ磁気ディスク記憶または他の磁気記憶デバイス、またはコンピューティングデバイスからアクセス可能な情報を記憶するために使用され得る任意の他の非伝送媒体を含むがそれらに限定されない。本明細書の定義によれば、コンピュータ可読記憶媒体は一時記憶コンピュータ可読記憶媒体(transitory Media)、例えば変調されたデータ信号およびキャリアを含まない。 Computer-readable storage media include non-volatile and volatile media, movable and non-movable media, and may implement information storage by any method or technology. Information may be computer-readable instructions, data structures, program modules, or other data. Computer storage media may include Phase Change Memory (PRAM), Static Random-Access Memory (SRAM), Dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technologies, Compact Disc Read Only Memory (CD-ROM), Digital Versatile Disk (DV-CD), and the like. This includes, but is not limited to, a Versatile Disc (DVD) or other optical storage, a magnetic cassette tape, a magnetic tape magnetic disk storage or other magnetic storage device, or any other non-transmission medium that can be used to store information accessible to a computing device. As defined herein, computer-readable storage media does not include transient storage computer-readable storage media (transitory Media), such as modulated data signals and carriers.

また、用語「含む」、「含有」またはそのいずれかの他の変形は、非排他的な含有を含むことを意図し、それにより一連の要素を含むプロセス、方法、物品またはデバイスはそれらの要素を含むだけでなく、また明確に列挙されていない他の要素も含み、またはこのようなプロセス、方法、物品またはデバイスの固有の要素も含む。より多くの制限がない場合、文「1つの…を含む」により限定された要素は、前記要素を含むプロセス、方法、物品またはデバイスにさらに他の同じ要素が存在することを排除するものではない。 Additionally, the terms "comprise", "contains" or any other variation thereof are intended to include a non-exclusive inclusion, whereby a process, method, article or device that includes a set of elements not only includes those elements, but also includes other elements not expressly listed or includes the inherent elements of such process, method, article or device. In the absence of more limitations, an element qualified by the phrase "comprises a ..." does not exclude the presence of further identical elements in a process, method, article or device that includes said element.

当業者であれば分かるように、本開示の実施形態が、方法、システム、またはコンピュータプログラム製品として提供されてもよい。従って、本開示は、ハードウェアだけからなる実施形態、ソフトウェアだけからなる実施形態、またはソフトウェアとハードウェアを組み合わせた実施形態なる形態を用いてもよい。さらに、本開示は、コンピュータで使用可能なプログラムコードを含む1つまたは複数のコンピュータで使用可能な記憶媒体(磁気ディスクメモリ、CD-ROM、光学メモリなどを含むが、これらに限定されない)において実施されるコンピュータプログラム製品の形態であってもよい。 As will be appreciated by those skilled in the art, embodiments of the present disclosure may be provided as a method, a system, or a computer program product. Thus, the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment that combines software and hardware. Additionally, the present disclosure may take the form of a computer program product embodied in one or more computer usable storage media (including, but not limited to, magnetic disk memory, CD-ROM, optical memory, etc.) that contains computer usable program code.

本開示は、プログラムモジュールのようなコンピュータによって実行されるコンピュータ実行可能命令の一般的な文脈で記述され得る。一般的に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本開示は、通信ネットワークを介して接続されたリモート処理デバイスによってタスクが実行される分散コンピューティング環境においても実施され得る。分散コンピューティング環境において、プログラムモジュールは、記憶デバイスを含むローカルおよびリモートコンピュータ記憶媒体に配置され得る。 The present disclosure may be described in the general context of computer-executable instructions being executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The present disclosure may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media, including storage devices.

本開示における各実施形態はいずれも漸進の方式で説明され、各実施形態の間の同じまたは類似する部分は互いに参照すればよく、各実施形態の重点的に説明されたのは他の実施形態との相違点である。特に、システムの実施形態に対して、それは基本的に方法の実施形態と類似するため、簡単に説明し、関連する部分は方法の実施形態の一部の説明を参照すればよい。 Each embodiment in the present disclosure is described in a stepwise manner, and the same or similar parts between the embodiments may be referred to each other, and the emphasis of each embodiment is on the differences from other embodiments. In particular, the system embodiments are basically similar to the method embodiments, so they will be briefly described, and the relevant parts may be referred to the description of some of the method embodiments.

上記は、本開示の実施形態にすぎず、本開示を限定するために使用されるものではない。当業者にとって、本開示は、様々な変更および変化があり得る。本開示の趣旨と原理から逸脱せず行った任意の修正、同等な置換、改善など、いずれも本開示の特許請求の範囲に含まれるものとするべきである。 The above are merely embodiments of the present disclosure and are not used to limit the present disclosure. For those skilled in the art, the present disclosure may have various modifications and variations. Any modifications, equivalent replacements, improvements, etc. made without departing from the spirit and principles of the present disclosure should be included in the scope of the claims of the present disclosure.

本開示は、コンピュータ技術分野に関し、特に、インテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニングの方法、装置、記憶媒体および電子デバイスに関する。 The present disclosure relates to the field of computer technology, and in particular to a method, apparatus, storage medium, and electronic device for distributed training for container scheduling for intelligent computing.

人工知能の発展に伴い、機械学習の応用分野は広さから深さへと発展し、モデルトレーニングと応用への要求が高まっている。モデルサイズとトレーニングデータ量の大幅な増加に伴い、モデルのトレーニング効率を向上させるために、コンテナに基づく分散トレーニングが広く利用されるようになっている。 With the development of artificial intelligence, the application field of machine learning has developed from breadth to depth, and the requirements for model training and application have increased. With the significant increase in model size and training data volume, container-based distributed training has become widely used to improve model training efficiency.

具体的に、モデルトレーニングを行う一般的な方法は、サーバがモデルに基づいて分割されたサブモデルを1つまたは複数のコンテナに配置し、複数のコンテナが物理マシン上の計算ノード(GPUなど)の計算リソースを共有してモデルトレーニングを行うことである。しかし、モデルトレーニングの過程において、各計算ノードの計算リソースが動的に変化する可能性があり、また、複数のコンテナが1台の物理マシンを共有しているため、コンテナの性能は他のコンテナの影響を受け、分散トレーニングの効率が低下する可能性がある。 Specifically, a common method for model training is for a server to place submodels divided based on a model in one or more containers, and for the multiple containers to share the computing resources of a computing node (such as a GPU) on a physical machine to perform model training. However, during the model training process, the computing resources of each computing node may change dynamically, and since multiple containers share a single physical machine, the performance of a container may be affected by other containers, which may reduce the efficiency of distributed training.

そのため、計算ノード内のサブモデルのトレーニング時間を近づけて、計算ノード間の負荷不均衡を軽減させるように、モデルをトレーニングするときに計算ノードに配置されるコンテナの分布をいかに動的に調整するかが喫緊の課題となっている。 Therefore, an urgent issue is how to dynamically adjust the distribution of containers placed on compute nodes when training a model so as to bring the training times of submodels within a compute node closer together and reduce load imbalance between compute nodes.

本開示は先行技術の上記問題点を解決するためのインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法、装置、記憶媒体および電子デバイスを提供する。 The present disclosure provides a distributed training method, apparatus, storage medium, and electronic device for container scheduling for intelligent computing to solve the above problems in the prior art.

本開示に用いられる技術的解決手段は、以下のとおりである。 The technical solutions used in this disclosure are as follows:

本開示はインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法を提供し、前記方法は、
サンプルデータおよび対象モデルを取得するステップと、
前記対象モデルを分割して複数のサブモデルを得るステップであって、前記複数のサブモデルの各サブモデルは、前記対象モデルにおけるネットワーク層の一部を含む、得るステップと、
前記複数のサブモデルに基づいて、前記複数のサブモデルを配置するための少なくとも1つの計算ノードを決定し、前記少なくとも1つの計算ノード上に複数のコンテナを作成して、前記複数のサブモデルを前記複数のコンテナにそれぞれ配置するステップと、
前記サンプルデータを用いてモデルトレーニングタスクを実行して、前記複数のコンテナ内に配置された前記複数のサブモデルをトレーニングするステップと、
モデルトレーニングタスクを実行するときの前記少なくとも1つの計算ノードの負荷データを取得し、前記複数のコンテナの各々について、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を、当該コンテナに対応する演算時間として決定するステップと、
前記少なくとも1つの計算ノードの負荷データと、前記複数のコンテナのそれぞれに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを対象ノードとして決定するステップと、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するステップと、
コンテナの分布が調整された各計算ノードに基づいて、前記対象モデルのトレーニングタスクを実行するステップと、を含む。
The present disclosure provides a distributed training method for container scheduling for intelligent computing, the method comprising:
obtaining sample data and a target model;
Dividing the target model into a plurality of sub-models, each of the plurality of sub-models including a portion of a network layer in the target model;
determining at least one computing node for arranging the sub-models based on the sub-models, creating a plurality of containers on the at least one computing node, and arranging the sub-models in the plurality of containers, respectively;
running a model training task using the sample data to train the sub-models disposed within the containers;
acquiring load data of the at least one computing node when executing a model training task, and determining, for each of the plurality of containers, a computation time of the sub-model arranged in the container when executing a training task of the sub-model as a computation time corresponding to the container;
determining a computation node that requires container distribution adjustment as a target node based on load data of the at least one computation node and a computation time corresponding to each of the plurality of containers;
adjusting a distribution of containers in the target node with an adjustment target that calculation times corresponding to the plurality of containers are close to each other;
and executing a training task of the target model based on each computing node on which the distribution of containers has been adjusted.

オプションで、前記対象モデルを分割して複数の前記サブモデルを得るステップは、
モデルトレーニングタスクを実行するときの前記対象モデルの演算時間を決定するステップと、
前記対象モデルの演算時間に基づいて、前記対象モデルに含まれるネットワーク層を分割して、前記複数のサブモデルを取得するステップと、を含む。
Optionally, the step of dividing the target model to obtain a plurality of said sub-models comprises:
determining a computation time of the target model when performing a model training task;
and dividing a network layer included in the target model based on a calculation time of the target model to obtain the plurality of sub-models.

オプションで、前記複数のコンテナの各々について、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を決定するステップは、
所定の共有ストレージシステムから、当該コンテナに対応するトレーニング統計情報を決定するステップと、
前記トレーニング統計情報に含まれる、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行する開始時刻と終了時刻に基づいて、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を決定するステップと、を含む。
前記共有ストレージシステムに記憶されたトレーニング統計情報は、モデルトレーニングタスクを実行するときに前記少なくとも1つの計算ノードの各計算ノードによって生成された対象ログに基づいて決定され、前記対象ログは、予め定められた指定キーワードに従って前記少なくとも1つの計算ノードの各計算ノードによって生成されたログからフィルタリングされ、前記トレーニング統計情報は、特定数を蓄積した後に前記共有ストレージシステムに書き込まれ、前記少なくとも1つの計算ノードから削除される。
Optionally, the step of determining, for each of the plurality of containers, a computation time of the sub-model when executing a training task of the sub-model located within the container, comprises:
determining training statistics corresponding to the container from a given shared storage system;
The method includes a step of determining a calculation time for the sub-model placed in the container when executing a training task for the sub-model placed in the container, based on a start time and an end time for executing a training task for the sub-model placed in the container, the start time and the end time being included in the training statistical information.
The training statistics stored in the shared storage system are determined based on target logs generated by each of the at least one computing node when executing a model training task, the target logs are filtered from the logs generated by each of the at least one computing node according to predetermined designated keywords, and the training statistics are written to the shared storage system and deleted from the at least one computing node after accumulating a certain number.

オプションで、前記少なくとも1つの計算ノードの負荷データと、前記複数のコンテナのそれぞれに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するステップは、
前記複数のコンテナのそれぞれに対応する演算時間の大きい順に、前記複数のコンテナをソートして第1のソート結果を得るステップと、
前記第1のソート結果において、所定の順位より前にあるコンテナを対象コンテナとするステップと、
前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するステップと、を含む。
Optionally, the step of determining a computing node that needs to adjust the distribution of containers based on the load data of the at least one computing node and the computing time corresponding to each of the plurality of containers includes:
Sorting the plurality of containers in descending order of the calculation time corresponding to each of the plurality of containers to obtain a first sorting result;
determining a container that is prior to a predetermined order in the first sorting result as a target container;
determining a computing node for which a distribution of containers needs to be adjusted based on the target container and load data of the at least one computing node.

オプションで、前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するステップは、
前記対象コンテナが配置された計算ノードを第1のノードとして決定するステップと、
前記第1のノードの負荷データに基づいて、前記第1のノードの負荷が第1の設定閾値より高いと判定された場合、他の計算ノードから、前記第1のノードにおけるコンテナの一部を配置するための計算ノードを第2のノードとして決定するステップと、
前記第1のノードおよび前記第2のノードを、コンテナの分布を調整する必要がある計算ノードとして決定するステップと、を含む。
Optionally, the step of determining a compute node that needs to adjust a distribution of containers based on the target container and load data of the at least one compute node comprises:
determining a computing node on which the target container is placed as a first node;
determining, when a load of the first node is determined to be higher than a first set threshold based on the load data of the first node, a computation node for allocating a part of the containers in the first node as a second node from among other computation nodes;
determining the first node and the second node as computation nodes that need to adjust distribution of containers.

オプションで、前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するステップは、
前記対象コンテナに対応する演算時間と、他のコンテナに対応する演算時間との差が第2の設定閾値を超えると判定された場合、前記少なくとも1つの計算ノードの負荷データに基づいて、作成すべき新しいコンテナを配置する計算ノードを、コンテナの分布を調整する必要がある計算ノードとして決定するステップを含み、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するステップは、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードに新しいコンテナを作成し、前記対象コンテナに配置されたサブモデルのモデルデータのコピーを作成し、コピーによって得られたサブモデルを前記新しいコンテナに配置するステップを含む。
Optionally, the step of determining a compute node that needs to adjust a distribution of containers based on the target container and load data of the at least one compute node comprises:
determining, when it is determined that the difference between the calculation time corresponding to the target container and the calculation time corresponding to another container exceeds a second set threshold, a calculation node on which a new container to be created is to be placed as a calculation node on which a distribution of containers needs to be adjusted based on load data of the at least one calculation node;
The step of adjusting the distribution of containers in the target node with an adjustment target that the calculation times corresponding to the plurality of containers are close to each other includes:
The method includes the steps of creating a new container in the target node, making a copy of model data of a sub-model placed in the target container, and placing the sub-model obtained by copying in the new container, with the adjustment goal being that the calculation times corresponding to each of the multiple containers are close to each other.

オプションで、前記少なくとも1つの計算ノードの負荷データに基づいて、作成すべき新しいコンテナを配置する計算ノードを、コンテナの分布を調整する必要がある計算ノードとして決定するステップは、
前記少なくとも1つの計算ノードの負荷データが小さい順に、前記対象コンテナが配置された計算ノード以外の計算ノードをソートして第2のソート結果を得るステップと、
前記第2のソート結果に従って、ソートされた隣接する2つの計算ノード間の負荷差が所定の範囲内にあるかどうかを順次判定するステップと、
前記他の計算ノードのうち、ソートされた隣接する任意の2つの計算ノードについて、
当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にないと判定された場合、当該ソートされた隣接する2つの計算ノードのうち、負荷の低いノードを、作成すべき新しいコンテナを配置する計算ノードとし、
当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあると判定された場合、前記第2のソート結果におけるすべての計算ノードがトラバースされるまで、または作成すべき新しいコンテナを配置する計算ノードが決定されるまで、次のソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあるかどうかを判定するステップと、を含む。
Optionally, the step of determining a computing node on which a new container to be created is to be placed as a computing node on which distribution of containers needs to be adjusted based on load data of the at least one computing node comprises:
sorting the computing nodes other than the computing node on which the target container is placed in order of increasing load data of the at least one computing node to obtain a second sorting result;
Sequentially determining whether a load difference between two sorted adjacent computing nodes is within a predetermined range according to the second sorting result;
Among the other computing nodes, for any two sorted adjacent computing nodes,
If it is determined that the load difference between the two sorted adjacent calculation nodes is not within the predetermined range, the node with the lower load among the two sorted adjacent calculation nodes is set as the calculation node on which a new container to be created is placed;
If it is determined that the load difference between the two sorted adjacent computing nodes is within the predetermined range, determining whether the load difference between the next two sorted adjacent computing nodes is within the predetermined range until all computing nodes in the second sorted result are traversed or until a computing node on which to place a new container to be created is determined.

オプションで、前記方法は、
前記第2のソート結果におけるソートされた隣接する2つの計算ノード間の各負荷差が前記所定の範囲内にあると判定された場合、前記作成すべき新しいコンテナに対応するサブモデルとネットワーク層の依存関係を有するサブモデルを、関連サブモデルとして決定するステップと、
前記関連サブモデルが配置された計算ノードを、関連ノードとして決定するステップと、
前記関連ノードと、前記関連ノード以外の他の計算ノードとの間のネットワーク遅延を測定するステップと、
測定によって得られたネットワーク遅延に基づいて、前記関連ノード以外の計算ノードから、作成すべき新しいコンテナを配置する計算ノードを決定するステップと、をさらに含む。
Optionally, the method further comprises:
determining, when it is determined that each load difference between two sorted adjacent computing nodes in the second sorting result is within the predetermined range, a sub-model having a network layer dependency relationship with the sub-model corresponding to the new container to be created as a related sub-model;
determining a computation node on which the associated sub-model is located as an associated node;
measuring a network delay between the relevant node and a computing node other than the relevant node;
The method further includes a step of determining, based on the network delay obtained by the measurement, a computation node on which to place a new container to be created, from computation nodes other than the associated node.

オプションで、前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するステップは、
前記対象コンテナが配置された計算ノードを決定するステップと、
前記対象コンテナが配置された計算ノードに指定コンテナが配置されたと判定された場合、前記対象コンテナが配置された計算ノードを、コンテナの分布を調整する必要がある計算ノードとするステップであって、前記指定コンテナに配置されたサブモデルは、前記対象コンテナに配置されたサブモデルと同じである、ステップと、を含み、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するステップは、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象コンテナが配置された計算ノードにおける前記対象コンテナまたは前記指定コンテナを削除するステップを含む。
Optionally, the step of determining a compute node that needs to adjust a distribution of containers based on the target container and load data of the at least one compute node comprises:
determining a computing node on which the target container is located;
a step of determining, when it is determined that a designated container has been placed on the computation node on which the target container has been placed, that the computation node on which the target container has been placed is a computation node on which a distribution of containers needs to be adjusted, and a sub-model placed on the designated container is the same as the sub-model placed on the target container;
The step of adjusting the distribution of containers in the target node with an adjustment target that the calculation times corresponding to the plurality of containers are close to each other includes:
The method includes a step of deleting the target container or the designated container from the calculation node on which the target container is placed, with the adjustment target being that the calculation times corresponding to each of the plurality of containers are close to each other.

オプションで、前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するステップは、
前記複数のコンテナのそれぞれに対応する演算時間が近く、かつ、前記少なくとも1つの計算ノードのそれぞれの負荷が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するステップ含む。
Optionally, the step of adjusting the distribution of containers in the target node with an adjustment target that the calculation times corresponding to the plurality of containers are close to each other includes:
The method includes a step of adjusting the distribution of containers in the target node, with adjustment targets that the calculation times corresponding to the plurality of containers are close to each other and that the loads of the at least one calculation node are close to each other.

本開示はインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング装置を提供し、前記装置は、
サンプルデータおよび対象モデルを取得するように構成される第1の取得モジュールと、
前記対象モデルを分割して複数のサブモデルを得るように構成される分割モジュールであって、前記複数のサブモデルの各サブモデルは、前記対象モデルにおけるネットワーク層の一部を含む、分割モジュールと、
前記複数のサブモデルに基づいて、前記複数のサブモデルを配置するための少なくとも1つの計算ノードを決定し、前記少なくとも1つの計算ノード上に複数のコンテナを作成して、前記複数のサブモデルを前記複数のコンテナにそれぞれ配置するように構成される第1の決定モジュールと、
前記サンプルデータを用いてモデルトレーニングタスクを実行して、前記複数のコンテナ内に配置された前記複数のサブモデルをトレーニングするように構成される第1のトレーニングモジュールと、
モデルトレーニングタスクを実行するときの前記少なくとも1つの計算ノードの負荷データを取得し、前記複数のコンテナの各々について、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を、当該コンテナに対応する演算時間として決定するように構成される第2の取得モジュールと、
前記少なくとも1つの計算ノードの負荷データと、前記複数のコンテナのそれぞれに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを対象ノードとして決定するように構成される第2の決定モジュールと、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するように構成される調整モジュールと、
コンテナの分布が調整された各計算ノードに基づいて、前記対象モデルのトレーニングタスクを実行するように構成される第2のトレーニングモジュールと、を備える。
The present disclosure provides a distributed training apparatus for container scheduling for intelligent computing, the apparatus comprising:
a first acquisition module configured to acquire sample data and an object model;
a segmentation module configured to segment the object model into a plurality of sub-models, each sub-model of the plurality of sub-models comprising a portion of a network layer in the object model;
a first determination module configured to determine at least one computing node for placing the plurality of sub-models based on the plurality of sub-models, create a plurality of containers on the at least one computing node, and place the plurality of sub-models in the plurality of containers, respectively;
a first training module configured to perform a model training task using the sample data to train the sub-models disposed within the containers;
a second acquisition module configured to acquire load data of the at least one computing node when executing a model training task, and determine, for each of the plurality of containers, a computation time of the sub-model arranged in the container when executing a training task of the sub-model as a computation time corresponding to the container;
A second determination module configured to determine a computation node that needs to adjust the distribution of containers as a target node based on load data of the at least one computation node and a computation time corresponding to each of the plurality of containers;
an adjustment module configured to adjust a distribution of containers in the target node with an adjustment target that calculation times corresponding to the plurality of containers are close to each other;
and a second training module configured to execute a training task of the target model based on each computing node to which the distribution of containers has been adjusted.

オプションで、前記分割モジュールは、具体的に、
モデルトレーニングタスクを実行するときの前記対象モデルの演算時間を決定し、
前記対象モデルの演算時間に基づいて、前記対象モデルに含まれるネットワーク層を分割して、前記複数のサブモデルを取得するように構成される。
Optionally, the splitting module specifically:
determining a computation time for the target model when performing a model training task;
The network layer included in the target model is divided based on the calculation time of the target model to obtain the plurality of sub-models.

オプションで、前記第2の取得モジュールは、具体的に、
所定の共有ストレージシステムから、当該コンテナに対応するトレーニング統計情報を決定し、
前記トレーニング統計情報に含まれる、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行する開始時刻と終了時刻に基づいて、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を決定するように構成される。
前記共有ストレージシステムに記憶されたトレーニング統計情報は、モデルトレーニングタスクを実行するときに前記少なくとも1つの計算ノードの各計算ノードによって生成された対象ログに基づいて決定され、前記対象ログは、予め定められた指定キーワードに従って前記少なくとも1つの計算ノードの各計算ノードによって生成されたログからフィルタリングされ、前記トレーニング統計情報は、特定数を蓄積した後に前記共有ストレージシステムに書き込まれ、前記少なくとも1つの計算ノードから削除される。
Optionally, the second acquisition module specifically comprises:
determining training statistics corresponding to the container from a given shared storage system;
The system is configured to determine the calculation time of the sub-model when executing the training task of the sub-model placed in the container, based on the start time and end time of executing the training task of the sub-model placed in the container, which are included in the training statistical information.
The training statistics stored in the shared storage system are determined based on target logs generated by each of the at least one computing node when executing a model training task, the target logs are filtered from the logs generated by each of the at least one computing node according to predetermined designated keywords, and the training statistics are written to the shared storage system and deleted from the at least one computing node after accumulating a certain number.

オプションで、前記第2の決定モジュールは、具体的に、
前記複数のコンテナのそれぞれに対応する演算時間の大きい順に、前記複数のコンテナをソートして第1のソート結果を得、
前記第1のソート結果において、所定の順位より前にあるコンテナを対象コンテナとし、
前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するように構成される。
Optionally, the second decision module specifically:
sorting the plurality of containers in descending order of the calculation times corresponding to the plurality of containers to obtain a first sorting result;
A container that is located before a predetermined order in the first sorting result is set as a target container;
The system is configured to determine a computing node that requires an adjustment of a distribution of containers based on the target container and load data of the at least one computing node.

オプションで、前記第2の決定モジュールは、具体的に、Optionally, the second decision module specifically:
前記対象コンテナが配置された計算ノードを第1のノードとして決定し、determining a computing node on which the target container is placed as a first node;
前記第1のノードの負荷データに基づいて、前記第1のノードの負荷が第1の設定閾値より高いと判定された場合、他の計算ノードから、前記第1のノードにおけるコンテナの一部を配置するための計算ノードを第2のノードとして決定し、determining, when a load of the first node is determined to be higher than a first set threshold based on the load data of the first node, a computation node for allocating a part of the containers of the first node as a second node from among the other computation nodes;
前記第1のノードおよび前記第2のノードを、コンテナの分布を調整する必要がある計算ノードとして決定するように構成される。The first node and the second node are configured to determine the first node and the second node as computation nodes that need to adjust the distribution of containers.

オプションで、前記第2の決定モジュールは、具体的に、
前記対象コンテナに対応する演算時間と、他のコンテナに対応する演算時間との差が第2の設定閾値を超えると判定された場合、前記少なくとも1つの計算ノードの負荷データに基づいて、作成すべき新しいコンテナを配置する計算ノードを、コンテナの分布を調整する必要がある計算ノードとして決定するように構成される。
前記調整モジュールは、具体的に、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードに新しいコンテナを作成し、前記対象コンテナに配置されたサブモデルのモデルデータのコピーを作成し、コピーによって得られたサブモデルを前記新しいコンテナに配置するように構成される。
Optionally, the second decision module specifically:
When it is determined that the difference between the calculation time corresponding to the target container and the calculation time corresponding to another container exceeds a second set threshold, the calculation node on which the new container to be created is to be placed is determined as a calculation node on which the distribution of containers needs to be adjusted, based on load data of the at least one calculation node.
The adjustment module specifically includes:
The method is configured to create a new container in the target node, create a copy of model data of a sub-model placed in the target container, and place the sub-model obtained by copying in the new container, with the adjustment target being that the calculation times corresponding to each of the plurality of containers are close to each other.

オプションで、前記第2の決定モジュールは、具体的に、
前記少なくとも1つの計算ノードの負荷データが小さい順に、前記対象コンテナが配置された計算ノード以外の計算ノードをソートして第2のソート結果を得、
前記第2のソート結果に従って、ソートされた隣接する2つの計算ノード間の負荷差が所定の範囲内にあるかどうかを順次判定し、
前記他の計算ノードのうち、ソートされた隣接する任意の2つの計算ノードについて、
当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にないと判定された場合、当該ソートされた隣接する2つの計算ノードのうち、負荷の低いノードを作成すべき新しいコンテナを配置する計算ノードとし、
当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあると判定された場合、前記第2のソート結果におけるすべての計算ノードがトラバースされるまで、または作成すべき新しいコンテナを配置する計算ノードが決定されるまで、次のソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあるかどうかを判定するように構成される。
Optionally, the second decision module specifically:
sorting the computation nodes other than the computation node on which the target container is placed in order of increasing load data of the at least one computation node to obtain a second sorting result;
Sequentially determining whether a load difference between two sorted adjacent computing nodes is within a predetermined range according to the second sorting result;
For any two sorted adjacent computing nodes among the other computing nodes,
If it is determined that the load difference between the two sorted adjacent calculation nodes is not within the predetermined range, the calculation node with the lower load among the two sorted adjacent calculation nodes is set as the calculation node to which the new container to be created is to be placed;
If it is determined that the load difference between the two sorted adjacent computing nodes is within the predetermined range, the system is configured to determine whether the load difference between the next two sorted adjacent computing nodes is within the predetermined range until all computing nodes in the second sorted result are traversed or until a computing node on which to place a new container to be created is determined.

オプションで、前記第2の決定モジュールは、さらに、
前記第2のソート結果におけるソートされた隣接する2つの計算ノード間の各負荷差が前記所定の範囲内にあると判定された場合、前記作成すべき新しいコンテナに対応するサブモデルとネットワーク層の依存関係を有するサブモデルを、関連サブモデルとして決定し、
前記関連サブモデルが配置された計算ノードを、関連ノードとして決定し、
前記関連ノードと、前記関連ノード以外の他の計算ノードとの間のネットワーク遅延を測定し、
測定によって得られたネットワーク遅延に基づいて、前記関連ノード以外の計算ノードから、作成すべき新しいコンテナを配置する計算ノードを決定するように構成される。
Optionally, the second decision module further comprises:
If it is determined that each load difference between two sorted adjacent computing nodes in the second sorting result is within the predetermined range, a submodel having a network layer dependency relationship with the submodel corresponding to the new container to be created is determined as a related submodel;
determining a computation node on which the related sub-model is located as a related node;
Measure a network delay between the relevant node and a computing node other than the relevant node;
The network node is configured to determine, based on the measured network delay, a computation node on which to place a new container to be created, from computation nodes other than the associated node.

オプションで、前記第2の決定モジュールは、具体的に、
前記対象コンテナが配置された計算ノードを決定し、
前記対象コンテナが配置された計算ノードに指定コンテナが配置されたと判定された場合、前記対象コンテナが配置された計算ノードを、コンテナの分布を調整する必要がある計算ノードとするように構成され、前記指定コンテナに配置されたサブモデルは、前記対象コンテナに配置されたサブモデルと同じである。
前記調整モジュールは、具体的に、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象コンテナが配置された計算ノードにおける前記対象コンテナまたは前記指定コンテナを削除するように構成される。
Optionally, the second decision module specifically:
determining a computing node on which the target container is located;
When it is determined that a designated container has been placed on the computation node on which the target container is placed, the computation node on which the target container is placed is configured to be a computation node for which a distribution of containers needs to be adjusted, and the sub-model placed on the designated container is the same as the sub-model placed on the target container.
The adjustment module specifically includes:
The target container or the designated container is deleted from the calculation node on which the target container is placed, with the adjustment target being that the calculation times corresponding to the plurality of containers are close to each other.

オプションで、前記調整モジュールは、具体的に、
前記複数のコンテナのそれぞれに対応する演算時間が近く、かつ、前記少なくとも1つの計算ノードのそれぞれの負荷が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するように構成される。
Optionally, the adjustment module specifically:
The distribution of containers in the target node is adjusted so that the calculation times corresponding to the plurality of containers are close to each other and the loads of the at least one calculation node are close to each other as adjustment targets.

本開示はコンピュータ可読記憶媒体を提供し、前記コンピュータ可読記憶媒体はコンピュータプログラムを記憶しており、前記コンピュータプログラムがプロセッサによって実行されると、上記インテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法が実施される。 The present disclosure provides a computer-readable storage medium that stores a computer program, which, when executed by a processor, performs the distributed training method for container scheduling for intelligent computing.

本開示は電子デバイスを提供し、前記電子デバイスは、メモリと、プロセッサと、前記メモリに記憶され、前記プロセッサ上で実行可能なコンピュータプログラムとを含み、前記プロセッサが前記コンピュータプログラムを実行すると、上記インテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法を実施する。 The present disclosure provides an electronic device, the electronic device including a memory, a processor, and a computer program stored in the memory and executable on the processor, the electronic device implementing the distributed training method for container scheduling for intelligent computing when the processor executes the computer program.

本開示で用いられる上記技術的解決手段の少なくとも1つは、以下の有益な効果を達成することができる。 At least one of the above technical solutions used in this disclosure can achieve the following beneficial effects:

本開示にて提供されるインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法は、対象モデルを分割して各サブモデルを得、各サブモデルに基づいて、各サブモデルを配置するための各計算ノードを決定し、各計算ノード上にコンテナを作成して、各サブモデルを各コンテナにそれぞれ配置し、サンプルデータを用いてモデルトレーニングタスクを実行して、各コンテナ内に配置されたサブモデルをトレーニングし、各計算ノードの負荷データと各コンテナに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを対象ノードとして決定し、サブモデルが配置された各計算ノードにおけるコンテナに対応する演算時間が近いことを調整目標として、対象ノードにおける各コンテナの分布を調整し、対象モデルのトレーニングタスクの実行を継続する。 The distributed training method for container scheduling for intelligent computing provided in the present disclosure divides a target model to obtain submodels, determines the computation nodes for placing the submodels based on the submodels, creates containers on the computation nodes, places the submodels in the containers, executes a model training task using sample data to train the submodels placed in the containers, determines the computation nodes for which the distribution of containers needs to be adjusted as target nodes based on the load data of the computation nodes and the computation times corresponding to the containers, adjusts the distribution of the containers in the target nodes with the adjustment goal that the computation times corresponding to the containers in the computation nodes on which the submodels are placed are close to each other, and continues execution of the training task for the target model.

上記方法から分かるように、モデルトレーニングタスクを実行するとき、まず対象モデルを複数のサブモデルに分割し、次に各サブモデルを配置するための各計算ノードを決定し、各計算ノード上にコンテナを作成して、各サブモデルを各前記コンテナにそれぞれ配置して、各計算ノードを通じてトレーニングタスクを完了する。モデルトレーニングの過程において、本開示は、各計算ノードの負荷データを測定し、サブモデルが配置された各計算ノードにおけるコンテナに対応する演算時間が近いことを調整目標として、各前記ノードにおける各コンテナの分布を動的に調整し、これにより、各計算ノード間の負荷分散に有利となり、モデルレーニングの効率をさらに向上させることができる。 As can be seen from the above method, when performing a model training task, first divide the target model into multiple submodels, then determine each computing node for placing each submodel, create a container on each computing node, place each submodel in each of the containers, and complete the training task through each computing node. During the model training process, the present disclosure measures the load data of each computing node, and dynamically adjusts the distribution of each container on each computing node with the adjustment goal that the calculation time corresponding to the container on each computing node where the submodel is placed is close, which is favorable for load distribution among each computing node and can further improve the efficiency of model training.

ここで説明される添付図面は、本開示の理解を深めるために用いられ、本開示の一部を構成し、本開示の例示的な実施形態およびその説明は、本開示を説明するために用いられ、本開示の不当な限定を構成するものではない。 The accompanying drawings described herein are used to enhance understanding of the present disclosure and constitute a part of the present disclosure, and the exemplary embodiments of the present disclosure and their description are used to explain the present disclosure and do not constitute an undue limitation of the present disclosure.

本開示の実施形態にて提供されるインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法のフローを示す概略図である。FIG. 1 is a schematic diagram showing a flow of a distributed training method for container scheduling for intelligent computing provided in an embodiment of the present disclosure. 本開示の実施形態にて提供されるシステム関係を示す概略図である。FIG. 1 is a schematic diagram showing system relationships provided in an embodiment of the present disclosure. 本開示の実施形態にて提供されるコンテナ調整を示す概略図である。FIG. 1 is a schematic diagram illustrating a container arrangement provided in an embodiment of the present disclosure. 本開示の実施形態にて提供されるインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング装置の構成を示す概略図である。FIG. 2 is a schematic diagram showing the configuration of a distributed training device for container scheduling for intelligent computing provided in an embodiment of the present disclosure. 本開示の実施形態にて提供される電子デバイスを示す概略図である。1 is a schematic diagram illustrating an electronic device provided in an embodiment of the present disclosure.

本開示の目的、技術的解決手段および利点をより明確にするために、以下、本開示の特定の実施形態および対応する添付図面と併せて、本開示の技術的解決手段を明確かつ完全に説明する。明らかに、説明された実施形態は、本開示の実施形態の一部に過ぎず、そのすべてではない。本開示の実施形態に基づいて、当業者が創作的な労力を要することなく得られる他のすべての実施形態は、いずれも本開示の保護範囲に属する。 In order to make the objectives, technical solutions and advantages of the present disclosure clearer, the technical solutions of the present disclosure will be described below clearly and completely in conjunction with specific embodiments of the present disclosure and corresponding accompanying drawings. Obviously, the described embodiments are only a part, but not all, of the embodiments of the present disclosure. All other embodiments that can be obtained by a person skilled in the art based on the embodiments of the present disclosure without requiring creative efforts all belong to the protection scope of the present disclosure.

以下、添付図面と併せて、本開示の各実施形態にて提供される技術的解決手段を詳細に説明する。 The technical solutions provided in each embodiment of the present disclosure are described in detail below with reference to the attached drawings.

図1は、本開示実施形態にて提供されるインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法のフローを示す概略図であり、以下のステップを含む。 Figure 1 is a schematic diagram showing the flow of a distributed training method for container scheduling for intelligent computing provided in an embodiment of the present disclosure, which includes the following steps:

S100において、サンプルデータおよび対象モデルを取得する。 In S100, sample data and target model are obtained.

S102において、前記対象モデルを分割して複数のサブモデルを得、各サブモデルは、前記対象モデルにおけるネットワーク層の一部を含む。 In S102, the target model is divided to obtain a plurality of sub-models, each of which includes a portion of the network layer in the target model.

モデルサイズとトレーニングデータ量の大幅な増加に伴い、大規模モデルは1台の物理マシン上で完全に配置できない可能性があり、1枚のGPUカードのメモリ容量も大規模モデルトレーニングの要求を満たすことができない。本開示は、モデルのトレーニング効率を向上させるために、インテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法を提供し、マルチマシン・マルチGPU方式を用いてモデルの分散トレーニングを実行する。 With the significant increase in model size and training data volume, large-scale models may not be fully deployed on a single physical machine, and the memory capacity of a single GPU card cannot meet the requirements of large-scale model training. The present disclosure provides a distributed training method for container scheduling for intelligent computing to improve model training efficiency, and performs distributed training of models using a multi-machine, multi-GPU approach.

本開示の実行主体は、システムであってもよく、ノートパソコン、デスクトップパソコンなどの電子デバイスであってもよく、モデルトレーニングタスクを実行するためのシステム(当該システムは、複数の端末デバイスからなるデバイスクラスタで構成されてもよい)であってもよい。説明の便宜上、以下、実行主体としてシステムのみを例に、本開示にて提供されるインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法について説明する。 The execution subject of the present disclosure may be a system, an electronic device such as a laptop or desktop computer, or a system for executing a model training task (the system may be configured as a device cluster consisting of multiple terminal devices). For ease of explanation, the following describes the distributed training method for container scheduling for intelligent computing provided in the present disclosure, using only a system as an example of the execution subject.

システムが、サンプルデータおよび対象モデルを取得し、対象モデルを分割して複数のサブモデルを得てもよく、ここで、各サブモデルは、対象モデルにおけるネットワーク層の一部を含む。 The system may obtain sample data and a target model, and divide the target model to obtain multiple sub-models, where each sub-model includes a portion of a network layer in the target model.

本開示では、システムが対象モデルの分割を実行できる様々な方法がある。 In this disclosure, there are various ways in which the system can perform segmentation of the target model.

具体的に、システムは、モデルトレーニングタスクを実行するときの対象モデルの演算時間を、対象モデルの演算時間として決定してもよい。システムは、決定された対象モデルの演算時間に基づいて、モデルのトレーニングタスクを実行するときの各サブモデルの演算時間が近いことを調整目標として、対象モデルに含まれる異なるネットワーク層を分割してもよい。 Specifically, the system may determine the computation time of the target model when performing the model training task as the computation time of the target model. Based on the determined computation time of the target model, the system may divide different network layers included in the target model with an adjustment goal that the computation times of each sub-model when performing the model training task are close to each other.

例えば、対象モデルに含まれるネットワーク層が30層であると仮定すると、システムは、対象モデルの演算時間に従って分割を行い、分割後の2つのサブモデルを得、そのうちの1つのサブモデルには対象モデルの最初の10層のネットワーク層が含まれ、もう1つのサブモデルには対象モデルの最後の20層のネットワーク層が含まれるようにしてもよい。この場合、システムは、この2つのサブモデルのトレーニングタスクを実行するとき、2つのサブモデルの演算時間長が近い、すなわち、この2つのサブモデルの演算時間の差が所定の範囲内にある。 For example, assuming that the target model contains 30 network layers, the system may divide the target model according to its calculation time to obtain two sub-models after division, one of which contains the first 10 network layers of the target model and the other of which contains the last 20 network layers of the target model. In this case, when the system executes the training task of the two sub-models, the calculation time lengths of the two sub-models are close, i.e., the difference in calculation time between the two sub-models is within a predetermined range.

もちろん、システムは、対象モデルに含まれるネットワーク層の数に基づいて、対象モデルを直接分割してもよい。対象モデルに含まれるネットワーク層が30層であると仮定すると、システムは、対象モデルのネットワーク層の数を均等に分け、分割された2つのサブモデルのうち、1つのサブモデルには対象モデルの最初の15層のネットワーク層が含まれ、もう1つのサブモデルには対象モデルの最後の15層のネットワーク層が含まれるようにしてもよい。本開示は、モデルを分割する方法を限定しない。 Of course, the system may directly divide the target model based on the number of network layers included in the target model. Assuming that the target model includes 30 network layers, the system may equally divide the number of network layers in the target model into two sub-models, one of which includes the first 15 network layers of the target model and the other of which includes the last 15 network layers of the target model. The present disclosure does not limit the method of dividing the model.

S104において、前記複数のサブモデルに基づいて、前記複数のサブモデルを配置するための少なくとも1つの計算ノードを決定し、前記少なくとも1つの計算ノード上に複数のコンテナを作成して、前記複数のサブモデルを前記複数のコンテナにそれぞれ配置する。 In S104, at least one computation node for placing the submodels is determined based on the submodels, multiple containers are created on the at least one computation node, and the submodels are placed in the containers, respectively.

システムは、複数のサブモデルに基づいて、複数のサブモデルを配置するための計算ノードを決定し、これらの計算ノード上に複数のコンテナを作成して、複数のサブモデルを前記複数のコンテナにそれぞれデ配置してもよい。 The system may determine, based on the sub-models, computational nodes for placing the sub-models, create containers on the computational nodes, and place the sub-models in the containers, respectively.

例えば、現在、5台の物理マシンがモデルトレーニングタスクを共同で完了し、各物理マシン上に2つの計算ノード(例えば、GPU)があると仮定すると、対象モデルを20個のサブモデルに分割した後、システムは、各計算ノード上に合計20個のコンテナを作成して、分割によって得られた20個のサブモデルをそれぞれ20個のコンテナに配置してもよい。 For example, assuming that five physical machines currently jointly complete a model training task and there are two computing nodes (e.g., GPUs) on each physical machine, after dividing the target model into 20 sub-models, the system may create a total of 20 containers on each computing node and place the 20 sub-models obtained by the division into the 20 containers, respectively.

S106において、前記サンプルデータを用いてモデルトレーニングタスクを実行して、前記複数のコンテナ内に配置された複数のサブモデルをトレーニングする。 At S106, a model training task is executed using the sample data to train the sub-models arranged within the containers.

システムは、サンプルデータを用いてモデルトレーニングタスクを実行して、各コンテナ内に配置されたサブモデルをトレーニングしてもよい。 The system may then run a model training task using the sample data to train the sub-models placed within each container.

具体的に、各サブモデルに対してモデルトレーニングを行うとき、システムは、ログ収集フレームワークを用いて、各サブモデルのトレーニング過程における関連データを収集してもよく、関連データは、各サブモデルがトレーニング過程で生成したすべてのデータが含まれ、各サブモデルのコンテナ上での計算および実行状況を反映するために用いられる。 Specifically, when performing model training for each submodel, the system may use a log collection framework to collect relevant data during the training process of each submodel, where the relevant data includes all data generated by each submodel during the training process and is used to reflect the calculation and execution status of each submodel on the container.

具体的に、システムは、ロギング(Logging)方式を用いて関連データを収集してもよい。各サブモデルがトレーニングを行うとき、システムは、モデル計算の開始と終了、メモリアクセスの開始と終了などの時点をトレーニング統計情報としてログ出力してもよい。 Specifically, the system may collect relevant data using a logging method. When each sub-model trains, the system may log the start and end of model calculation, the start and end of memory access, and other time points as training statistics.

関連データからトレーニング統計情報をフィルタリングするために、ログを出力するとき、システムは、コンテナアドレス情報やスレッド番号などのトレーニングスレッドを一意に識別できる情報をログコンテンツに追加してもよく、また、container-adaptive-adjustなど、他のログコンテンツと区別するキーワードをログコンテンツに追加してもよい。 To filter the training statistics from the related data, when outputting the log, the system may add information to the log content that can uniquely identify the training thread, such as container address information or thread number, and may also add keywords to the log content that distinguish it from other log content, such as container-adaptive-adjust.

各サブモデルに対してモデルのトレーニングを行うとき、システムは新たに生成されたログを連続的にスキャンしてもよい。開始時点のログがスキャンされた場合、システムは今回のトレーニング過程におけるサブモデルの実行(計算、ストレージアクセスなど)時間とスレッド番号などの一意の識別情報を記録し、その後、終了時点のログがスキャンされるまでスキャンを継続し、今回のトレーニング過程の実行時間を計算してもよい。 When training a model for each submodel, the system may continuously scan newly generated logs. When the start log is scanned, the system may record the execution time (computation, storage access, etc.) of the submodel in this training process and unique identification information such as the thread number, and then continue scanning until the end log is scanned and calculate the execution time of this training process.

システムは、キーワードに基づいてモデルトレーニングのために生成された対象ログをフィルタリングし、対象ログに基づいてサブモデルの実行開始時刻および終了時刻を決定し、対象ログに記録されたサブモデルの実行時間およびスレッド番号などの情報を、サブモデルの対応するコンテナに対応するトレーニング統計情報として共有ストレージシステムに送信して記憶してもよい。 The system may filter the target logs generated for model training based on keywords, determine the execution start time and end time of the sub-model based on the target logs, and transmit and store information such as the execution time and thread number of the sub-model recorded in the target logs to the shared storage system as training statistics information corresponding to the corresponding container of the sub-model.

具体的に、モデルトレーニングタスクを実行する各計算ノードに対して、各計算ノードはフィルタリングされた対象ログを通じて、各サブモデルのトレーニング統計情報を取得する。トレーニング統計情報の数が所定の閾値を超えていない場合、システムはトレーニング統計情報の数が所定の閾値を超えるまでログをスキャンし続けてもよい。このとき、システムはトレーニング統計情報を所定の共有ストレージシステムに一括送信する。 Specifically, for each computing node that executes a model training task, each computing node obtains training statistics of each sub-model through the filtered target log. If the number of training statistics does not exceed a predetermined threshold, the system may continue to scan the log until the number of training statistics exceeds the predetermined threshold. At this time, the system transmits the training statistics to a predetermined shared storage system in bulk.

なお、各計算ノードがトレーニング統計情報を共有ストレージシステムに一括送信した後、システムは、各計算ノードが保有するトレーニング統計情報を削除し、分散トレーニングが終了するまで各コンテナに対応するトレーニング統計情報を記録し続けてもよい。 After each computing node transmits the training statistics to the shared storage system in bulk, the system may delete the training statistics held by each computing node and continue to record the training statistics corresponding to each container until the distributed training is completed.

もちろん、システムは一括送信時間を予め設定してもよく、システムが前回トレーニング統計情報を共有ストレージシステムに一括送信した時間が予め設定された送信時間を超えた場合、トレーニング統計情報を共有ストレージシステムに一括送信してもよい。例えば、予め設定された送信時間が15分である場合、システムは、各サブモデルのトレーニング過程において、15分ごとにトレーニング統計情報を共有ストレージシステムに一括送信してもよい。 Of course, the system may preset a batch transmission time, and if the time since the system last batch-transmitted the training statistics to the shared storage system exceeds the preset transmission time, the system may batch-transmit the training statistics to the shared storage system. For example, if the preset transmission time is 15 minutes, the system may batch-transmit the training statistics to the shared storage system every 15 minutes during the training process of each sub-model.

すなわち、共有ストレージシステムに記憶された各トレーニング統計情報は、モデルトレーニングタスクを実行するときに各計算ノードによって生成された対象ログに基づいて決定され、対象ログは、予め定められた指定キーワードに従って各計算ノードによって生成されたログからフィルタリングされ、トレーニング統計情報は、特定数を蓄積した後、または予め設定された時間に達した後、共有ストレージシステムに書き込まれ、各計算ノードから削除される。 That is, each training statistical information stored in the shared storage system is determined based on the target logs generated by each computing node when executing the model training task, the target logs are filtered from the logs generated by each computing node according to predetermined specified keywords, and the training statistical information is written to the shared storage system and deleted from each computing node after accumulating a certain number or after reaching a preset time.

S108において、モデルトレーニングタスクを実行するときの前記少なくとも1つの計算ノードの負荷データを取得し、各コンテナについて、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を、当該コンテナに対応する演算時間として決定する。 In S108, load data of the at least one computing node when executing a model training task is acquired, and for each container, the computation time of the sub-model placed in the container when executing a training task of the sub-model is determined as the computation time corresponding to the container.

システムは、モデルトレーニングタスクを実行するときの各計算ノードの負荷データを取得し、各コンテナについて、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を、当該コンテナに対応する演算時間として決定してもよい。 The system may obtain load data for each computation node when executing a model training task, and for each container, determine the computation time of the sub-model placed in the container when executing a training task for that sub-model as the computation time corresponding to that container.

その後、システムは、各コンテナに対応する演算時間と各計算ノードの負荷データに基づいてコンテナの動作状態を分析し、コンテナの分布を調整してもよい。 The system may then analyze the operating status of the containers based on the computing time corresponding to each container and the load data of each computing node, and adjust the distribution of the containers.

具体的に、システムは、所定の共有ストレージシステムから、各コンテナに対応するトレーニング統計情報を読み出してもよい。各コンテナについて、システムは、トレーニング統計情報に含まれる、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行する開始時刻と終了時刻に基づいて、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を決定してもよい。 Specifically, the system may read training statistics corresponding to each container from a predetermined shared storage system. For each container, the system may determine a calculation time for the sub-model placed in the container when executing the training task for the sub-model, based on the start time and end time for executing the training task for the sub-model placed in the container, which are included in the training statistics.

モデルトレーニングの過程において、システムはトレーニング統計情報を共有ストレージシステムに継続的に書き込み、分散トレーニングへの影響を低減するために、システムが共有ストレージシステムからシステムが各コンテナに対応するトレーニング統計情報を読み出してコンテナの状態を分析するとき、各サブモデルの前回のトレーニング時に生成されたトレーニング統計情報を取得してもよい。 During the model training process, the system continuously writes the training statistics to the shared storage system, and may obtain the training statistics generated during the previous training of each sub-model when the system reads the training statistics corresponding to each container from the shared storage system to analyze the state of the container, in order to reduce the impact on distributed training.

つまり、システムがコンテナの動作状態を分析するときに使用するデータに対応するトレーニング反復順序は、現在のモデルトレーニングのトレーニング反復順序より1つ遅れている。例えば、現在のモデルトレーニングのトレーニング反復順序がiであると仮定すると、システムが共有ストレージシステムから読み出したトレーニング統計情報に対応するトレーニング反復順序はi-1である。 That is, the training iteration order corresponding to the data that the system uses to analyze the operating state of the container is one behind the training iteration order of the current model training. For example, assuming that the training iteration order of the current model training is i, the training iteration order corresponding to the training statistics information that the system reads from the shared storage system is i-1.

なお、共有ストレージシステムの性能を向上させるために、システムは、同じ反復順序に対応するトレーニング統計情報が連続的に格納されるように、トレーニング反復順序もキーワードの1つとして共有ストレージシステムに格納してもよい。 In addition, to improve the performance of the shared storage system, the system may also store the training iteration order as one of the keywords in the shared storage system so that training statistics corresponding to the same iteration order are stored consecutively.

S110において、前記少なくとも1つの計算ノードの負荷データと、前記複数のコンテナのそれぞれに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを対象ノードとして決定する。 In S110, a computing node for which the distribution of containers needs to be adjusted is determined as a target node based on the load data of the at least one computing node and the calculation time corresponding to each of the multiple containers.

S112において、前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整する。 In S112, the distribution of containers in the target node is adjusted so that the calculation times corresponding to each of the multiple containers are close to each other.

各計算ノードの負荷データと各コンテナの対応する演算時間を決定した後、システムはコンテナの分布を調整する必要がある計算ノードを対象ノードとして決定してもよい。 After determining the load data of each computing node and the corresponding computing time of each container, the system may determine the computing nodes that need to adjust the distribution of containers as target nodes.

具体的に、システムは、複数のコンテナのそれぞれに対応する演算時間の大きい順に、コンテナをソートして第1のソート結果を得、第1のソート結果において、所定の順位より前にある1つまたは複数のコンテナを1つまたは複数の対象コンテナとしてもよい。
システムは、各コンテナに対応する演算時間で各コンテナの動作状態を反映し、その後、各コンテナに対応する演算時間に基づいてコンテナの分布を調整する必要がある計算ノードを決定することができる。
Specifically, the system may sort the multiple containers in descending order of the calculation time corresponding to each of the multiple containers to obtain a first sorting result, and may select one or more containers that are prior to a predetermined rank in the first sorting result as one or more target containers.
The system can reflect the operating state of each container with the computing time corresponding to each container, and then determine the computing nodes that need to adjust the distribution of containers based on the computing time corresponding to each container.

例えば、所定の順位の具体的な値を5であると仮定すると、システムは、各計算ノードにおける各コンテナに対応する演算時間の大きい順に、第1のソート結果を得、そしてソート結果における最初の5つのコンテナを対象コンテナとしてもよい。 For example, assuming that the specific value of the predetermined ranking is 5, the system may obtain a first sorting result in descending order of the computation time corresponding to each container on each computing node, and the first five containers in the sorting result may be the target containers.

もちろん、システムは他の方法で対象コンテナを決定してもよい。 Of course, the system may determine the target container in other ways.

例えば、システムは各計算ノードの負荷情報を取得し、各計算ノードの負荷情報に基づいて、計算ノードにおけるGPU使用率が最も低い計算ノードを決定し、当該計算ノードのGPU使用率が所定の閾値よりも低い場合、当該計算ノードにおけるI/O負荷が最も高いコンテナを対象コンテナとしてもよい。 For example, the system may acquire load information for each computing node, and based on the load information for each computing node, determine the computing node with the lowest GPU usage rate, and if the GPU usage rate of the computing node is lower than a predetermined threshold, the container with the highest I/O load on the computing node may be set as the target container.

対象コンテナを決定した後、システムは対象コンテナと各計算ノードの負荷データに基づいて、ココンテナの分布を調整する必要がある計算ノードを決定してもよい。 After determining the target container, the system may determine the compute nodes for which the distribution of co-containers needs to be adjusted based on the load data of the target container and each compute node.

具体的に、システムは、対象コンテナが配置された計算ノードを第1のノードとして決定し、第1のノードの負荷データに基づいて、第1のノードの負荷が第1の設定閾値より高いと判定された場合、他の計算ノードから、第1のノードにおけるコンテナの一部を配置するための計算ノードを第2のノードとして決定してもよい。 Specifically, the system may determine the computation node on which the target container is placed as the first node, and if it is determined based on the load data of the first node that the load of the first node is higher than a first set threshold, determine from among the other computation nodes as the second node a computation node on which to place a portion of the container on the first node.

システムは、第1のノードおよび第2のノードを、コンテナの分布を調整する必要がある計算ノードとして決定し、サブモデルが配置された各計算ノードにおけるコンテナに対応する演算時間が近いことを調整目標として、第1のノードにおける対象コンテナを第2のノードに移行させることができる。 The system determines the first node and the second node as the computation nodes that require container distribution adjustment, and can migrate the target container in the first node to the second node with the adjustment goal that the calculation times corresponding to the containers in each computation node where the submodel is placed are close to each other.

ここで、第1の設定閾値は、予め設定されてもよく、第1のノード以外の計算ノードの負荷の平均値であってもよい。 Here, the first set threshold may be set in advance, or may be the average load of the computing nodes other than the first node.

例えば、システムは、第1のノードの負荷データに基づいて、第1のノードの負荷値が20である(負荷値は、負荷の高さを表すために使用され、負荷値は負荷と正の相関がある)と決定し、第1の設定閾値が10である場合、または、この時点の各計算ノードの負荷の平均値が10である場合、システムは、第1のノード以外の計算ノードから、第1のノードにおけるコンテナの一部を配置するための計算ノードを第2のノードとして決定する必要がある。 For example, the system determines based on the load data of the first node that the load value of the first node is 20 (the load value is used to indicate the level of load, and the load value is positively correlated with the load), and if the first set threshold is 10, or if the average load value of each computing node at this time is 10, the system needs to determine a computing node other than the first node as the second node for placing some of the containers in the first node.

具体的に、システムは、まず、第1のノードにおけるI/O負荷が最も高い対象コンテナを決定し、次に、第1のノード以外の計算ノードの負荷データに基づいて、I/O負荷が最も低い計算ノードを第2のノードとして決定し、このとき、第1のノードにおける対象コンテナを第2のノードに移行して、各計算ノードにおけるコンテナの分布を調整してもよい。 Specifically, the system first determines the target container with the highest I/O load on the first node, then determines the computation node with the lowest I/O load as the second node based on the load data of the computation nodes other than the first node, and at this time, migrates the target container on the first node to the second node to adjust the distribution of containers on each computation node.

もちろん、本開示では、コンテナの分布の調整が必要な計算ノードを他の方法によって決定してもよい。 Of course, this disclosure may use other methods to determine which compute nodes require container distribution adjustment.

システムが、対象コンテナに対応する演算時間と、他のコンテナに対応する演算時間との差が第2の設定閾値を超えると判定した場合、システムは、各計算ノードの負荷データに基づいて、作成すべき新しいコンテナを配置する計算ノードを、コンテナの分布を調整する必要がある計算ノードとして決定してもよい。 If the system determines that the difference between the computation time corresponding to the target container and the computation time corresponding to other containers exceeds a second set threshold, the system may determine, based on the load data of each computation node, the computation node on which to place the new container to be created as a computation node on which the distribution of containers needs to be adjusted.

ここで、第2の設定閾値は、予め設定されてもよく、各コンテナの対応する演算時間に対応する平均値であってもよい。 Here, the second set threshold may be preset or may be an average value corresponding to the corresponding calculation time for each container.

例えば、対象コンテナの数が1で、当該対象コンテナに対応する演算時間が20minで、当該対象コンテナ以外のコンテナに対応する演算時間が10minであると決定された場合、システムは、対象コンテナに対応する演算時間と、他のコンテナに対応する演算時間との差が第2の設定閾値(例えば、5min)を超えていると判定し、このとき、システムは、各計算ノードの負荷データに基づいて、作成すべき新しいコンテナを配置する計算ノードを、コンテナの分布を調整する必要がある計算ノードである対象ノードとして決定してもよい。 For example, if it is determined that the number of target containers is 1, the calculation time corresponding to the target container is 20 minutes, and the calculation time corresponding to containers other than the target container is 10 minutes, the system determines that the difference between the calculation time corresponding to the target container and the calculation time corresponding to the other containers exceeds a second set threshold (e.g., 5 minutes), and at this time, the system may determine, based on the load data of each calculation node, the calculation node on which the new container to be created is to be placed as the target node, which is the calculation node for which the distribution of containers needs to be adjusted.

この場合、システムが対象ノードを決定する方法は様々かある。 In this case, there are various ways the system can determine the target node.

具体的に、システムは、計算ノードの負荷データが小さい順に、対象コンテナが配置された計算ノード以外の計算ノードをソートして第2のソート結果を得、第2のソート結果に従って、ソートされた隣接する2つの計算ノード間の負荷差が所定の範囲内にあるかどうかを順次判定してもよい。 Specifically, the system may sort the computation nodes other than the computation node on which the target container is placed in order of the smallest load data of the computation nodes to obtain a second sorting result, and sequentially determine whether the load difference between two sorted adjacent computation nodes is within a predetermined range according to the second sorting result.

上記の他の計算ノードのうち、ソートされた隣接する任意の2つの計算ノードについて、当該ソートされた隣接する2つの計算ノード間の負荷差が所定の範囲内にないと判定された場合、システムは、当該ソートされた隣接する2つの計算ノードのうち、負荷の低いノードを作成すべき新しいコンテナを配置する計算ノードとし、当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあると判定された場合、第2のソート結果におけるすべての計算ノードがトラバースされるまで、または作成すべき新しいコンテナを配置する計算ノードが決定されるまで、次のソートされた隣接する2つの計算ノード間の負荷差が所定の範囲内にあるかどうかを判定してもよい。 If it is determined that the load difference between any two sorted adjacent computing nodes among the other computing nodes is not within a predetermined range, the system may determine that the node with the lower load among the two sorted adjacent computing nodes is the computing node on which to place the new container to be created, and if it is determined that the load difference between the two sorted adjacent computing nodes is within the predetermined range, it may determine whether the load difference between the next two sorted adjacent computing nodes is within a predetermined range until all computing nodes in the second sorted result are traversed or until the computing node on which to place the new container to be created is determined.

ここで、各計算ノードの負荷データは、GPU使用率、CPU使用率、メモリ使用率、およびストレージデバイスの帯域幅で表すことができる。 Here, the load data for each computing node can be expressed in terms of GPU usage, CPU usage, memory usage, and storage device bandwidth.

例えば、システムは、各計算ノードのGPU使用率が小さい順に、対象コンテナが配置された計算ノード以外の計算ノードをソートしてもよい。 For example, the system may sort the compute nodes other than the compute node on which the target container is placed in order of the lowest GPU usage rate of each compute node.

前記他の計算ノードのうち、ソートされた隣接する任意の2つの計算ノードについて、当該ソートされた隣接する2つの計算ノード間のGPU使用率の差が所定の範囲内にないと判定された場合、当該ソートされた隣接する2つの計算ノードのうち、GPU使用率の低いノードを作成すべき新しいコンテナを配置する計算ノードとし、当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあると判定された場合、作成すべき新しいコンテナを配置する計算ノードが決定されるまで、次のソートされた隣接する2つの計算ノード間のGPU使用率の差が所定の範囲内にあるかどうかを判定する。 If it is determined that the difference in GPU usage between any two sorted adjacent computing nodes among the other computing nodes is not within a predetermined range, the node with the lower GPU usage among the two sorted adjacent computing nodes is set as the computing node on which to place the new container to be created, and if it is determined that the load difference between the two sorted adjacent computing nodes is within the predetermined range, it is determined whether the difference in GPU usage between the next two sorted adjacent computing nodes is within a predetermined range until the computing node on which to place the new container to be created is determined.

第2のソート結果において、各ソートされた隣接する2つの計算ノードのGPU使用率の差が所定の範囲内にある場合、システムは、各計算ノードのGPU使用率が小さい順に、対象コンテナが配置された計算ノード以外の計算ノードを再度ソートして、第2のソート結果を再度得てもよい。 If the difference in GPU usage between each pair of sorted adjacent computing nodes in the second sorting result is within a predetermined range, the system may re-sort the computing nodes other than the computing node on which the target container is placed in order of the GPU usage of each computing node from smallest to largest, thereby obtaining the second sorting result again.

このとき、ソートされた隣接する任意の2つの計算ノードについて、当該ソートされた隣接する2つの計算ノード間のGPU使用率の差が所定の範囲内にないと判定された場合、当該ソートされた隣接する2つの計算ノードのうち、GPU使用率の低いノードを作成すべき新しいコンテナを配置する計算ノードとする。 At this time, if it is determined that the difference in GPU usage between any two sorted adjacent computing nodes is not within a predetermined range, the node with the lower GPU usage is selected as the computing node in which to place the new container to be created.

このように、システムは、作成すべき新しいコンテナを配置する計算ノードが決定されるまで、計算ノードのGPU使用率、CPU使用率、メモリ使用率、ストレージデバイスの帯域幅などのデータサイズを順次比較してもよい。 In this way, the system may sequentially compare the data size of the compute nodes, such as GPU utilization, CPU utilization, memory utilization, and storage device bandwidth, until a compute node is determined on which to place the new container to be created.

システムが、計算ノードのGPU使用率、CPU使用率、メモリ使用率、ストレージデバイスの帯域幅などのデータサイズを順次比較しても、作成すべき新しいコンテナを配置する計算ノードを決定していない場合、システムは、他の方法で作成すべき新しいコンテナを配置する計算ノードを決定してもよい。 If the system has not yet determined the computation node on which to place the new container to be created by sequentially comparing the data size of the computation nodes, such as the GPU usage, CPU usage, memory usage, and storage device bandwidth, the system may determine the computation node on which to place the new container to be created by another method.

具体的に、システムが前記第2のソート結果におけるソートされた隣接する2つの計算ノード間の負荷差が所定の範囲内にあると判定した場合、システムは、作成すべき新しいコンテナに対応するサブモデルとネットワーク層の依存関係を有するサブモデルを、関連サブモデルとして決定してもよい。例えば、あるサブモデルの出力が別のサブモデルの入力である場合、この2つのサブモデルを関連サブモデルとすることができる。 Specifically, if the system determines that the load difference between two sorted adjacent computing nodes in the second sorting result is within a predetermined range, the system may determine, as a related submodel, a submodel that has a network layer dependency with a submodel corresponding to a new container to be created. For example, if the output of one submodel is the input of another submodel, the two submodels can be related submodels.

また、システムは、関連サブモデルが配置された計算ノードを、関連ノードとして決定しともよい。システムは、関連ノードと、前記関連ノード以外の他の計算ノードとの間のネットワーク遅延を測定し、測定によって得られたネットワーク遅延に基づいて、前記関連ノード以外の計算ノードから、作成すべき新しいコンテナを配置する計算ノードを決定してもよい。 The system may also determine a computation node on which a related submodel is placed as a related node. The system may measure a network delay between the related node and a computation node other than the related node, and determine a computation node on which to place a new container to be created from among the computation nodes other than the related node, based on the network delay obtained by the measurement.

例えば、システムは、関連ノードとの間のネットワーク遅延が最も小さい計算ノードを、作成すべき新しいコンテナを配置する計算ノードとしてもよい。あるいは、システムは、関連ノードと他の計算ノードとの間のネットワーク遅延の平均値を決定し、関連ノードとのネットワーク遅延が当該平均値より低い他の計算ノードを、作成すべき新しいコンテナを配置する計算ノードとしてもよい。 For example, the system may select a computation node with the smallest network latency between the associated node as the computation node on which to place the new container to be created. Alternatively, the system may determine an average value of the network latency between the associated node and other computation nodes, and select other computation nodes with network latency between the associated node and other computation nodes that is lower than the average value as the computation node on which to place the new container to be created.

作成すべき新しいコンテナを配置する計算ノードが決定された後、システムは、サブモデルが配置された計算ノードにおけるコンテナに対応する演算時間が近いことを調整目標として、対象ノードに新しいコンテナを作成し、対象コンテナに配置されたサブモデルのモデルデータのコピーを作成し、コピーによって得られたサブモデルを新しいコンテナに配置してもよい。 After determining the computation node on which to place the new container to be created, the system may create a new container on the target node, make a copy of the model data of the submodel placed in the target container, and place the submodel obtained by copying in the new container, with the adjustment goal that the computation time corresponding to the container on the computation node on which the submodel is placed is close.

これに加えて、システムは、他の方法で対象ノードを決定してもよい。 In addition, the system may determine the target node in other ways.

具体的に、システムは、まず対象コンテナが配置された計算ノードを決定し、対象コンテナが配置された計算ノードに指定コンテナが配置されたと判定された場合、対象コンテナが配置された計算ノードを、コンテナの分布を調整する必要がある計算ノードとしてもよい。ここで、指定コンテナに配置されたサブモデルは、対象コンテナに配置されたサブモデルと同じである。 Specifically, the system first determines the computation node on which the target container is placed, and if it is determined that the designated container is placed on the computation node on which the target container is placed, the computation node on which the target container is placed may be determined to be the computation node on which the distribution of containers needs to be adjusted. Here, the sub-model placed in the designated container is the same as the sub-model placed in the target container.

対象ノードが決定された後、システムは、サブモデルが配置された計算ノードにおけるコンテナに対応する演算時間が近いことを調整目標として、対象コンテナが配置された計算ノードにおける対象コンテナまたは指定コンテナを削除してもよい。 After the target node is determined, the system may delete the target container or a specified container on the computation node on which the target container is placed, with the adjustment goal that the computation time corresponding to the container on the computation node on which the submodel is placed is close.

すなわち、サブモデルのモデルパラメータが同じである複数のコンテナが同時に1つの物理ノード(例えば、同じ物理マシン)上に配置されている場合、システムは、サブモデルが配置された計算ノードにおけるコンテナに対応する演算時間が近いことを調整目標として、その物理ノード上のコンテナを削除し、当該物理ノード上に配置されているサブモデルのモデルパラメータが同じである1つのコンテナだけを保持してもよい。 In other words, when multiple containers with the same model parameters of sub-models are simultaneously placed on one physical node (e.g., the same physical machine), the system may delete the container on the physical node on which the sub-models are placed, and retain only one container with the same model parameters of the sub-models placed on that physical node, with the adjustment goal that the calculation times corresponding to the containers on the calculation node on which the sub-models are placed are close to each other.

なお、本開示では、対象ノードにおける各コンテナの分布を調整するとき、システムは、サブモデルが配置された計算ノードにおけるコンテナに対応する演算時間が近く、かつ、コンテナが配置された計算ノードの負荷が近いことを調整目標として、対象ノードにおける各コンテナの分布を調整する。 In addition, in this disclosure, when adjusting the distribution of each container in a target node, the system adjusts the distribution of each container in the target node with the adjustment goal that the calculation times corresponding to the containers in the computation nodes on which the submodels are placed are similar, and that the loads of the computation nodes on which the containers are placed are similar.

S114において、コンテナの分布が調整された各計算ノードに基づいて、前記対象モデルのトレーニングタスクを実行する。 At S114, a training task for the target model is executed based on each computing node where the distribution of containers has been adjusted.

システムが対象ノードにおける各コンテナの分布を調整した後、コンテナの分布が調整された各計算ノードに基づいて、システムは、サンプルデータを使用して、対象モデルのトレーニングタスクを引き続き実行してもよい。 After the system adjusts the distribution of each container on the target nodes, the system may continue to perform the training task of the target model using the sample data based on each computation node on which the distribution of containers has been adjusted.

なお、対象ノードにおけるコンテナの分布を調整する前に、システムは、現在のすべてのコンテナに対してチェックポイント(checkpoint)操作を実行し、現在のトレーニング反復順序のトレーニング情報を保存してもよい。 Note that before adjusting the distribution of containers on the target node, the system may perform a checkpoint operation on all current containers and save the training information of the current training iteration order.

コンテナの分布が調整された各計算ノードに基づいて、ロード(load)操作により、システムは、以前に保存されるトレーニング情報を取得し、次に、すべてのコンテナ内のサブモデルに対するトレーニングスレッドを起動して、各サブモデルのトレーニングを継続してもよい。なお、新しく作成されたコンテナ内のサブモデルの中間トレーニング変数は、当該サブモデルのモデルデータと同じである他のコンテナからコピーしてもよい。 Based on each computing node with the adjusted distribution of containers, the system may retrieve the previously saved training information through a load operation, and then launch training threads for the sub-models in all containers to continue training each sub-model. Note that the intermediate training variables of the sub-models in the newly created container may be copied from other containers that are the same as the model data of the sub-model.

なお、本開示で述べた上記の内容は、実行主体としてシステムのみを例に、インテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法について説明したものである。しかし、実際には、当該システムは、複数の計算ノード、アナライザ、およびスケジューラから構成されてもよい。 The above contents of this disclosure have been used to explain the distributed training method for container scheduling for intelligent computing, taking only a system as an execution entity as an example. However, in reality, the system may be composed of multiple computing nodes, analyzers, and schedulers.

図2は、本開示にて提供されるシステム関係を示す概略図である。 Figure 2 is a schematic diagram showing the system relationships provided in this disclosure.

図2に示すように、各計算ノードが各サブモデルに対して分散トレーニングを行う過程において、各計算ノードはトレーニング統計情報を共有ストレージシステムに一括書き込み続ける。 As shown in Figure 2, while each computing node performs distributed training for each submodel, each computing node continues to write training statistics to the shared storage system in bulk.

各計算ノードに含まれるコンテナの分布を調整する前に、アナライザは、モデルトレーニングタスクを実行するときの各計算ノードの負荷データを取得するために、共有ストレージシステムからトレーニング統計情報を読み出し、各コンテナについて、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を、当該コンテナに対応する演算時間として決定してもよい。 Before adjusting the distribution of containers contained in each computation node, the analyzer may read training statistics from the shared storage system to obtain load data for each computation node when executing a model training task, and may determine, for each container, the computation time of the sub-model placed in the container when executing a training task for that sub-model as the computation time corresponding to that container.

アナライザが各計算ノードの負荷データと各コンテナに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを決定した後に、スケジューラは、各計算ノードにおけるコンテナの分布を調整してもよい。 After the analyzer determines the compute nodes for which the distribution of containers needs to be adjusted based on the load data of each compute node and the computation time corresponding to each container, the scheduler may adjust the distribution of containers on each compute node.

図3は、本開示にて提供されるコンテナ調整を示す概略図である。 Figure 3 is a schematic diagram showing the container adjustments provided in this disclosure.

図3に示すように、スケジューラは、サブモデルが配置された各計算ノードにおけるコンテナに対応する演算時間が近いことを調整目標として、対象ノードにおける各コンテナの分布を調整してもよい。具体的な調整方法については、ステップS110~ステップS112で詳細に説明した。 As shown in FIG. 3, the scheduler may adjust the distribution of each container on the target node, with the adjustment goal that the computation times corresponding to the containers on each computing node on which the submodel is placed are close to each other. The specific adjustment method is described in detail in steps S110 to S112.

スケジューラがコンテナの分布を調整した後、コンテナの分布が調整された各計算ノードに基づいて、各計算ノードは対象モデルの学習タスクを継続して実行してもよい。 After the scheduler adjusts the distribution of containers, each computing node may continue to execute the learning task of the target model based on the adjusted distribution of containers for each computing node.

上記の方法から分かるように、モデルトレーニングタスクを実行するとき、まず対象モデルを複数のサブモデルに分割し、次に各サブモデルを配置するための各計算ノードを決定し、各計算ノード上にコンテナを作成して、各サブモデルを各前記コンテナにそれぞれ配置して、各計算ノードを通じてトレーニングタスクを完了する。モデルトレーニングの過程において、本開示は、各計算ノードの負荷データを測定し、サブモデルが配置された各計算ノードにおけるコンテナに対応する演算時間が近いことを調整目標として、各前記ノードにおける各コンテナの分布を動的に調整し、これにより、各計算ノード間の負荷分散に有利となり、モデルレーニングの効率をさらに向上させることができる。 As can be seen from the above method, when performing a model training task, first divide the target model into multiple submodels, then determine each computing node for placing each submodel, create a container on each computing node, place each submodel in each container, and complete the training task through each computing node. In the process of model training, the present disclosure measures the load data of each computing node, and dynamically adjusts the distribution of each container on each computing node with the adjustment goal that the calculation time corresponding to the container on each computing node where the submodel is placed is close, which is favorable for load distribution among each computing node, and can further improve the efficiency of model training.

以上が、本開示の1つまたは複数の実施形態にて提供される方法であり、同じ考えに基づいて、本開示は図4に示すような、対応するインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング装置をさらに提供する。 The above is a method provided in one or more embodiments of the present disclosure. Based on the same idea, the present disclosure further provides a corresponding distributed training device for container scheduling for intelligent computing, as shown in FIG. 4.

図4は、本開示にて提供されるインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング装置を示す概略図であり、前記装置は、
サンプルデータおよび対象モデルを取得するように構成される第1の取得モジュール400と、
前記対象モデルを分割して複数のサブモデルを得るように構成される分割モジュール402であって、前記複数のサブモデルの各サブモデルは、前記対象モデルにおけるネットワーク層の一部を含む、分割モジュール402と、
前記複数のサブモデルに基づいて、前記複数のサブモデルを配置するための少なくとも1つの計算ノードを決定し、前記少なくとも1つの計算ノード上に複数のコンテナを作成して、前記複数のサブモデルを前記複数のコンテナにそれぞれ配置するように構成される第1の決定モジュール404と、
前記サンプルデータを用いてモデルトレーニングタスクを実行して、前記複数のコンテナ内に配置された前記複数のサブモデルをトレーニングするように構成される第1のトレーニングモジュール406と、
モデルトレーニングタスクを実行するときの前記少なくとも1つの計算ノードの負荷データを取得し、前記複数のコンテナの各々について、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を、当該コンテナに対応する演算時間として決定するように構成される第2の取得モジュール408と、
前記少なくとも1つの計算ノードの負荷データと、前記複数のコンテナのそれぞれに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを対象ノードとして決定するように構成される第2の決定モジュール410と、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するように構成される調整モジュール412と、
コンテナの分布が調整された各計算ノードに基づいて、前記対象モデルのトレーニングタスクを実行するように構成される第2のトレーニングモジュール414と、を備える。
FIG. 4 is a schematic diagram showing a distributed training device for container scheduling for intelligent computing provided in the present disclosure, the device comprising:
a first acquisition module 400 configured to acquire sample data and an object model;
a segmentation module 402 configured to segment the object model into a plurality of sub-models, each sub-model of the plurality of sub-models comprising a portion of a network layer in the object model;
a first determination module 404 configured to determine at least one computing node for placing the plurality of sub-models based on the plurality of sub-models, create a plurality of containers on the at least one computing node, and place the plurality of sub-models in the plurality of containers, respectively;
a first training module 406 configured to perform a model training task using the sample data to train the sub-models disposed within the containers;
a second acquisition module 408 configured to acquire load data of the at least one computing node when executing a model training task, and determine, for each of the plurality of containers, a computation time of the sub-model disposed in the container when executing a training task of the sub-model as a computation time corresponding to the container;
A second determination module 410 configured to determine a computing node that needs to adjust the distribution of containers as a target node based on the load data of the at least one computing node and the computing time corresponding to each of the plurality of containers;
an adjustment module 412 configured to adjust a distribution of containers in the target node with an adjustment target that the calculation times corresponding to the plurality of containers are close to each other;
and a second training module 414 configured to execute a training task of the target model based on each computing node to which the distribution of containers has been adjusted.

オプションで、前記分割モジュール402は、具体的に、
モデルトレーニングタスクを実行するときの前記対象モデルの演算時間を決定し、
前記対象モデルの演算時間に基づいて、前記対象モデルに含まれるネットワーク層を分割して、前記複数のサブモデルを取得するように構成される。
Optionally, the segmentation module 402 specifically:
determining a computation time for the target model when performing a model training task;
The network layer included in the target model is divided based on the calculation time of the target model to obtain the plurality of sub-models.

オプションで、前記第2の取得モジュール408は、具体的に、
所定の共有ストレージシステムから、当該コンテナに対応するトレーニング統計情報を決定し、
前記トレーニング統計情報に含まれる、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行する開始時刻と終了時刻に基づいて、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を決定するように構成される。
前記共有ストレージシステムに記憶されたトレーニング統計情報は、モデルトレーニングタスクを実行するときに前記少なくとも1つの計算ノードの各計算ノードによって生成された対象ログに基づいて決定され、前記対象ログは、予め定められた指定キーワードに従って前記少なくとも1つの計算ノードの各計算ノードによって生成されたログからフィルタリングされ、前記トレーニング統計情報は、特定数を蓄積した後に前記共有ストレージシステムに書き込まれ、前記少なくとも1つの計算ノードから削除される。
Optionally, the second acquisition module 408 specifically:
determining training statistics corresponding to the container from a given shared storage system;
The system is configured to determine the calculation time of the sub-model when executing the training task of the sub-model placed in the container, based on the start time and end time of executing the training task of the sub-model placed in the container, which are included in the training statistical information.
The training statistics stored in the shared storage system are determined based on target logs generated by each of the at least one computing node when executing a model training task, the target logs are filtered from the logs generated by each of the at least one computing node according to predetermined designated keywords, and the training statistics are written to the shared storage system and deleted from the at least one computing node after accumulating a certain number.

オプションで、前記第2の決定モジュール410は、具体的に、
前記複数のコンテナのそれぞれに対応する演算時間の大きい順に、前記複数のコンテナをソートして第1のソート結果を得、
前記第1のソート結果において、所定の順位より前にあるコンテナを対象コンテナとし、
前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するように構成される。
Optionally, the second determination module 410 specifically:
sorting the plurality of containers in descending order of the calculation times corresponding to the plurality of containers to obtain a first sorting result;
A container that is located before a predetermined order in the first sorting result is set as a target container;
The system is configured to determine a computing node that requires an adjustment of a distribution of containers based on the target container and load data of the at least one computing node.

オプションで、前記第2の決定モジュール410は、具体的に、
前記対象コンテナが配置された計算ノードを第1のノードとして決定し、
前記第1のノードの負荷データに基づいて、前記第1のノードの負荷が第1の設定閾値より高いと判定された場合、他の計算ノードから、前記第1のノードにおけるコンテナの一部を配置するための計算ノードを第2のノードとして決定し、
前記第1のノードおよび前記第2のノードを、コンテナの分布を調整する必要がある計算ノードとして決定するように構成される。
Optionally, the second determination module 410 specifically determines whether
determining a computing node on which the target container is placed as a first node;
determining, when a load of the first node is determined to be higher than a first set threshold based on the load data of the first node, a computation node for allocating a part of the containers of the first node as a second node from among the other computation nodes;
The first node and the second node are configured to determine the first node and the second node as computation nodes that need to adjust a distribution of containers.

オプションで、前記第2の決定モジュール410は、具体的に、
前記対象コンテナに対応する演算時間と、他のコンテナに対応する演算時間との差が第2の設定閾値を超えると判定された場合、前記少なくとも1つの計算ノードの負荷データに基づいて、作成すべき新しいコンテナを配置する計算ノードを、コンテナの分布を調整する必要がある計算ノードとして決定するように構成される。
前記調整モジュール412は、具体的に、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードに新しいコンテナを作成し、前記対象コンテナに配置されたサブモデルのモデルデータのコピーを作成し、コピーによって得られたサブモデルを前記新しいコンテナに配置するように構成される。
Optionally, the second determination module 410 specifically:
When it is determined that the difference between the calculation time corresponding to the target container and the calculation time corresponding to another container exceeds a second set threshold, the calculation node on which the new container to be created is to be placed is determined as a calculation node on which the distribution of containers needs to be adjusted, based on load data of the at least one calculation node.
The adjustment module 412 specifically includes:
The method is configured to create a new container in the target node, create a copy of model data of a sub-model placed in the target container, and place the sub-model obtained by copying in the new container, with the adjustment target being that the calculation times corresponding to each of the plurality of containers are close to each other.

オプションで、前記第2の決定モジュール410は、具体的に、
前記少なくとも1つの計算ノードの負荷データが小さい順に、前記対象コンテナが配置された計算ノード以外の計算ノードをソートして第2のソート結果を得、
前記第2のソート結果に従って、ソートされた隣接する2つの計算ノード間の負荷差が所定の範囲内にあるかどうかを順次判定し、
前記他の計算ノードのうち、ソートされた隣接する任意の2つの計算ノードについて、
当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にないと判定された場合、当該ソートされた隣接する2つの計算ノードのうち、負荷の低いノードを作成すべき新しいコンテナを配置する計算ノードとし、
当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあると判定された場合、前記第2のソート結果におけるすべての計算ノードがトラバースされるまで、または作成すべき新しいコンテナを配置する計算ノードが決定されるまで、次のソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあるかどうかを判定するように構成される。
Optionally, the second determination module 410 specifically determines whether
sorting the computation nodes other than the computation node on which the target container is placed in order of increasing load data of the at least one computation node to obtain a second sorting result;
Sequentially determining whether a load difference between two sorted adjacent computing nodes is within a predetermined range according to the second sorting result;
For any two sorted adjacent computing nodes among the other computing nodes,
If it is determined that the load difference between the two sorted adjacent calculation nodes is not within the predetermined range, the calculation node with the lower load among the two sorted adjacent calculation nodes is set as the calculation node to which the new container to be created is to be placed;
If it is determined that the load difference between the two sorted adjacent computing nodes is within the predetermined range, the system is configured to determine whether the load difference between the next two sorted adjacent computing nodes is within the predetermined range until all computing nodes in the second sorted result are traversed or until a computing node on which to place a new container to be created is determined.

オプションで、前記第2の決定モジュール410は、さらに、
前記第2のソート結果におけるソートされた隣接する2つの計算ノード間の各負荷差が前記所定の範囲内にあると判定された場合、前記作成すべき新しいコンテナに対応するサブモデルとネットワーク層の依存関係を有するサブモデルを、関連サブモデルとして決定し、
前記関連サブモデルが配置された計算ノードを、関連ノードとして決定し、
前記関連ノードと、前記関連ノード以外の他の計算ノードとの間のネットワーク遅延を測定し、
測定によって得られたネットワーク遅延に基づいて、前記関連ノード以外の計算ノードから、作成すべき新しいコンテナを配置する計算ノードを決定するように構成される。
Optionally, the second determination module 410 further comprises:
If it is determined that each load difference between two sorted adjacent computing nodes in the second sorting result is within the predetermined range, a submodel having a network layer dependency relationship with the submodel corresponding to the new container to be created is determined as a related submodel;
determining a computation node on which the related sub-model is located as a related node;
Measure a network delay between the relevant node and a computing node other than the relevant node;
The network node is configured to determine, based on the measured network delay, a computation node on which to place a new container to be created, from computation nodes other than the associated node.

オプションで、前記第2の決定モジュール410は、具体的に、
前記対象コンテナが配置された計算ノードを決定し、
前記対象コンテナが配置された計算ノードに指定コンテナが配置されたと判定された場合、前記対象コンテナが配置された計算ノードを、コンテナの分布を調整する必要がある計算ノードとするように構成され、前記指定コンテナに配置されたサブモデルは、前記対象コンテナに配置されたサブモデルと同じである。
前記調整モジュール412は、具体的に、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象コンテナが配置された計算ノードにおける前記対象コンテナまたは前記指定コンテナを削除するように構成される。
Optionally, the second determination module 410 specifically:
determining a computing node on which the target container is placed;
When it is determined that a designated container has been placed on the computation node on which the target container is placed, the computation node on which the target container is placed is configured to be a computation node for which a distribution of containers needs to be adjusted, and the sub-model placed on the designated container is the same as the sub-model placed on the target container.
The adjustment module 412 specifically includes:
The target container or the designated container is deleted from the calculation node on which the target container is placed, with the adjustment target being that the calculation times corresponding to the plurality of containers are close to each other.

オプションで、前記調整モジュール412は、具体的に、
前記複数のコンテナのそれぞれに対応する演算時間が近く、かつ、前記少なくとも1つの計算ノードのそれぞれの負荷が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するように構成される。
Optionally, the adjustment module 412 specifically:
The distribution of containers in the target node is adjusted so that the calculation times corresponding to the plurality of containers are close to each other and the loads of the at least one calculation node are close to each other as adjustment targets.

本開示はコンピュータ可読記憶媒体をさらに提供し、当該コンピュータ可読記憶媒体はコンピュータプログラムを記憶しており、コンピュータプログラムは上記図1にて提供されるインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法を実行するために用いられる。 The present disclosure further provides a computer-readable storage medium, the computer-readable storage medium storing a computer program, the computer program being used to execute the distributed training method for container scheduling for intelligent computing provided in FIG. 1 above.

本開示は図5に示す電子デバイスをさらに提供する。図5に示すように、ハードウェアレベルでは、当該電子デバイスは、プロセッサ、内部バス、ネットワークインタフェース、内部メモリ、および不揮発性メモリを含み、もちろん、他の動作に必要なハードウェアも含み得る。プロセッサは、不揮発性メモリから対応するコンピュータプログラムを内部メモリに読み込んで実行し、上記の図1で説明したインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法を実施する。 The present disclosure further provides an electronic device as shown in FIG. 5. As shown in FIG. 5, at the hardware level, the electronic device includes a processor, an internal bus, a network interface, an internal memory, and a non-volatile memory, and may of course include other hardware required for operation. The processor loads the corresponding computer program from the non-volatile memory into the internal memory and executes it to implement the distributed training method for container scheduling for intelligent computing described in FIG. 1 above.

もちろん、ソフトウェアによる実現の他に、本開示は、論理デバイスやハードウェアとソフトウェアの組み合わせなど、他の実現方式を排除するものではなく、つまり、以下の処理プロセスの実行主体は、各の論理ユニットに限定されず、ハードウェアや論理デバイスであってもよい。 Of course, in addition to realization by software, this disclosure does not exclude other realization methods, such as logical devices or a combination of hardware and software. In other words, the entity that executes the following processing process is not limited to each logical unit, but may be hardware or a logical device.

1990年代には、ある技術の改良は、ハードウェアの改良(ダイオード、トランジスタ、スイッチなどの回路構造の改良など)とソフトウェアの改良(方法フローの改良)に明確に区別することができる。しかし、技術の発展に伴い、現在の方法フローの改良の多くは、ハードウェア回路構造に対する直接的な改良と見なすことができるようになった。設計者は、改良された方法フローをハードウェア回路にプログラミングすることで、対応するハードウェア回路構造を得ることがほとんどである。従って、方法フローの改良がハードウェア物理モジュールにより実現できないとは言い切れない。例えば、プログラマブルロジックデバイス(Programmable Logic Device、PLD)(例えばフィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA))はこのような集積回路であり、その論理機能がデバイスのユーザーによるプログラミングによって決定される。チップメーカーが専用の集積回路チップを設計・製造する代わりに、設計者がプログラミングしてデジタルシステムを1枚のPLD上に「集積」する。そして、現在では、集積回路チップを手作りする代わりに、このプログラミングは「論理コンパイラ(logic compiler)」というソフトウェアを使って実現されることがほとんどであり、これは、プログラムを書くときに使うソフトウェアコンパイラと類似し、前のオリジナルコードをコンパイルするためには、特定のプログラミング言語で書く必要があり、これはハードウェア記述言語(Hardware Description Language、HDL)と呼ばれ、HDLは1種類だけではなく、ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)など、多くの種類があり、現在最もよく使われているのはVHDL(Very-High-Speed Integrated Circuit Hardware Description Language)とVerilogである。方法フローを、上記のハードウェア記述言語のいくつかでちょっと論理的にプログラミングして集積回路にプログラミングするだけで、論理的な方法フローを実現するハードウェア回路は簡単に得られることは、当業者には明らかであろう。 In the 1990s, improvements in a technology could be clearly divided into hardware improvements (such as improvements to circuit structures such as diodes, transistors, and switches) and software improvements (improvements to method flows). However, with the development of technology, many of the current method flow improvements can be considered as direct improvements to hardware circuit structures. Designers mostly obtain the corresponding hardware circuit structures by programming the improved method flows into the hardware circuits. Therefore, it cannot be said that method flow improvements cannot be realized by hardware physical modules. For example, a programmable logic device (PLD) (e.g., a Field Programmable Gate Array (FPGA)) is such an integrated circuit, whose logical function is determined by the user's programming of the device. Instead of chip manufacturers designing and manufacturing dedicated integrated circuit chips, designers program and "integrate" digital systems onto a single PLD. Nowadays, instead of handcrafting integrated circuit chips, this programming is mostly achieved using software called a "logic compiler," which is similar to a software compiler used to write a program. In order to compile the original code, it is necessary to write it in a specific programming language, which is called a Hardware Description Language (HDL). There is not just one type of HDL, but several different languages, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), etc. There are many types of hardware description languages, such as RHDL (Ruby Hardware Description Language), Lava, Lola, MyHDL, PALASM, and RHDL (Ruby Hardware Description Language), and the most commonly used languages at present are VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog. It will be clear to those skilled in the art that a hardware circuit that realizes a logical method flow can be easily obtained by simply programming a method flow logically in some of the above hardware description languages and programming it into an integrated circuit.

コントローラは、任意の適切な方法で実現されてもよく、例えば、コントローラはマイクロプロセッサまたはプロセッサと、当該(マイクロ)プロセッサによって実行可能なコンピュータ可読プログラムコード(例えば、ソフトウェアまたはファームウェア)を記憶するコンピュータ可読記憶媒体と、論理ゲート、スイッチ、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、プログラマブルロジックコントローラおよび埋め込みマイクロコントローラの形態を採用してもよく、コントローラの例として、ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20、Silicone Labs C8051F320などのマイクロコントローラを含むが、これらに限定されず、メモリコントローラはさらに、メモリの制御ロジックの一部として実現されることも可能である。また、純粋なコンピュータ可読プログラムコードでコントローラを実現することに加えて、方法ステップを論理的にプログラミングすることで、コントローラに、論理ゲート、スイッチ、特定用途向け集積回路、プログラマブルロジックコントローラおよび埋め込みマイクロコントローラなどの形態で同じ機能を実行させることも完全に可能であることは、当業者には明らかであろう。従って、このようなコントローラを、ハードウェアコンポーネントとみなしてもよく、様々な機能を実現するためのその中に含まれる装置も、ハードウェアコンポーネント内の構造とみなしてもよい。または、さらに、様々な機能を実現するための装置を、方法を実現するソフトウェアモジュールであってもよいし、ハードウェアコンポーネント内の構造であってもよいと、みなしてもよい。 The controller may be implemented in any suitable manner, for example, the controller may take the form of a microprocessor or processor and a computer readable storage medium storing computer readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, application specific integrated circuits (ASICs), programmable logic controllers and embedded microcontrollers, examples of which include, but are not limited to, microcontrollers such as ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, Silicone Labs C8051F320, etc., and the memory controller may also be implemented as part of the control logic of the memory. It will be clear to those skilled in the art that in addition to implementing the controller purely in computer-readable program code, it is entirely possible to logically program the method steps to cause the controller to perform the same functions in the form of logic gates, switches, application specific integrated circuits, programmable logic controllers, embedded microcontrollers, etc. Thus, such controllers may be considered as hardware components, and the devices contained therein for implementing various functions may also be considered as structures within the hardware components. Alternatively, the devices for implementing various functions may further be considered as software modules implementing methods, or as structures within the hardware components.

上記実施形態で説明したシステム、装置、モジュールまたはユニットは、具体的に、コンピュータチップ、エンティティ、または何らかの機能を有する製品によって実現されてもよい。典型的な実現デバイスはコンピュータである。具体的に、コンピュータは例えば、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ付き電話、スマートフォン、パーソナルデジタルアシスタント、メディアプレーヤ、ナビゲーションデバイス、電子メールデバイス、ゲーム機、タブレット、ウェアラブルデバイス、またはこれらのデバイスの任意のいくつかの組み合わせであってもよい。 The systems, devices, modules or units described in the above embodiments may be specifically realized by a computer chip, an entity, or a product having some function. A typical realizing device is a computer. Specifically, the computer may be, for example, a personal computer, a laptop computer, a mobile phone, a camera phone, a smartphone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet, a wearable device, or any combination of these devices.

なお、説明の便宜上、上記の装置を説明するときに機能によって様々なユニットに分けてそれぞれ説明する。もちろん、本開示を実施する際に、各ユニットの機能を同一または複数のソフトウェアおよび/またはハードウェアで実現することも可能である。 For ease of explanation, the above device will be described by dividing it into various units according to their functions. Of course, when implementing this disclosure, it is also possible to realize the functions of each unit using the same or multiple pieces of software and/or hardware.

当業者であれば分かるように、本開示の実施形態が、方法、システム、またはコンピュータプログラム製品として提供されてもよい。従って、本開示は、ハードウェアだけからなる実施形態、ソフトウェアだけからなる実施形態、またはソフトウェアとハードウェアを組み合わせた実施形態なる形態を用いてもよい。さらに、本開示は、コンピュータで使用可能なプログラムコードを含む1つまたは複数のコンピュータで使用可能な記憶媒体(磁気ディスクメモリ、CD-ROM、光学メモリなどを含むが、これらに限定されない)において実施されるコンピュータプログラム製品の形態であってもよい。 As will be appreciated by those skilled in the art, embodiments of the present disclosure may be provided as a method, a system, or a computer program product. Thus, the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment that combines software and hardware. Additionally, the present disclosure may take the form of a computer program product embodied in one or more computer usable storage media (including, but not limited to, magnetic disk memory, CD-ROM, optical memory, etc.) that contains computer usable program code.

本開示は、本開示の実施形態による方法、デバイス(システム)、およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して説明される。フローチャートおよび/またはブロック図における各フローおよび/またはブロック、並びにフローチャートおよび/またはブロック図におけるフローおよび/またはブロックの組み合わせは、コンピュータプログラム命令によって実現されてもよいことが理解されるべきである。これらのコンピュータプログラム命令は、マシンを生成するために、汎用コンピュータ、専用コンピュータ、埋め込みプロセッサ、または他のプログラム可能なデータ処理デバイスのプロセッサに提供されてもよく、それにより、コンピュータまたは他のプログラム可能なデータ処理デバイスのプロセッサによって実行される命令により、フローチャートの1つまたは複数のフロー、および/またはブロック図の1つまたは複数のブロックにおいて指定される機能を実現するための装置が生成される。 The present disclosure will be described with reference to flowcharts and/or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present disclosure. It should be understood that each flow and/or block in the flowcharts and/or block diagrams, and combinations of flows and/or blocks in the flowcharts and/or block diagrams, may be realized by computer program instructions. These computer program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, whereby the instructions executed by the processor of the computer or other programmable data processing device generate an apparatus for implementing the functions specified in one or more flows of the flowcharts and/or one or more blocks of the block diagrams.

これらのコンピュータプログラム命令は、コンピュータまたは他のプログラム可能なデータ処理デバイスに特定の方法で作業するように指示することができるコンピュータ可読メモリに記憶されてもよく、その結果、当該コンピュータ可読メモリに記憶されている命令により、フローチャートの1つまたは複数のフローおよび/またはブロック図の1つまたは複数のブロックにおいて指定される機能を実現する命令装置を含む製品が生成される。 These computer program instructions may be stored in a computer-readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture that includes an instruction apparatus that implements the functions specified in one or more flows of the flowcharts and/or one or more blocks of the block diagrams.

これらのコンピュータプログラム命令は、コンピュータまたは他のプログラム可能なデータ処理デバイスにロードしてもよく、それにより、一連の動作ステップがコンピュータまたは他のプログラム可能なデバイス上で実行されることで、コンピュータにより実施される処理が生成され、それにより、コンピュータまたは他のプログラム可能なデバイス上で実行される命令により、フローチャートの1つまたは複数のフロー、および/またはブロック図の1つまたは複数のブロック内で指定される機能を実現するためのステップが提供される。 These computer program instructions may be loaded into a computer or other programmable data processing device such that a sequence of operational steps are executed on the computer or other programmable device to generate a computer-implemented process, whereby the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more flows of the flowcharts and/or one or more blocks of the block diagrams.

典型的な構成では、コンピューティングデバイスは、1つ以上のプロセッサ(CPU)、入力/出力インタフェース、ネットワークインタフェース、およびメモリを含む。 In a typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.

メモリは、コンピュータ可読記憶媒体のうちの揮発性メモリ、ランダムアクセスメモリ(RAM)および/または不揮発性メモリなどの形態を含み得、例えば、読み出し専用メモリ(ROM)またはフラッシュメモリ(flash RAM)である。メモリは、コンピュータ可読記憶媒体の一例である。 Memory may include volatile, random access memory (RAM) and/or non-volatile forms of computer-readable storage media, such as read-only memory (ROM) or flash memory (flash RAM). Memory is one example of a computer-readable storage medium.

コンピュータ可読記憶媒体は不揮発性および揮発性媒体、移動可能および非移動可能な媒体を含み、任意の方法または技術により情報記憶を実現し得る。情報はコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータであってもよい。コンピュータの記憶媒体は、相変化メモリ(Phase Change RAM、PRAM)、スタティックランダムアクセスメモリ(Static Random-Access Memory、SRAM)、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)、他のタイプのランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能プログラマブル読み出し専用メモリ(Electrically Erasable Programmable Read Only Memory、EEPROM)、フラッシュメモリ(flash Memory)または他のメモリ技術、コンパクトディスク読み出し専用メモリ(Compact Disc Read Only Memory、CD-ROM)、デジタル多用途ディスク(Digital Versatile Disc、DVD)または他の光学記憶、磁気カセットテープ、磁気テープ磁気ディスク記憶または他の磁気記憶デバイス、またはコンピューティングデバイスからアクセス可能な情報を記憶するために使用され得る任意の他の非伝送媒体を含むがそれらに限定されない。本明細書の定義によれば、コンピュータ可読記憶媒体は一時記憶コンピュータ可読記憶媒体(transitory Media)、例えば変調されたデータ信号およびキャリアを含まない。 Computer-readable storage media include non-volatile and volatile media, movable and non-movable media, and may implement information storage by any method or technology. Information may be computer-readable instructions, data structures, program modules, or other data. Computer storage media may include Phase Change Memory (PRAM), Static Random-Access Memory (SRAM), Dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technologies, Compact Disc Read Only Memory (CD-ROM), Digital Versatile Disk (DV-CD), and the like. This includes, but is not limited to, a Versatile Disc (DVD) or other optical storage, a magnetic cassette tape, a magnetic tape magnetic disk storage or other magnetic storage device, or any other non-transmission medium that can be used to store information accessible to a computing device. As defined herein, computer-readable storage media does not include transient storage computer-readable storage media (transitory Media), such as modulated data signals and carriers.

また、用語「含む」、「含有」またはそのいずれかの他の変形は、非排他的な含有を含むことを意図し、それにより一連の要素を含むプロセス、方法、物品またはデバイスはそれらの要素を含むだけでなく、また明確に列挙されていない他の要素も含み、またはこのようなプロセス、方法、物品またはデバイスの固有の要素も含む。より多くの制限がない場合、文「1つの…を含む」により限定された要素は、前記要素を含むプロセス、方法、物品またはデバイスにさらに他の同じ要素が存在することを排除するものではない。 Additionally, the terms "comprise", "contains" or any other variation thereof are intended to include a non-exclusive inclusion, whereby a process, method, article or device that includes a set of elements not only includes those elements, but also includes other elements not expressly listed or includes the inherent elements of such process, method, article or device. In the absence of more limitations, an element qualified by the phrase "comprises a ..." does not exclude the presence of further identical elements in a process, method, article or device that includes said element.

本開示は、プログラムモジュールのようなコンピュータによって実行されるコンピュータ実行可能命令の一般的な文脈で記述され得る。一般的に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本開示は、通信ネットワークを介して接続されたリモート処理デバイスによってタスクが実行される分散コンピューティング環境においても実施され得る。分散コンピューティング環境において、プログラムモジュールは、記憶デバイスを含むローカルおよびリモートコンピュータ記憶媒体に配置され得る。 The present disclosure may be described in the general context of computer-executable instructions being executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The present disclosure may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media, including storage devices.

本開示における各実施形態はいずれも漸進の方式で説明され、各実施形態の間の同じまたは類似する部分は互いに参照すればよく、各実施形態の重点的に説明されたのは他の実施形態との相違点である。特に、システムの実施形態に対して、それは基本的に方法の実施形態と類似するため、簡単に説明し、関連する部分は方法の実施形態の一部の説明を参照すればよい。 Each embodiment in the present disclosure is described in a stepwise manner, and the same or similar parts between the embodiments may be referred to each other, and the emphasis of each embodiment is on the differences from other embodiments. In particular, the system embodiments are basically similar to the method embodiments, so they will be briefly described, and the relevant parts may be referred to the description of some of the method embodiments.

上記は、本開示の実施形態にすぎず、本開示を限定するために使用されるものではない。当業者にとって、本開示は、様々な変更および変化があり得る。本開示の趣旨と原理から逸脱せず行った任意の修正、同等な置換、改善など、いずれも本開示の特許請求の範囲に含まれるものとするべきである。 The above are merely embodiments of the present disclosure and are not used to limit the present disclosure. For those skilled in the art, the present disclosure may have various modifications and variations. Any modifications, equivalent replacements, improvements, etc. made without departing from the spirit and principles of the present disclosure should be included in the scope of the claims of the present disclosure.

Claims (22)

サンプルデータおよび対象モデルを取得するステップと、
前記対象モデルを分割して複数のサブモデルを得るステップであって、前記複数のサブモデルの各サブモデルは、前記対象モデルにおけるネットワーク層の一部を含む、ステップと、
前記複数のサブモデルに基づいて、前記複数のサブモデルを配置するための少なくとも1つの計算ノードを決定し、前記少なくとも1つの計算ノード上に複数のコンテナを作成して、前記複数のサブモデルを前記複数のコンテナにそれぞれ配置するステップと、
前記サンプルデータを用いてモデルトレーニングタスクを実行して、前記複数のコンテナ内に配置された前記複数のサブモデルをトレーニングするステップと、
モデルトレーニングタスクを実行するときの前記少なくとも1つの計算ノードの負荷データを取得するステップと、
前記複数のコンテナの各々について、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を、当該コンテナに対応する演算時間として決定するステップと、
前記少なくとも1つの計算ノードの負荷データと、前記複数のコンテナのそれぞれに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを対象ノードとして決定するステップと、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するステップと、
コンテナの分布が調整された各計算ノードに基づいて、前記対象モデルのトレーニングタスクを実行するステップと、を含む
ことを特徴とするインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング方法。
obtaining sample data and a target model;
dividing the target model into a plurality of sub-models, each of the plurality of sub-models including a portion of a network layer in the target model;
determining at least one computing node for arranging the sub-models based on the sub-models, creating a plurality of containers on the at least one computing node, and arranging the sub-models in the plurality of containers, respectively;
running a model training task using the sample data to train the sub-models disposed within the containers;
obtaining load data of the at least one computing node when executing a model training task;
determining, for each of the plurality of containers, a computation time of the sub-model when executing a training task of the sub-model arranged in the container as a computation time corresponding to the container;
determining a computation node that requires container distribution adjustment as a target node based on load data of the at least one computation node and a computation time corresponding to each of the plurality of containers;
adjusting a distribution of containers in the target node with an adjustment target that calculation times corresponding to the plurality of containers are close to each other;
and executing a training task of the target model based on each computing node to which the distribution of containers has been adjusted.
前記対象モデルを分割して複数の前記サブモデルを得るステップは、
モデルトレーニングタスクを実行するときの前記対象モデルの演算時間を決定するステップと、
前記対象モデルの演算時間に基づいて、前記対象モデルに含まれるネットワーク層を分割して、前記複数のサブモデルを取得するステップと、を含む
ことを特徴とする請求項1に記載の方法。
The step of dividing the target model to obtain a plurality of the sub-models includes:
determining a computation time of the target model when performing a model training task;
The method according to claim 1 , further comprising: dividing a network layer included in the target model based on a calculation time of the target model to obtain the plurality of sub-models.
前記複数のコンテナの各々について、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を決定するステップは、
所定の共有ストレージシステムから、当該コンテナに対応するトレーニング統計情報を決定するステップと、
前記トレーニング統計情報に含まれる、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行する開始時刻と終了時刻に基づいて、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を決定するステップと、を含み、
前記共有ストレージシステムに記憶されたトレーニング統計情報は、モデルトレーニングタスクを実行するときに前記少なくとも1つの計算ノードの各計算ノードによって生成された対象ログに基づいて決定され、前記対象ログは、予め定められた指定キーワードに従って前記少なくとも1つの計算ノードの各計算ノードによって生成されたログからフィルタリングされ、前記トレーニング統計情報は、特定数を蓄積した後に前記共有ストレージシステムに書き込まれ、前記少なくとも1つの計算ノードから削除される、
ことを特徴とする請求項1に記載の方法。
The step of determining, for each of the plurality of containers, a computation time of the sub-model when executing a training task of the sub-model disposed in the container, comprises:
determining training statistics corresponding to the container from a given shared storage system;
determining a calculation time for the sub-model placed in the container when executing a training task for the sub-model based on a start time and an end time for executing a training task for the sub-model placed in the container, the start time and the end time being included in the training statistical information;
The training statistics stored in the shared storage system are determined based on target logs generated by each of the at least one computing node when executing a model training task, and the target logs are filtered from the logs generated by each of the at least one computing node according to a predetermined designated keyword, and the training statistics are written to the shared storage system and deleted from the at least one computing node after accumulating a certain number.
2. The method of claim 1 .
前記少なくとも1つの計算ノードの負荷データと、前記複数のコンテナのそれぞれに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するステップは、
前記複数のコンテナのそれぞれに対応する演算時間の大きい順に、前記複数のコンテナをソートして第1のソート結果を得るステップと、
前記第1のソート結果において、所定の順位より前にあるコンテナを対象コンテナとするステップと、
前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するステップと、を含む
ことを特徴とする請求項1に記載の方法。
The step of determining a computation node that needs to adjust the distribution of containers based on the load data of the at least one computation node and the computation time corresponding to each of the plurality of containers includes:
Sorting the plurality of containers in descending order of the calculation time corresponding to each of the plurality of containers to obtain a first sorting result;
determining a container that is prior to a predetermined order in the first sorting result as a target container;
and determining a computing node that requires adjusting a distribution of containers based on the target container and load data of the at least one computing node.
前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するステップは、
前記対象コンテナが配置された計算ノードを第1のノードとして決定するステップと、
前記第1のノードの負荷データに基づいて、前記第1のノードの負荷が第1の設定閾値より高いと判定された場合、他の計算ノードから、前記第1のノードにおけるコンテナの一部を配置するための計算ノードを第2のノードとして決定するステップと、
前記第1のノードおよび前記第2のノードを、コンテナの分布を調整する必要がある計算ノードとして決定するステップと、を含む
ことを特徴とする請求項4に記載の方法。
The step of determining a computing node that needs to adjust the distribution of containers based on the target container and load data of the at least one computing node includes:
determining a computing node on which the target container is placed as a first node;
determining, when a load of the first node is determined to be higher than a first set threshold based on the load data of the first node, a computation node for allocating a part of the containers in the first node as a second node from among other computation nodes;
determining the first node and the second node as computation nodes that need to adjust a distribution of containers.
前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するステップは、
前記対象コンテナに対応する演算時間と、他のコンテナに対応する演算時間との差が第2の設定閾値を超えると判定された場合、前記少なくとも1つの計算ノードの負荷データに基づいて、作成すべき新しいコンテナを配置する計算ノードを、コンテナの分布を調整する必要がある計算ノードとして決定するステップを含み、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するステップは、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードに新しいコンテナを作成し、前記対象コンテナに配置されたサブモデルのモデルデータのコピーを作成し、コピーによって得られたサブモデルを前記新しいコンテナに配置するステップを含む
ことを特徴とする請求項4に記載の方法。
The step of determining a computing node that needs to adjust the distribution of containers based on the target container and load data of the at least one computing node includes:
determining, when it is determined that the difference between the calculation time corresponding to the target container and the calculation time corresponding to another container exceeds a second set threshold, a calculation node on which a new container to be created is to be placed as a calculation node on which a distribution of containers needs to be adjusted based on load data of the at least one calculation node;
The step of adjusting the distribution of containers in the target node with an adjustment target that the calculation times corresponding to the plurality of containers are close to each other includes:
5. The method according to claim 4, further comprising the steps of: creating a new container in the target node, making a copy of model data of a sub-model placed in the target container, and placing the sub-model obtained by copying in the new container, with an adjustment target that calculation times corresponding to each of the plurality of containers are close to each other.
前記少なくとも1つの計算ノードの負荷データに基づいて、作成すべき新しいコンテナを配置する計算ノードを、コンテナの分布を調整する必要がある計算ノードとして決定するステップは、
前記少なくとも1つの計算ノードの負荷データが小さい順に、前記対象コンテナが配置された計算ノード以外の計算ノードをソートして第2のソート結果を得るステップと、
前記第2のソート結果に従って、ソートされた隣接する2つの計算ノード間の負荷差が所定の範囲内にあるかどうかを順次判定するステップと、
前記他の計算ノードのうち、ソートされた隣接する任意の2つの計算ノードについて、
当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にないと判定された場合、当該ソートされた隣接する2つの計算ノードのうち、負荷の低いノードを、作成すべき新しいコンテナを配置する計算ノードとし、
当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあると判定された場合、前記第2のソート結果におけるすべての計算ノードがトラバースされるまで、または作成すべき新しいコンテナを配置する計算ノードが決定されるまで、次のソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあるかどうかを判定するステップと、を含む
ことを特徴とする請求項6に記載の方法。
The step of determining a computing node on which a new container to be created is to be placed as a computing node that needs to adjust distribution of the container based on load data of the at least one computing node,
sorting the computing nodes other than the computing node on which the target container is placed in order of increasing load data of the at least one computing node to obtain a second sorting result;
Sequentially determining whether a load difference between two sorted adjacent computing nodes is within a predetermined range according to the second sorting result;
Among the other computing nodes, for any two sorted adjacent computing nodes,
if it is determined that the load difference between the two sorted adjacent computation nodes is not within the predetermined range, the node with the lower load among the two sorted adjacent computation nodes is set as the computation node on which a new container to be created is to be placed;
7. The method according to claim 6, further comprising: if it is determined that the load difference between the two sorted adjacent computing nodes is within the predetermined range, determining whether the load difference between the next two sorted adjacent computing nodes is within the predetermined range until all computing nodes in the second sorted result are traversed or until a computing node on which to place a new container to be created is determined.
前記第2のソート結果におけるソートされた隣接する2つの計算ノード間の各負荷差が前記所定の範囲内にあると判定された場合、前記作成すべき新しいコンテナに対応するサブモデルとネットワーク層の依存関係を有するサブモデルを、関連サブモデルとして決定するステップと、
前記関連サブモデルが配置された計算ノードを、関連ノードとして決定するステップと、
前記関連ノードと、前記関連ノード以外の他の計算ノードとの間のネットワーク遅延を測定するステップと、
測定によって得られたネットワーク遅延に基づいて、前記関連ノード以外の計算ノードから、作成すべき新しいコンテナを配置する計算ノードを決定するステップと、をさらに含む
ことを特徴とする請求項7に記載の方法。
determining, when it is determined that each load difference between two sorted adjacent computing nodes in the second sorting result is within the predetermined range, a sub-model having a network layer dependency relationship with the sub-model corresponding to the new container to be created as a related sub-model;
determining a computation node on which the associated sub-model is located as an associated node;
measuring a network delay between the relevant node and a computing node other than the relevant node;
The method of claim 7, further comprising: determining, based on the measured network delay, a computation node on which to place a new container to be created from computation nodes other than the associated node.
前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するステップは、
前記対象コンテナが配置された計算ノードを決定するステップと、
前記対象コンテナが配置された計算ノードに指定コンテナが配置されたと判定された場合、前記対象コンテナが配置された計算ノードを、コンテナの分布を調整する必要がある計算ノードとするステップであって、前記指定コンテナに配置されたサブモデルは、前記対象コンテナに配置されたサブモデルと同じである、ステップと、を含み、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するステップは、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象コンテナが配置された計算ノードにおける前記対象コンテナまたは前記指定コンテナを削除するステップを含む
ことを特徴とする請求項4に記載の方法。
The step of determining a computing node that needs to adjust the distribution of containers based on the target container and load data of the at least one computing node includes:
determining a computing node on which the target container is located;
a step of determining, when it is determined that a designated container has been placed on the computation node on which the target container has been placed, that the computation node on which the target container has been placed is a computation node on which a distribution of containers needs to be adjusted, and a sub-model placed on the designated container is the same as the sub-model placed on the target container;
The step of adjusting the distribution of containers in the target node with an adjustment target that the calculation times corresponding to the plurality of containers are close to each other includes:
The method according to claim 4, further comprising a step of deleting the target container or the designated container from the computing node on which the target container is placed, with the adjustment target being that the computation times corresponding to each of the plurality of containers are close to each other.
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するステップは、
前記複数のコンテナのそれぞれに対応する演算時間が近く、かつ、前記少なくとも1つの計算ノードのそれぞれの負荷が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するステップを含む
ことを特徴とする請求項1~9のいずれか1項に記載の方法。
The step of adjusting the distribution of containers in the target node with an adjustment target that the calculation times corresponding to the plurality of containers are close to each other includes:
The method according to any one of claims 1 to 9, further comprising a step of adjusting a distribution of containers in the target node, with the adjustment target being that the calculation times corresponding to the plurality of containers are close to each other and that the loads of the at least one computing node are close to each other.
サンプルデータおよび対象モデルを取得するように構成される第1の取得モジュールと、
前記対象モデルを分割して複数のサブモデルを得るように構成される分割モジュールであって、前記複数のサブモデルの各サブモデルは、前記対象モデルにおけるネットワーク層の一部を含む、分割モジュールと、
前記複数のサブモデルに基づいて、前記複数のサブモデルを配置するための少なくとも1つの計算ノードを決定し、前記少なくとも1つの計算ノード上に複数のコンテナを作成して、前記複数のサブモデルを前記複数のコンテナにそれぞれ配置するように構成される第1の決定モジュールと、
前記サンプルデータを用いてモデルトレーニングタスクを実行して、前記複数のコンテナ内に配置された前記複数のサブモデルをトレーニングするように構成される第1のトレーニングモジュールと、
モデルトレーニングタスクを実行するときの前記少なくとも1つの計算ノードの負荷データを取得し、前記複数のコンテナの各々について、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を、当該コンテナに対応する演算時間として決定するように構成される第2の取得モジュールと、
前記少なくとも1つの計算ノードの負荷データと、前記複数のコンテナのそれぞれに対応する演算時間とに基づいて、コンテナの分布を調整する必要がある計算ノードを対象ノードとして決定するように構成される第2の決定モジュールと、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するように構成される調整モジュールと、
コンテナの分布が調整された各計算ノードに基づいて、前記対象モデルのトレーニングタスクを実行するように構成される第2のトレーニングモジュールと、を備える
ことを特徴とするインテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング装置。
a first acquisition module configured to acquire sample data and an object model;
a segmentation module configured to segment the object model into a plurality of sub-models, each sub-model of the plurality of sub-models comprising a portion of a network layer in the object model;
a first determination module configured to determine at least one computing node for placing the plurality of sub-models based on the plurality of sub-models, create a plurality of containers on the at least one computing node, and place the plurality of sub-models in the plurality of containers, respectively;
a first training module configured to perform a model training task using the sample data to train the sub-models disposed within the containers;
a second acquisition module configured to acquire load data of the at least one computing node when executing a model training task, and determine, for each of the plurality of containers, a computation time of the sub-model arranged in the container when executing a training task of the sub-model as a computation time corresponding to the container;
A second determination module configured to determine a computation node that needs to adjust the distribution of containers as a target node based on load data of the at least one computation node and a computation time corresponding to each of the plurality of containers;
an adjustment module configured to adjust a distribution of containers in the target node with an adjustment target that calculation times corresponding to the plurality of containers are close to each other;
and a second training module configured to execute a training task of the target model based on each computing node to which a distribution of containers has been adjusted.
前記分割モジュールは、
モデルトレーニングタスクを実行するときの前記対象モデルの演算時間を決定し、
前記対象モデルの演算時間に基づいて、前記対象モデルに含まれるネットワーク層を分割して、前記複数のサブモデルを取得するように構成される
ことを特徴とする請求項11に記載の装置。
The division module includes:
determining a computation time for the target model when performing a model training task;
The apparatus according to claim 11 , further configured to divide a network layer included in the target model based on a computation time of the target model to obtain the plurality of sub-models.
前記第2の取得モジュールは、
所定の共有ストレージシステムから、当該コンテナに対応するトレーニング統計情報を決定し、
前記トレーニング統計情報に含まれる、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行する開始時刻と終了時刻に基づいて、当該コンテナ内に配置されたサブモデルのトレーニングタスクを実行するときの当該サブモデルの演算時間を決定するように構成され、
前記共有ストレージシステムに記憶されたトレーニング統計情報は、モデルトレーニングタスクを実行するときに前記少なくとも1つの計算ノードの各計算ノードによって生成された対象ログに基づいて決定され、前記対象ログは、予め定められた指定キーワードに従って前記少なくとも1つの計算ノードの各計算ノードによって生成されたログからフィルタリングされ、前記トレーニング統計情報は、特定数を蓄積した後に前記共有ストレージシステムに書き込まれ、前記少なくとも1つの計算ノードから削除される、
ことを特徴とする請求項11に記載の装置。
The second acquisition module includes:
determining training statistics corresponding to the container from a given shared storage system;
is configured to determine a calculation time of the sub-model when executing a training task of the sub-model placed in the container based on a start time and an end time of executing a training task of the sub-model placed in the container, the start time and the end time being included in the training statistical information;
The training statistics stored in the shared storage system are determined based on target logs generated by each of the at least one computing node when executing a model training task, and the target logs are filtered from the logs generated by each of the at least one computing node according to a predetermined designated keyword, and the training statistics are written to the shared storage system and deleted from the at least one computing node after accumulating a certain number.
12. The apparatus of claim 11 .
前記第2の決定モジュールは、
前記複数のコンテナのそれぞれに対応する演算時間の大きい順に、前記複数のコンテナをソートして第1のソート結果を得、
前記第1のソート結果において、所定の順位より前にあるコンテナを対象コンテナとし、
前記対象コンテナと前記少なくとも1つの計算ノードの負荷データとに基づいて、コンテナの分布を調整する必要がある計算ノードを決定するように構成される
ことを特徴とする請求項11に記載の装置。
The second determination module:
sorting the plurality of containers in descending order of the calculation times corresponding to the plurality of containers to obtain a first sorting result;
A container that is located before a predetermined order in the first sorting result is set as a target container;
The apparatus of claim 11 , configured to determine a computing node that requires an adjustment of a distribution of containers based on the target container and load data of the at least one computing node.
前記第2の決定モジュールは、
前記対象コンテナが配置された計算ノードを第1のノードとして決定し、
前記第1のノードの負荷データに基づいて、前記第1のノードの負荷が第1の設定閾値より高いと判定された場合、他の計算ノードから、前記第1のノードにおけるコンテナの一部を配置するための計算ノードを第2のノードとして決定し、
前記第1のノードおよび前記第2のノードを、コンテナの分布を調整する必要がある計算ノードとして決定するように構成される
ことを特徴とする請求項14に記載の装置。
The second determination module:
determining a computing node on which the target container is placed as a first node;
determining, when a load of the first node is determined to be higher than a first set threshold based on the load data of the first node, a computation node for allocating a part of the containers of the first node as a second node from among the other computation nodes;
The apparatus of claim 14 , further configured to determine the first node and the second node as computation nodes that need to adjust a distribution of containers.
前記第2の決定モジュールは、
前記対象コンテナに対応する演算時間と、他のコンテナに対応する演算時間との差が第2の設定閾値を超えると判定された場合、前記少なくとも1つの計算ノードの負荷データに基づいて、作成すべき新しいコンテナを配置する計算ノードを、コンテナの分布を調整する必要がある計算ノードとして決定するように構成され、
前記調整モジュールは、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象ノードに新しいコンテナを作成し、前記対象コンテナに配置されたサブモデルのモデルデータのコピーを作成し、コピーによって得られたサブモデルを前記新しいコンテナに配置するように構成される
ことを特徴とする請求項14に記載の装置。
The second determination module:
When it is determined that the difference between the calculation time corresponding to the target container and the calculation time corresponding to another container exceeds a second set threshold, a calculation node on which a new container to be created is to be placed is determined as a calculation node on which a distribution of containers needs to be adjusted based on load data of the at least one calculation node;
The adjustment module includes:
The device according to claim 14, configured to create a new container in the target node, create a copy of model data of a sub-model placed in the target container, and place the sub-model obtained by copying in the new container, with an adjustment target that calculation times corresponding to each of the plurality of containers are close to each other.
前記第2の決定モジュールは、
前記少なくとも1つの計算ノードの負荷データが小さい順に、前記対象コンテナが配置された計算ノード以外の計算ノードをソートして第2のソート結果を得、
前記第2のソート結果に従って、ソートされた隣接する2つの計算ノード間の負荷差が所定の範囲内にあるかどうかを順次判定し、
前記他の計算ノードのうち、ソートされた隣接する任意の2つの計算ノードについて、
当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にないと判定された場合、当該ソートされた隣接する2つの計算ノードのうち、負荷の低いノードを作成すべき新しいコンテナを配置する計算ノードとし、
当該ソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあると判定された場合、前記第2のソート結果におけるすべての計算ノードがトラバースされるまで、または作成すべき新しいコンテナを配置する計算ノードが決定されるまで、次のソートされた隣接する2つの計算ノード間の負荷差が前記所定の範囲内にあるかどうかを判定するように構成される
ことを特徴とする請求項16に記載の装置。
The second determination module:
sorting the computation nodes other than the computation node on which the target container is placed in order of increasing load data of the at least one computation node to obtain a second sorting result;
Sequentially determining whether a load difference between two sorted adjacent computing nodes is within a predetermined range according to the second sorting result;
For any two sorted adjacent computing nodes among the other computing nodes,
If it is determined that the load difference between the two sorted adjacent calculation nodes is not within the predetermined range, the calculation node with the lower load among the two sorted adjacent calculation nodes is set as the calculation node to which the new container to be created is to be placed;
17. The apparatus of claim 16, further comprising: if it is determined that the load difference between the two sorted adjacent computing nodes is within the predetermined range, the apparatus is configured to determine whether the load difference between the next two sorted adjacent computing nodes is within the predetermined range until all computing nodes in the second sorted result are traversed or until a computing node on which to place a new container to be created is determined.
前記第2の決定モジュールは、さらに、
前記第2のソート結果におけるソートされた隣接する2つの計算ノード間の各負荷差が前記所定の範囲内にあると判定された場合、前記作成すべき新しいコンテナに対応するサブモデルとネットワーク層の依存関係を有するサブモデルを、関連サブモデルとして決定し、
前記関連サブモデルが配置された計算ノードを、関連ノードとして決定し、
前記関連ノードと、前記関連ノード以外の他の計算ノードとの間のネットワーク遅延を測定し、
測定によって得られたネットワーク遅延に基づいて、前記関連ノード以外の計算ノードから、作成すべき新しいコンテナを配置する計算ノードを決定するように構成される
ことを特徴とする請求項17に記載の装置。
The second determination module further comprises:
When it is determined that each load difference between two sorted adjacent computing nodes in the second sorting result is within the predetermined range, a submodel having a network layer dependency relationship with the submodel corresponding to the new container to be created is determined as a related submodel;
determining a computation node on which the related sub-model is located as a related node;
Measure a network delay between the relevant node and a computing node other than the relevant node;
The apparatus according to claim 17, characterized in that it is configured to determine, based on a network delay obtained by measurement, a computation node on which to place a new container to be created, from among the computation nodes other than the relevant node.
前記第2の決定モジュールは、
前記対象コンテナが配置された計算ノードを決定し、
前記対象コンテナが配置された計算ノードに指定コンテナが配置されたと判定された場合、前記対象コンテナが配置された計算ノードを、コンテナの分布を調整する必要がある計算ノードとするように構成され、
前記指定コンテナに配置されたサブモデルは、前記対象コンテナに配置されたサブモデルと同じであり、
前記調整モジュールは、
前記複数のコンテナのそれぞれに対応する演算時間が近いことを調整目標として、前記対象コンテナが配置された計算ノードにおける前記対象コンテナまたは前記指定コンテナを削除するように構成される
ことを特徴とする請求項14に記載の装置。
The second determination module:
determining a computing node on which the target container is located;
When it is determined that a designated container has been placed on the computation node on which the target container has been placed, the computation node on which the target container has been placed is set as a computation node on which a distribution of containers needs to be adjusted;
The sub-model placed in the specified container is the same as the sub-model placed in the target container,
The adjustment module includes:
The device according to claim 14, further configured to delete the target container or the designated container from the computation node on which the target container is placed, with an adjustment target that computation times corresponding to each of the plurality of containers are close to each other.
前記調整モジュールは、
前記複数のコンテナのそれぞれに対応する演算時間が近く、かつ、前記少なくとも1つの計算ノードのそれぞれの負荷が近いことを調整目標として、前記対象ノードにおけるコンテナの分布を調整するように構成される
ことを特徴とする請求項11~19のいずれか1項に記載の装置。
The adjustment module includes:
The apparatus according to any one of claims 11 to 19, configured to adjust the distribution of containers in the target node with an adjustment target that the calculation times corresponding to each of the plurality of containers are close to each other and that the loads of each of the at least one computing node are close to each other.
コンピュータプログラムを記憶しているコンピュータ可読記憶媒体であって、前記コンピュータプログラムがプロセッサによって実行されると、請求項1~10のいずれか1項に記載の方法が実施される、
ことを特徴とするコンピュータ可読記憶媒体。
A computer-readable storage medium storing a computer program, the computer program being executed by a processor to perform the method according to any one of claims 1 to 10.
A computer-readable storage medium comprising:
メモリと、プロセッサと、前記メモリに記憶され、前記プロセッサ上で実行可能なコンピュータプログラムとを含む電子デバイスであって、前記プロセッサが前記コンピュータプログラムを実行すると、請求項1~10のいずれか1項に記載の方法を実施する、
ことを特徴とする電子デバイス。
An electronic device comprising a memory, a processor and a computer program stored in said memory and executable on said processor, the electronic device performing a method according to any one of claims 1 to 10 when said processor executes said computer program.
1. An electronic device comprising:
JP2023547139A 2023-04-26 2023-06-19 Distributed Training for Container Scheduling for Intelligent Computing Pending JP2024529206A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202310461389.9 2023-04-26
CN202310461389.9A CN116167463B (en) 2023-04-26 2023-04-26 Distributed model training container scheduling method and device for intelligent computing
PCT/CN2023/101093 WO2024007849A1 (en) 2023-04-26 2023-06-19 Distributed training container scheduling for intelligent computing

Publications (1)

Publication Number Publication Date
JP2024529206A true JP2024529206A (en) 2024-08-06

Family

ID=86414952

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023547139A Pending JP2024529206A (en) 2023-04-26 2023-06-19 Distributed Training for Container Scheduling for Intelligent Computing

Country Status (3)

Country Link
JP (1) JP2024529206A (en)
CN (1) CN116167463B (en)
WO (1) WO2024007849A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116167463B (en) * 2023-04-26 2023-07-07 之江实验室 Distributed model training container scheduling method and device for intelligent computing
CN116382599B (en) * 2023-06-07 2023-08-29 之江实验室 Distributed cluster-oriented task execution method, device, medium and equipment
CN116755941B (en) * 2023-08-21 2024-01-09 之江实验室 Distributed model training method and device for node fault perception
CN117035123B (en) * 2023-10-09 2024-01-09 之江实验室 Node communication method, storage medium and device in parallel training
CN117724823A (en) * 2024-02-07 2024-03-19 之江实验室 Task execution method of multi-model workflow description based on declarative semantics
CN118378726B (en) * 2024-06-25 2024-09-20 之江实验室 Model training system, method, storage medium and electronic equipment
CN118567791B (en) * 2024-07-31 2024-10-22 之江实验室 Caching method and device, storage medium and electronic equipment

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109559734B (en) * 2018-12-18 2022-02-18 百度在线网络技术(北京)有限公司 Acceleration method and device for acoustic model training
CN111563584B (en) * 2019-02-14 2022-12-09 上海寒武纪信息科技有限公司 Splitting method of neural network model and related product
CN111723900B (en) * 2019-03-18 2023-10-20 北京灵汐科技有限公司 Neural network mapping method and computing device based on many-core processor
WO2020254260A1 (en) * 2019-06-18 2020-12-24 Tetra Laval Holdings & Finance S.A. Detection of deviations in packaging containers for liquid food
CN110413391B (en) * 2019-07-24 2022-02-25 上海交通大学 Deep learning task service quality guarantee method and system based on container cluster
JP2022549806A (en) * 2019-09-23 2022-11-29 プレサーゲン プロプライアトリー リミテッド Decentralized artificial intelligence (AI)/machine learning training system
CN111752713B (en) * 2020-06-28 2022-08-05 浪潮电子信息产业股份有限公司 Method, device and equipment for balancing load of model parallel training task and storage medium
CN112308205A (en) * 2020-06-28 2021-02-02 北京沃东天骏信息技术有限公司 Model improvement method and device based on pre-training model
CN113110914A (en) * 2021-03-02 2021-07-13 西安电子科技大学 Internet of things platform construction method based on micro-service architecture
CN113011483B (en) * 2021-03-11 2022-08-05 北京三快在线科技有限公司 Method and device for model training and business processing
CN113220457B (en) * 2021-05-24 2024-03-22 深圳市智芯华玺信息技术有限公司 Model deployment method, model deployment device, terminal equipment and readable storage medium
CN113723443A (en) * 2021-07-12 2021-11-30 鹏城实验室 Distributed training method and system for large visual model
CN113992525B (en) * 2021-10-12 2024-06-21 支付宝(杭州)信息技术有限公司 Method and device for adjusting number of containers applied
CN114091536A (en) * 2021-11-19 2022-02-25 上海梦象智能科技有限公司 Load decomposition method based on variational self-encoder
CN114780225B (en) * 2022-06-14 2022-09-23 支付宝(杭州)信息技术有限公司 Distributed model training system, method and device
CN115248728B (en) * 2022-09-21 2023-02-03 之江实验室 Distributed training task scheduling method, system and device for intelligent computing
CN116011587A (en) * 2022-12-30 2023-04-25 支付宝(杭州)信息技术有限公司 Model training method and device, storage medium and electronic equipment
CN115827253B (en) * 2023-02-06 2023-05-09 青软创新科技集团股份有限公司 Chip resource calculation power distribution method, device, equipment and storage medium
CN116167463B (en) * 2023-04-26 2023-07-07 之江实验室 Distributed model training container scheduling method and device for intelligent computing

Also Published As

Publication number Publication date
CN116167463B (en) 2023-07-07
WO2024007849A1 (en) 2024-01-11
CN116167463A (en) 2023-05-26

Similar Documents

Publication Publication Date Title
JP2024529206A (en) Distributed Training for Container Scheduling for Intelligent Computing
TWI691855B (en) Blockchain-based data processing method and equipment
CN110490309B (en) Operator fusion method for neural network and related product thereof
JP2024536659A (en) Task execution method, apparatus, storage medium and electronic device
CN110635962B (en) Abnormity analysis method and device for distributed system
CN114936085A (en) ETL scheduling method and device based on deep learning algorithm
WO2024187737A1 (en) Data processing method and apparatus, and storage medium and electronic device
CN110033093A (en) Hyper parameter determines method, device and equipment
CN113010312A (en) Hyper-parameter tuning method, device and storage medium
CN110245978B (en) Method and device for evaluating and selecting policies in policy group
CN115576924A (en) Data migration method
CN116151363A (en) Distributed reinforcement learning system
CN110119442A (en) A kind of dynamic searching method, device, equipment and medium
CN114220504A (en) Random grouping method, device and equipment
CN116069393A (en) Data processing method and related device
CN116382599B (en) Distributed cluster-oriented task execution method, device, medium and equipment
CN110008382B (en) Method, system and equipment for determining TopN data
TWI706343B (en) Sample playback data access method, device and computer equipment
CN117787358A (en) Model quantization method, device and equipment based on resistive random access memory
CN110059712A (en) The detection method and device of abnormal data
CN116384505A (en) Data processing method and device, storage medium and electronic equipment
CN116304212A (en) Data processing system, method, equipment and storage medium
CN116776135A (en) Physical field data prediction method and device based on neural network model
CN116204324A (en) Task execution method and device, storage medium and electronic equipment
CN114817212A (en) Database optimization method and optimization device

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240216

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230802

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230802

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20240124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240910