JP6927375B2 - ディープラーニングタスクの処理方法、装置及びコンピュータ読み取り可能な記憶媒体 - Google Patents

ディープラーニングタスクの処理方法、装置及びコンピュータ読み取り可能な記憶媒体 Download PDF

Info

Publication number
JP6927375B2
JP6927375B2 JP2020113714A JP2020113714A JP6927375B2 JP 6927375 B2 JP6927375 B2 JP 6927375B2 JP 2020113714 A JP2020113714 A JP 2020113714A JP 2020113714 A JP2020113714 A JP 2020113714A JP 6927375 B2 JP6927375 B2 JP 6927375B2
Authority
JP
Japan
Prior art keywords
training
deep learning
training data
batch
data
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.)
Active
Application number
JP2020113714A
Other languages
English (en)
Other versions
JP2021026766A (ja
Inventor
ジャン ジィアン
ジャン ジィアン
ジアン シャヌシャヌ
ジアン シャヌシャヌ
ドォン ビヌ
ドォン ビヌ
ディン レイ
ディン レイ
トォン イシュアヌ
トォン イシュアヌ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of JP2021026766A publication Critical patent/JP2021026766A/ja
Application granted granted Critical
Publication of JP6927375B2 publication Critical patent/JP6927375B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明はディープラーニング技術分野に関し、具体的にはディープラーニングタスクの処理方法、装置及びコンピュータ読み取り可能な記憶媒体に関する。
Dockerはオープンソースアプリケーションコンテナエンジンであり、開発者が自分のアプリケーションプログラムと従属項をポータブルコンテナにパッケージングして、任意の流行のLinux(登録商標)或いはWindowsマシンに配布、又はそれらを仮想化することが可能である。Dockerのイメージ(Image)は、オブジェクト指向におけるクラス(Class)であり、テンプレートに相当する。本質から言えば、イメージは特殊なファイルシステムに相当して、コンテナの起動時に必要なプログラム、ライブラリ、リソース、構成等のファイルを提供するほか、さらに起動時のために用意されたい幾つかの構成パラメータ(例えば匿名ボリューム、環境変数、ユーザ等)が含まれる。イメージにいかなる動的データが含まれず、その内容も構築後に変更されることがない。Dockerのコンテナ(Container)は、クラスにより作成される実例であり、即ち、イメージであるテンプレートに基づいて作成されたエンティティである。コンテナの実質はプロセスであるが、ホストで直接的に実行されるプロセスと違って、コンテナプロセスは自身の独立したネームスペースで動く。そのため、コンテナは自身のルートファイルシステム、自身のネットワーク構成、自身のプロセス空間、さらに自分のユーザID空間を有することができる。
Kubernetesはオープンソースシステムであり、自動化コンテナアプリケーションプログラムの配置、拡張及び管理することに用いられる。コンテナクラスタ管理ツールとして、Kubernetesはすでに生成環境に使用されている。Kubernetes及びDockerに基づいてディープラーニングプラットフォームを構築することができ、ディープラーニングプラットフォームを利用してディープラーニングタスクのモデルトレーニングを行うことができ、人工知能開発等の研究の効率を提供する。
発明者らによる発見では、現在のDockerに基づくディープラーニングシステムにおいて、ディープラーニングタスクのトレーニングデータとモデルファイルをネットワークストレージに記憶することができ、この時にモデルトレーニングを行うとネットワークからデータを頻繁に読み取る必要があるため、モデルのトレーニング効率に影響が与えられる。トレーニングデータとモデルファイルをローカルストレージに記憶して、タスクトレーニングが終了した後、トレーニングして得られたモデルファイルをネットワークストレージにコピーする場合は、コンテナに異常が発生することによってローカルに記憶されたデータが紛失して、さらにトレーニングプロセスに影響を与える可能性がある。
本発明の実施例は、ディープラーニングタスクのレーニング効率を最適化して、レーニングプロセスのロバスト性を改善することができる、ディープラーニングタスクの処理方法、装置及びコンピュータ読み取り可能な記憶媒体を提供することを目的とする。
上記技術問題を解決するために、本発明の実施例は、ディープラーニングタスクに基づき、アプリケーションコンテナエンジン(Docker)の目標コンテナを作成するステップと、前記目標コンテナにローカルストレージとネットワークストレージ装置をマウントさせるステップと、前記ディープラーニングタスクのモデルトレーニングを行う時に、モデルトレーニングのデータ量のニーズに応じて、バッチごとに前記ネットワークストレージ装置からトレーニングデータ及び/又は中間モデルファイルを前記ローカルストレージに導入するステップと、トレーニングデータ及び/又は中間モデルファイルに基づいてモデルトレーニングを行い、モデルトレーニングプロセスにおいて取得された中間モデルファイルを前記ネットワークストレージ装置に記憶するステップと、を含むディープラーニングタスクの処理方法を提供する。
好ましくは、前記ディープラーニングタスクに基づき、アプリケーションコンテナエンジン(Docker)の目標コンテナを作成するステップは、ディープラーニングプラットフォームを介して、ユーザにより前記ディープラーニングタスクのために設定されたリソースのニーズ及びネットワークストレージパスを受信することと、前記リソースのニーズ及び前記ネットワークストレージパスに基づき、前記Dockerの目標コンテナを作成することと、を含み、前記リソースは、中央処理装置(CPU)リソース、グラフィックスプロセッサリソース、及びストレージリソースを含み、前記ネットワークストレージパスは、トレーニングデータ及び中間モデルファイルのネットワークストレージパスを含む。
好ましくは、前記目標コンテナにローカルストレージとネットワークストレージ装置をマウントさせるステップは、前記ディープラーニングタスクのリソースのニーズに基づき、ローカルストレージのリソースサイズとバインディングパスを構成することと、前記ローカルストレージを前記ネットワークストレージパスに関連付けることと、を含む。
好ましくは、前記バッチごとに前記ネットワークストレージ装置からトレーニングデータ及び/又は中間モデルファイルを前記ローカルストレージに導入するステップは、モデルトレーニングのデータ量のニーズに応じて、1番目のバッチのトレーニングデータをローカルストレージに導入し、ネットワークストレージ装置に中間モデルファイルが存在する場合、前記中間モデルファイルをローカルストレージに導入することと、全てのトレーニングデータの導入が完了するまで、各モデルトレーニングプロセスにおいて、ネットワークストレージ装置の残りトレーニングデータから少なくとも一つのバッチのトレーニングデータを導入することと、を含む。
好ましくは、前記各モデルトレーニングプロセスにおいて、ネットワークストレージ装置の残りトレーニングデータから少なくとも一つのバッチのトレーニングデータを導入するステップは、1番目のバッチのトレーニングデータの転送時間、1番目のバッチのトレーニングデータの転送プロセスにおけるディスク使用率、及び前回のモデルトレーニングプロセスにおけるディスク使用率に基づき、n番目のバッチのトレーニングデータの計画転送時間を決定することであって、nは1より大きい整数である、ことと、n番目のバッチのトレーニングデータのデータ量及び前記計画転送時間に基づき、n番目のバッチのトレーニングデータの転送速度を決定することと、前記転送速度に基づいてn番目のバッチのトレーニングデータを導入することと、を含む。
好ましくは、前記モデルトレーニングプロセスにおいて取得された中間モデルファイルを前記ネットワークストレージ装置に記憶するステップは、現在ノードが所在するディープラーニングプラットフォームにおけるノードの残りCPU使用率の平均値と、現在ノードの1番目の中間モデルファイル転送プロセスにおけるCPU使用率との比を計算することであって、前記現在ノードは目標コンテナが所在するノードである、ことと、前記比と前記1番目の中間モデルファイルの第一転送速度との積を計算して第二転送速度を取得し、前記第二転送速度と現在ノードの残りネットワーク帯域幅とのうちの小さいものに基づいて、現在のM番目の中間モデルファイルの第三転送速度を決定することであって、Mは1より大きい整数である、ことと、前記第三転送速度に基づき、M番目の中間モデルファイルを前記ネットワークストレージ装置に記憶することと、を含む。
好ましくは、前記ディープラーニングタスクのモデルトレーニングが完了した後、前記目標コンテナをリリースし、前記ローカルストレージ内のデータをクリアする。
本発明の実施例は、ディープラーニングタスクに基づき、アプリケーションコンテナエンジンDockerの目標コンテナを作成するコンテナ作成ユニットと、前記目標コンテナにローカルストレージとネットワークストレージ装置をマウントさせるストレージマウントユニットと、前記ディープラーニングタスクのモデルトレーニングを行う時に、モデルトレーニングのデータ量のニーズに応じて、バッチごとに前記ネットワークストレージ装置からトレーニングデータ及び/又は中間モデルファイルを前記ローカルストレージに導入するデータ転送ユニットと、トレーニングデータ及び/又は中間モデルファイルに基づいてモデルトレーニングを行い、モデルトレーニングプロセスにおいて取得された中間モデルファイルを前記ネットワークストレージ装置に記憶するモデルトレーニングユニットと、を含むディープラーニングタスクの処理装置をさらに提供する。
好ましくは、前記データ転送ユニットは、モデルトレーニングのデータ量のニーズに応じて、1番目のバッチのトレーニングデータをローカルストレージに導入し、ネットワークストレージ装置に中間モデルファイルが存在する場合、前記中間モデルファイルをローカルストレージに導入し、全てのトレーニングデータの導入が完了するまで、各モデルトレーニングプロセスにおいて、ネットワークストレージ装置の残りトレーニングデータから少なくとも一つのバッチのトレーニングデータを導入する。
好ましくは、前記データ転送ユニットは、1番目のバッチのトレーニングデータの転送時間、1番目のバッチのトレーニングデータの転送プロセスにおけるディスク使用率、及び前回のモデルトレーニングプロセスにおけるディスク使用率に基づき、n番目のバッチのトレーニングデータの計画転送時間を決定し、nは1より大きい整数であり、n番目のバッチのトレーニングデータのデータ量及び前記計画転送時間に基づき、n番目のバッチのトレーニングデータの転送速度を決定し、前記転送速度に基づいてn番目のバッチのトレーニングデータを導入する。
好ましくは、前記モデルトレーニングユニットは、現在ノードが所在するディープラーニングプラットフォームにおけるノードの残りCPU使用率の平均値と、現在ノードが1番目の中間モデルファイル転送プロセスにおけるCPU使用率との比を計算し、前記現在ノードは目標コンテナが所在するノードであり、前記比と前記1番目の中間モデルファイルの第一転送速度との積を計算して第二転送速度を取得し、前記第二転送速度と現在ノードの残りネットワーク帯域幅とのうちの小さいものに基づいて、現在の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つの例示であり、本発明を限定するためのものではない。
Figure 0006927375
上式において、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番目の中間モデルファイルを前記ネットワークストレージ装置に記憶する。
前記第三転送速度の計算は下式を参照してもよい。
Figure 0006927375
ここで、sは中間モデルファイルの大きさを示し、通常において同じディープラーニングタスクの中間モデルファイルの大きさはいずれも同じであり、T2は第一中間モデルファイルの転送時間を示し、s/T2は前記第一中間モデルファイルの第一転送速度を示し、Ciはディープラーニングプラットフォームにおけるノードiの現在の残りCPU使用率を示し、Nはディープラーニングプラットフォームにおけるノード数を示し、
(外1)
Figure 0006927375
はディープラーニングプラットフォームにおけるノードの残り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、磁気ディスクまたは光ディスクなど各種のプログラムコードを記憶できる媒体を含む。
上記は本発明の具体的な実施方式であり、本発明の保護範囲はこれに限らず、当業者にとって、本発明に公開された技術範囲において、変化また入れ替えを容易に想起でき、いずれも本発明の保護する範囲に含まれる。そのため、本発明の保護範囲はクレームの保護範囲を元にすべきである。

Claims (12)

  1. ディープラーニングタスクに基づき、アプリケーションコンテナエンジン(Docker)の目標コンテナを作成するステップと、
    前記目標コンテナにローカルストレージとネットワークストレージ装置をマウントさせるステップと、
    前記ディープラーニングタスクのモデルトレーニングを行う時に、モデルトレーニングのデータ量のニーズに応じて、バッチごとに前記ネットワークストレージ装置からトレーニングデータ及び/又は中間モデルファイルを前記ローカルストレージに導入するステップと、
    前記トレーニングデータ及び/又は前記中間モデルファイルに基づいてモデルトレーニングを行い、モデルトレーニングプロセスにおいて取得された中間モデルファイルを前記ネットワークストレージ装置に記憶するステップと、を含むことを特徴とするディープラーニングタスクの処理方法。
  2. 前記ディープラーニングタスクに基づき、アプリケーションコンテナエンジン(Docker)の目標コンテナを作成するステップは、
    ディープラーニングプラットフォームを介して、ユーザにより前記ディープラーニングタスクのために設定するリソースのニーズ及びネットワークストレージパスを受信し、該リソースのニーズ及び該ネットワークストレージパスに基づき、前記Dockerの目標コンテナを作成することと、を含み、
    前記リソースは、中央処理装置(CPU)リソース、グラフィックスプロセッサリソース、及びストレージリソースを含み、
    前記ネットワークストレージパスは、前記トレーニングデータ及び前記中間モデルファイルのネットワークストレージパスを含むことを特徴とする請求項1に記載のディープラーニングタスクの処理方法。
  3. 前記目標コンテナにローカルストレージとネットワークストレージ装置をマウントさせるステップは、
    前記ディープラーニングタスクのリソースのニーズに基づき、ローカルストレージのリソースサイズとバインディングパスを構成することと、
    前記ローカルストレージを前記ネットワークストレージパスに関連付けることと、を含むことを特徴とする請求項2に記載のディープラーニングタスクの処理方法。
  4. 前記バッチごとに前記ネットワークストレージ装置からトレーニングデータ及び/又は中間モデルファイルを前記ローカルストレージに導入するステップは、
    モデルトレーニングのデータ量のニーズに応じて、1番目のバッチのトレーニングデータをローカルストレージに導入し、ネットワークストレージ装置に中間モデルファイルが存在する場合、前記中間モデルファイルをローカルストレージに導入することと、
    全てのトレーニングデータの導入が完了するまで、各モデルトレーニングプロセスにおいて、ネットワークストレージ装置の残りトレーニングデータから少なくとも一つのバッチのトレーニングデータを導入することと、を含むことを特徴とする請求項1に記載のディープラーニングタスクの処理方法。
  5. 前記各モデルトレーニングプロセスにおいて、ネットワークストレージ装置の残りトレーニングデータから少なくとも一つのバッチのトレーニングデータを導入するステップは、
    1番目のバッチのトレーニングデータの転送時間、1番目のバッチのトレーニングデータの転送プロセスにおけるディスク使用率、及び前回のモデルトレーニングプロセスにおけるディスク使用率に基づき、n番目のバッチのトレーニングデータの計画転送時間を決定することであって、nは1より大きい整数である、ことと、
    n番目のバッチのトレーニングデータのデータ量及び前記計画転送時間に基づき、n番目のバッチのトレーニングデータの転送速度を決定することと、
    前記転送速度に基づいてn番目のバッチのトレーニングデータを導入することと、を含むことを特徴とする請求項4に記載のディープラーニングタスクの処理方法。
  6. 前記モデルトレーニングプロセスにおいて取得された中間モデルファイルを前記ネットワークストレージ装置に記憶するステップは、
    現在ノードが所在するディープラーニングプラットフォームにおけるノードの残りCPU使用率の平均値と、現在ノードの1番目の中間モデルファイル転送プロセスにおけるCPU使用率との比を計算することであって、前記現在ノードは目標コンテナが所在するノードである、ことと、
    前記比と前記1番目の中間モデルファイルの第一転送速度との積を計算して第二転送速度を取得し、前記第二転送速度と現在ノードの残りネットワーク帯域幅とのうちの小さいものに基づいて、現在のM番目の中間モデルファイルの第三転送速度を決定することであって、Mは1より大きい整数である、ことと、
    前記第三転送速度に基づき、M番目の中間モデルファイルを前記ネットワークストレージ装置に記憶することと、を含むことを特徴とする請求項1乃至5の何れかに記載のディープラーニングタスクの処理方法。
  7. 前記ディープラーニングタスクのモデルトレーニングが完了した後、前記目標コンテナをリリースし、前記ローカルストレージ内のデータをクリアすることを特徴とする請求項6に記載のディープラーニングタスクの処理方法。
  8. ディープラーニングタスクに基づき、アプリケーションコンテナエンジンDockerの目標コンテナを作成するコンテナ作成ユニットと、
    前記目標コンテナにローカルストレージとネットワークストレージ装置をマウントさせるストレージマウントユニットと、
    前記ディープラーニングタスクのモデルトレーニングを行う時に、モデルトレーニングのデータ量のニーズに応じて、バッチごとに前記ネットワークストレージ装置からトレーニングデータ及び/又は中間モデルファイルを前記ローカルストレージに導入するデータ転送ユニットと、
    前記トレーニングデータ及び/又は前記中間モデルファイルに基づいてモデルトレーニングを行い、モデルトレーニングプロセスにおいて取得された中間モデルファイルを前記ネットワークストレージ装置に記憶するモデルトレーニングユニットと、を含むことを特徴とするディープラーニングタスクの処理装置。
  9. 前記データ転送ユニットは、
    モデルトレーニングのデータ量のニーズに応じて、1番目のバッチのトレーニングデータをローカルストレージに導入し、ネットワークストレージ装置に中間モデルファイルが存在する場合、前記中間モデルファイルをローカルストレージに導入し、
    全てのトレーニングデータの導入が完了するまで、各モデルトレーニングプロセスにおいて、ネットワークストレージ装置の残りトレーニングデータから少なくとも一つのバッチのトレーニングデータを導入することを特徴とする請求項8に記載のディープラーニングタスクの処理装置。
  10. 前記データ転送ユニットは、
    1番目のバッチのトレーニングデータの転送時間、1番目のバッチのトレーニングデータの転送プロセスにおけるディスク使用率、及び前回のモデルトレーニングプロセスにおけるディスク使用率に基づき、n番目のバッチのトレーニングデータの計画転送時間を決定し、nは1より大きい整数であり、
    n番目のバッチのトレーニングデータのデータ量及び前記計画転送時間に基づき、n番目のバッチのトレーニングデータの転送速度を決定し、
    前記転送速度に基づいてn番目のバッチのトレーニングデータを導入することを特徴とする請求項9に記載のディープラーニングタスクの処理装置。
  11. 前記モデルトレーニングユニットは、
    現在ノードが所在するディープラーニングプラットフォームにおけるノードの残りCPU使用率の平均値と、現在ノードが1番目の中間モデルファイル転送プロセスにおけるCPU使用率との比を計算し、前記現在ノードは目標コンテナが所在するノードであり、
    前記比と前記1番目の中間モデルファイルの第一転送速度との積を計算して第二転送速度を取得し、前記第二転送速度と現在ノードの残りネットワーク帯域幅とのうちの小さいものに基づいて、現在のM番目の中間モデルファイルの第三転送速度を決定し、Mは1より大きい整数であり、
    前記第三転送速度に基づき、M番目の中間モデルファイルを前記ネットワークストレージ装置に記憶することを特徴とする請求項8乃至10の何れかに記載のディープラーニングタスクの処理装置。
  12. コンピュータプログラムが記憶されているコンピュータ読み取り可能な記録媒体であって、
    前記コンピュータプログラムがプロセッサに実行された場合、請求項1乃至7の何れかに記載のディープラーニングタスクの処理方法のステップを実現する記録媒体。
JP2020113714A 2019-07-31 2020-07-01 ディープラーニングタスクの処理方法、装置及びコンピュータ読み取り可能な記憶媒体 Active JP6927375B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910701940.6A CN112306623B (zh) 2019-07-31 2019-07-31 深度学习任务的处理方法、装置及计算机可读存储介质
CN201910701940.6 2019-07-31

Publications (2)

Publication Number Publication Date
JP2021026766A JP2021026766A (ja) 2021-02-22
JP6927375B2 true JP6927375B2 (ja) 2021-08-25

Family

ID=74485870

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020113714A Active JP6927375B2 (ja) 2019-07-31 2020-07-01 ディープラーニングタスクの処理方法、装置及びコンピュータ読み取り可能な記憶媒体

Country Status (2)

Country Link
JP (1) JP6927375B2 (ja)
CN (1) CN112306623B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113742065A (zh) * 2021-08-07 2021-12-03 中国航空工业集团公司沈阳飞机设计研究所 一种基于kubernetes容器集群的分布式强化学习方法及装置
CN113792885A (zh) * 2021-08-20 2021-12-14 山东英信计算机技术有限公司 一种深度学习训练的执行方法及相关装置
US11853392B2 (en) 2021-11-30 2023-12-26 International Business Machines Corporation Providing reduced training data for training a machine learning model
CN116226652A (zh) * 2021-12-02 2023-06-06 华为技术有限公司 一种训练加速方法及相关装置
CN114706568B (zh) * 2022-04-22 2024-07-05 深圳伯德睿捷健康科技有限公司 深度学习在线编码方法和系统
CN114676795B (zh) * 2022-05-26 2022-08-23 鹏城实验室 一种深度学习模型的训练方法、装置、设备及存储介质
CN116136838B (zh) * 2023-04-19 2023-07-25 之江实验室 一种深度学习训练数据集快速载入临时缓存方法和装置
CN118014098B (zh) * 2024-02-04 2024-09-13 贝格迈思(深圳)技术有限公司 机器学习训练数据调度方法及设备
CN118502681B (zh) * 2024-07-19 2024-10-18 之江实验室 用于存储数据集的方法、系统及用于训练模型的方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981070B1 (en) * 2000-07-12 2005-12-27 Shun Hang Luk Network storage device having solid-state non-volatile memory
US9037797B2 (en) * 2011-05-24 2015-05-19 International Business Machines Corporation Intelligent caching
US10389809B2 (en) * 2016-02-29 2019-08-20 Netapp, Inc. Systems and methods for resource management in a networked environment
US9967204B2 (en) * 2016-02-29 2018-05-08 Netapp, Inc. Resource allocation in networked storage systems
JP2018018451A (ja) * 2016-07-29 2018-02-01 富士通株式会社 機械学習方法、機械学習プログラム及び情報処理装置
US10860950B2 (en) * 2016-08-31 2020-12-08 Sas Institute Inc. Automated computer-based model development, deployment, and management
US10572773B2 (en) * 2017-05-05 2020-02-25 Intel Corporation On the fly deep learning in machine learning for autonomous machines
US11443226B2 (en) * 2017-05-17 2022-09-13 International Business Machines Corporation Training a machine learning model in a distributed privacy-preserving environment
US10831519B2 (en) * 2017-11-22 2020-11-10 Amazon Technologies, Inc. Packaging and deploying algorithms for flexible machine learning
FR3074939B1 (fr) * 2017-12-12 2020-02-07 Moore Procede de gestion du systeme de fichiers d'un terminal informatique
CN110032449A (zh) * 2019-04-16 2019-07-19 苏州浪潮智能科技有限公司 一种优化gpu服务器的性能的方法及装置

Also Published As

Publication number Publication date
CN112306623A (zh) 2021-02-02
CN112306623B (zh) 2024-08-02
JP2021026766A (ja) 2021-02-22

Similar Documents

Publication Publication Date Title
JP6927375B2 (ja) ディープラーニングタスクの処理方法、装置及びコンピュータ読み取り可能な記憶媒体
EP2176747B1 (en) Unified provisioning of physical and virtual disk images
US9875204B2 (en) System and method for providing a processing node with input/output functionality provided by an I/O complex switch
US8260841B1 (en) Executing an out-of-band agent in an in-band process of a host system
US7721080B2 (en) Management of option ROM
US9524179B2 (en) Virtual-machine-deployment-action analysis
US20080196043A1 (en) System and method for host and virtual machine administration
US10956170B2 (en) BIOS setting modification system
US20130024494A1 (en) Methods and systems for platform optimized design
US11831410B2 (en) Intelligent serverless function scaling
US8539214B1 (en) Execution of a program module within both a PEI phase and a DXE phase of an EFI firmware
US10346065B2 (en) Method for performing hot-swap of a storage device in a virtualization environment
US10997058B2 (en) Method for performance analysis in a continuous integration pipeline
US20150242152A1 (en) Raid array transformation in a pooled storage system
Clerc et al. Os streaming deployment
CN111310192B (zh) 数据处理方法、装置、存储介质和处理器
Maenhaut et al. Efficient resource management in the cloud: From simulation to experimental validation using a low‐cost Raspberry Pi testbed
US12118345B2 (en) Application status reporting via platform binary tables
US9836315B1 (en) De-referenced package execution
Russinovich Inside windows server 2008 kernel changes
US11921582B2 (en) Out of band method to change boot firmware configuration
US11789821B1 (en) Out-of-band method to change boot firmware configuration
US20230205671A1 (en) Multipath diagnostics for kernel crash analysis via smart network interface controller
CN117873580A (zh) 操作系统切换方法、芯片及设备
CN118034746A (zh) 一种微码更新方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200701

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210618

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210706

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210719

R151 Written notification of patent or utility model registration

Ref document number: 6927375

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151