(57)【特許請求の範囲】
【請求項１】
ディープラーニングタスクに基づき、アプリケーションコンテナエンジン（Docker）の目標コンテナを作成するステップと、
前記目標コンテナにローカルストレージとネットワークストレージ装置をマウントさせるステップと、
前記ディープラーニングタスクのモデルトレーニングを行う時に、モデルトレーニングのデータ量のニーズに応じて、バッチごとに前記ネットワークストレージ装置からトレーニングデータ及び／又は中間モデルファイルを前記ローカルストレージに導入するステップと、
前記トレーニングデータ及び／又は前記中間モデルファイルに基づいてモデルトレーニングを行い、モデルトレーニングプロセスにおいて取得された中間モデルファイルを前記ネットワークストレージ装置に記憶するステップと、を含むことを特徴とするディープラーニングタスクの処理方法。
【請求項２】
前記ディープラーニングタスクに基づき、アプリケーションコンテナエンジン（Docker）の目標コンテナを作成するステップは、
ディープラーニングプラットフォームを介して、ユーザにより前記ディープラーニングタスクのために設定するリソースのニーズ及びネットワークストレージパスを受信し、該リソースのニーズ及び該ネットワークストレージパスに基づき、前記Dockerの目標コンテナを作成することと、を含み、
前記リソースは、中央処理装置（CPU）リソース、グラフィックスプロセッサリソース、及びストレージリソースを含み、
前記ネットワークストレージパスは、前記トレーニングデータ及び前記中間モデルファイルのネットワークストレージパスを含むことを特徴とする請求項１に記載のディープラーニングタスクの処理方法。
【請求項３】
前記目標コンテナにローカルストレージとネットワークストレージ装置をマウントさせるステップは、
前記ディープラーニングタスクのリソースのニーズに基づき、ローカルストレージのリソースサイズとバインディングパスを構成することと、
前記ローカルストレージを前記ネットワークストレージパスに関連付けることと、を含むことを特徴とする請求項２に記載のディープラーニングタスクの処理方法。
【請求項４】
前記バッチごとに前記ネットワークストレージ装置からトレーニングデータ及び／又は中間モデルファイルを前記ローカルストレージに導入するステップは、
モデルトレーニングのデータ量のニーズに応じて、１番目のバッチのトレーニングデータをローカルストレージに導入し、ネットワークストレージ装置に中間モデルファイルが存在する場合、前記中間モデルファイルをローカルストレージに導入することと、
全てのトレーニングデータの導入が完了するまで、各モデルトレーニングプロセスにおいて、ネットワークストレージ装置の残りトレーニングデータから少なくとも一つのバッチのトレーニングデータを導入することと、を含むことを特徴とする請求項１に記載のディープラーニングタスクの処理方法。
【請求項５】
前記各モデルトレーニングプロセスにおいて、ネットワークストレージ装置の残りトレーニングデータから少なくとも一つのバッチのトレーニングデータを導入するステップは、
１番目のバッチのトレーニングデータの転送時間、１番目のバッチのトレーニングデータの転送プロセスにおけるディスク使用率、及び前回のモデルトレーニングプロセスにおけるディスク使用率に基づき、n番目のバッチのトレーニングデータの計画転送時間を決定することであって、nは1より大きい整数である、ことと、
n番目のバッチのトレーニングデータのデータ量及び前記計画転送時間に基づき、n番目のバッチのトレーニングデータの転送速度を決定することと、
前記転送速度に基づいてn番目のバッチのトレーニングデータを導入することと、を含むことを特徴とする請求項４に記載のディープラーニングタスクの処理方法。
【請求項６】
前記モデルトレーニングプロセスにおいて取得された中間モデルファイルを前記ネットワークストレージ装置に記憶するステップは、
現在ノードが所在するディープラーニングプラットフォームにおけるノードの残りCPU使用率の平均値と、現在ノードの１番目の中間モデルファイル転送プロセスにおけるCPU使用率との比を計算することであって、前記現在ノードは目標コンテナが所在するノードである、ことと、
前記比と前記１番目の中間モデルファイルの第一転送速度との積を計算して第二転送速度を取得し、前記第二転送速度と現在ノードの残りネットワーク帯域幅とのうちの小さいものに基づいて、現在のM番目の中間モデルファイルの第三転送速度を決定することであって、Mは1より大きい整数である、ことと、
前記第三転送速度に基づき、M番目の中間モデルファイルを前記ネットワークストレージ装置に記憶することと、を含むことを特徴とする請求項１乃至５の何れかに記載のディープラーニングタスクの処理方法。
【請求項７】
前記ディープラーニングタスクのモデルトレーニングが完了した後、前記目標コンテナをリリースし、前記ローカルストレージ内のデータをクリアすることを特徴とする請求項６に記載のディープラーニングタスクの処理方法。
【請求項８】
ディープラーニングタスクに基づき、アプリケーションコンテナエンジンDockerの目標コンテナを作成するコンテナ作成ユニットと、
前記目標コンテナにローカルストレージとネットワークストレージ装置をマウントさせるストレージマウントユニットと、
前記ディープラーニングタスクのモデルトレーニングを行う時に、モデルトレーニングのデータ量のニーズに応じて、バッチごとに前記ネットワークストレージ装置からトレーニングデータ及び／又は中間モデルファイルを前記ローカルストレージに導入するデータ転送ユニットと、
前記トレーニングデータ及び／又は前記中間モデルファイルに基づいてモデルトレーニングを行い、モデルトレーニングプロセスにおいて取得された中間モデルファイルを前記ネットワークストレージ装置に記憶するモデルトレーニングユニットと、を含むことを特徴とするディープラーニングタスクの処理装置。
【請求項９】
前記データ転送ユニットは、
モデルトレーニングのデータ量のニーズに応じて、１番目のバッチのトレーニングデータをローカルストレージに導入し、ネットワークストレージ装置に中間モデルファイルが存在する場合、前記中間モデルファイルをローカルストレージに導入し、
全てのトレーニングデータの導入が完了するまで、各モデルトレーニングプロセスにおいて、ネットワークストレージ装置の残りトレーニングデータから少なくとも一つのバッチのトレーニングデータを導入することを特徴とする請求項８に記載のディープラーニングタスクの処理装置。
【請求項１０】
前記データ転送ユニットは、
１番目のバッチのトレーニングデータの転送時間、１番目のバッチのトレーニングデータの転送プロセスにおけるディスク使用率、及び前回のモデルトレーニングプロセスにおけるディスク使用率に基づき、n番目のバッチのトレーニングデータの計画転送時間を決定し、nは1より大きい整数であり、
n番目のバッチのトレーニングデータのデータ量及び前記計画転送時間に基づき、n番目のバッチのトレーニングデータの転送速度を決定し、
前記転送速度に基づいてn番目のバッチのトレーニングデータを導入することを特徴とする請求項９に記載のディープラーニングタスクの処理装置。
【請求項１１】
前記モデルトレーニングユニットは、
現在ノードが所在するディープラーニングプラットフォームにおけるノードの残りCPU使用率の平均値と、現在ノードが１番目の中間モデルファイル転送プロセスにおけるCPU使用率との比を計算し、前記現在ノードは目標コンテナが所在するノードであり、
前記比と前記１番目の中間モデルファイルの第一転送速度との積を計算して第二転送速度を取得し、前記第二転送速度と現在ノードの残りネットワーク帯域幅とのうちの小さいものに基づいて、現在のM番目の中間モデルファイルの第三転送速度を決定し、Mは1より大きい整数であり、
前記第三転送速度に基づき、M番目の中間モデルファイルを前記ネットワークストレージ装置に記憶することを特徴とする請求項８乃至１０の何れかに記載のディープラーニングタスクの処理装置。
【請求項１２】
コンピュータプログラムが記憶されているコンピュータ読み取り可能な記録媒体であって、
前記コンピュータプログラムがプロセッサに実行された場合、請求項１乃至７の何れかに記載のディープラーニングタスクの処理方法のステップを実現する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はディープラーニング技術分野に関し、具体的にはディープラーニングタスクの処理方法、装置及びコンピュータ読み取り可能な記憶媒体に関する。
【背景技術】
【０００２】
Dockerはオープンソースアプリケーションコンテナエンジンであり、開発者が自分のアプリケーションプログラムと従属項をポータブルコンテナにパッケージングして、任意の流行のLinux(登録商標)或いはWindowsマシンに配布、又はそれらを仮想化することが可能である。Dockerのイメージ(Image)は、オブジェクト指向におけるクラス(Class)であり、テンプレートに相当する。本質から言えば、イメージは特殊なファイルシステムに相当して、コンテナの起動時に必要なプログラム、ライブラリ、リソース、構成等のファイルを提供するほか、さらに起動時のために用意されたい幾つかの構成パラメータ(例えば匿名ボリューム、環境変数、ユーザ等)が含まれる。イメージにいかなる動的データが含まれず、その内容も構築後に変更されることがない。Dockerのコンテナ(Container)は、クラスにより作成される実例であり、即ち、イメージであるテンプレートに基づいて作成されたエンティティである。コンテナの実質はプロセスであるが、ホストで直接的に実行されるプロセスと違って、コンテナプロセスは自身の独立したネームスペースで動く。そのため、コンテナは自身のルートファイルシステム、自身のネットワーク構成、自身のプロセス空間、さらに自分のユーザID空間を有することができる。
【０００３】
Kubernetesはオープンソースシステムであり、自動化コンテナアプリケーションプログラムの配置、拡張及び管理することに用いられる。コンテナクラスタ管理ツールとして、Kubernetesはすでに生成環境に使用されている。Kubernetes及びDockerに基づいてディープラーニングプラットフォームを構築することができ、ディープラーニングプラットフォームを利用してディープラーニングタスクのモデルトレーニングを行うことができ、人工知能開発等の研究の効率を提供する。
【０００４】
発明者らによる発見では、現在のDockerに基づくディープラーニングシステムにおいて、ディープラーニングタスクのトレーニングデータとモデルファイルをネットワークストレージに記憶することができ、この時にモデルトレーニングを行うとネットワークからデータを頻繁に読み取る必要があるため、モデルのトレーニング効率に影響が与えられる。トレーニングデータとモデルファイルをローカルストレージに記憶して、タスクトレーニングが終了した後、トレーニングして得られたモデルファイルをネットワークストレージにコピーする場合は、コンテナに異常が発生することによってローカルに記憶されたデータが紛失して、さらにトレーニングプロセスに影響を与える可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の実施例は、ディープラーニングタスクのレーニング効率を最適化して、レーニングプロセスのロバスト性を改善することができる、ディープラーニングタスクの処理方法、装置及びコンピュータ読み取り可能な記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記技術問題を解決するために、本発明の実施例は、ディープラーニングタスクに基づき、アプリケーションコンテナエンジン（Docker）の目標コンテナを作成するステップと、前記目標コンテナにローカルストレージとネットワークストレージ装置をマウントさせるステップと、前記ディープラーニングタスクのモデルトレーニングを行う時に、モデルトレーニングのデータ量のニーズに応じて、バッチごとに前記ネットワークストレージ装置からトレーニングデータ及び／又は中間モデルファイルを前記ローカルストレージに導入するステップと、トレーニングデータ及び／又は中間モデルファイルに基づいてモデルトレーニングを行い、モデルトレーニングプロセスにおいて取得された中間モデルファイルを前記ネットワークストレージ装置に記憶するステップと、を含むディープラーニングタスクの処理方法を提供する。
【０００７】
好ましくは、前記ディープラーニングタスクに基づき、アプリケーションコンテナエンジン（Docker）の目標コンテナを作成するステップは、ディープラーニングプラットフォームを介して、ユーザにより前記ディープラーニングタスクのために設定されたリソースのニーズ及びネットワークストレージパスを受信することと、前記リソースのニーズ及び前記ネットワークストレージパスに基づき、前記Dockerの目標コンテナを作成することと、を含み、前記リソースは、中央処理装置（CPU）リソース、グラフィックスプロセッサリソース、及びストレージリソースを含み、前記ネットワークストレージパスは、トレーニングデータ及び中間モデルファイルのネットワークストレージパスを含む。
【０００８】
好ましくは、前記目標コンテナにローカルストレージとネットワークストレージ装置をマウントさせるステップは、前記ディープラーニングタスクのリソースのニーズに基づき、ローカルストレージのリソースサイズとバインディングパスを構成することと、前記ローカルストレージを前記ネットワークストレージパスに関連付けることと、を含む。
【０００９】
好ましくは、前記バッチごとに前記ネットワークストレージ装置からトレーニングデータ及び／又は中間モデルファイルを前記ローカルストレージに導入するステップは、モデルトレーニングのデータ量のニーズに応じて、１番目のバッチのトレーニングデータをローカルストレージに導入し、ネットワークストレージ装置に中間モデルファイルが存在する場合、前記中間モデルファイルをローカルストレージに導入することと、全てのトレーニングデータの導入が完了するまで、各モデルトレーニングプロセスにおいて、ネットワークストレージ装置の残りトレーニングデータから少なくとも一つのバッチのトレーニングデータを導入することと、を含む。
【００１０】
好ましくは、前記各モデルトレーニングプロセスにおいて、ネットワークストレージ装置の残りトレーニングデータから少なくとも一つのバッチのトレーニングデータを導入するステップは、１番目のバッチのトレーニングデータの転送時間、１番目のバッチのトレーニングデータの転送プロセスにおけるディスク使用率、及び前回のモデルトレーニングプロセスにおけるディスク使用率に基づき、n番目のバッチのトレーニングデータの計画転送時間を決定することであって、nは1より大きい整数である、ことと、n番目のバッチのトレーニングデータのデータ量及び前記計画転送時間に基づき、n番目のバッチのトレーニングデータの転送速度を決定することと、前記転送速度に基づいてn番目のバッチのトレーニングデータを導入することと、を含む。
【００１１】
好ましくは、前記モデルトレーニングプロセスにおいて取得された中間モデルファイルを前記ネットワークストレージ装置に記憶するステップは、現在ノードが所在するディープラーニングプラットフォームにおけるノードの残りCPU使用率の平均値と、現在ノードの１番目の中間モデルファイル転送プロセスにおけるCPU使用率との比を計算することであって、前記現在ノードは目標コンテナが所在するノードである、ことと、前記比と前記１番目の中間モデルファイルの第一転送速度との積を計算して第二転送速度を取得し、前記第二転送速度と現在ノードの残りネットワーク帯域幅とのうちの小さいものに基づいて、現在のM番目の中間モデルファイルの第三転送速度を決定することであって、Mは1より大きい整数である、ことと、前記第三転送速度に基づき、M番目の中間モデルファイルを前記ネットワークストレージ装置に記憶することと、を含む。
【００１２】
好ましくは、前記ディープラーニングタスクのモデルトレーニングが完了した後、前記目標コンテナをリリースし、前記ローカルストレージ内のデータをクリアする。
【００１３】
本発明の実施例は、ディープラーニングタスクに基づき、アプリケーションコンテナエンジンDockerの目標コンテナを作成するコンテナ作成ユニットと、前記目標コンテナにローカルストレージとネットワークストレージ装置をマウントさせるストレージマウントユニットと、前記ディープラーニングタスクのモデルトレーニングを行う時に、モデルトレーニングのデータ量のニーズに応じて、バッチごとに前記ネットワークストレージ装置からトレーニングデータ及び／又は中間モデルファイルを前記ローカルストレージに導入するデータ転送ユニットと、トレーニングデータ及び／又は中間モデルファイルに基づいてモデルトレーニングを行い、モデルトレーニングプロセスにおいて取得された中間モデルファイルを前記ネットワークストレージ装置に記憶するモデルトレーニングユニットと、を含むディープラーニングタスクの処理装置をさらに提供する。
【００１４】
好ましくは、前記データ転送ユニットは、モデルトレーニングのデータ量のニーズに応じて、１番目のバッチのトレーニングデータをローカルストレージに導入し、ネットワークストレージ装置に中間モデルファイルが存在する場合、前記中間モデルファイルをローカルストレージに導入し、全てのトレーニングデータの導入が完了するまで、各モデルトレーニングプロセスにおいて、ネットワークストレージ装置の残りトレーニングデータから少なくとも一つのバッチのトレーニングデータを導入する。
【００１５】
好ましくは、前記データ転送ユニットは、１番目のバッチのトレーニングデータの転送時間、１番目のバッチのトレーニングデータの転送プロセスにおけるディスク使用率、及び前回のモデルトレーニングプロセスにおけるディスク使用率に基づき、n番目のバッチのトレーニングデータの計画転送時間を決定し、nは1より大きい整数であり、n番目のバッチのトレーニングデータのデータ量及び前記計画転送時間に基づき、n番目のバッチのトレーニングデータの転送速度を決定し、前記転送速度に基づいてn番目のバッチのトレーニングデータを導入する。
【００１６】
好ましくは、前記モデルトレーニングユニットは、現在ノードが所在するディープラーニングプラットフォームにおけるノードの残りCPU使用率の平均値と、現在ノードが１番目の中間モデルファイル転送プロセスにおけるCPU使用率との比を計算し、前記現在ノードは目標コンテナが所在するノードであり、前記比と前記１番目の中間モデルファイルの第一転送速度との積を計算して第二転送速度を取得し、前記第二転送速度と現在ノードの残りネットワーク帯域幅とのうちの小さいものに基づいて、現在のM番目の中間モデルファイルの第三転送速度を決定し、Mは1より大きい整数であり、前記第三転送速度に基づき、M番目の中間モデルファイルを前記ネットワークストレージ装置に記憶する。
【００１７】
本発明の実施例は、コンピュータプログラムが記憶されているメモリと、プロセッサとを含み、前記コンピュータプログラムが前記プロセッサに実行された場合、上記のディープラーニングタスクの処理方法のステップを実現するディープラーニングタスクの処理装置をさらに提供する。
【００１８】
さらに、本発明の実施例は、コンピュータプログラムが記憶されているコンピュータ読み取り可能な記録媒体であって、前記コンピュータプログラムがプロセッサに実行された場合、上記のディープラーニングタスクの処理方法を実現する記録媒体をさらに提供する。
【００１９】
従来技術と比べて、本発明の実施例に係るディープラーニングタスクの処理方法、装置及びコンピュータ読み取り可能な記憶媒体は、毎回のモデルトレーニングの前に十分なトレーニングデータを導入して、ローカルストレージに導入されたトレーニングデータに基づきモデルのトレーニングを行い、モデルトレーニングプロセスにおいて、トレーニングデータの読み取り及び中間モデルファイルの保存をいずれもローカルストレージに行うことで、モデルトレーニングの速度が保証される。また、本発明の実施例はモデルトレーニングの中間モデルファイルをネットワークストレージ装置にタイムリーに転送することで、データが異常事件の発生によって紛失される問題を低減又は回避することができ、トレーニングプロセスのロバスト性を向上させる。また、本発明の実施例はローカルストレージからネットワークストレージ及びネットワークストレージからローカルストレージへのデータ転送速度を動的に最適化することができることで、モデルトレーニング及び他のノードへの過度な影響を回避することができる。
【図面の簡単な説明】
【００２０】
本発明の実施例の技術方案をより明確に説明するために、以下、本発明の実施例の説明に必要とされる添付図を簡単に紹介するが、明らかに、下記の図は本発明のいくつかの実施例のみであり、当業者にとって、高度な技術を必要としない前提において、これらの添付図によって他の添付図を得ることができる。
【図１】本発明の実施例に係るディープラーニングタスクの処理方法の応用シナリオの概略図である。
【図２】本発明の実施例に係るディープラーニングタスクの処理方法のフローチャートである。
【図３】本発明の実施例に係るディープラーニングプラットフォームの構造図である。
【図４】本発明の実施例に係るディープラーニングタスクの処理装置の構造図である。
【図５】本発明の実施例に係るディープラーニングタスクの処理装置のほかの構造図である。
【発明を実施するための形態】
【００２１】
本発明が解決しようとする技術課題、技術方案および優れた点をより明確させるために、付図および具体的な実施例を組み合わせて詳細な説明を行う。以下、詳細な配置とユニットなどの特定な細部の記載は本発明の実施例を理解するために提供されたもののみである。このため、当業者にとって、本発明の趣旨の範囲内において、記載された実施例に対して種々の変更と補正が可能であることが自明である。また、明確および簡潔のために、公知の機能と構造に関する説明を省略した。
【００２２】
いうまでもなく、明細書に記載された「ひとつの実施例」あるいは「一実施例」は、実施例と関係する特定な特徴、構造または特性が本発明のすくなくとも1つの実施例に含まれていることを意味する。このため、明細書に記載された「ひとつの実施例において」あるいは「一実施例において」では、必ずしも同じ実施例を指すことではない。この他、これらの特定な特徴、構造または特性は任意の適宜な方式でひとつまたは複数の実施例に組み合わせられることも可能である。
【００２３】
本発明の各実施例において、下記各プロセスの番号は実行する順序を意味するではなく、各プロセスの実行順はその機能と固有論理とに確定されるべきであり、本発明の実施例の実行プロセスに対していかなる限定をするべきではない。
【００２４】
図1では、本発明の実施例に係るディープラーニングタスクの処理方法の応用シナリオを提供する。図1に示すように、KubernetesとDocker技術に基づいて構築されたディープラーニングプラットフォーム100は、ハードウェア層110、論理制御層120、ディープラーニングフレーム130、及びユーザインターフェース140を含む。
【００２５】
ハードウェア層110は、具体的に複数のGPUサーバおよびデータストレージ(Data Storage)リソースを含む。
【００２６】
論理制御層120は、GPU等のリソースを制御及び管理するように用いられる。論理制御層120はデータサーバを含み、各クラスタの状態、例えばCPU、ストレージリソース及びネットワーク状態等を監視するように用いられる。
【００２７】
プラットフォームにサポートされるディープラーニングフレーム130は、具体的に、Tensorflow、Caffe、Pytorch及びMXNet等を含むことができる。
【００２８】
ユーザインターフェース140は、具体的にWebユーザインターフェース(UI)等を含むことができる。
【００２９】
本発明の実施例はディープラーニングタスクの処理方法を提供し、該ディープラーニングタスクの処理方法はモデルトレーニングの効率とトレーニングプロセスの信頼性を向上させることができる。図2に示すように、本発明の実施例に係るディープラーニングタスクの処理方法は以下のステップを含んでもよい。
【００３０】
ステップ201において、ディープラーニングタスクに基づいて、Dockerの目標コンテナを作成する。
【００３１】
ここで、トレーニングが必要とするディープラーニングタスクに基づいてDockerコンテナを作成することができ、説明の便宜上、作成されたコンテナを目標コンテナと呼ぶことにする。具体的には、ユーザがディープラーニングプラットフォームのコンテナ作成ページにログインすることができて、そして、ディープラーニングタスクに必要とされるリソース、具体的にGPU数、CPU数、メモリ等を設定して、及び、トレーニングデータのネットワークストレージパスと中間モデルファイルのネットワークストレージパスを設定して、前記ネットワークストレージパスはネットワークデバイスにおけるストレージリソースのパスである。次に、コンテナ作成ページ上の「create」ボタンをクリックして、コンテナの作成要求をコミットする。ディープラーニングプラットフォームはユーザに設定されたリソースニーズとネットワークストレージパスを受信し、且つ前記リソースニーズとネットワークストレージパスに基づいて、前記Dockerの目標コンテナを作成する。
【００３２】
ステップ202において、前記目標コンテナにローカルストレージとネットワークストレージ装置をマウント(mount)させる。
【００３３】
ここで、ステップ201におけるリソースニーズ等の設定に基づいてローカルストレージを構成することができ、具体的には、ローカルストレージのリソースサイズ、例えば10Gを構成して、及び、ローカルストレージのバインディングパス(目標コンテナが所在するホストサーバ上のパスとのバインディング関係)、例えば/data/user/xxx : /container_dataを構成する。選択可能に、ローカルストレージはHostPathストレージボリュームタイプを使用することができ、HostPathストレージボリュームタイプはコンテナが破壊され又は異常終了時でも、そのデータが依然として存在するため、データストレージの信頼性を向上することができる。
【００３４】
本発明の実施例におけるネットワークストレージは分散式ストレージ媒体(GlusterFs)又はネットワークファイルシステム(NFS、Network File System)を使用することができ、ネットワークストレージ装置をマウントする時に、ローカルストレージと前記ネットワークストレージパスとを関連付けさせることができる。
【００３５】
ステップ203において、前記ディープラーニングタスクのモデルトレーニングを行う時に、モデルトレーニングのデータ量のニーズに応じて、バッチごとに前記ネットワークストレージ装置からトレーニングデータ及び／又は中間モデルファイルを前記ローカルストレージに導入する。
【００３６】
本発明の実施例はトレーニングデータをネットワークストレージに保存するが、モデルトレーニング時に頻繁なネットワークデータ読み取りのトレーニング効率に与える影響を回避するために、本発明の実施例ではトレーニングデータを大量ダウンロードして、バッチでトレーニングを行う方式を用い、バッチごとのモデルトレーニングに必要となるデータ量に基づき、バッチでネットワークストレージ装置からトレーニングデータをローカルストレージにダウンロードすることができて、モデルトレーニングプロセスにおけるトレーニングデータの読み取りと中間モデルファイルの保存とをローカルストレージに発生させることによって、頻繁なネットワークデータ読み書きによるモデルトレーニング効率の低下問題を回避することができる。
【００３７】
具体的には、ディープラーニングタスクのモデルトレーニングを行う時に、関連構成情報をロードすることができ、前記関連構成情報は一般的にローカルストレージ及びネットワークストレージ装置の構成パラメータを含むことができる。その後、モデルトレーニングのデータ量のニーズに応じて、第一バッチのトレーニングデータをローカルストレージまで導入し、且つネットワークストレージ装置に中間モデルファイルが存在する場合、前記中間モデルファイルをローカルストレージまで導入し、及び、全てのトレーニングデータの導入が完成されるまでに、各モデルトレーニングプロセスにおいて、ネットワークストレージ装置の残りトレーニングデータから少なくとも一つのバッチのトレーニングデータを導入する。
【００３８】
ここで、各バッチに導入されるトレーニングデータのサイズはモデルトレーニングに必要となるデータ量Xのサイズに基づいて決定されることができる。トレーニングデータのデータ量YがXの整数倍ではない可能性があるため、最後のバッチでダウンロードするトレーニングデータがXより小さいことが可能である。
【００３９】
本発明はデータストレージの読み書きを最適化して、具体的に、ディープラーニングプラットフォームにデータサーバを追加することができ、目標コンテナが起動する時、データサーバはモデルトレーニングに必要なデータ量の大きさによって、バッチごとにネットワークストレージにおけるトレーニングデータをローカルストレージに転送して、このように、モデルトレーニングプロセスにおけるトレーニングデータの読み取りとトレーニングモデルファイルの保存はいずれもローカルストレージにあることで、モデルトレーニングの速度を保証するようになった。また、データサーバはネットワークストレージからローカルストレージへの転送速度を動的に最適化することができることで、モデルトレーニングプロセスごとに少なくとも一つのバッチのトレーニングデータをローカルストレージに導入することができることによって、トレーニングデータの読み取り効率を向上させ、トレーニングデータのダウンロードによる遅延を減少又は回避することができる。
【００４０】
具体的には、毎回のモデルトレーニングプロセスにおいて、ネットワークストレージ装置の残りトレーニングデータから少なくとも一つのバッチのトレーニングデータを導入する時、本発明の実施例は一番目のバッチのトレーニングデータの転送時間、一番目のバッチのトレーニングデータ転送プロセスにおけるディスク使用率及び前回のモデルトレーニングプロセスにおけるディスク使用率に基づき、n番目のバッチのトレーニングデータの計画転送時間を決定することができ、そこで、nは1より大きい整数であり、その後、n番目のバッチのトレーニングデータのデータ量と前記計画転送時間に基づき、n番目のバッチのトレーニングデータの転送速度を決定して、そして、前記転送速度に基づいてn番目のバッチのトレーニングデータを導入する。なお、前記した前回のモデルトレーニングプロセスとは、現在時刻より直前に完了したモデルトレーニングプロセスを指す。
【００４１】
以上の方式で次のバッチのトレーニングデータの導入を行うことで、ネットワークデータのダウンロードがモデルトレーニングに対する影響を低減することができ、且つ、モデルトレーニングの時間が一般的に長いことを考慮して、上記方式によって、通常では、現在のモデルトレーニングが終了する前に少なくとも一つのバッチのトレーニングデータのダウンロードが完了することを保証できる。
【００４２】
以下より上記方式に基づいて前記計画転送時間を計算する具体的な計算式が示され、説明すべきことは、下式が本発明の実施例に用いることができる1つの例示であり、本発明を限定するためのものではない。
【数１】
0006927375.tif 000002
【００４３】
上式において、T1は一番目のバッチのトレーニングデータの転送時間を示し、U1は一番目のバッチのトレーニングデータ転送プロセスにおけるディスク使用率を示し、Vprevは前回のモデルトレーニングプロセスにおけるディスク使用率を示し、ここで、前回のモデルトレーニングが存在しない場合、Vprevは現在のディスク使用率を示し、Tnはn番目のバッチのトレーニングデータの計画転送時間を示す。ここで、前記ディスク使用率U1とVprevは、関連プロセスにおけるディスク使用率による統計的平均値を用いて表すことができる。
【００４４】
上式から分かるように、前記計画転送時間と一番目のバッチのトレーニングデータの転送時間、一番目のバッチのトレーニングデータ転送プロセスにおけるディスク使用率、前回のモデルトレーニングプロセスにおけるディスク使用率とがいずれも正の相関関係にあり、即ち、T1が大きいほど、Tnが大きく、逆に、T1が小さいほど、Tnが小さくなる。同様に、U1が大きいほど、Tnが大きく、逆に、U1が小さいほど、Tnが小さくなり、Vprevが大きいほど、Tnが大きく、逆に、Vprevが小さいほど、Tnが小さくなる。
【００４５】
ステップ204において、トレーニングデータ及び／又は中間モデルファイルに基づいてモデルトレーニングを行い、且つモデルトレーニングプロセスにおいて取得された中間モデルファイルを前記ネットワークストレージ装置に記憶する。
【００４６】
ここで、説明すべくことは、毎回のモデルトレーニングを行う際に、本発明の実施例は現在既にローカルストレージにダウンロードされた全てのトレーニングデータに基づいて行うが、一番近いバッチでダウンロードされたトレーニングデータに限定されるものではない。
【００４７】
ここで、トレーニングデータ及び／又は中間モデルファイルに基づいて行うモデルトレーニングは、具体的に以下のステップを含んでもよい。
【００４８】
トレーニングデータが完全に導入される前、現在既に導入されたトレーニングデータ及び／又は中間モデルファイルに基づいてモデルトレーニングを行い、且つ毎回のモデルトレーニングが完了した後に、現在既に導入されたトレーニングデータ及び／又は中間モデルファイルに基づいてモデルトレーニングを継続する。
【００４９】
トレーニングデータが完全に導入された後、予め設定された収束条件に達するまでに、前記トレーニングデータ及び／又は中間モデルファイルに基づいてモデルトレーニングを行うことができる。
【００５０】
コンテナ異常等の要因によるデータ損失を回避して、ディープラーニングタスクトレーニングのロバスト性を向上するために、本発明の実施例はさらにモデルトレーニングプロセスにおいて得られた中間モデルファイルをネットワークストレージ装置に転送して保存することができることで、本発明の実施例は装置再起動/コンテナ異常等の状況において、ネットワークストレージ装置から中間モデルファイルをダウンロードして、後続のモデルトレーニングを継続することができ、初めからトレーニングを開始し直すことを回避できて、トレーニング効果を向上し、トレーニングプロセスのロバスト性を向上させることができる。
【００５１】
中間モデルデータ転送がノード及びプラットフォームに与える影響を低減するために、本発明の実施例はさらに中間モデルファイル転送を最適化するアルゴリズムを提供し、図3に示すように、該アルゴリズムにおけるディープラーニングプラットフォームの各ノードのデータサーバはデータ監視モジュールを含み、該データ監視モジュールは各ノードの状態及びネットワーク状態を監視し、例えばCPU使用率及び残りネットワーク帯域幅等である。具体的には、現在のノードが位置するディープラーニングプラットフォームにおけるノードの残りのCPU使用率の平均値と、現在のノードが一番目の中間モデルファイル転送プロセスにおけるCPU使用率との比を計算でき、前記現在のノードは目標コンテナが所在するノードであり、前記比と前記一番目の中間モデルファイルの第一転送速度との積を計算して、第二転送速度を得て、そして、前記第二転送速度と現在ノードの残りネットワーク帯域幅との内の小さい方に基づいて、現在のM番目の中間モデルファイルの第三転送速度を決定し、前記Mが1より大きい整数であり、前記第三転送速度に基づき、M番目の中間モデルファイルを前記ネットワークストレージ装置に記憶する。
【００５２】
前記第三転送速度の計算は下式を参照してもよい。
【数２】
0006927375.tif 000003
【００５３】
ここで、sは中間モデルファイルの大きさを示し、通常において同じディープラーニングタスクの中間モデルファイルの大きさはいずれも同じであり、T2は第一中間モデルファイルの転送時間を示し、s/T2は前記第一中間モデルファイルの第一転送速度を示し、Ciはディープラーニングプラットフォームにおけるノードiの現在の残りCPU使用率を示し、Nはディープラーニングプラットフォームにおけるノード数を示し、
（外１）
0006927375.tif 000004
はディープラーニングプラットフォームにおけるノードの残りCPU使用率の平均値を示し、D1は現在ノードが第一中間モデルファイル転送プロセスにおけるCPU使用率を示し、具体的には、当該転送プロセスにおけるCPU使用率の平均値で表すことができ、Niは現在ノードの残りネットワーク帯域幅を示し、Bnextは前記第三転送速度を示す。
【００５４】
上記ステップ204により、本発明の実施例はモデルトレーニングにより得られた中間モデルファイルをネットワークストレージ装置に転送して保存し、このように、長時間のモデルトレーニングプロセスにおいて、コンテナ異常等の状況が発生しても、トレーニングの中間結果を失うことがなく、トレーニングプロセスのロバスト性を向上させた。
【００５５】
上記によって、本発明の実施例のディープラーニングタスクの処理方法では、コンテナが起動する時に、ネットワークストレージにあるトレーニングデータは毎回のトレーニングデータの大きさに基づいてバッチごとにローカルストレージに転送されることで、本発明の実施例はバッチごとに十分なトレーニングデータを導入して、ローカルストレージに導入されたトレーニングデータに基づきモデルのトレーニングを行い、モデルトレーニングプロセスにおいて、トレーニングデータの読み取り及び中間モデルファイルの保存をいずれもローカルストレージに行って、モデルトレーニングの速度が保証される。さらに、本発明の実施例はローカルストレージからネットワークストレージ及びネットワークストレージからローカルストレージへのデータ転送速度を動的に最適化することができることで、モデルトレーニング及び他のノードへの過度な影響を回避することができる。
【００５６】
最後に、前記ディープラーニングタスクのモデルトレーニングが完了した後、本発明の実施例は前記目標コンテナをリリースし、且つ前記ローカルストレージ内のデータをクリアすることができる。さらに、ローカルストレージデータをクリアする前に、本発明の実施例はモデルトレーニングの最終結果をネットワークストレージ装置に転送することができる。
【００５７】
以上の方法に基づき、本発明の実施例はさらに上記方法を実施する装置を提供して、図4に示すように、本発明の実施例により提供されるディープラーニングタスクの処理装置400は、以下のユニットを含む。
【００５８】
コンテナ作成ユニット401は、ディープラーニングタスクに基づき、アプリケーションコンテナエンジンDockerの目標コンテナを作成する。
【００５９】
ストレージマウントユニット402は、前記目標コンテナにローカルストレージとネットワークストレージ装置をマウントさせる。
【００６０】
データ転送ユニット403は、前記ディープラーニングタスクのモデルトレーニングを行う時に、モデルトレーニングのデータ量のニーズに応じて、バッチごとに前記ネットワークストレージ装置からトレーニングデータ及び／又は中間モデルファイルを前記ローカルストレージに導入する。
【００６１】
モデルトレーニングユニット404は、トレーニングデータ及び／又は中間モデルファイルに基づいてモデルトレーニングを行い、且つモデルトレーニングプロセスにおいて取得された中間モデルファイルを前記ネットワークストレージ装置に記憶する。
【００６２】
好ましくは、前記コンテナ作成ユニット401はさらに、ディープラーニングプラットフォームを介して、ユーザが前記ディープラーニングタスク用に設定したリソースニーズとネットワークストレージパスを受信して、前記リソースは中央プロセッサCPUリソース、グラフィックスプロセッサリソース及びストレージリソースを含み、前記ネットワークストレージパスはトレーニングデータと中間モデルファイルのネットワークストレージパスを含み、前記リソースニーズとネットワークストレージパスに基づいて、前記Dockerの目標コンテナを作成する。
【００６３】
好ましくは、前記ストレージマウントユニット402はさらに、前記ディープラーニングタスクのリソースニーズに基づき、ローカルストレージのリソースサイズとバインディングパスを構成して、前記ローカルストレージを前記ネットワークストレージパスに関連付けさせる。
【００６４】
好ましくは、前記データ転送ユニット403はさらに、モデルトレーニングのデータ量のニーズに応じて、第一バッチのトレーニングデータをローカルストレージまで導入し、且つネットワークストレージ装置に中間モデルファイルが存在する場合、前記中間モデルファイルをローカルストレージまで導入し、及び、全てのトレーニングデータの導入が完成されるまでに、各モデルトレーニングプロセスにおいて、ネットワークストレージ装置の残りトレーニングデータから少なくとも一つのバッチのトレーニングデータを導入する。
【００６５】
このように、上記の前記データ転送ユニット403によって、本発明の実施例はバッチごとに十分なトレーニングデータを導入することができ、ローカルストレージに導入されたトレーニングデータに基づいてモデルのトレーニングを行うことができることで、トレーニングプロセスにおいてネットワークからデータを読み取る必要がなくなり、モデルのトレーニング効率を向上させる。
【００６６】
好ましくは、前記データ転送ユニット403はさらに、一番目のバッチのトレーニングデータの転送時間、一番目のバッチのトレーニングデータ転送プロセスにおけるディスク使用率及び前回のモデルトレーニングプロセスにおけるディスク使用率に基づき、n番目のバッチのトレーニングデータの計画転送時間を決定することができ、そこで、nは1より大きい整数であり、n番目のバッチのトレーニングデータのデータ量と前記計画転送時間に基づき、n番目のバッチのトレーニングデータの転送速度を決定して、前記転送速度に基づいてn番目のバッチのトレーニングデータを導入する。
【００６７】
好ましくは、前記モデルトレーニングユニット404はさらに、トレーニングデータが完全に導入される前、現在既に導入されたトレーニングデータ及び／又は中間モデルファイルに基づいてモデルトレーニングを行い、且つ毎回のモデルトレーニングが完了した後に、現在既に導入されたトレーニングデータ及び／又は中間モデルファイルに基づいてモデルトレーニングを継続し、及び、トレーニングデータが完全に導入された後、予め設定された収束条件に達するまでに、前記トレーニングデータ及び／又は中間モデルファイルに基づいてモデルトレーニングを行う。
【００６８】
好ましくは、前記モデルトレーニングユニット404はさらに、現在のノードが位置するディープラーニングプラットフォームにおけるノードの残りのCPU使用率の平均値と、現在のノードが一番目の中間モデルファイル転送プロセスにおけるCPU使用率との比を計算でき、前記現在のノードは目標コンテナが所在するノードであり、前記比と前記一番目の中間モデルファイルの第一転送速度との積を計算して、第二転送速度を得て、そして、前記第二転送速度と現在ノードの残りネットワーク帯域幅との内の小さい方に基づいて、現在のM番目の中間モデルファイルの第三転送速度を決定し、前記Mが1より大きい整数であり、前記第三転送速度に基づき、M番目の中間モデルファイルを前記ネットワークストレージ装置に記憶する。
【００６９】
このように、上記モデルトレーニングユニット404によって、本発明の実施例はモデルトレーニングの中間結果をネットワークストレージ装置にタイムリーに転送することで、コンテナ異常時等の状況においてデータ紛失が発生しやすい問題を回避でき、トレーニングプロセスのロバスト性を向上させる。
【００７０】
また、本発明の実施例の上記処理装置は、さらに以下のユニット(図4には示されていない)を含んでもよい。
【００７１】
リリースプロセスユニットは、前記ディープラーニングタスクのモデルトレーニングが完了した後、前記目標コンテナをリリースし、且つ前記ローカルストレージ内のデータをクリアする。
【００７２】
図5では、本発明の実施例はさらにディープラーニングタスクの処理装置のハードウェア構成ブロック図が提供され、図5に示すように、該ディープラーニングタスクの処理装置500は、プロセッサ502、及びプログラムが記憶されているメモリ504を含む。
【００７３】
そこで、前記ログラムが前記プロセッサにより実行される時に、前記プロセッサ502に、ディープラーニングタスクに基づき、アプリケーションコンテナエンジンDockerの目標コンテナを作成するステップと、前記目標コンテナにローカルストレージとネットワークストレージ装置をマウントさせるステップと、前記ディープラーニングタスクのモデルトレーニングを行う時に、モデルトレーニングのデータ量のニーズに従って、バッチごとに前記ネットワークストレージ装置からトレーニングデータ及び／又は中間モデルファイルを前記ローカルストレージに導入するステップと、トレーニングデータ及び／又は中間モデルファイルに基づいてモデルトレーニングを行い、且つモデルトレーニングプロセスにおいて取得された中間モデルファイルを前記ネットワークストレージ装置に記憶するステップと、を実行させる。
【００７４】
さらに、図5に示すように、該ディープラーニングタスクの処理装置500はさらにネットワークインターフェース501、入力装置503、ハードディスク505、及び表示装置506を含むことができる。
【００７５】
上記各インターフェースとデバイスとの間にはバスアーキテクチャーを介して連接し合う。バスアーキテクチャーは任意数のコンポーネントインターコネクトされるバスとブリッジとを含むことができる。具体的には、プロセッサ502に代表される一つまたは複数の中央プロセッサ（CPU）およびメモリ504に代表される一つまたは複数のメモリ各種回路とが連接されている。バスアーキテクチャーは周辺デバイス、定電圧器と電源管理回路などの各種ほかの回路を一緒に連接させることができる。言うまでもなく、バスアーキテクチャーはこれらのユニットの間の連接通信を実現するために用いられる。バスアーキテクチャーはデータバスのほか、電源バスと、制御バスと、状態信号バスとを含むことは当分野において公知され、詳細な説明を省略する。
【００７６】
前記ネットワークインターフェース501はネットワーク(例えばインターネット、ローカルエリアネットワーク等)に接続されてもよく、ネットワークからトレーニングデータを収集し、収集されたトレーニングデータをハードディスク505に保存してもよい。
【００７７】
前記入力装置503は作業員より入力された各種のコマンドを受け取り、かつプロセッサ502に発送して実行されることができる。前記入力装置503はキーボードまたはクリックデバイス（例えばマウス、軌跡球（トラックボール）、接触感知板またはタッチスクリーンなど）を含むことができる。
【００７８】
前記表示装置506は、プロセッサ502がコマンドを実行して得た結果を表示でき、例えばモデルトレーニングの進捗等を表示する。
【００７９】
前記メモリ504は、システム稼動時に必須なプログラムとデータ、およびプロセッサ502の計算過程における中間結果などのデータを記憶するように用いられ。
【００８０】
言うまでもなく、本発明の実施例におけるメモリ504は揮発性メモリまたは不揮発性メモリでもよく、あるいは揮発性メモリと不揮発性メモリとの両者を含むことが可能である。そこで、不揮発性メモリは読み出し専用メモリ（ROM）で、プログラマブル読み出し専用メモリ（PROM）で、消去可能なプログラマブル読み出し専用メモリ（EPROM）で、電気的に消去可能なプログラマブル読み出し専用メモリ（EEPROM）でもよい。揮発性メモリはランダムアクセスメモリ（RAM）でもよく、外部キャッシュとして用いられる。本明細書に記載の装置と方法のメモリ504はこれらおよび任意のほかの適合類型のメモリを含むが、限られることではない。
【００８１】
いくつかの実施例において、メモリ504は以下の要素を格納している：実行可能なモジュールまたはデータ構造、あるいはそれらのサブ集合または拡張集合：オペレーティングシステム5041とアプリケーションプログラム5042。
【００８２】
ここで、オペレーティングシステム5041は、各種のシステムプログラムを含み、例えばフレーム層、コアライブラリ層、ドライブ層等であり、各種のベースサービス及びハードウェアベースのタスクを処理することに用いられる。アプリケーションプログラム5042は各種のアプリケーション業務を実現するように、例えばブラウザー（Browser）などの各種アプリケーションプログラムを含む。本発明の実施例の方法を実現するプログラムはアプリケーションプログラム5042に含まれることが可能である。
【００８３】
本発明の上述した実施例に開示された方法は、プロセッサ502に適用されてもよいし、プロセッサ502によって実現されてもよい。プロセッサ502は信号の処理能力を持つ集積回路チップであってもよい。実現過程では、上記方法の各ステップはプロセッサ502内のハードウェアの集積ロジック回路またはソフトウェア形式のコマンドによって完成できる。上述したプロセッサ502は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタ論理デバイス、ディスクリートハードウェアコンポーネントであってもよく、本発明の実施例により開示された各方法、ステップおよび論理ブロック図を実現または実行することができる。汎用プロセッサはマイクロプロセッサまたはいかなる常用的なプロセッサであっても良い。本発明の実施例より公開された方法のステップと結合して直接にできるのは、ハードウェアデコーダプロセッサより実行して完成、またはデコーダプロセッサ内のハードウェアおよびソフトウェアモジュールの組み合わせによって実行して完成することである。ソフトウェアモジュールはランダムメモリ、フラッシュメモリ、読み出し専用メモリ、プログラマブル読み出し専用メモリまたは電気的に消去可能なプログラマブルメモリ、レジスタなどの当分野において成熟された記録媒体に位置することが可能である。当該記録媒体はメモリ504にあり、プロセッサ502はメモリ504内の情報を読み取って、そのハードウェアと結合して上記方法のステップを完成する。
【００８４】
理解できるのは、本明細書に記載されたこれらの実施例に、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコードまたはその組み合わせによって実現できる。ハードウェア実装のために、処理ユニットは、1つ以上の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理装置(DSPD)、プログラマブル論理装置(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、汎用プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、本願に記載された機能を実行するための他の電子ユニットまたはそれらの組合せを実装することができる。
【００８５】
ソフトウェアの実現について、本明細書に記載された前記機能を実行するモジュール（例えばプロセス、関数など）によって本明細書の前記技術を実現できる。ソフトウェアコードはメモリに格納、かつプロセッサによって実行することが可能である。メモリはプロセッサ内またはプロセッサ外部において実現できる。
【００８６】
好ましくは、前記プログラムはプロセッサ502に実行された時に、ディープラーニングプラットフォームを介して、ユーザが前記ディープラーニングタスク用に設定したリソースニーズとネットワークストレージパスを受信するステップであって、前記リソースは中央処理装置CPUリソース、グラフィックスプロセッサリソース及びストレージリソースを含み、前記ネットワークストレージパスはトレーニングデータと中間モデルファイルのネットワークストレージパスを含む、ステップと、前記リソースニーズとネットワークストレージパスに基づいて、前記Dockerの目標コンテナを作成するステップと、を実行させる。
【００８７】
好ましくは、前記プログラムはプロセッサ502に実行された時に、前記ディープラーニングタスクのリソースニーズに基づき、ローカルストレージのリソースサイズとバインディングパスを構成するステップと、前記ローカルストレージを前記ネットワークストレージパスに関連付けさせるステップと、を実行させる。
【００８８】
好ましくは、前記プログラムはプロセッサ502に実行された時に、モデルトレーニングのデータ量のニーズに応じて、第一バッチのトレーニングデータをローカルストレージまで導入し、且つネットワークストレージ装置に中間モデルファイルが存在する場合、前記中間モデルファイルをローカルストレージまで導入するステップと、全てのトレーニングデータの導入が完成されるまでに、各モデルトレーニングプロセスにおいて、ネットワークストレージ装置の残りトレーニングデータから少なくとも一つのバッチのトレーニングデータを導入するステップと、を実行させる。
【００８９】
好ましくは、前記プログラムはプロセッサ502に実行された時に、一番目のバッチのトレーニングデータの転送時間、一番目のバッチのトレーニングデータ転送プロセスにおけるディスク使用率及び前回のモデルトレーニングプロセスにおけるディスク使用率に基づき、n番目のバッチのトレーニングデータの計画転送時間を決定するステップであって、nは1より大きい整数である、ステップと、n番目のバッチのトレーニングデータのデータ量と前記計画転送時間に基づき、n番目のバッチのトレーニングデータの転送速度を決定するステップと、前記転送速度に基づいてn番目のバッチのトレーニングデータを導入するステップと、を実行させる。
【００９０】
好ましくは、前記プログラムはプロセッサ502に実行された時に、トレーニングデータが完全に導入される前、現在既に導入されたトレーニングデータ及び／又は中間モデルファイルに基づいてモデルトレーニングを行い、且つ毎回のモデルトレーニングが完了した後に、現在既に導入されたトレーニングデータ及び／又は中間モデルファイルに基づいてモデルトレーニングを継続するステップと、トレーニングデータが完全に導入された後、予め設定された収束条件に達するまでに、前記トレーニングデータ及び／又は中間モデルファイルに基づいてモデルトレーニングを行うステップと、を実行させる。
【００９１】
好ましくは、前記プログラムはプロセッサ502に実行された時に、現在のノードが位置するディープラーニングプラットフォームにおけるノードの残りのCPU使用率の平均値と、現在のノードが一番目の中間モデルファイル転送プロセスにおけるCPU使用率との比を計算するステップであって、前記現在のノードは目標コンテナが所在するノードである、ステップと、前記比と前記一番目の中間モデルファイルの第一転送速度との積を計算して、第二転送速度を得て、そして、前記第二転送速度と現在ノードの残りネットワーク帯域幅との内の小さい方に基づいて、現在のM番目の中間モデルファイルの第三転送速度を決定するステップであって、Mは1より大きい整数である、ステップと、前記第三転送速度に基づき、M番目の中間モデルファイルを前記ネットワークストレージ装置に記憶するステップと、を実行させる。
【００９２】
好ましくは、前記プログラムはプロセッサ502に実行された時に、前記ディープラーニングタスクのモデルトレーニングが完了した後、前記目標コンテナをリリースし、且つ前記ローカルストレージ内のデータをクリアするステップ、を実行させる。
【００９３】
当業者にとって、本明細書により公開された実施例の各例示したユニットおよびアルゴリズムステップと結合して、電子ハードウェアまたはコンピュータソフトウェアと電子ハードウェアとの結合によって実現させることができる。これらの機能はハードウェアまたはソフトウェアによって実行させることは、技術方案の特定応用や設計制約条件に決められる。当業者は特定された各応用に応じて異なる方法を用いて前記機能を実現できるが、この実現は本発明の範囲を超えるものと見なすべきではない。
【００９４】
当業者にとって、説明を便利と簡潔にするために、上記のシステム、装置とユニットの具体的な作業プロセスに関して、前記方法実施例における対応プロセスを参考でき、ここで贅言をしない。
【００９５】
本願より提供した実施例において、記載された方法と装置をほかの方法でも実現できることは言うまでも無い。例えば、上記記述された装置実施例は例示的のみであり、たとえば、前記モジュールの区画はロジック機能区画のみであり、実際ではほかの区画方法で実現することも可能である。例えば、複数のモジュールまたはユニットで結合またはほかのシステムに集成して、あるいはある特徴が無視でき、または実行されなくてもよい。もう1つ、示しまたは議論された相互間の結合または直接結合または通信連接はインターフェース、装置またはモジュールを介した間接結合または通信連接であってもよし、電気的、機械またはほかの形式であってもよい。
【００９６】
前記分離部材として説明したユニットは物理的に分離されてもよいが、されなくてもよく、ユニットとして表示された部材は物理ユニットであってもよいが、でなくてもよく、すなわち1カ所に位置してもよく、複数のネットワークユニットに配布されてもよい。実際のニーズに応じてその一部またはすべてのユニットを選択して本発明の実施例方案の目的を実現することができる。
【００９７】
また、本発明の各実施例における各機能的なユニットをひとつのプロセスユニットに集成することも可能が、各ユニットが物理的に単独で存在することも可能で、または二つあるいは二つ以上のユニットが1つのユニットに集成することも可能である。
【００９８】
前記機能がソフトウェア機能ユニットの形式で実現し、かつ独立した製品で販売または使用する場合に、コンピュータ読み取り可能記憶媒体に格納することができる。上記により、本発明の技術方案の本質、あるいは従来技術に対して貢献する部分、または当該技術方案の一部をソフトウェアプロダクトの形式で実現することができ、当該コンピュータソフトウェアプロダクトは記録媒体に記憶されて、若干のコマンドを含んでコンピュータ装置（パーソナルコンピュータ、サーバ或いはネットワーク設備などでも可能）に本願の各実施例に記載したディープラーニングタスクの処理方法の全部または一部のステップを実行させる。前記の記録媒体は以下を含む：USB、移動ハードディスク、ROM、RAM、磁気ディスクまたは光ディスクなど各種のプログラムコードを記憶できる媒体を含む。
【００９９】
上記は本発明の具体的な実施方式であり、本発明の保護範囲はこれに限らず、当業者にとって、本発明に公開された技術範囲において、変化また入れ替えを容易に想起でき、いずれも本発明の保護する範囲に含まれる。そのため、本発明の保護範囲はクレームの保護範囲を元にすべきである。
【図１】
0006927375.tif 000005
【図２】
0006927375.tif 000006
【図３】
0006927375.tif 000007
【図４】
0006927375.tif 000008
【図５】
0006927375.tif 000009