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

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

▶ 富士通クライアントコンピューティング株式会社の特許一覧

特開2022-90867情報処理装置、プログラムおよび情報処理システム
<>
  • 特開-情報処理装置、プログラムおよび情報処理システム 図1
  • 特開-情報処理装置、プログラムおよび情報処理システム 図2
  • 特開-情報処理装置、プログラムおよび情報処理システム 図3
  • 特開-情報処理装置、プログラムおよび情報処理システム 図4
  • 特開-情報処理装置、プログラムおよび情報処理システム 図5
  • 特開-情報処理装置、プログラムおよび情報処理システム 図6
  • 特開-情報処理装置、プログラムおよび情報処理システム 図7
  • 特開-情報処理装置、プログラムおよび情報処理システム 図8
  • 特開-情報処理装置、プログラムおよび情報処理システム 図9
  • 特開-情報処理装置、プログラムおよび情報処理システム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022090867
(43)【公開日】2022-06-20
(54)【発明の名称】情報処理装置、プログラムおよび情報処理システム
(51)【国際特許分類】
   G06F 9/50 20060101AFI20220613BHJP
   G06F 11/07 20060101ALI20220613BHJP
【FI】
G06F9/50 150Z
G06F11/07 196
G06F11/07 140A
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2020203429
(22)【出願日】2020-12-08
(71)【出願人】
【識別番号】518133201
【氏名又は名称】富士通クライアントコンピューティング株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】特許業務法人扶桑国際特許事務所
(72)【発明者】
【氏名】石田 智弘
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042MA08
5B042MC22
(57)【要約】
【課題】処理の停止時間を短縮することができる。
【解決手段】情報処理装置10は、学習済みモデルを実行する計算装置1a,1b,・・・を監視する。そして、情報処理装置10は、第1モデルを実行する第1計算装置の第1モデルを実行するためのリソース不足が検出された場合、第2計算装置に、第1モデルのパラメータの精度を下げた第1量子化モデルを実行させる。
【選択図】図1
【特許請求の範囲】
【請求項1】
学習済みモデルを実行する複数の計算装置を監視し、前記複数の計算装置のうちの第1モデルを実行する第1計算装置の前記第1モデルを実行するためのリソース不足が検出された場合、前記複数の計算装置のうちの第2計算装置に、前記第1モデルのパラメータの精度を下げた第1量子化モデルを実行させる処理部、
を有する情報処理装置。
【請求項2】
前記処理部は、前記第1計算装置の故障による前記リソース不足が検出された場合、前記第1量子化モデルを、前記複数の計算装置のうち、前記第1計算装置以外の前記第2計算装置に実行させる、
請求項1記載の情報処理装置。
【請求項3】
前記処理部は、前記リソース不足が検出された場合、前記第2計算装置の空きリソース量に基づいて、前記第2計算装置が前記第1モデルを実行可能か否かを判定し、前記第2計算装置が前記第1モデルを実行可能の場合、前記第2計算装置に前記第1モデルを実行させ、前記第2計算装置が前記第1モデルを実行不可能の場合、前記第2計算装置に前記第1量子化モデルを実行させる、
請求項2記載の情報処理装置。
【請求項4】
前記処理部は、前記リソース不足が検出された場合、前記第2計算装置の空きリソース量に基づいて、前記第2計算装置が前記第1量子化モデルを実行可能か否かを判定し、前記第2計算装置が前記第1量子化モデルを実行可能の場合、前記第2計算装置に前記第1量子化モデルを実行させ、前記第2計算装置が前記第1量子化モデルを実行不可能の場合、前記第2計算装置に、前記第2計算装置が実行する第2モデルの実行を停止させ、前記第1量子化モデルと前記第2モデルのパラメータの精度を下げた第2量子化モデルとを実行させる、
請求項2または3記載の情報処理装置。
【請求項5】
前記処理部は、前記複数の計算装置が実行する学習済みモデルそれぞれの優先度に基づいて前記第2計算装置を決定する、
請求項2ないし4のいずれかに記載の情報処理装置。
【請求項6】
コンピュータに、
学習済みモデルを実行する複数の計算装置を監視し、
前記複数の計算装置のうちの第1モデルを実行する第1計算装置の前記第1モデルを実行するためのリソース不足が検出された場合、前記複数の計算装置のうちの第2計算装置に、前記第1モデルのパラメータの精度を下げた第1量子化モデルを実行させる、
処理を実行させるプログラム。
【請求項7】
学習済みモデルを実行する複数の計算装置と、
前記複数の計算装置を監視し、前記複数の計算装置のうちの第1モデルを実行する第1計算装置の前記第1モデルを実行するためのリソース不足が検出された場合、前記複数の計算装置のうちの第2計算装置に、前記第1モデルのパラメータの精度を下げた第1量子化モデルを実行させる情報処理装置と、
を有する情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、プログラムおよび情報処理システムに関する。
【背景技術】
【0002】
近年、AI(Artificial Intelligence)を用いた推論処理や画像処理が普及している。このような推論処理や画像処理は、複数の計算装置を有するシステムで実行されることが多い。例えば、複数の計算装置それぞれは、多段階の処理の各段階の処理などを実行する。
【0003】
複数の計算装置を用いた処理に関する技術としては、例えば、処理負荷を適宜分散させ、推論処理を効率的に行う推論処理システムが提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第6614373号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
複数の計算装置を有するシステムにおいて、故障などによるリソース不足で計算装置が処理を実行できなくなることがある。リソース不足となった計算装置が実行していた処理が、当該計算装置が復旧するまで停止していると、処理の停止時間が長くなる。
【0006】
1つの側面では、本件は、処理の停止時間を短縮することを目的とする。
【課題を解決するための手段】
【0007】
1つの案では、処理部を有する情報処理装置が提供される。処理部は、学習済みモデルを実行する複数の計算装置を監視し、複数の計算装置のうちの第1モデルを実行する第1計算装置の第1モデルを実行するためのリソース不足が検出された場合、複数の計算装置のうちの第2計算装置に、第1モデルのパラメータの精度を下げた第1量子化モデルを実行させる。
【発明の効果】
【0008】
1態様によれば、処理の停止時間を短縮することができる。
【図面の簡単な説明】
【0009】
図1】第1の実施の形態に係る情報処理システムの一例を示す図である。
図2】第2の実施の形態に係る情報処理システムの一例を示す図である。
図3】情報処理装置および計算装置のハードウェアの一構成例を示す図である。
図4】情報処理装置および計算装置の機能例を示すブロック図である。
図5】モデルリストの一例を示す図である。
図6】量子化の一例を示す図である。
図7】実行管理処理の一例を示す図である。
図8】代替実行指示の一例を示すシーケンス図である。
図9】実行管理処理の手順の一例を示すフローチャートである。
図10】モデルの処理内容とモデルの優先度との関係の一例を示す図である。
【発明を実施するための形態】
【0010】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理システムの一例を示す図である。第1の実施の形態は、計算装置1a,1b,・・・による学習済みモデルの実行を管理するものである。
【0011】
第1の実施の形態の情報処理システムは、計算装置1a,1b,・・・と情報処理装置10とを有する。計算装置1a,1b,・・・は、学習済みモデルを実行するコンピュータである。学習済みモデルは、入力に対して好ましい出力となるよう機械学習によってパラメータを調整されたモデルである。例えば、学習済みモデルは、重みが調整されたニューラルネットワークである。また、計算装置1a,1b,・・・は、並列処理のためのコプロセッサを有していてもよい。情報処理装置10は、計算装置1a,1b,・・・による学習済みモデルの実行を管理するコンピュータである。情報処理装置10は、処理部11を有する。例えば、処理部11は、情報処理装置10が有するプロセッサ、または演算回路である。
【0012】
処理部11は、計算装置1a,1b,・・・を監視する。例えば、処理部11は、計算装置1a,1b,・・・それぞれのリソースの使用状況の取得や、計算装置1a,1b,・・・それぞれの異常の検出をする。計算装置1a,1b,・・・それぞれのリソースは、例えば、計算装置1a,1b,・・・それぞれが有するメモリ、プロセッサ、コプロセッサ等である。
【0013】
処理部11は、計算装置1a,1b,・・・のうちの第1モデルを実行する第1計算装置の第1モデルを実行するためのリソース不足が検出された場合、計算装置1a,1b,・・・のうちの第2計算装置に第1量子化モデルを実行させる。第1量子化モデルは、第1モデルのパラメータの精度を下げたモデルである。例えば、第1量子化モデルのパラメータは、第1モデルのパラメータが、第1モデルのパラメータのデータ型よりも小さいサイズのデータ型で表現されたものである。ここで、第1計算装置と第2計算装置とは、同じ計算装置であってもよいし別の計算装置であってもよい。ただし、処理部11は、第1計算装置の故障によるリソース不足が検出された場合、計算装置1a,1b,・・・のうち、第1計算装置以外の第2計算装置に、以下のように代替実行指示をする。
【0014】
処理部11は、第2計算装置の空きリソース量に基づいて、第2計算装置が第1モデルを実行可能か否かを判定する。第2計算装置の空きリソース量は、第2計算装置が最大で使用可能なリソース量と第2計算装置が使用しているリソース量との差である。
【0015】
例えば、処理部11は、第2計算装置の空きリソース量と、第2計算装置が第1モデルを実行する場合に使用するリソース量(第1モデルリソース量)とを比較する。処理部11は、第2計算装置の空きリソース量が第1モデルリソース量以上(空きリソース量≧第1モデルリソース量)の場合、第2計算装置が第1モデルを実行可能と判定する。また、処理部11は、第2計算装置の空きリソース量が第1モデルリソース量未満(第1モデルリソース量>空きリソース量)の場合、第2計算装置が第1モデルを実行不可能と判定する。処理部11は、第2計算装置が第1モデルを実行可能の場合、第2計算装置に第1モデルを実行させる。
【0016】
処理部11は、第2計算装置が第1モデルを実行不可能の場合、第2計算装置の空きリソース量に基づいて、第2計算装置が第1量子化モデルを実行可能か否かを判定する。例えば、処理部11は、第2計算装置の空きリソース量と、第2計算装置が第1量子化モデルを実行する場合に使用するリソース量(第1量子化モデルリソース量)とを比較する。処理部11は、第2計算装置の空きリソース量が第1量子化モデルリソース量以上(空きリソース量≧第1量子化モデルリソース量)の場合、第2計算装置が第1量子化モデルを実行可能と判定する。また、処理部11は、第2計算装置の空きリソース量が第1量子化モデルリソース量未満(第1量子化モデルリソース量>空きリソース量)の場合、第2計算装置が第1モデルを実行不可能と判定する。処理部11は、第2計算装置が第1量子化モデルを実行可能の場合、第2計算装置に第1量子化モデルを実行させる。
【0017】
処理部11は、第2計算装置が第1量子化モデルを実行不可能の場合、第2計算装置に、第2計算装置が実行する第2モデルの実行を停止させ、第1量子化モデルと第2量子化モデルとを実行させる。第2量子化モデルは、第2モデルのパラメータの精度を下げたモデルである。例えば、第2量子化モデルのパラメータは、第2モデルのパラメータが、第2モデルのパラメータのデータ型よりも小さいサイズのデータ型で表現されたものである。
【0018】
第1の実施の形態によれば、情報処理装置10の処理部11は、学習済みモデルを実行する計算装置1a,1b,・・・を監視する。そして、処理部11は、第1モデルを実行する第1計算装置の第1モデルを実行するためのリソース不足が検出された場合、第2計算装置に、第1モデルのパラメータの精度を下げた第1量子化モデルを実行させる。
【0019】
これにより、情報処理装置10は、第1計算装置のリソース不足が解消されるより前に、第1計算装置が実行していた処理を第2計算装置に実行させることができる。よって、情報処理装置10は、第1計算装置が実行していた処理の停止時間を短縮できる。
【0020】
また、処理部11は、第1計算装置の故障によるリソース不足が検出された場合、第1量子化モデルを、計算装置1a,1b,・・・のうち、第1計算装置以外の第2計算装置に実行させる。これにより、情報処理装置10は、第2計算装置に第1モデルを実行するためのリソースの余裕がない場合であっても、第1計算装置が実行していた処理を第2計算装置に実行させることができる。
【0021】
また、処理部11は、第1計算装置の第1モデルを実行するためのリソース不足が検出された場合、第2計算装置の空きリソース量に基づいて、第2計算装置が第1モデルを実行可能か否かを判定する。処理部11は、第2計算装置が第1モデルを実行可能の場合、第2計算装置に第1モデルを実行させる。処理部11は、第2計算装置が第1モデルを実行不可能の場合、第2計算装置に第1量子化モデルを実行させる。これにより、情報処理装置10は、第2計算装置のリソースに余裕がある場合、第1計算装置が実行していた処理の精度を低下させずに第2計算装置に実行させることができる。
【0022】
また、処理部11は、第1計算装置の第1モデルを実行するためのリソース不足が検出された場合、第2計算装置の空きリソース量に基づいて、第2計算装置が第1量子化モデルを実行可能か否かを判定する。処理部11は、第2計算装置が第1量子化モデルを実行可能の場合、第2計算装置に第1量子化モデルを実行させる。処理部11は、第2計算装置が第1量子化モデルを実行不可能の場合、第2計算装置に、第2計算装置が実行する第2モデルの実行を停止させ、第1量子化モデルと第2モデルのパラメータの精度を下げた第2量子化モデルとを実行させる。これにより、情報処理装置10は、第2計算装置に第1量子化モデルを実行するためのリソースの余裕がない場合であっても、第1計算装置が実行していた処理を第2計算装置に実行させることができる。
【0023】
なお、処理部11は、計算装置1a,1b,・・・が実行する学習済みモデルそれぞれの優先度に基づいて第2計算装置を決定してもよい。これにより、情報処理装置10は、計算装置1a,1b,・・・のうち比較的重要でない処理を実行している計算装置に第1計算装置が実行していた処理を実行させることができる。
【0024】
〔第2の実施の形態〕
次に、第2の実施の形態について説明する。第2の実施の形態は、複数の計算装置の学習済みモデルの実行を管理するものである。
【0025】
図2は、第2の実施の形態に係る情報処理システムの一例を示す図である。第2の実施の形態の情報処理システムは、情報処理装置100、計算装置200-1,200-2,200-3,200-4,200-5,200-6およびPCIe(Peripheral Component Interconnect express:登録商標)ブリッジボード300を有する。なお、第2の実施の形態の計算装置は計算装置200-1~200-6の6台としているが、任意の台数の計算装置がPCIeブリッジボード300に接続可能である。
【0026】
情報処理装置100は、計算装置200-1~200-6にAI推論処理や画像処理の学習済みモデルで示される処理を実行させ、AI推論処理や画像処理の結果を用いたサービスを提供するコンピュータである。例えば、情報処理装置100は、動画から不審者を検出するサービスを提供する。なお、以下では、学習済みモデルをモデルといい、モデルで示される処理を実行することをモデルを実行するという。
【0027】
情報処理装置100は、計算装置200-1~200-6のモデルの実行状況を監視する。そして、情報処理装置100は、計算装置200-1~200-6のいずれかが故障した場合、故障した計算装置以外の計算装置に、故障した計算装置が実行していた処理を代替実行させる。また、情報処理装置100は、プロセッサ101を有する。
【0028】
計算装置200-1~200-6は、情報処理装置100の指示に従って、AI推論処理や画像処理のモデルを実行する。なお、計算装置200-1~200-6は、それぞれ別のモデルを実行していてもよいし、計算装置200-1~200-6の一部が同じモデルを実行していてもよい。また、計算装置200-1~200-6は、プロセッサ201-1~201-6をそれぞれ有する。PCIeブリッジボード300は、拡張バス(例えば、情報処理装置100および計算装置200-1~200-6の拡張バスとして機能するバス)を有し、拡張バスを介した通信を中継する。
【0029】
情報処理装置100および計算装置200-1~200-6は、PCIeブリッジボード300に通信可能に接続されている。具体的には、情報処理装置100は、2つのRCを用いて(例えば、2つのPCIeインタフェースをRCとして機能させて)PCIeブリッジボード300に搭載されている2つのEPと接続されている。EPは、拡張バスの末端機器(デバイス)として認識されるスレイブ側の接続部であり、RCは、EP側を末端機器として認識して拡張バスを介した通信を制御するマスター側の接続部である。
【0030】
なお、情報処理装置100は、ホストPCとして機能するため、データの送受信量が大きくなることが想定されることから2つのRCを用いてPCIeブリッジボード300と接続されている。このように2つのRCと2つのEPとが接続されているため、情報処理装置100は、データの通信経路を適切に振り分けることで(即ち、いずれのRC-EP間で通信するか決定することで)広い通信帯域の通信を行うことができる。なお、情報処理装置100は、1つのRCを用いてPCIeブリッジボード300に搭載されている1つのEPと接続されていてもよい。また、計算装置200-1~200-6は、1つのRCを用いてPCIeブリッジボード300に搭載されている1つのEPと接続されている。
【0031】
なお、プロセッサ101,201-1~201-6は、それぞれ同じメーカ(またはベンダ)から提供されてもよいし、違うメーカから提供されてもよい。例えば、プロセッサ101は、A社が提供するものであり、プロセッサ201-1は、B社が提供するものであり、プロセッサ201-2は、C社が提供するものであり、プロセッサ201-3は、D社が提供するものであるものとすることができる。また、プロセッサ201-4は、E社が提供するものであり、プロセッサ201-5は、F社が提供するものであり、プロセッサ201-6は、G社が提供するものであるものとすることができる。
【0032】
図3は、情報処理装置および計算装置のハードウェアの一構成例を示す図である。情報処理装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0033】
メモリ102は、情報処理装置100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えば、RAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0034】
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、媒体リーダ106およびネットワークインタフェース107がある。また、バス109に接続されている周辺機器としては、PCIeインタフェース108-1,108-2がある。
【0035】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、情報処理装置100の補助記憶装置として使用される。ストレージ装置103には、OS(Operating System)のプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0036】
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0037】
入力インタフェース105は、情報処理装置100に接続された入力デバイス22から入力信号を取得し、プロセッサ101に出力する。入力デバイス22としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、情報処理装置100に、複数の種類の入力デバイスが接続されていてもよい。
【0038】
媒体リーダ106は、記録媒体23に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体23として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
【0039】
ネットワークインタフェース107は、ネットワーク20に接続されている。ネットワークインタフェース107は、ネットワーク20を介して、他の装置との間でデータの送受信を行う。PCIeインタフェース108-1,108-2は、PCIeブリッジボード300に接続されている。PCIeインタフェース108-1,108-2は、PCIeブリッジボード300を介して、他の装置との間でデータの送受信を行う。
【0040】
計算装置200-1は、プロセッサ201-1によって装置全体が制御されている。プロセッサ201-1には、バス206-1を介してメモリ202-1と複数の周辺機器が接続されている。プロセッサ201-1は、マルチプロセッサであってもよい。プロセッサ201-1は、例えば、CPU、MPU、またはDSPである。プロセッサ201-1がプログラムを実行することで実現する機能の少なくとも一部を、ASIC、PLDなどの電子回路で実現してもよい。
【0041】
メモリ202-1は、計算装置200-1の主記憶装置として使用される。メモリ202-1には、プロセッサ201-1に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ202-1には、プロセッサ201-1による処理に利用する各種データが格納される。メモリ202-1としては、例えば、RAMなどの揮発性の半導体記憶装置が使用される。
【0042】
バス206-1に接続されている周辺機器としては、不揮発性メモリ203-1、コプロセッサ204-1およびPCIeインタフェース205-1がある。不揮発性メモリ203-1は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。不揮発性メモリ203-1は、コンピュータの補助記憶装置として使用される。不揮発性メモリ203-1には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、不揮発性メモリ203-1としては、例えば、フラッシュメモリを使用することができる。
【0043】
コプロセッサ204-1は、並列演算処理に適したプロセッサである。コプロセッサ204-1としては、例えば、GPU(Graphics Processing Unit)やFPGA(Field Programmable Gate Array)を使用することができる。
【0044】
PCIeインタフェース205-1は、PCIeブリッジボード300に接続されている。PCIeインタフェース205-1は、PCIeブリッジボード300を介して、他の装置との間でデータの送受信を行う。
【0045】
情報処理装置100および計算装置200-1は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置10も、図3に示した情報処理装置100と同様のハードウェアにより実現することができる。また、プロセッサ101は、第1の実施の形態に示した処理部11の一例である。また、計算装置200-2~200-6および第1の実施の形態に示した計算装置1a,1b,・・・も、図3に示した計算装置200-1と同様のハードウェアにより実現することができる。
【0046】
情報処理装置100は、例えば、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。情報処理装置100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、情報処理装置100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また、情報処理装置100に実行させるプログラムを、記録媒体23に記録しておくこともできる。記録媒体23に格納されたプログラムは、例えば、プロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。また、プロセッサ101が、記録媒体23から直接プログラムを読み出して実行することもできる。
【0047】
図2に示す情報処理システムにおいて、情報処理装置100は、計算装置200-1~200-6のモデルの実行を管理する。ここで、計算装置200-1~200-6のいずれか(例えば、計算装置200-1)が故障した場合、計算装置200-1が復旧するまでの間、計算装置200-1が実行していた処理が停止してしまう。そのため、計算装置200-2~200-6の空きリソースを用いて、計算装置200-1が実行していたモデルを実行することが考えられる。
【0048】
しかし、計算装置200-2~200-6は、それぞれモデルを実行しているため、空きリソースに余裕がないことが多い。そこで、第2の実施の形態では、情報処理装置100は、計算装置200-1が故障した場合、計算装置200-1が実行していたモデルのパラメータの精度を下げた(量子化した)モデルを計算装置200-2~200-6のいずれかに実行させる。
【0049】
次に、情報処理装置100の機能について詳細に説明する。
図4は、情報処理装置および計算装置の機能例を示すブロック図である。情報処理装置100は、記憶部110、負荷検出部120および実行管理部130を有する。記憶部110は、メモリ102またはストレージ装置103の記憶領域を用いて実現される。負荷検出部120および実行管理部130は、メモリ102に記憶されたプログラムをプロセッサ101が実行することで実現される。
【0050】
記憶部110は、モデル111-1,111-2,・・・およびモデルリスト112を記憶する。モデル111-1,111-2,・・・は、計算装置200-1~200-6が実行するモデルである。また、モデル111-1,111-2,・・・は、計算装置200-1~200-6が実行するモデルを量子化したモデルを含む。モデルリスト112は、モデル111-1,111-2,・・・に関する情報が登録されている。
【0051】
負荷検出部120は、各計算装置の負荷状況を監視する。例えば、負荷検出部120は、計算装置200-1~200-6のコプロセッサの使用率を監視する。負荷検出部120は、監視結果に基づいて、計算装置200-1~200-6の、モデルを実行するためのリソース不足を検出する。例えば、負荷検出部120は、計算装置200-1~200-6のうち、コプロセッサを使用できていない計算装置がある場合、当該計算装置の故障によるリソース不足を検出する。
【0052】
実行管理部130は、負荷検出部120が計算装置200-1~200-6の故障によるリソース不足を検出した場合、故障した計算装置(故障計算装置)以外の計算装置に故障計算装置が実行していたモデル(故障計算装置のモデル)を代替実行させる。まず、実行管理部130は、モデルリスト112を参照し、故障計算装置以外の計算装置200-1~200-6のうち、最も優先度の低いモデルを実行中の計算装置を特定する。そして、実行管理部130は、特定した計算装置が中断できない処理を実行していない場合、特定した計算装置を、故障計算装置のモデルを代替実行させる計算装置(代替計算装置)に決定する。
【0053】
次に、実行管理部130は、代替計算装置が故障計算装置のモデルを追加実行可能か否かを判定する。例えば、実行管理部130は、モデルリスト112を参照し、計算装置200-1~200-6が故障計算装置のモデルを実行した場合のコプロセッサ使用率(故障計算装置のモデルのコプロセッサ使用率)を特定する。そして、実行管理部130は、代替計算装置のコプロセッサが空いている割合(コプロセッサの空き使用率)が故障計算装置のモデルのコプロセッサ使用率以上であれば、代替計算装置は故障計算装置のモデルを追加実行可能であると判定する。実行管理部130は、代替計算装置が故障計算装置のモデルを追加実行可能と判定した場合、モデル111-1,111-2,・・・のうちの故障計算装置のモデルを代替計算装置に送信し、追加実行を指示する。
【0054】
実行管理部130は、代替計算装置が故障計算装置のモデルを追加実行不可能と判定した場合、代替計算装置が故障計算装置のモデルを量子化したモデルを追加実行可能か否かを判定する。例えば、実行管理部130は、モデルリスト112を参照し、計算装置200-1~200-6が故障計算装置のモデルを量子化したモデルを実行した場合のコプロセッサ使用率(故障計算装置のモデルを量子化したモデルのコプロセッサ使用率)を特定する。そして、実行管理部130は、代替計算装置のコプロセッサの空き使用率が故障計算装置のモデルを量子化したモデルのコプロセッサ使用率以上であれば、代替計算装置は故障計算装置のモデルを量子化したモデルを追加実行可能であると判定する。実行管理部130は、代替計算装置が故障計算装置のモデルを量子化したモデルを追加実行可能と判定した場合、モデル111-1,111-2,・・・のうちの故障計算装置のモデルを量子化したモデルを代替計算装置に送信し、追加実行を指示する。
【0055】
また、実行管理部130は、代替計算装置が故障計算装置のモデルを量子化したモデルを追加実行不可能と判定した場合、代替計算装置が実行しているモデル(代替計算装置のモデル)を停止するよう代替計算装置に指示する。そして、実行管理部130は、モデル111-1,111-2,・・・のうちの故障計算装置のモデルを量子化したモデルと代替計算装置のモデルを量子化したモデルとを代替計算装置に送信し、実行を指示する。
【0056】
なお、第2の実施の形態では、計算装置200-1~200-6のコプロセッサ使用率に基づいた実行管理が行われるが、プロセッサ使用率、メモリ使用率等に基づいた実行管理が行われてもよい。また、計算装置200-1~200-6のプロセッサ使用率、メモリ使用率、コプロセッサ使用率の組み合わせに基づいた実行管理が行われてもよい。また、第2の実施の形態では、情報処理装置100がモデル111-1,111-2,・・・を記憶し、計算装置200-1~200-6にモデルを送信して実行指示をしている。これに代えて、計算装置200-1~200-6それぞれがモデル111-1,111-2,・・・を記憶し、情報処理装置100は、実行するモデルを計算装置200-1~200-6に指示するだけでもよい。
【0057】
なお、故障計算装置は、第1の実施の形態に示した、第1計算装置の一例である。また、故障計算装置のモデルは、第1の実施の形態に示した、第1モデルの一例である。また、故障計算装置のモデルを量子化したモデルは、第1の実施の形態に示した、第1量子化モデルの一例である。
【0058】
また、代替計算装置は、第1の実施の形態に示した、第2計算装置の一例である。また、代替計算装置のモデルは、第1の実施の形態に示した、第2モデルの一例である。また、代替計算装置のモデルを量子化したモデルは、第1の実施の形態に示した、第2量子化モデルの一例である。また、代替計算装置のコプロセッサの空き使用率は、第1の実施の形態に示した、第2計算装置の空きリソース量の一例である。
【0059】
図5は、モデルリストの一例を示す図である。モデルリスト112は、モデル名、使用率、モデル名(量子化)、使用率(量子化)および優先度の項目を有する。モデル名の項目には、モデルの名称が設定される。使用率の項目には、計算装置200-1~200-6がモデルを実行した場合のコプロセッサ使用率が設定される。例えば、使用率の項目には、計算装置200-1~200-6がモデルを事前に実行したときのコプロセッサ使用率が設定される。
【0060】
モデル名(量子化)の項目には、量子化したモデルの名称が設定される。使用率(量子化)の項目には、計算装置200-1~200-6が量子化したモデルを実行した場合のコプロセッサ使用率が設定される。例えば、使用率(量子化)の項目には、計算装置200-1~200-6が量子化したモデルを事前に実行したときのコプロセッサ使用率が設定される。また、例えば、使用率(量子化)の項目には、計算装置200-1~200-6がモデルを実行した場合のコプロセッサ使用率に基づいて予測される、計算装置200-1~200-6が量子化したモデルを実行した場合のコプロセッサ使用率が設定される。優先度の項目には、モデルの優先度が設定される。モデルリスト112では、モデルのコプロセッサ使用率が高いほど優先度が高く(つまり、優先度の項目の数値が低く)設定される。
【0061】
例えば、モデルリスト112には、モデル名の項目が「モデルA」、使用率の項目が「60%」、モデル名(量子化)の項目が「モデルA*」、使用率(量子化)の項目が「30%」、優先度の項目が「6」である、モデルAについてのレコードが登録されている。モデルAについてのレコードは、計算装置200-1~200-6が「モデルA」を実行した場合のコプロセッサ使用率が「60%」であることを示す。また、モデルAについてのレコードは、計算装置200-1~200-6が「モデルA」を量子化した「モデルA*」を実行した場合のコプロセッサ使用率が「30%」であることを示す。また、モデルAについてのレコードは、「モデルA」の優先度が「6」番目であることを示す。
【0062】
次に、量子化について説明する。
図6は、量子化の一例を示す図である。量子化後のモデルのパラメータは、量子化前のモデルのパラメータを、量子化前のモデルのパラメータのデータ型よりも小さいサイズのデータ型で表現したものである。モデルのパラメータは、例えば、ニューラルネットワークの重みである。図6の例では、数値データ40は、量子化によって数値データ50に変換される。なお、数値データは、例えば、仮数Mと指数Eによって、±M×2の形式で数値を表現する。
【0063】
数値データ40は、量子化前のモデルに含まれる1つのパラメータの数値を表現するための数値データである。数値データ40は、32ビットで表現される。数値データ40は、符号部41、指数部42および仮数部43を有する。
【0064】
符号部41は、数値データ40で表現される数値の正負を表現する。符号部41は、1ビットである。指数部42は、数値データ40で表現される数値の指数を表現する。指数部42は、8ビットである。仮数部43は、数値データ40で表現される数値の仮数を表現する。仮数部43は、23ビットである。
【0065】
数値データ50は、量子化前のモデルにおいて数値データ40で表現されるパラメータを、量子化後のモデルにおいて表現するための数値データである。数値データ50は、16ビットで表現される。数値データ50は、符号部51、指数部52および仮数部53を有する。
【0066】
符号部51は、数値データ50で表現される数値の正負を表現する。符号部51は、1ビットである。指数部52は、数値データ50で表現される数値の指数を表現する。指数部52は、5ビットである。仮数部53は、数値データ50で表現される数値の仮数を表現する。仮数部53は、10ビットである。
【0067】
このように、量子化後のモデルでは量子化前のモデルより数値データが小さくなるため、計算装置200-1~200-6は、量子化前のモデルを実行するよりも小さい計算負荷で、量子化後のモデルを実行できる。よって、計算装置200-1~200-6は、量子化前のモデルを実行するよりも小さいプロセッサ使用率、メモリ使用率、コプロセッサ使用率で、量子化後のモデルを実行できる。なお、上記では、32ビットの数値データ40が16ビットの数値データ50に変換されたが、数値データ40が4ビットや8ビットで表現される整数の数値データに変換されてもよい。また、量子化によって、16ビットの数値データ50が4ビットや8ビットで表現される整数の数値データに変換されてもよい。また、量子化によって、8ビットで表現される整数の数値データが4ビットで表現される整数の数値データやバイナリ(0または1)に変換されてもよい。
【0068】
なお、量子化では、例えば、所定のSIMD(Single Instruction Multiple Data)命令によって、数値データ40が数値データ50に変換される。情報処理装置100が計算装置200-1~200-6が実行する各モデルを量子化してもよいし、他の装置が各モデルを量子化したものを情報処理装置100が取得してもよい。また、情報処理装置100や他の装置がSIMD以外の命令によって計算装置200-1~200-6が実行する各モデルを量子化してもよい。
【0069】
次に、情報処理装置100による計算装置200-1~200-6のモデルの実行管理処理について説明する。
図7は、実行管理処理の一例を示す図である。グラフ61は、計算装置200-1~200-6それぞれのコプロセッサ使用率を示す。グラフ61は、計算装置200-1(計算装置#1)がモデルAを実行し、計算装置200-1のコプロセッサ使用率が60%であることを示す。また、グラフ61は、計算装置200-2(計算装置#2)がモデルBを実行し、計算装置200-2のコプロセッサ使用率が95%であることを示す。また、グラフ61は、計算装置200-3(計算装置#3)がモデルCを実行し、計算装置200-3のコプロセッサ使用率が65%であることを示す。
【0070】
また、グラフ61は、計算装置200-4(計算装置#4)がモデルDを実行し、計算装置200-4のコプロセッサ使用率が80%であることを示す。また、グラフ61は、計算装置200-5(計算装置#5)がモデルEを実行し、計算装置200-5のコプロセッサ使用率が70%であることを示す。また、グラフ61は、計算装置200-6(計算装置#6)がモデルFを実行し、計算装置200-6のコプロセッサ使用率が70%であることを示す。
【0071】
グラフ61に示される状況で、計算装置200-1の故障が検出された場合(つまり、計算装置200-1が故障計算装置の場合)、情報処理装置100の実行管理部130は、計算装置200-2~200-6から代替計算装置を決定する。例えば、実行管理部130は、最も優先度が低い(最もコプロセッサ使用率が低い)モデルを実行する、計算装置200-3を代替計算装置に決定する。ここで、計算装置200-3のコプロセッサの空き使用率が35%であるため、計算装置200-3は、コプロセッサ使用率が60%であるモデルAを追加実行できない。そこで、実行管理部130は、モデルAを量子化したモデルA*を計算装置200-3に追加実行させる。
【0072】
グラフ62は、計算装置200-3がモデルA*を追加実行した場合の、計算装置200-1~200-6それぞれのコプロセッサ使用率を示す。グラフ62は、計算装置200-3がモデルCとモデルA*とを実行し、計算装置200-3のコプロセッサ使用率が95%であることを示す。
【0073】
このように、実行管理部130は、故障計算装置のモデルを代替計算装置が追加実行できない場合であっても、故障計算装置のモデルを量子化したモデルを代替計算装置に追加実行させることができる。なお、代替計算装置が故障計算装置のモデルを量子化したモデルを実行できない場合、実行管理部130は、故障計算装置のモデルを量子化したモデルと代替計算装置のモデルを量子化したモデルとを代替計算装置に実行させる。
【0074】
次に、情報処理装置100による代替実行指示をシーケンス図を用いて説明する。
図8は、代替実行指示の一例を示すシーケンス図である。図8では、計算装置200-1が故障した場合に、計算装置200-1の処理を計算装置200-3に代替実行させる例を示す。なお、以下の例では、計算装置200-2~200-6のコプロセッサの空き使用率は、故障した計算装置200-1が実行していたモデルのコプロセッサ使用率未満であるものとする。
【0075】
計算装置200-1は、モデルAを実行する(ステップS11)。また、計算装置200-3は、モデルCを実行する(ステップS12)。ここで、計算装置200-1が故障したものとする(ステップS13)。
【0076】
計算装置200-3のコプロセッサの空き使用率がモデルAを量子化したモデルA*のコプロセッサ使用率以上(計算装置200-3がモデルA*を追加実行可能)の場合、実行管理部130は、モデルA*を計算装置200-3に送信する(ステップS14)。そして、実行管理部130は、計算装置200-3にモデルA*を追加実行するよう指示する。計算装置200-3は、実行管理部130からモデルA*の追加実行指示を受けると、モデルA*を追加実行する(ステップS15)。つまり、ステップS15では、計算装置200-3は、モデルCとモデルA*とを実行する。
【0077】
計算装置200-3のコプロセッサの空き使用率がモデルA*のコプロセッサ使用率未満(計算装置200-3がモデルA*を追加実行不可能)の場合、実行管理部130は、計算装置200-3にモデルCの実行を停止するよう指示する(ステップS16)。計算装置200-3は、実行管理部130からモデルCの実行停止指示を受けると、モデルCの実行を停止する(ステップS17)。実行管理部130は、モデルA*とモデルCを量子化したモデルC*とを計算装置200-3に送信する(ステップS18)。そして、実行管理部130は、計算装置200-3にモデルA*とモデルC*とを実行するよう指示する。計算装置200-3は、実行管理部130からモデルA*およびモデルC*の実行指示を受けると、モデルA*とモデルC*とを実行する(ステップS19)。
【0078】
このように、計算装置200-1が故障し、計算装置200-2~200-6がモデルAを追加実行できない場合であっても、計算装置200-3がモデルA*を実行する。よって、実行管理部130は、処理の停止時間を短縮させることができる。
【0079】
以下、情報処理装置100が実行する処理の手順について、詳細に説明する。
図9は、実行管理処理の手順の一例を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。
【0080】
[ステップS101]負荷検出部120は、各計算装置の負荷状況を監視する。例えば、負荷検出部120は、計算装置200-1~200-6のコプロセッサの使用率を監視する。
【0081】
[ステップS102]負荷検出部120は、ステップS101の監視結果に基づいて、計算装置200-1~200-6の、モデルを実行するためのリソース不足が検出されたか否かを判定する。例えば、負荷検出部120は、計算装置200-1~200-6のうち、コプロセッサを使用できていない計算装置がある場合、当該計算装置の故障によるリソース不足が検出されたと判定する。負荷検出部120は、リソース不足が検出されたと判定した場合、処理をステップS103に進める。また、負荷検出部120は、リソース不足が検出されなかったと判定した場合、処理をステップS101に進める。
【0082】
[ステップS103]実行管理部130は、計算装置200-1~200-6のうち、ステップS102で故障によるリソース不足が検出された計算装置(故障計算装置)以外で最も優先度の低いモデルを実行中の計算装置を選択する。例えば、実行管理部130は、モデルリスト112を参照し、故障計算装置が実行していたモデル(故障計算装置のモデル)以外で、優先度の項目の数値が最大のモデルを特定する。そして、実行管理部130は、特定したモデルを実行中の計算装置を選択する。なお、実行管理部130は、すでにステップS103で選択されたモデル以外のモデルを選択する。
【0083】
[ステップS104]実行管理部130は、ステップS103で選択した計算装置(選択計算装置)が代替処理可能か否かを判定する。例えば、実行管理部130は、選択計算装置が中断できない処理を実行している場合、選択計算装置が代替処理不可能と判定する。実行管理部130は、選択計算装置が代替処理可能と判定した場合、処理をステップS105に進める。また、実行管理部130は、選択計算装置が代替処理不可能と判定した場合、処理をステップS103に進める。
【0084】
[ステップS105]実行管理部130は、ステップS104で代替処理可能と判定された計算装置(代替計算装置)が故障計算装置のモデルを追加実行可能か否かを判定する。例えば、実行管理部130は、モデルリスト112の、故障計算装置のモデルのレコードの使用率の項目を参照し、故障計算装置のモデルのコプロセッサ使用率を特定する。そして、実行管理部130は、代替計算装置のコプロセッサの空き使用率が故障計算装置のモデルのコプロセッサ使用率以上であれば、代替計算装置は故障計算装置のモデルを追加実行可能であると判定する。実行管理部130は、代替計算装置が故障計算装置のモデルを追加実行可能と判定した場合、処理をステップS106に進める。また、実行管理部130は、代替計算装置が故障計算装置のモデルを追加実行不可能と判定した場合、処理をステップS107に進める。
【0085】
[ステップS106]実行管理部130は、モデル111-1,111-2,・・・のうちの故障計算装置のモデルを代替計算装置に送信し、追加実行を指示する。そして、処理が終了する。
【0086】
[ステップS107]実行管理部130は、代替計算装置が故障計算装置のモデルを量子化したモデルを追加実行可能か否かを判定する。例えば、実行管理部130は、モデルリスト112の、故障計算装置のモデルのレコードの使用率(量子化)の項目を参照し、故障計算装置のモデルを量子化したモデルのコプロセッサ使用率を特定する。そして、実行管理部130は、代替計算装置のコプロセッサの空き使用率が故障計算装置のモデルを量子化したモデルのコプロセッサ使用率以上であれば、代替計算装置は故障計算装置のモデルを量子化したモデルを追加実行可能であると判定する。実行管理部130は、代替計算装置が故障計算装置のモデルを量子化したモデルを追加実行可能と判定した場合、処理をステップS108に進める。また、実行管理部130は、代替計算装置が故障計算装置のモデルを量子化したモデルを追加実行不可能と判定した場合、処理をステップS109に進める。
【0087】
[ステップS108]実行管理部130は、モデルリスト112の、故障計算装置のモデルのレコードのモデル名(量子化)の項目を参照し、モデル111-1,111-2,・・・のうちの故障計算装置のモデルを量子化したモデルを特定する。実行管理部130は、故障計算装置のモデルを量子化したモデルを代替計算装置に送信し、追加実行を指示する。そして、処理が終了する。
【0088】
[ステップS109]実行管理部130は、代替計算装置が実行しているモデル(代替計算装置のモデル)を停止するよう代替計算装置に指示する。
[ステップS110]実行管理部130は、モデルリスト112の、故障計算装置のモデルのレコードのモデル名(量子化)の項目を参照し、モデル111-1,111-2,・・・のうちの故障計算装置のモデルを量子化したモデルを特定する。また、実行管理部130は、モデルリスト112の、代替計算装置のモデルのレコードのモデル名(量子化)の項目を参照し、モデル111-1,111-2,・・・のうちの代替計算装置のモデルを量子化したモデルを特定する。そして、実行管理部130は、故障計算装置のモデルを量子化したモデルと代替計算装置のモデルを量子化したモデルとを代替計算装置に送信し、実行を指示する。
【0089】
このように、実行管理部130は、故障によるリソース不足が検出されると、故障計算装置のモデルを実行させる代替計算装置を決定する。ここで、実行管理部130は、優先度が低いモデルを実行している計算装置を代替計算装置として決定する。優先度はモデルの処理負荷が大きいほど高く設定されているため、実行管理部130は、処理負荷が小さく比較的重要でない処理を実行している計算装置に故障計算装置が実行していた処理を実行させることができる。
【0090】
そして、実行管理部130は、代替計算装置のコプロセッサの空き使用率に応じて、故障計算装置の代替処理を代替計算装置に実行させる。実行管理部130は、代替計算装置のコプロセッサの空き使用率が故障計算装置のモデルのコプロセッサ使用率以上の場合、代替計算装置に故障計算装置のモデルを追加実行させる。これにより、実行管理部130は、コプロセッサの空き使用率に余裕がある場合、代替計算装置に故障計算装置が実行していた処理の精度を落とさずに代替実行させることができる。
【0091】
また、実行管理部130は、コプロセッサの空き使用率が故障計算装置のモデルのコプロセッサ使用率未満で故障計算装置のモデルを量子化したモデルのコプロセッサ使用率以上の場合、代替計算装置に故障計算装置のモデルを量子化したモデルを追加実行させる。これにより、実行管理部130は、コプロセッサの空き使用率に余裕がない場合であっても、代替計算装置に故障計算装置が実行していた処理を代替実行させることができる。
【0092】
また、実行管理部130は、コプロセッサの空き使用率が故障計算装置のモデルを量子化したモデルのコプロセッサ使用率未満の場合、代替計算装置に代替計算装置のモデルを量子化したモデルと故障計算装置のモデルを量子化したモデルとを実行させる。これにより、実行管理部130は、故障計算装置のモデルを量子化したモデルを実行できないほどコプロセッサの空き使用率に余裕がない場合であっても、代替計算装置に故障計算装置が実行していた処理を代替実行させることができる。このように、実行管理部130は、故障計算装置の処理を代替計算装置に代替実行させることで、故障計算装置の処理の停止時間を短縮することができる。
【0093】
第2の実施の形態によれば、情報処理装置100の負荷検出部120は、モデルを実行する計算装置200-1~200-6を監視する。そして、情報処理装置100の実行管理部130は、故障計算装置のモデルを実行するためのリソース不足が検出された場合、代替計算装置に、故障計算装置のモデルを量子化したモデルを実行させる。これにより、情報処理装置100は、故障計算装置のリソース不足が解消されるより前に、故障計算装置が実行していた処理を代替計算装置に実行させることができる。よって、情報処理装置100は、処理の停止時間を短縮できる。
【0094】
また、実行管理部130は、故障計算装置の故障によるリソース不足が検出された場合、故障計算装置のモデルを量子化したモデルを、計算装置200-1~200-6のうち、故障計算装置以外の代替計算装置に実行させる。これにより、情報処理装置100は、代替計算装置に故障計算装置のモデルを実行するためのリソースの余裕がない場合であっても、故障計算装置が実行していた処理を代替計算装置に実行させることができる。
【0095】
また、実行管理部130は、故障計算装置のモデルを実行するためのリソース不足が検出された場合、代替計算装置のコプロセッサの空き使用率に基づいて、代替計算装置が故障計算装置のモデルを実行可能か否かを判定する。実行管理部130は、代替計算装置が故障計算装置のモデルを実行可能の場合、代替計算装置に故障計算装置のモデルを実行させる。実行管理部130は、代替計算装置が故障計算装置のモデルを実行不可能の場合、代替計算装置に故障計算装置のモデルを量子化したモデルを実行させる。これにより、情報処理装置100は、代替計算装置のリソースに余裕がある場合、故障計算装置が実行していた処理を精度を低下させずに代替計算装置に実行させることができる。
【0096】
また、実行管理部130は、故障計算装置のモデルを実行するためのリソース不足が検出された場合、代替計算装置のコプロセッサの空き使用率に基づいて、代替計算装置が故障計算装置のモデルを量子化したモデルを実行可能か否かを判定する。実行管理部130は、代替計算装置が故障計算装置のモデルを量子化したモデルを実行可能の場合、代替計算装置に故障計算装置のモデルを量子化したモデルを実行させる。実行管理部130は、代替計算装置が故障計算装置のモデルを量子化したモデルを実行不可能の場合、代替計算装置に、代替計算装置のモデルの実行を停止させ、故障計算装置のモデルを量子化したモデルと代替計算装置のモデルを量子化したモデルとを実行させる。これにより、情報処理装置100は、代替計算装置に故障計算装置のモデルを量子化したモデルを実行するためのリソースの余裕がない場合であっても、故障計算装置が実行していた処理を代替計算装置に実行させることができる。
【0097】
また、実行管理部130は、計算装置200-1~200-6が実行するモデルそれぞれの優先度に基づいて代替計算装置を決定する。これにより、情報処理装置100は、計算装置200-1~200-6のうち比較的重要でない処理を実行している計算装置に故障計算装置が実行していた処理を実行させることができる。
【0098】
〔その他の実施の形態〕
第2の実施の形態では、モデルの処理負荷に応じてモデルの優先度が設定されていたが、モデルの処理内容によってモデルの優先度が設定されてもよい。
【0099】
図10は、モデルの処理内容とモデルの優先度との関係の一例を示す図である。図10に示す情報処理システムは、カメラ映像から不審人物を検出するものである。図10に示す情報処理システムは、情報処理装置100aおよび計算装置200a-1~200a-6を含む。
【0100】
計算装置200a-1~200a-3は、カメラ映像から人物を検出するためのモデルを実行する。計算装置200a-1~200a-3は、人物の検出結果を計算装置200a-4~200a-5に送信する。
【0101】
計算装置200a-4~200a-5は、計算装置200a-1~200a-3から取得した人物の検出結果に基づいて、検出された人物のカメラ映像上の位置を追跡するためのモデルを実行する。そして、計算装置200a-4~200a-5は、人物の追跡結果を計算装置200a-6に送信する。
【0102】
計算装置200a-6は、計算装置200a-4~200a-5から取得した人物の追跡結果に基づいて、人物が不審人物か否かの判定(属性推定)をするためのモデルを実行する。そして、計算装置200a-6は、属性推定結果を情報処理装置100aに送信する。情報処理装置100aは、計算装置200a-6から取得した属性推定結果に基づいて、ユーザに不審人物の施設内の位置を通知する。
【0103】
図10に示すような、多段階の処理を実行する情報処理システムでは、上流の処理で発生した誤差が下流の処理に影響することがある。そこで、上流の処理のモデルは優先度が高く設定され、下流の処理のモデルは優先度が低く設定されてもよい。例えば、図10の例では、人物検出のモデル、人物追跡のモデル、属性推定のモデルの順に、優先度が高く設定される。なお、下流の処理であっても高い精度を求められるモデルの優先度が高く設定されてもよい。
【0104】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0105】
1a,1b,・・・ 計算装置
10 情報処理装置
11 処理部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10