IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特表2024-516520コンピューティング・デバイスに適応することによって、並列化可能なディープラーニング・モデルをデプロイすること
<>
  • 特表-コンピューティング・デバイスに適応することによって、並列化可能なディープラーニング・モデルをデプロイすること 図1
  • 特表-コンピューティング・デバイスに適応することによって、並列化可能なディープラーニング・モデルをデプロイすること 図2
  • 特表-コンピューティング・デバイスに適応することによって、並列化可能なディープラーニング・モデルをデプロイすること 図3
  • 特表-コンピューティング・デバイスに適応することによって、並列化可能なディープラーニング・モデルをデプロイすること 図4
  • 特表-コンピューティング・デバイスに適応することによって、並列化可能なディープラーニング・モデルをデプロイすること 図5
  • 特表-コンピューティング・デバイスに適応することによって、並列化可能なディープラーニング・モデルをデプロイすること 図6
  • 特表-コンピューティング・デバイスに適応することによって、並列化可能なディープラーニング・モデルをデプロイすること 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-04-16
(54)【発明の名称】コンピューティング・デバイスに適応することによって、並列化可能なディープラーニング・モデルをデプロイすること
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240409BHJP
   G06N 3/02 20060101ALI20240409BHJP
【FI】
G06F9/50 150E
G06F9/50 150D
G06N3/02
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023560354
(86)(22)【出願日】2022-02-16
(85)【翻訳文提出日】2023-09-29
(86)【国際出願番号】 CN2022076419
(87)【国際公開番号】W WO2022227798
(87)【国際公開日】2022-11-03
(31)【優先権主張番号】17/245,541
(32)【優先日】2021-04-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000316
【氏名又は名称】弁理士法人ピー・エス・ディ
(72)【発明者】
【氏名】イン、クニャン
(72)【発明者】
【氏名】ユイ、チャオ
(72)【発明者】
【氏名】チェン、ミンジン
(72)【発明者】
【氏名】スン、テン
(72)【発明者】
【氏名】リー、シャオイエ
(57)【要約】
コンピューティング・デバイスに適応することによって並列化可能なディープラーニング・モデルをデプロイする手法において、ディープラーニング・モデルは複数のスライスに分割され、各スライスは関連するスライスとデータを交換することができる。仮想モデルは、複数のスライスから作成され、仮想モデルは、1つ又は複数の仮想モデルがデプロイされる複数のデバイスの能力に基づくものであり、さらに、各仮想モデルは、複数のスライスの各スライスを含む。1つ又は複数の仮想モデルはキャッシュに格納される。ディープラーニング・モデルが1つ又は複数のデバイス上にデプロイされると決定したことに応答して、キャッシュ内の仮想モデルから候補モデルが選択され、選択は、デバイスに関するデバイスモニタからの情報に基づくものである。
【特許請求の範囲】
【請求項1】
1つ又は複数のコンピュータプロセッサによって、ディープラーニング・モデルを複数のスライスに分割することであって、前記複数のスライスの各スライスは、データを前記複数のスライスのうちの1つ又は複数の関連するスライスと交換することができる、分割することと、
前記1つ又は複数のコンピュータプロセッサによって、前記複数のスライスから1つ又は複数の仮想モデルを作成することであって、前記1つ又は複数の仮想モデルは、前記1つ又は複数の仮想モデルがデプロイされる複数のデバイスの能力に基づくものであり、さらに、前記複数の仮想モデルの各仮想モデルは、前記複数のスライスの各スライスを含む、作成することと、
前記1つ又は複数のコンピュータプロセッサによって、前記1つ又は複数の仮想モデルをキャッシュに格納することと、
前記ディープラーニング・モデルが前記複数のデバイスのうちの1つ又は複数のデバイス上にデプロイされると決定したことに応答して、前記1つ又は複数のコンピュータプロセッサによって、前記キャッシュ内の前記1つ又は複数の仮想モデルから候補モデルを選択することであって、選択は、前記複数のデバイスのうちの前記1つ又は複数のデバイスに関するデバイスモニタからの情報に基づくものである、選択することと、
前記1つ又は複数のコンピュータプロセッサによって、前記候補モデルを前記複数のデバイスのうちの前記1つ又は複数のデバイスにデプロイすることと、
を含むコンピュータ実装方法。
【請求項2】
前記ディープラーニング・モデルを前記複数のスライスに分割することであって、前記複数のスライスの各スライスは、データを前記1つ又は複数の関連するスライスと交換することができる、分割することは、
前記1つ又は複数のコンピュータプロセッサによって、前記ディープラーニング・モデルを前記複数のスライスに分割することであって、各スライスは、前記ディープラーニング・モデルの複数の異なるネットワーク層のうちの異なるネットワーク層である、分割すること
を含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ディープラーニング・モデルを前記複数のスライスに分割することであって、前記複数のスライスの各スライスは、データを前記1つ又は複数の関連するスライスと交換することができる、分割することは、
前記ディープラーニング・モデルが容易に並列化可能でないと判断したことに応答して、前記1つ又は複数のコンピュータプロセッサによって、前記ディープラーニング・モデルを所定の規則のセットに基づいて前記複数のスライスに分割することであって、前記所定の規則のセットは、前記ディープラーニング・モデルを複数の最小の並列化可能な層に分割する、分割すること
を含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記ディープラーニング・モデルが前記複数のデバイスのうちの前記1つ又は複数のデバイス上にデプロイされると決定したことに応答して、前記キャッシュ内の前記1つ又は複数の仮想モデルから前記候補モデルを選択することであって、前記選択は、前記複数のデバイスのうちの前記1つ又は複数のデバイスに関する前記デバイスモニタからの前記情報に基づくものである、選択することは、
前記1つ又は複数のコンピュータプロセッサによって、前記ディープラーニング・モデルをデプロイすることができる前記複数のデバイスから前記デバイスモニタによって前記情報を収集することと、
前記1つ又は複数のコンピュータプロセッサによって、タイムスライスごとに前記複数のデバイスの特徴を符号化することであって、前記特徴は、中央処理装置(CPU)容量、画像処理装置(GPU)容量、及びディスク容量のうちの少なくとも1つを含むが、これらに限定されず、さらに、前記タイムスライスは所定の時間間隔である、符号化することと、
前記1つ又は複数のコンピュータプロセッサによって、前記複数のデバイスの各デバイスのリスクファクタを予測することであって、前記リスクファクタは、長・短期記憶(LSTM)モデルを使用して予測される、予測することと、
前記複数のデバイスのいずれかのデバイスの前記リスクファクタが所定の閾値を超えると判断したことに応答して、前記1つ又は複数のコンピュータプロセッサによって、前記複数のデバイスのうちの上位n個のデバイスを選択することであって、nは所定の数であり、さらに、前記上位n個のデバイスは最も低いリスクファクタを有する、選択することと、
前記複数のデバイスのうちの前記上位n個のデバイスを選択したことに応答して、前記1つ又は複数のコンピュータプロセッサによって、前記複数のスライスから1つ又は複数の新たな仮想モデルを作成することであって、前記1つ又は複数の新たな仮想モデルは、前記複数のデバイスのうちの前記上位n個のデバイスの能力に基づくものである、作成することと、
前記1つ又は複数のコンピュータプロセッサによって、前記1つ又は複数の新たな仮想モデルで前記キャッシュを更新することと
を含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記デバイスモニタは、タイムスケジュールに従って前記複数のデバイスから前記情報を収集する、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記1つ又は複数のコンピュータプロセッサによって、前記候補モデルを前記複数のデバイスのうちの前記1つ又は複数のデバイスにデプロイすることは、
前記1つ又は複数のコンピュータプロセッサによって、前記複数のデバイスの各デバイスの健全性を監視することと、
前記複数のデバイスのいずれかのデバイスの前記健全性が所定の閾値を下回ると判断したことに応答して、前記1つ又は複数のコンピュータデバイスによって、前記いずれかのデバイスを不良デバイスとしてマークすることと、
前記1つ又は複数のコンピュータプロセッサによって、前記複数のデバイスから前記不良デバイスを削除することと、
前記1つ又は複数のコンピュータプロセッサによって、前記不良デバイスを含まない新たな仮想モデルを作成することと、
前記1つ又は複数のコンピュータプロセッサによって、前記新たな仮想モデルを前記複数のデバイスのうちの前記1つ又は複数のデバイスにデプロイすることと、
前記1つ又は複数のコンピュータプロセッサによって、前記新たな仮想モデルで前記キャッシュを更新することと
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記複数のスライスから1つ又は複数の仮想モデルを作成することであって、前記1つ又は複数の仮想モデルは、前記1つ又は複数の仮想モデルがデプロイされる複数のデバイスの能力に基づくものであり、さらに、前記複数の仮想モデルの各仮想モデルは、前記複数のスライスの各スライスを含む、作成することは、
前記1つ又は複数のコンピュータプロセッサによって、前記1つ又は複数の仮想モデルが前記ディープラーニング・モデルとマッチすることを確認することであって、前記1つ又は複数の仮想モデルが前記ディープラーニング・モデルとマッチすることを確認することは、1つ又は複数の所定の検証規則によって判断される、確認すること
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
1つ又は複数のコンピュータ可読ストレージ媒体と、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令とを含むコンピュータプログラム製品であって、前記プログラム命令は、
ディープラーニング・モデルを複数のスライスに分割することであって、前記複数のスライスの各スライスは、データを前記複数のスライスのうちの1つ又は複数の関連するスライスと交換することができる、分割することと、
前記複数のスライスから1つ又は複数の仮想モデルを作成することであって、前記1つ又は複数の仮想モデルは、前記1つ又は複数の仮想モデルがデプロイされる複数のデバイスの能力に基づくものであり、さらに、前記複数の仮想モデルの各仮想モデルは、前記複数のスライスの各スライスを含む、作成することと、
前記1つ又は複数の仮想モデルをキャッシュに格納することと、
前記ディープラーニング・モデルが前記複数のデバイスのうちの1つ又は複数のデバイス上にデプロイされると決定したことに応答して、前記1つ又は複数のコンピュータプロセッサによって、前記キャッシュ内の前記1つ又は複数の仮想モデルから候補モデルを選択することであって、選択は、前記複数のデバイスのうちの前記1つ又は複数のデバイスに関するデバイスモニタからの情報に基づくものである、選択することと、
前記候補モデルを前記複数のデバイスのうちの前記1つ又は複数のデバイスにデプロイすることと、
のための命令を含む、コンピュータプログラム製品。
【請求項9】
前記ディープラーニング・モデルを前記複数のスライスに分割することであって、前記複数のスライスの各スライスは、データを前記1つ又は複数の関連するスライスと交換することができる、分割することは、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令であって、
前記ディープラーニング・モデルを前記複数のスライスに分割することであって、各スライスは、前記ディープラーニング・モデルの複数の異なるネットワーク層のうちの異なるネットワーク層である、分割すること
のためのプログラム命令の1つ又は複数を含む、請求項8に記載のコンピュータプログラム製品。
【請求項10】
前記ディープラーニング・モデルを前記複数のスライスに分割することであって、前記複数のスライスの各スライスは、データを前記1つ又は複数の関連するスライスと交換することができる、分割することは、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令であって、
前記ディープラーニング・モデルが容易に並列化可能でないと判断したことに応答して、前記ディープラーニング・モデルを所定の規則のセットに基づいて前記複数のスライスに分割することであって、前記所定の規則のセットは、前記ディープラーニング・モデルを複数の最小の並列化可能な層に分割する、分割すること
のためのプログラム命令の1つ又は複数を含む、請求項8に記載のコンピュータプログラム製品。
【請求項11】
前記ディープラーニング・モデルが前記複数のデバイスのうちの前記1つ又は複数のデバイス上にデプロイされると決定したことに応答して、前記キャッシュ内の前記1つ又は複数の仮想モデルから前記候補モデルを選択することであって、前記選択は、前記複数のデバイスのうちの前記1つ又は複数のデバイスに関する前記デバイスモニタからの前記情報に基づくものである、選択することは、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令であって、
前記ディープラーニング・モデルをデプロイすることができる前記複数のデバイスから前記デバイスモニタによって前記情報を収集することと、
タイムスライスごとに前記複数のデバイスの特徴を符号化することであって、前記特徴は、中央処理装置(CPU)容量、画像処理装置(GPU)容量、及びディスク容量のうちの少なくとも1つを含むが、これらに限定されず、さらに、前記タイムスライスは所定の時間間隔である、符号化することと、
前記複数のデバイスの各デバイスのリスクファクタを予測することであって、前記リスクファクタは、長・短期記憶(LSTM)モデルを使用して予測される、予測することと、
前記複数のデバイスのいずれかのデバイスの前記リスクファクタが所定の閾値を超えると判断したことに応答して、前記複数のデバイスのうちの上位n個のデバイスを選択することであって、nは所定の数であり、さらに、前記上位n個のデバイスは最も低いリスクファクタを有する、選択することと、
前記複数のデバイスのうちの前記上位n個のデバイスを選択したことに応答して、前記複数のスライスから1つ又は複数の新たな仮想モデルを作成することであって、前記1つ又は複数の新たな仮想モデルは、前記複数のデバイスのうちの前記上位n個のデバイスの能力に基づくものである、作成することと、
前記1つ又は複数の新たな仮想モデルで前記キャッシュを更新することと
のためのプログラム命令の1つ又は複数を含む、請求項8に記載のコンピュータプログラム製品。
【請求項12】
前記デバイスモニタは、タイムスケジュールに従って前記複数のデバイスから前記情報を収集する、請求11に記載のコンピュータプログラム製品。
【請求項13】
前記候補モデルを前記複数のデバイスのうちの前記1つ又は複数のデバイスにデプロイすることは、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令であって、
前記複数のデバイスの各デバイスの健全性を監視することと、
前記複数のデバイスのいずれかのデバイスの前記健全性が所定の閾値を下回ると判断したことに応答して、前記いずれかのデバイスを不良デバイスとしてマークすることと、
前記複数のデバイスから前記不良デバイスを削除することと、
前記不良デバイスを含まない新たな仮想モデルを作成することと、
前記新たな仮想モデルを前記複数のデバイスのうちの前記1つ又は複数のデバイスにデプロイすることと、
前記新たな仮想モデルで前記キャッシュを更新することと
のためのプログラム命令の1つ又は複数をさらに含む、請求項8に記載のコンピュータプログラム製品。
【請求項14】
前記複数のスライスから1つ又は複数の仮想モデルを作成することであって、前記1つ又は複数の仮想モデルは、前記1つ又は複数の仮想モデルがデプロイされる複数のデバイスの能力に基づくものであり、さらに、前記複数の仮想モデルの各仮想モデルは、前記複数のスライスの各スライスを含む、作成することは、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令であって、
前記1つ又は複数の仮想モデルが前記ディープラーニング・モデルとマッチすることを確認することであって、前記1つ又は複数の仮想モデルが前記ディープラーニング・モデルとマッチすることを確認することは、1つ又は複数の所定の検証規則によって判断される、確認すること
のためのプログラム命令の1つ又は複数をさらに含む、請求項8に記載のコンピュータプログラム製品。
【請求項15】
1つ又は複数のコンピュータプロセッサと、
1つ又は複数のコンピュータ可読ストレージ媒体と、
前記1つ又は複数のコンピュータプロセッサの少なくとも1つによる実行のために、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令と
を含むコンピュータシステムであって、格納された前記プログラム命令は、
ディープラーニング・モデルを複数のスライスに分割することであって、前記複数のスライスの各スライスは、データを前記複数のスライスのうちの1つ又は複数の関連するスライスと交換することができる、分割することと、
前記複数のスライスから1つ又は複数の仮想モデルを作成することであって、前記1つ又は複数の仮想モデルは、前記1つ又は複数の仮想モデルがデプロイされる複数のデバイスの能力に基づくものであり、さらに、前記複数の仮想モデルの各仮想モデルは、前記複数のスライスの各スライスを含む、作成することと、
前記1つ又は複数の仮想モデルをキャッシュに格納することと、
前記ディープラーニング・モデルが前記複数のデバイスのうちの1つ又は複数のデバイス上にデプロイされると決定したことに応答して、前記1つ又は複数のコンピュータプロセッサによって、前記キャッシュ内の前記1つ又は複数の仮想モデルから候補モデルを選択することであって、選択は、前記複数のデバイスのうちの前記1つ又は複数のデバイスに関するデバイスモニタからの情報に基づくものである、選択することと、
前記候補モデルを前記複数のデバイスのうちの前記1つ又は複数のデバイスにデプロイすることと、
のための命令を含む、コンピュータシステム。
【請求項16】
前記ディープラーニング・モデルを前記複数のスライスに分割することであって、前記複数のスライスの各スライスは、データを前記1つ又は複数の関連するスライスと交換することができる、分割することは、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令であって、
前記ディープラーニング・モデルを前記複数のスライスに分割することであって、各スライスは、前記ディープラーニング・モデルの複数の異なるネットワーク層のうちの異なるネットワーク層である、分割すること
のためのプログラム命令の1つ又は複数を含む、請求項15に記載のコンピュータシステム。
【請求項17】
前記ディープラーニング・モデルを前記複数のスライスに分割することであって、前記複数のスライスの各スライスは、データを前記1つ又は複数の関連するスライスと交換することができる、分割することは、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令であって、
前記ディープラーニング・モデルが容易に並列化可能でないと判断したことに応答して、前記ディープラーニング・モデルを所定の規則のセットに基づいて前記複数のスライスに分割することであって、前記所定の規則のセットは、前記ディープラーニング・モデルを複数の最小の並列化可能な層に分割する、分割すること
のためのプログラム命令の1つ又は複数を含む、請求項15に記載のコンピュータシステム。
【請求項18】
前記ディープラーニング・モデルが前記複数のデバイスのうちの前記1つ又は複数のデバイス上にデプロイされると決定したことに応答して、前記キャッシュ内の前記1つ又は複数の仮想モデルから前記候補モデルを選択することであって、前記選択は、前記複数のデバイスのうちの前記1つ又は複数のデバイスに関する前記デバイスモニタからの前記情報に基づくものである、選択することは、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令であって、
前記ディープラーニング・モデルをデプロイすることができる前記複数のデバイスから前記デバイスモニタによって前記情報を収集することと、
タイムスライスごとに前記複数のデバイスの特徴を符号化することであって、前記特徴は、中央処理装置(CPU)容量、画像処理装置(GPU)容量、及びディスク容量のうちの少なくとも1つを含むが、これらに限定されず、さらに、前記タイムスライスは所定の時間間隔である、符号化することと、
前記複数のデバイスの各デバイスのリスクファクタを予測することであって、前記リスクファクタは、長・短期記憶(LSTM)モデルを使用して予測される、予測することと、
前記複数のデバイスのいずれかのデバイスの前記リスクファクタが所定の閾値を超えると判断したことに応答して、前記複数のデバイスのうちの上位n個のデバイスを選択することであって、nは所定の数であり、さらに、前記上位n個のデバイスは最も低いリスクファクタを有する、選択することと、
前記複数のデバイスのうちの前記上位n個のデバイスを選択したことに応答して、前記複数のスライスから1つ又は複数の新たな仮想モデルを作成することであって、前記1つ又は複数の新たな仮想モデルは、前記複数のデバイスのうちの前記上位n個のデバイスの能力に基づくものである、作成することと、
前記1つ又は複数の新たな仮想モデルで前記キャッシュを更新することと
のためのプログラム命令の1つ又は複数を含む、請求項15に記載のコンピュータシステム。
【請求項19】
前記候補モデルを前記複数のデバイスのうちの前記1つ又は複数のデバイスにデプロイすることは、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令であって、
前記複数のデバイスの各デバイスの健全性を監視することと、
前記複数のデバイスのいずれかのデバイスの前記健全性が所定の閾値を下回ると判断したことに応答して、前記いずれかのデバイスを不良デバイスとしてマークすることと、
前記複数のデバイスから前記不良デバイスを削除することと、
前記不良デバイスを含まない新たな仮想モデルを作成することと、
前記新たな仮想モデルを前記複数のデバイスのうちの前記1つ又は複数のデバイスにデプロイすることと、
前記新たな仮想モデルで前記キャッシュを更新することと
のためのプログラム命令の1つ又は複数をさらに含む、請求項15に記載のコンピュータシステム。
【請求項20】
前記複数のスライスから1つ又は複数の仮想モデルを作成することであって、前記1つ又は複数の仮想モデルは、前記1つ又は複数の仮想モデルがデプロイされる複数のデバイスの能力に基づくものであり、さらに、前記複数の仮想モデルの各仮想モデルは、前記複数のスライスの各スライスを含む、作成することは、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令であって、
前記1つ又は複数の仮想モデルが前記ディープラーニング・モデルとマッチすることを確認することであって、前記1つ又は複数の仮想モデルが前記ディープラーニング・モデルとマッチすることを確認することは、1つ又は複数の所定の検証規則によって判断される、確認すること
のためのプログラム命令の1つ又は複数をさらに含む、請求項15に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に機械学習の分野に関し、より詳細には、コンピューティング・デバイスに適応することによって、並列化可能なディープラーニング・モデルをデプロイすることに関する。
【背景技術】
【0002】
機械学習(ML)は、明示的にプログラムされることなく経験から自動的に学習及び改善する能力をシステムに提供する、人工知能(AI)の応用である。機械学習は、アルゴリズム及び統計モデルを使用してデータのパターンを分析し、そこから推論を導くことによって、明示的な指示に従うことなく学習及び適応することができるコンピュータシステムの使用及び開発である。機械学習アルゴリズムは、予測又は決定を行うために、「訓練データ」として知られるサンプルデータに基づいてモデルを構築する。機械学習アルゴリズムは、電子メールのフィルタリングやコンピュータ・ビジョンなど、必要なタスクを実行するための従来のアルゴリズムを開発することが困難又は実行不可能であるような広範なアプリケーションで使用されている。
【0003】
ディープラーニングは、データを処理して意思決定に用いるパターンを作成する際に人間の脳の働きを真似る人工知能(AI)の機能である。ディープラーニングは、構造化されていないデータ又はラベル付けされていないデータから学習することができるネットワークを有する人工知能における機械学習のサブセットである。ディープラーニングは、ネットワーク内の複数の層を使用して、生の入力からより高いレベルの特徴を漸進的に抽出する、機械学習アルゴリズムの一種である。例えば、画像処理において、低次層はエッジを識別することができ、高次層は、それらのエッジを使用してオブジェクト全体を見分けることができる。最新のディープラーニング・モデルのほとんどは、人工ニューラルネットワーク、特に畳み込みニューラルネットワーク(CNN)に基づいている。ディープラーニングが爆発的な成長を遂げているのは、深く階層化されたニューラルネットワークと、その実行を高速化するための画像処理装置(GPU)の利用との交わりによるものである。
【0004】
モデルの精度を向上させるために、データ科学者は、ニューラルネットワークをより深く構築する傾向がある。しかし、ニューラルネットワークの複雑さが増すにつれてモデルのサイズが非常に大きくなり、モデルの転送とデプロイにかかる時間が大幅に増加する。モデルの初期化及び実行は、プロセッサ及びメモリ容量を大量に消費し、訓練済みモデルを高可用性(HA)のために再配置すること及びバランスを取ることは困難である。
【0005】
エッジ・デバイスにモデルをデプロイするために、モデルを圧縮する様々な方法がある。モデルの圧縮は、大きく2つのカテゴリに分けられる。最初のカテゴリはプルーニングであり、これは、アーキテクチャ内に存在する冗長な接続を削除することを伴う。プルーニングの問題点は、モデルが実際には元の接続に対して訓練されているため、形成される新しいモデルの精度が元のモデルよりも低くなることである。第2のカテゴリは量子化であり、重みをクラスタ化したり丸めたりして束ねることで、同じ数の接続をより少ないメモリ量を用いて表現できるようにする。しかし、プルーニングと同様に、量子化は、モデルの精度を低下させる。その結果、多くの場合、エッジ・デバイスは、単一の非ロバストなモデルしか所有しないことになる。本技術の問題点は、高精度、高可用性及び拡張性を備えた大規模なモデルを圧縮せずにデプロイする方法が存在しないことである。
【発明の概要】
【0006】
本発明の実施形態は、コンピューティング・デバイスに適応することによって、並列化可能なディープラーニング・モデルをデプロイするための、コンピュータ実装方法、コンピュータプログラム製品、及びシステムを開示する。一実施形態において、ディープラーニング・モデルは複数のスライスに分割され、各スライスは関連するスライスとデータを交換することができる。複数のスライスから仮想モデルが作成され、仮想モデルは、1つ又は複数の仮想モデルがデプロイされる複数のデバイスの能力に基づくものであり、さらに、各仮想モデルは、複数のスライスの各スライスを含む。1つ又は複数の仮想モデルはキャッシュに格納される。ディープラーニング・モデルが1つ又は複数のデバイス上にデプロイされると決定したことに応答して、キャッシュ内の仮想モデルから候補モデルが選択され、選択は、デバイスに関するデバイスモニタからの情報に基づくものである。本発明の実施形態は、エッジ・コンピューティング・デバイスの能力に基づいてモデルをスライスに分割し、仮想モデルキャッシュから候補モデル及びモデルスライスを選択して、エッジ・コンピューティング・デバイスの能力に基づいて全体モデルを構成する。
【0007】
一実施形態において、ディープラーニング・モデルは複数のスライスに分割され、各スライスは、ディープラーニング・モデルの複数の異なるネットワーク層のうちの異なるネットワーク層である。本発明の実施形態は、モデルをスライスに分割して複数のエッジ・デバイスにデプロイする。
【0008】
一実施形態において、ディープラーニング・モデルが容易に並列化可能でないと判断したことに応答して、ディープラーニング・モデルは、所定の規則のセットに基づいて複数のスライスに分割され、所定の規則のセットは、ディープラーニング・モデルを複数の最小の並列化可能な層に分割する。本発明の実施形態は、モデルをスライスに分割して複数のエッジ・デバイスにデプロイする。
【0009】
一実施形態において、ディープラーニング・モデルをデプロイすることができる複数のデバイスからデバイスモニタによって情報が収集される。複数のデバイスの特徴がタイムスライスごとに符号化され、特徴は、中央処理装置(CPU)容量、画像処理装置(GPU)容量、及びディスク容量のうちの少なくとも1つを含むが、これらに限定されず、さらに、タイムスライスは、所定の時間間隔である。複数のデバイスの各デバイスについてリスクファクタが予測され、リスクファクタは長・短期記憶(LSTM)モデルを用いて予測される。複数のデバイスのいずれかのデバイスのリスクファクタが所定の閾値を超えると判断したことに応答して、上位n個のデバイスが選択され、nは所定の数であり、さらに、上位n個のデバイスは最も低いリスクファクタを有する。複数のデバイスのうちの上位n個のデバイスを選択したことに応答して、スライスから新たな仮想モデルが作成され、新たな仮想モデルは複数のデバイスのうちの上位n個のデバイスの能力に基づくものである。キャッシュは新たな仮想モデルで更新される。本発明の実施形態は、モデルがデプロイされたデバイスの健全性を監視し、新たなデバイスのために新たな仮想モデルを作成する。
【0010】
一実施形態において、複数のデバイスの各デバイスの健全性が監視される。いずれかのデバイスの健全性が所定の閾値を下回ると判断したことに応答して、そのデバイスは、不良デバイスとしてマークされる。不良デバイスは、複数のデバイスから削除される。新たな仮想モデルが作成され、新たな仮想モデルは、不良デバイスを含まない。新たな仮想モデルは、複数のデバイスのうちの1つ又は複数のデバイスにデプロイされる。キャッシュは、新たな仮想モデルで更新される。本発明の実施形態は、モデルがデプロイされたデバイスの健全性を監視し、高リスク又は不健全なデバイスを他の健全なデバイスと置き換える。
【0011】
一実施形態において、1つ又は複数の仮想モデルがディープラーニング・モデルとマッチすることが確認され、1つ又は複数の仮想モデルがディープラーニング・モデルとマッチすることを確認することは、1つ又は複数の所定の検証規則によって判断される。本発明の実施形態は、検証規則を使用して、モデルがエッジ・デバイス上で適切に動作していることを確認する。
【図面の簡単な説明】
【0012】
図1】本発明の実施形態による分散型データ処理環境を示す機能ブロック図である。
図2】本発明の実施形態による、異なるデバイス及び仮想モデルに基づいてディープラーニング・モデルを分割する例である。
図3】本発明の実施形態による、モデル分割エンジンの一例である。
図4】本発明の実施形態による仮想モデルキャッシュの一例である。
図5】本発明の実施形態によるモニタの一例である。
図6】本発明の実施形態による、コンピューティング・デバイスに適応することによって、並列化可能なディープラーニング・モデルをデプロイするための、図1の分散型データ処理環境内のコンピューティング・デバイス上でモデル・デプロイメント・プログラム112によって実行されるモデル生成手順の動作ステップを示すフローチャートである。
図7】本発明の実施形態による、図1の分散型データ処理環境内でモデル・デプロイメント・プログラムを実行するコンピューティング・デバイスのコンポーネントのブロック図である。
【発明を実施するための形態】
【0013】
ディープラーニング・モデルは、パラメータを有する異なる層で構成されるため、ほとんどのディープラーニング・モデルは、容易に分離可能である。エッジ・デバイスは、異なるリソース能力を有する。あるデバイスは他のデバイスよりもパワフルであり、ネットワーク接続性も異なる。
【0014】
高精度、高可用性及び拡張性を備えた大規模なモデルを圧縮せずにデプロイする方法が存在しないという本技術の問題点を解決するために、本発明は、異なるデバイス及び仮想モデルに基づいてモデルを分割するコンピュータ実装方法、コンピュータプログラム製品、及びシステムを提供する。デプロイメントに基づいて、本発明は、ランタイム中にモデルユニットを監視及び管理して、モデルのランタイムが安定かつフレキシブルであることを保証する。これを達成するために、いくつかの実施形態において、本発明は、モデル分割エンジン、仮想モデルキャッシュ、及びデバイスモニタの3つのコンポーネントを含む。
【0015】
実施形態において、モデル分割エンジンは、エッジ・コンピューティング・デバイスの能力に基づいてモデルを分割する。モデル分割エンジンは、異なる能力を有する異なるエッジ・デバイスに対応するために、モデルの多数の異なる分割を作成することができる。仮想モデルキャッシュは、1つ又は複数のエッジ・コンピューティング・デバイスの能力に基づいて全体モデルを構成するために、仮想モデルキャッシュから候補モデル及びモデルスライスを選択する。デバイスモニタは、デバイスの健全性(health)を監視し、その情報を仮想キャッシュに報告してキャッシュを更新し続ける。
【0016】
実施形態において、本発明は、モデルを異なるネットワーク層に切り分け、ある特定のネットワーク層が関連する層とデータを交換できるようにする。異なるエッジ・デバイスの能力、例えば、中央処理装置/画像処理装置(CPU/GPU)の能力及びメモリに基づいて、本発明は、最も適合するエッジ・デバイスにネットワーク層を動的にデプロイする。例えば、より高い能力を有するエッジ・デバイスは、より多くの計算を実行し、より低い能力を有するエッジ・デバイスは、より少ない計算を実行する。
【0017】
実施形態において、モデル分割エンジンは次のように動作する。まず、モデルは、スライス・ジェネレータによって異なるスライスに分割される。並列化可能なネットワーク、例えばCNNの場合、スライス・ジェネレータは、層ごとにスライスを分割する。並列化しにくい複雑なネットワークの場合、スライス・ジェネレータは、規則を用いてネットワークを並列化可能な最小の層に分割する。モデルをエッジ・デバイスにデプロイするために、スライス・ジェネレータは、リソースをマッチングするための検索を行う。モニタ情報に基づいて、スライス・ジェネレータは、エッジ・デバイスのサイズ及び能力を計算し、利用可能なエッジ・デバイスの中から最適なマッチングを決定し、マッチしたデバイスのリソースに基づいてスライスを分配する。さらに、スライス・ジェネレータは、検証規則を使用して、モデルがエッジ・デバイス上で適切に動作していることを確認する。
【0018】
実施形態において、仮想モデルキャッシュは、推論のための仮想モデルを保持し、また、認知モデルセレクタを使用して順序を与える。仮想モデルキャッシュは、2つの主コンポーネント、すなわち、上位n個の構成された最適モデルを記録するファイルであるキャッシュモデルリストと、モデルを実行している上位n個のデバイスの健全性をチェックする認知モデル・ジェネレータとを含む。実施形態において、実行中のモデルの何らかの異常を仮想モデルキャッシュが検出した場合、仮想モデルキャッシュは、新たなモデルを選択し、新たなモデルを適切なエッジ・デバイスにデプロイする。
【0019】
実施形態において、モニタは、スケジューリングのためにデバイスの健全性を収集し、GPU、ディスク、メモリなどのデバイスリソースも含む。実施形態において、モニタは、スケジュールに従ってデバイスから情報を収集し、この情報を仮想モデルキャッシュに送信する、スクリプトを含む。実施形態において、モニタは、オープンソースツールであってもよい。
【0020】
図1は、本発明の少なくとも1つの実施形態によるモデル・デプロイメント・プログラム112の動作に適した、一般に100で示される分散型データ処理環境を示す機能ブロック図である。本明細書で使用する「分散型」という用語は、単一のコンピュータシステムとして一緒に動作する複数の物理的に異なるデバイスを含むコンピュータシステムのことを表す。図1は、1つの実装の例示に過ぎず、異なる実施形態が実装され得る環境に関するいかなる制限をも意味するものではない。当業者であれば、特許請求の範囲に記載された本発明の範囲から逸脱することなく、図示された環境に多くの変更を加えることができる。
【0021】
分散型データ処理環境100は、ネットワーク120に接続されたコンピューティング・デバイス110を含む。ネットワーク120は、例えば、電気通信ネットワーク、ローカル・エリア・ネットワーク(LAN)、インターネットなどの広域ネットワーク(WAN)、又はこれら3種の組合せとすることができ、有線、無線、又は光ファイバ接続を含むことができる。ネットワーク120は、音声、データ、及び映像情報を含むマルチメディア信号を含めてデータ、音声、もしくは映像信号又はこれらの組合せを受信及び送信することができる、1つ又は複数の有線ネットワークもしくは無線ネットワーク又はその両方を含むことができる。一般に、ネットワーク120は、コンピューティング・デバイス110と分散型データ処理環境100内の他のコンピューティングデバイス(図示せず)との間の通信をサポートする接続及びプロトコルの任意の組合せとすることができる。
【0022】
コンピューティング・デバイス110は、スタンドアロン・コンピューティング・デバイス、管理サーバ、ウェブサーバ、モバイル・コンピューティング・デバイス、又はデータを受信、送信、及び処理することができる任意の他の電子デバイス又はコンピューティング・システムとすることができる。実施形態において、コンピューティング・デバイス110は、ラップトップ・コンピュータ、タブレット・コンピュータ、ネットブック・コンピュータ、パーソナル・コンピュータ(PC)、デスクトップ・コンピュータ、パーソナル・デジタル・アシスタント(PDA)、スマートフォン、又はネットワーク120を介して分散型データ処理環境100内の他のコンピューティング・デバイス(図示せず)と通信可能な任意のプログラム可能な電子デバイスとすることができる。別の実施形態では、コンピューティング・デバイス110は、サーバシステムとして複数のコンピュータを利用する、クラウドコンピューティング環境などのサーバ・コンピューティング・システムを表すことができる。さらに別の実施形態では、コンピューティング・デバイス110は、分散型データ処理環境100内でアクセスされたときにシームレスなリソースの単一のプールとして機能するクラスタ化されたコンピュータ及びコンポーネント(例えば、データベースサーバ・コンピュータ、アプリケーションサーバ・コンピュータなど)を利用するコンピューティング・システムを表す。
【0023】
実施形態において、コンピューティング・デバイス110は、モデル・デプロイメント・プログラム112を含む。実施形態において、モデル・デプロイメント・プログラム112は、コンピューティング・デバイスに適応することによって、並列化可能なディープラーニング・モデルをデプロイするための、プログラム、アプリケーション、又はより大きなプログラムのサブプログラムである。別の実施形態において、モデル・デプロイメント・プログラム112は、ネットワーク120を介してコンピューティング・デバイス110によってアクセス可能な他のデバイス上に配置されてもよい。
【0024】
実施形態において、コンピューティング・デバイス110は、情報リポジトリ114を含む。実施形態において、情報リポジトリ114は、モデル・デプロイメント・プログラム112によって管理されてもよい。別の実施形態において、情報リポジトリ114は、単独で、又はモデル・デプロイメント・プログラム112とともに、デバイスのオペレーティングシステムによって管理されてもよい。情報リポジトリ114は、情報を格納、収集、比較、もしくは結合すること又はそれらの組合せを行うことができるデータリポジトリである。いくつかの実施形態において、情報リポジトリ114は、コンピューティング・デバイス110の外部に配置され、ネットワーク120などの通信ネットワークを介してアクセスされる。いくつかの実施形態において、情報リポジトリ114は、コンピューティング・デバイス110上に格納される。いくつかの実施形態において、情報リポジトリ114は、情報リポジトリ114がコンピューティング・デバイス110によってアクセス可能であることを条件として、別のコンピューティング・デバイス(図示せず)上に存在してもよい。情報リポジトリ114は、ディープラーニング・モデルデータ、長・短期メモリ(LSTM)データ、デバイス健全性データ、モデルスライスデータ、オペレーティングシステムデータ、構成データ、及びモデル・デプロイメント・プログラム112によって1つ又は複数のソースから受信される他のデータ、及びモデル・デプロイメント・プログラム112によって作成されるデータを含むが、これらに限定されない。
【0025】
情報リポジトリ114は、当該技術分野で知られているように、情報を格納するための任意の揮発性又は不揮発性ストレージ媒体を使用して実装することができる。例えば、情報リポジトリ114は、テープライブラリ、光ライブラリ、1つ又は複数の独立したハードディスクドライブ、独立ディスクの冗長アレイ(RAID)内の複数のハードディスクドライブ、ソリッドステートドライブ(SSD)、又はランダムアクセスメモリ(RAM)を用いて実装することができる。同様に、情報リポジトリ114は、リレーショナルデータベース、NoSQLデータベース、オブジェクト指向データベース、又は1つ又は複数のテーブルなど、当該技術分野で知られている任意の適切なストレージ・アーキテクチャで実装することができる。
【0026】
図2は、本発明の実施形態による、異なるデバイス及び仮想モデルに基づいてディープラーニング・モデルを分割する例である。実施形態において、モデル・デプロイメント・プログラム112は、異なるデバイス及び仮想モデルに基づいてモデルを分割する。実施形態において、デプロイメントに基づいて、モデル・デプロイメント・プログラム112は、実行中にモデルを監視及び管理して、実行中にモデルが安定かつフレキシブルであることを保証する。この例では、ディープラーニング・モデル210は、そのディープラーニング・モデルがデプロイされる得るコンピューティング・デバイスの能力に基づいて分割されることになるディープラーニング・モデルを表す。
【0027】
実施形態において、モデル・デプロイメント・プログラム112は、3つの主コンポーネントを含む。第1のコンポーネントは、モデル分割エンジン220である。これは、モデルがデプロイされ得るエッジ・コンピューティング・デバイスの能力に基づいてモデルを分割する、モデル・デプロイメント・プログラム112のセクションを表す。実施形態において、同じディープラーニング・モデルが、エッジ・デバイスの異なる環境にデプロイするための複数の異なる分割を有することができる。実施形態において、モデル・デプロイメント・プログラム112は、エッジ・デバイスの異なるセットにデプロイするための1つ又は複数の仮想モデルを作成する。
【0028】
第2のコンポーネントは仮想モデルキャッシュ230である。これは、モデル・デプロイメント・プログラム112が、全体モデルを構成するためのモデルスライス、又は既存の仮想モデルを選択し、次いでデプロイメントのための候補モデルを選択する、キャッシュを表す。仮想モデルキャッシュ230は、モデル235を含む。最後の構成要素は、デバイスモニタ240である。これは、デバイスの健全性を監視し、デバイスの健全性情報で仮想キャッシュを更新する、モデル・デプロイメント・プログラム112のセクションを表す。
【0029】
図2の例において、エッジ・デバイス250は、モデル・デプロイメント・プログラム112が全体モデルの効率的な動作を可能にするためにモデルのスライスをデプロイする、エッジ・デバイスを表す。この例では、エッジ・デバイス250は、デバイス1 251、デバイス2 252、デバイス3 253、及びデバイスn 254を含む。スライスがエッジ・デバイス250に分散されると、各デバイスは、関連するスライスにデータを転送する機能を有する。このように、互いに通信可能なエッジ・デバイス間でモデルスライスを分散して元のモデルを実行することにより、全体モデルが圧縮されることなく実行される。
【0030】
図3は、本発明の実施形態によるモデル分割エンジンの一例である。実施形態において、ニューラルネットワークは、モデル分割エンジンによって異なるネットワーク層に切断され、1つの特定のネットワーク層は、関連する層とデータを交換することができる。エッジ・デバイスの異なる能力、例えば、CPU/GPU及びメモリに基づいて、モデル・デプロイメント・プログラム112は、最も適合するエッジ・デバイスにネットワーク層を動的にデプロイすることができる。例えば、より高い能力を有するエッジ・デバイスは、必要とする計算容量がより大きいスライスを実行し、より低い能力を有するエッジ・デバイスは、必要とする計算容量がより小さいスライスを実行する。
【0031】
図3の例において、ディープラーニング・モデル310は、図2のディープラーニング・モデル210を表し、スライス311、スライス312、スライス313、及びスライス314は、モデルを分割した後のディープラーニング・モデル310のスライスを表し、スライス・ジェネレータ320は、モデルがデプロイされ得るエッジ・コンピューティング・デバイスの能力に基づいてモデルを分割する、モデル・デプロイメント・プログラム112のセクション、例えば、図2のモデル分割エンジン220を表す。図3の例において、スライス311、スライス312、及びスライス313は、ディープラーニング・モデル310の3つの異なる仮想モデルを表し、スライス311、スライス312、及びスライス313の各々は、異なる容量の異なるエッジ・デバイスに対応するために異なる境界で分割されている。
【0032】
畳み込みニューラルネットワーク(CNN)のような並列化可能なネットワークの場合、モデル・デプロイメント・プログラム112は、スライスを層で分割する。並列化しにくい複雑なネットワークの場合、モデル・デプロイメント・プログラム112は、規則を追加して、ネットワークを最小の並列化可能な層に分割することができる。
【0033】
実施形態において、規則は、ディープラーニング・ネットワークのタイプに特有のものである。例えば、CNNには通常複数のネットワーク層があり、現在の層の計算結果は次の層の入力として使用されるため、層を分割することが可能である。しかし、リカレントニューラルネットワーク(RNN)では、ネットワーク層は入力の最後の状態を記憶するため、直接分割することはできない。実施形態において、RNNの場合、入力の最後の状態を記憶するために、分割された層は、その前後のスプライス層を記録し、二重にリンクされた層のネットワークを構築する。
【0034】
実施形態において、検索マッチング・リソース330は、モニタ、例えば図2のデバイスモニタ240によって収集された情報に基づいてエッジ・デバイスのサイズ及び能力を計算する、モデル・デプロイメント・プログラム112のセクションを表す。モデル・デプロイメント・プログラム112は次に、マッチングしたデバイスの利用可能なリソースに基づいてスライスを分配する。検証への規則の追加340は、コンピューティング・デバイスがモデルを適切に実行できることを保証するために規則を追加する、モデル・デプロイメント・プログラム112のセクションを表す。例えば、ある規則は、モデル・デプロイメント・プログラム112が他のタスクのためのデバイス上にいくつかの容量を割り当てる必要があり、したがって、そのデバイスにデプロイされたスライスを調整することができることを述べたものであり得る。
【0035】
実施形態において、エッジ・デバイス350は、図2のエッジ・デバイス250を表す。エッジ・デバイス350は、デバイス1 351を含み、これは図2のデバイス1 251を表す。この例では、スライス314は、モデル・デプロイメント・プログラム112によって、検索マッチング・リソース330に基づいてデバイス1 351にデプロイされる。
【0036】
図4は、本発明の実施形態による仮想モデルキャッシュの一例である。実施形態において、仮想モデルキャッシュは、推論のための仮想モデルを格納し、また、認知モデルセレクタを使用してモデルを組織化することもできる。したがって、この部分には、モデルリストと認知モデル・ジェネレータという2つの重要なコンポーネントが含まれる。
【0037】
モデルリスト410は、モデル・デプロイメント・プログラム112がディープラーニング・モデルの分析に基づいて上位n個の構成された最適モデルを記録するファイルであり、nは所定の値である。これは、本質的に、モデルキャッシュに格納された全てのモデルのリストである。実施形態において、モデルリストの各行は、1つの仮想モデルと、そのモデルを構成するスライスとを記述する。例えば、モデル1は、s1、s2、s3、s4の4つのスライスに分割される。図4の例では、s1はスロット1でデバイス1に、s2はスロット2でデバイス3に、s3はスロット1でデバイス4に、s4はスロット1でデバイス5にデプロイされる。スロットは、特定のデバイス上のスライスを見つける/配置するために使用される。
【0038】
実施形態において、モデル・デプロイメント・プログラム112は、認知モデル・ジェネレータ420を含み、これは、各モデルについて上位n個のデバイス(nは所定の値)の健全性をチェックする、モデル・デプロイメント・プログラム112のセクションである。モデル・デプロイメント・プログラム112が上位n個のデバイスの健全性に何らかの異常を検出した場合、モデル・デプロイメント・プログラム112は、異なるデバイス上で実行する新たなモデルを選択する。これは、モデルキャッシュの更新方法を決定する、モデル・デプロイメント・プログラム112のセクションである。
【0039】
図5は、本発明の実施形態によるモニタの一例である。図5の例において、デバイスモニタ510は、モデルのデプロイメントをスケジューリングするためにデバイスの健全性を収集する、モデル・デプロイメント・プログラム112のセクションを表し、CPU/GPU、ディスク、及びメモリなどのデバイスリソースも含む。これは、図2のデバイスモニタ240の一例である。実施形態において、モデル・デプロイメント・プログラム112は、スケジュールに基づいてデバイスから情報を収集し、この情報を仮想モデルキャッシュに送信する、スクリプトを使用する。実施形態において、モデル・デプロイメント・プログラム112は、デバイスモニタ用にオープンソースのデバイス監視ツールを使用してもよい。
【0040】
デバイス1 551、デバイス2 552、デバイス3 553、及びデバイスn 554は、モデル・デプロイメント・プログラム112のデバイスモニタ510によって監視されているエッジ・デバイスを表す。ハートビート520は、モデル・デプロイメント・プログラム112によるスケジュールに基づくデバイスからの情報の収集を表す。
【0041】
図6は、本発明の実施形態による、コンピューティング・デバイスに適応することによって、並列化可能なディープラーニング・モデルをデプロイするための、図1の分散型データ処理環境内のコンピューティング・デバイス上でモデル・デプロイメント・プログラム112によって実行されるモデル生成手順の動作ステップを示すフローチャートである。代替的な実施形態において、ワークフロー600のステップは、モデル・デプロイメント・プログラム112と協働しながら、他のプログラムによって実行されてもよい。
【0042】
実施形態において、モデル・デプロイメント・プログラム112は、ディープラーニング・モデルのデプロイされたスライスを実行しているデバイス、又はまだデプロイされていないディープラーニング・モデルのスライスを実行するためにサービス内に呼び出され得るデバイスの健全性を監視するために、モニタから継続的にデータを収集する。実施形態において、モデル・デプロイメント・プログラム112は、各デバイスがモデルスライスを実行するために有する容量を判断するために、特徴、例えば、GPU、ディスク速度及び容量、利用可能なメモリなどを時間ごとに符号化する。実施形態において、モデル・デプロイメント・プログラム112は、LSTMモデルを使用して、デバイスモニタによって監視されている各デバイスのリスクを予測する。実施形態において、モデル・デプロイメント・プログラム112は、デバイスがモデルを実行するには高リスクであるかどうかを判断する。実施形態において、モデル・デプロイメント・プログラム112は、モデル・デプロイメント・プログラム112のモニタ機能によるデバイス健全性の評価に基づいて、上位n個のデバイス(nは所定の数)を選択し、高リスク/不良デバイスを健全なデバイスと置き換える。実施形態において、モデル・デプロイメント・プログラム112は、次いで、ステップ610で決定されたモデルの新たな分割でモデルリスト・ファイルを更新する。実施形態において、モデル・デプロイメント・プログラム112はその後、このサイクルを終了する。
【0043】
本発明の実施形態は、少なくとも、コンピューティング・デバイスに適応することによって、並列化可能なディープラーニング・モデルをデプロイすることを提供するためのものであることを理解されたい。しかしながら、図6は、1つの実装の例示を提供するのみであり、異なる実施形態が実装され得る環境に関していかなる制限も意味しない。当業者であれば、特許請求の範囲に記載された本発明の範囲から逸脱することなく、図示された環境に多くの変更を加えることができる。
【0044】
図6に描かれているプロセスは、コンピューティング・デバイスに適応することによって並列化可能なディープラーニング・モデルをデプロイするためにモデル・デプロイメント・プログラム112によって実行される動作ステップの1つの可能な反復を示しており、これは、ディープラーニング・モデルがデプロイされるたびに繰り返されることを理解されたい。
【0045】
モデル・デプロイメント・プログラム112は、モニタ情報を収集する(ステップ602)。実施形態において、モデル・デプロイメント・プログラム112は、ディープラーニング・モデルのデプロイされたスライスを実行しているデバイス、又はまだデプロイされていないディープラーニング・モデルのスライスを実行するためにサービス内に呼び出され得るデバイスの健全性を監視するために、モニタ、例えば図2のデバイスモニタ240から継続的にデータを収集する。
【0046】
モデル・デプロイメント・プログラム112は、時間ごとに特徴(GPU、ディスクなど)を符号化する(ステップ604)。実施形態において、モデル・デプロイメント・プログラム112は、各デバイスがモデルスライスを実行するために有する容量を判断するために、特徴、例えば、CPU容量、GPU容量、ディスク速度及び容量、利用可能なメモリなどを時間ごとに符号化する。実施形態において、モデル・デプロイメント・プログラム112のモニタセクションによって使用されるタイムスライスは、所定の時間間隔である。別の実施形態において、モデル・デプロイメント・プログラム112のモニタセクションによって使用されるタイムスライスは、ユーザから受信される。さらに別の実施形態において、モデル・デプロイメント・プログラム112のモニタセクションによって使用されるタイムスライスは、当業者に知られた他の方法によって選択されてもよい。
【0047】
モデル・デプロイメント・プログラム112は、LSTMモデルを使用してデバイスのリスクを予測する(ステップ606)。実施形態において、モデル・デプロイメント・プログラム112は、LSTMモデルを使用して、デバイスモニタによって監視されている各デバイスのリスクを予測する。実施形態において、モデル・デプロイメント・プログラム112は、LSTMモデルを使用してデバイスのリスクファクタを計算する。
【0048】
実施形態において、モデル・デプロイメント・プログラム112は、LSTMモデルを訓練するために履歴のシステム監視データを使用する。実施形態において、符号化された特徴は、GPU、メモリ、ディスク消費、時系列データなどを含み得るが、これらに限定されず、ラベル付けされた結果は、デバイスの健全性状態である。実施形態において、モデル・デプロイメント・プログラム112は、LSTMを使用して、デバイスのリソース消費データに基づいてデバイスの健全性状態又はリスクを予測する。
【0049】
モデル・デプロイメント・プログラム112は、高リスクのデバイスがあるかどうかを判断する(判断ブロック608)。実施形態において、モデル・デプロイメント・プログラム112は、デバイスがモデルを実行するには高リスクであるかどうかを判断する。実施形態において、これは、デプロイされるモデルをこのデバイス上で実行することができないというリスクである。実施形態において、デバイスが健全であり、モデルを実行するのに十分な容量がある場合、リスクはない。デバイスにリスクがない場合、モデルを分割する必要はない。実施形態において、モデル・デプロイメント・プログラム112が、デバイスがモデルを実行するには高リスクでないと判断した場合(判断ブロック608、「いいえ」分岐)、モデル・デプロイメント・プログラム112は、デバイスにモデルをデプロイする。モデル・デプロイメント・プログラム112はその後、このサイクルを終了する。実施形態において、モデル・デプロイメント・プログラム112が、デバイスがモデルを実行するには高リスクであると判断した場合(判断ブロック608、「はい」分岐)、モデル・デプロイメント・プログラム112はステップ610に進み、モデルを分割する。
【0050】
モデル・デプロイメント・プログラム112は、デバイスの健全性に基づいて上位n個のデバイスを選択し、置き換える(ステップ610)。実施形態において、モデル・デプロイメント・プログラム112が、ステップ606で判定された任意のデバイスのリスクファクタが所定の閾値を超えると判断した場合、モデル・デプロイメント・プログラム112は、そのデバイスを不良デバイスとしてマークする。実施形態において、モデル・デプロイメント・プログラム112は、次に、モデル・デプロイメント・プログラム112のモニタ機能によるデバイス健全性の評価に基づいて、上位n個のデバイス(nは所定の数)を選択し、高リスク/不良デバイスを健全なデバイスと置き換える。実施形態において、モデル・デプロイメント・プログラム112は、最も低いリスクファクタを有するデバイスを選択することによって上位n個のデバイスを決定する。実施形態において、モデル・デプロイメント・プログラム112は、利用可能なデバイスのリストから高リスク/不良デバイスを削除する。
【0051】
モデル・デプロイメント・プログラム112は、モデルリスト・ファイルを更新する(ステップ612)。実施形態において、モデル・デプロイメント・プログラム112は次に、ステップ610で決定されたモデルの新たな分割で、モデルリスト・ファイル、例えば図4のモデルリスト410を更新する。実施形態において、モデル・デプロイメント・プログラム112はその後、このサイクルを終了する。
【0052】
図7は、本発明の少なくとも1つの実施形態による、モデル・デプロイメント・プログラム112に適したコンピューティング・デバイス110のコンポーネントを示すブロック図である。図7は、コンピュータ700、1つ又は複数のプロセッサ704(1つ又は複数のコンピュータプロセッサを含む)、通信ファブリック702、ランダムアクセスメモリ(RAM)716及びキャッシュ718を含むメモリ706、永続ストレージ708、通信ユニット712、I/Oインターフェース714、ディスプレイ722、及び外部デバイス720を示す。図7は、一実施形態の例示に過ぎず、異なる実施形態が実装され得る環境に関していかなる制限をも意味するものではないことを理解されたい。図示されている環境に対する多くの変更を加えることができる。
【0053】
図示されているように、コンピュータ700は、コンピュータプロセッサ704、メモリ706、永続ストレージ708、通信ユニット712、及びI/Oインターフェース714間の通信を提供する通信ファブリック702上で動作する。通信ファブリック702は、プロセッサ704(例えば、マイクロプロセッサ、通信プロセッサ、及びネットワークプロセッサ)、メモリ706、外部デバイス720、及びシステム内の任意の他のハードウェアコンポーネントの間でデータ又は制御情報を渡すのに適した任意のアーキテクチャで実装することができる。例えば、通信ファブリック702は、1つ又は複数のバスで実装することができる。
【0054】
メモリ706及び永続ストレージ708は、コンピュータ可読ストレージ媒体である。図示された実施形態において、メモリ706は、RAM716及びキャッシュ718を含む。一般に、メモリ706は、任意の適切な揮発性又は不揮発性のコンピュータ可読ストレージ媒体を含むことができる。キャッシュ718は、ごく最近アクセスされたデータ、及び最近アクセスデータをRAM716から保持することによってプロセッサ704の性能を高める高速メモリである。
【0055】
モデル・デプロイメント・プログラム112のプログラム命令は、メモリ706の1つ又は複数のメモリを介したそれぞれのコンピュータプロセッサ704の1つ又は複数による実行のために、永続ストレージ708、又はより一般的には、任意のコンピュータ可読ストレージ媒体に格納されることができる。永続ストレージ708は、磁気ハードディスクドライブ、ソリッドステートディスクドライブ、半導体ストレージデバイス、読出し専用メモリ(ROM)、電子的消去可能プログラム可能読出し専用メモリ(EEPROM)、フラッシュメモリ、又はプログラム命令もしくはデジタル情報を格納することができる他の任意のコンピュータ可読ストレージ媒体とすることができる。
【0056】
永続ストレージ708が使用する媒体は、リムーバブルであってもよい。例えば、リムーバブルハードドライブを永続ストレージ708に使用することができる。他の例としては、永続ストレージ708の一部でもある別のコンピュータ可読ストレージ媒体上に転送するためにドライブに挿入される光及び磁気ディスク、サムドライブ、及びスマートカードが挙げられる。
【0057】
通信ユニット712は、これらの例では、他のデータ処理システム又はデバイスとの通信を提供する。これらの例において、通信ユニット712は、1つ又は複数のネットワークインターフェースカードを含む。通信ユニット712は、物理通信リンク及び無線通信リンクのいずれか一方又は両方の使用を通じて通信を提供することができる。本発明のいくつかの実施形態の文脈において、様々な入力データのソースは、コンピュータ700に対して物理的に遠隔であってもよく、通信ユニット712を介して入力データを受信することができ、出力も同様に送信されるようになっている。
【0058】
I/Oインターフェース714は、コンピュータ700に接続することができる他のデバイスとの間でのデータの入出力を可能にする。例えば、I/Oインターフェース714は、キーボード、キーパッド、タッチスクリーン、マイクロフォン、デジタルカメラ、もしくは他の適切な入力デバイス又はそれらの組合せなどの外部デバイス720への接続を提供することができる。外部デバイス720は、例えば、サムドライブ、ポータブル光又は磁気ディスク、及びメモリカードなどのポータブルコンピュータ可読ストレージ媒体も含むことができる。本発明の実施形態を実施するために使用されるソフトウェア及びデータ、例えば、モデル・デプロイメント・プログラム112は、このようなポータブルコンピュータ可読ストレージ媒体に格納することができ、I/Oインターフェース714を介して永続ストレージ708にロードすることができる。I/Oインターフェース714はディスプレイ722にも接続する。
【0059】
ディスプレイ722は、ユーザにデータを表示する機構を提供し、例えば、コンピュータモニタとすることができる。ディスプレイ722は、タブレット・コンピュータのディスプレイのようなタッチスクリーンとして機能することもできる。
【0060】
本明細書で説明するプログラムは、本発明の特定の実施形態で実施される用途に基づいて識別される。しかしながら、本明細書におけるあらゆる特定のプログラムの命名法は、単に便宜のために使用されており、したがって、本発明は、そのような命名法によって明示もしくは暗示又は明示及び暗示されるいずれかの特定の用途における使用のみに限定されるべきではないことを理解されたい。
【0061】
本発明は、システム、方法、もしくはコンピュータプログラム製品又はそれらの組合せとすることができる。コンピュータプログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有する1つ又は複数のコンピュータ可読ストレージ媒体を含むことができる。
【0062】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のために命令を保持及び格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁気ストレージデバイス、半導体ストレージデバイス、又は上記のものの任意の適切な組合せとすることができるがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、静的ランダムアクセスメモリ(SRAM)、ポータブル・コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリスティック、フロッピーディスク、記録された命令を有するパンチカードもしくは溝内に隆起した構造等の機械式符号化デバイス、及び上記のものの任意の適切な組合せを含む。コンピュータ可読ストレージ媒体は、本明細書で用いられる場合、無線波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通って伝搬する電磁波(例えば光ファイバケーブルを通る光パルス)、又は電線を通って伝送される電気信号のような一時的な信号自体と解釈すべきではない。
【0063】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスにダウンロードすることも、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークもしくは無線ネットワーク又はそれらの組合せを経由して、外部コンピュータもしくは外部ストレージデバイスにダウンロードすることもできる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジサーバ又はそれらの組合せを含むことができる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カード又はネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラム命令をそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体にストレージのために転送する。
【0064】
本発明のオペレーションを実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Smalltalk、C++などのオブジェクト指向プログラミング言語、及び「C」プログラミング言語などの従来の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組合せで記述されたソースコード又はオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータもしくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続が行われる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えばプログラム可能論理回路、フィールドプログラム可能ゲートアレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することにより、コンピュータ可読プログラム命令を実行することができる。
【0065】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図もしくはブロック図又はその両方を参照して説明される。フローチャート図もしくはブロック図又はその両方の各ブロック、並びにフローチャート図もしくはブロック図又はその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実装することができることが理解されるであろう。
【0066】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロック内で指定された機能/動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、もしくは他のデバイス又はそれらの組合せを特定の方式で機能させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、それにより、その中に格納された命令を有するコンピュータ可読媒体が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製品を含むようにすることもできる。
【0067】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置又は他のデバイス上にロードして、一連のオペレーションステップをコンピュータ、他のプログラム可能データ処理装置又は他のデバイス上で行わせてコンピュータ実装のプロセスを生成し、それにより、コンピュータ、他のプログラム可能装置又は他のデバイス上で実行される命令が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロックにおいて指定された機能/動作を実装するようにすることもできる。
【0068】
図面内のフローチャート及びブロック図は、本開示の種々の実施形態による、システム、方法、及びコンピュータプログラム製品の可能な実装の、アーキテクチャ、機能及びオペレーションを示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図中に記された順序とは異なる順序で行われることがある。例えば、連続して示された2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図もしくはフローチャート図又はその両方の各ブロック、及びブロック図もしくはフローチャート図又はその両方の中のブロックの組合せは、指定された機能又は動作を実行する専用ハードウェア・ベースのシステムによって実装することもでき、又は専用ハードウェアとコンピュータ命令との組合せを実行することもできることにも留意されたい。
【0069】
本発明の種々の実施形態の説明は、例証の目的で提示したものであるが、網羅的であることも、又は開示された実施形態に限定することも意図しない。本発明の範囲から逸脱することなく、多くの修正及び変形が当業者には明らかであろう。本明細書で用いる用語は、実施形態の原理、実際的な用途、もしくは市場において見いだされる技術に優る技術的改善を最も良く説明するように、又は当業者が本明細書で開示される実施形態を理解することを可能にするように、選択されたものである。

図1
図2
図3
図4
図5
図6
図7
【手続補正書】
【提出日】2023-11-06
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つ又は複数のコンピュータプロセッサによって、ディープラーニング・モデルを複数のスライスに分割することであって、前記複数のスライスの各スライスは、データを前記複数のスライスのうちの1つ又は複数の関連するスライスと交換することができる、分割することと、
前記1つ又は複数のコンピュータプロセッサによって、前記複数のスライスから1つ又は複数の仮想モデルを作成することであって、前記1つ又は複数の仮想モデルは、前記1つ又は複数の仮想モデルがデプロイされる複数のデバイスの能力に基づくものであり、さらに、前記複数の仮想モデルの各仮想モデルは、前記複数のスライスの各スライスを含む、作成することと、
前記1つ又は複数のコンピュータプロセッサによって、前記1つ又は複数の仮想モデルをキャッシュに格納することと、
前記ディープラーニング・モデルが前記複数のデバイスのうちの1つ又は複数のデバイス上にデプロイされると決定したことに応答して、前記1つ又は複数のコンピュータプロセッサによって、前記キャッシュ内の前記1つ又は複数の仮想モデルから候補モデルを選択することであって、選択は、前記複数のデバイスのうちの前記1つ又は複数のデバイスに関するデバイスモニタからの情報に基づくものである、選択することと、
前記1つ又は複数のコンピュータプロセッサによって、前記候補モデルを前記複数のデバイスのうちの前記1つ又は複数のデバイスにデプロイすることと、
を含むコンピュータ実装方法。
【請求項2】
前記ディープラーニング・モデルを前記複数のスライスに分割することであって、前記複数のスライスの各スライスは、データを前記1つ又は複数の関連するスライスと交換することができる、分割することは、
前記1つ又は複数のコンピュータプロセッサによって、前記ディープラーニング・モデルを前記複数のスライスに分割することであって、各スライスは、前記ディープラーニング・モデルの複数の異なるネットワーク層のうちの異なるネットワーク層である、分割すること
を含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ディープラーニング・モデルを前記複数のスライスに分割することであって、前記複数のスライスの各スライスは、データを前記1つ又は複数の関連するスライスと交換することができる、分割することは、
前記ディープラーニング・モデルが容易に並列化可能でないと判断したことに応答して、前記1つ又は複数のコンピュータプロセッサによって、前記ディープラーニング・モデルを所定の規則のセットに基づいて前記複数のスライスに分割することであって、前記所定の規則のセットは、前記ディープラーニング・モデルを複数の最小の並列化可能な層に分割する、分割すること
を含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記ディープラーニング・モデルが前記複数のデバイスのうちの前記1つ又は複数のデバイス上にデプロイされると決定したことに応答して、前記キャッシュ内の前記1つ又は複数の仮想モデルから前記候補モデルを選択することであって、前記選択は、前記複数のデバイスのうちの前記1つ又は複数のデバイスに関する前記デバイスモニタからの前記情報に基づくものである、選択することは、
前記1つ又は複数のコンピュータプロセッサによって、前記ディープラーニング・モデルをデプロイすることができる前記複数のデバイスから前記デバイスモニタによって前記情報を収集することと、
前記1つ又は複数のコンピュータプロセッサによって、タイムスライスごとに前記複数のデバイスの特徴を符号化することであって、前記特徴は、中央処理装置(CPU)容量、画像処理装置(GPU)容量、及びディスク容量のうちの少なくとも1つを含み、さらに、前記タイムスライスは所定の時間間隔である、符号化することと、
前記1つ又は複数のコンピュータプロセッサによって、前記複数のデバイスの各デバイスのリスクファクタを予測することであって、前記リスクファクタは、長・短期記憶(LSTM)モデルを使用して予測される、予測することと、
前記複数のデバイスのいずれかのデバイスの前記リスクファクタが所定の閾値を超えると判断したことに応答して、前記1つ又は複数のコンピュータプロセッサによって、前記複数のデバイスのうちの上位n個のデバイスを選択することであって、nは所定の数であり、さらに、前記上位n個のデバイスは最も低いリスクファクタを有する、選択することと、
前記複数のデバイスのうちの前記上位n個のデバイスを選択したことに応答して、前記1つ又は複数のコンピュータプロセッサによって、前記複数のスライスから1つ又は複数の新たな仮想モデルを作成することであって、前記1つ又は複数の新たな仮想モデルは、前記複数のデバイスのうちの前記上位n個のデバイスの能力に基づくものである、作成することと、
前記1つ又は複数のコンピュータプロセッサによって、前記1つ又は複数の新たな仮想モデルで前記キャッシュを更新することと
を含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記デバイスモニタは、タイムスケジュールに従って前記複数のデバイスから前記情報を収集する、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記1つ又は複数のコンピュータプロセッサによって、前記候補モデルを前記複数のデバイスのうちの前記1つ又は複数のデバイスにデプロイすることは、
前記1つ又は複数のコンピュータプロセッサによって、前記複数のデバイスの各デバイスの健全性を監視することと、
前記複数のデバイスのいずれかのデバイスの前記健全性が所定の閾値を下回ると判断したことに応答して、前記1つ又は複数のコンピュータデバイスによって、前記いずれかのデバイスを不良デバイスとしてマークすることと、
前記1つ又は複数のコンピュータプロセッサによって、前記複数のデバイスから前記不良デバイスを削除することと、
前記1つ又は複数のコンピュータプロセッサによって、前記不良デバイスを含まない新たな仮想モデルを作成することと、
前記1つ又は複数のコンピュータプロセッサによって、前記新たな仮想モデルを前記複数のデバイスのうちの前記1つ又は複数のデバイスにデプロイすることと、
前記1つ又は複数のコンピュータプロセッサによって、前記新たな仮想モデルで前記キャッシュを更新することと
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記複数のスライスから1つ又は複数の仮想モデルを作成することであって、前記1つ又は複数の仮想モデルは、前記1つ又は複数の仮想モデルがデプロイされる複数のデバイスの能力に基づくものであり、さらに、前記複数の仮想モデルの各仮想モデルは、前記複数のスライスの各スライスを含む、作成することは、
前記1つ又は複数のコンピュータプロセッサによって、前記1つ又は複数の仮想モデルが前記ディープラーニング・モデルとマッチすることを確認することであって、前記1つ又は複数の仮想モデルが前記ディープラーニング・モデルとマッチすることを確認することは、1つ又は複数の所定の検証規則によって判断される、確認すること
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
請求項1から請求項7までのいずれか1項に記載の方法をコンピュータに実行させるコンピュータ可読プログラム命令を含むコンピュータ・プログラム。
【請求項9】
請求項8に記載のコンピュータ・プログラムを格納したコンピュータ可読ストレージ媒体。
【請求項10】
1つ又は複数のコンピュータプロセッサと、
1つ又は複数のコンピュータ可読ストレージ媒体と、
前記1つ又は複数のコンピュータプロセッサの少なくとも1つによる実行のために、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令と
を含むコンピュータシステムであって、格納された前記プログラム命令は、
ディープラーニング・モデルを複数のスライスに分割することであって、前記複数のスライスの各スライスは、データを前記複数のスライスのうちの1つ又は複数の関連するスライスと交換することができる、分割することと、
前記複数のスライスから1つ又は複数の仮想モデルを作成することであって、前記1つ又は複数の仮想モデルは、前記1つ又は複数の仮想モデルがデプロイされる複数のデバイスの能力に基づくものであり、さらに、前記複数の仮想モデルの各仮想モデルは、前記複数のスライスの各スライスを含む、作成することと、
前記1つ又は複数の仮想モデルをキャッシュに格納することと、
前記ディープラーニング・モデルが前記複数のデバイスのうちの1つ又は複数のデバイス上にデプロイされると決定したことに応答して、前記1つ又は複数のコンピュータプロセッサによって、前記キャッシュ内の前記1つ又は複数の仮想モデルから候補モデルを選択することであって、選択は、前記複数のデバイスのうちの前記1つ又は複数のデバイスに関するデバイスモニタからの情報に基づくものである、選択することと、
前記候補モデルを前記複数のデバイスのうちの前記1つ又は複数のデバイスにデプロイすることと、
のための命令を含む、コンピュータシステム。
【請求項11】
前記ディープラーニング・モデルを前記複数のスライスに分割することであって、前記複数のスライスの各スライスは、データを前記1つ又は複数の関連するスライスと交換することができる、分割することは、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令であって、
前記ディープラーニング・モデルを前記複数のスライスに分割することであって、各スライスは、前記ディープラーニング・モデルの複数の異なるネットワーク層のうちの異なるネットワーク層である、分割すること
のためのプログラム命令の1つ又は複数を含む、請求項10に記載のコンピュータシステム。
【請求項12】
前記ディープラーニング・モデルを前記複数のスライスに分割することであって、前記複数のスライスの各スライスは、データを前記1つ又は複数の関連するスライスと交換することができる、分割することは、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令であって、
前記ディープラーニング・モデルが容易に並列化可能でないと判断したことに応答して、前記ディープラーニング・モデルを所定の規則のセットに基づいて前記複数のスライスに分割することであって、前記所定の規則のセットは、前記ディープラーニング・モデルを複数の最小の並列化可能な層に分割する、分割すること
のためのプログラム命令の1つ又は複数を含む、請求項10に記載のコンピュータシステム。
【請求項13】
前記ディープラーニング・モデルが前記複数のデバイスのうちの前記1つ又は複数のデバイス上にデプロイされると決定したことに応答して、前記キャッシュ内の前記1つ又は複数の仮想モデルから前記候補モデルを選択することであって、前記選択は、前記複数のデバイスのうちの前記1つ又は複数のデバイスに関する前記デバイスモニタからの前記情報に基づくものである、選択することは、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令であって、
前記ディープラーニング・モデルをデプロイすることができる前記複数のデバイスから前記デバイスモニタによって前記情報を収集することと、
タイムスライスごとに前記複数のデバイスの特徴を符号化することであって、前記特徴は、中央処理装置(CPU)容量、画像処理装置(GPU)容量、及びディスク容量のうちの少なくとも1つを含み、さらに、前記タイムスライスは所定の時間間隔である、符号化することと、
前記複数のデバイスの各デバイスのリスクファクタを予測することであって、前記リスクファクタは、長・短期記憶(LSTM)モデルを使用して予測される、予測することと、
前記複数のデバイスのいずれかのデバイスの前記リスクファクタが所定の閾値を超えると判断したことに応答して、前記複数のデバイスのうちの上位n個のデバイスを選択することであって、nは所定の数であり、さらに、前記上位n個のデバイスは最も低いリスクファクタを有する、選択することと、
前記複数のデバイスのうちの前記上位n個のデバイスを選択したことに応答して、前記複数のスライスから1つ又は複数の新たな仮想モデルを作成することであって、前記1つ又は複数の新たな仮想モデルは、前記複数のデバイスのうちの前記上位n個のデバイスの能力に基づくものである、作成することと、
前記1つ又は複数の新たな仮想モデルで前記キャッシュを更新することと
のためのプログラム命令の1つ又は複数を含む、請求項10に記載のコンピュータシステム。
【請求項14】
前記候補モデルを前記複数のデバイスのうちの前記1つ又は複数のデバイスにデプロイすることは、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令であって、
前記複数のデバイスの各デバイスの健全性を監視することと、
前記複数のデバイスのいずれかのデバイスの前記健全性が所定の閾値を下回ると判断したことに応答して、前記いずれかのデバイスを不良デバイスとしてマークすることと、
前記複数のデバイスから前記不良デバイスを削除することと、
前記不良デバイスを含まない新たな仮想モデルを作成することと、
前記新たな仮想モデルを前記複数のデバイスのうちの前記1つ又は複数のデバイスにデプロイすることと、
前記新たな仮想モデルで前記キャッシュを更新することと
のためのプログラム命令の1つ又は複数をさらに含む、請求項10に記載のコンピュータシステム。
【請求項15】
前記複数のスライスから1つ又は複数の仮想モデルを作成することであって、前記1つ又は複数の仮想モデルは、前記1つ又は複数の仮想モデルがデプロイされる複数のデバイスの能力に基づくものであり、さらに、前記複数の仮想モデルの各仮想モデルは、前記複数のスライスの各スライスを含む、作成することは、前記1つ又は複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令であって、
前記1つ又は複数の仮想モデルが前記ディープラーニング・モデルとマッチすることを確認することであって、前記1つ又は複数の仮想モデルが前記ディープラーニング・モデルとマッチすることを確認することは、1つ又は複数の所定の検証規則によって判断される、確認すること
のためのプログラム命令の1つ又は複数をさらに含む、請求項10に記載のコンピュータシステム。
【国際調査報告】