JP7245796B2 - 情報処理システム、及び情報処理システムの制御方法 - Google Patents

情報処理システム、及び情報処理システムの制御方法 Download PDF

Info

Publication number
JP7245796B2
JP7245796B2 JP2020010366A JP2020010366A JP7245796B2 JP 7245796 B2 JP7245796 B2 JP 7245796B2 JP 2020010366 A JP2020010366 A JP 2020010366A JP 2020010366 A JP2020010366 A JP 2020010366A JP 7245796 B2 JP7245796 B2 JP 7245796B2
Authority
JP
Japan
Prior art keywords
inference
information processing
processing system
unit
model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020010366A
Other languages
English (en)
Other versions
JP2021117706A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020010366A priority Critical patent/JP7245796B2/ja
Priority to US17/066,522 priority patent/US20210232950A1/en
Publication of JP2021117706A publication Critical patent/JP2021117706A/ja
Application granted granted Critical
Publication of JP7245796B2 publication Critical patent/JP7245796B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • 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/217Validation; Performance evaluation; Active pattern learning techniques
    • G06F18/2178Validation; Performance evaluation; Active pattern learning techniques based on feedback of a supervisor
    • G06F18/2185Validation; Performance evaluation; Active pattern learning techniques based on feedback of a supervisor the supervisor being an automated module, e.g. intelligent oracle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/043Distributed expert systems; Blackboards

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理システム、及び情報処理システムの制御方法に関し、とくに機械学習(Machine Learning)を活用して推論を行う技術に関する。
近年、小売業や製造業等の様々な分野において、機械学習(Machine Learning)を活用して推論を行う情報処理システムの導入が進められている。こうした情報処理システムにおいては、実際の運用を通じて継続的に推論精度を維持することが求められる。特許文献1には、複数の機械学習モデルの夫々が行った推論結果について精度を評価し、評価に基づき機械学習モデルを選択する技術が開示されている。
米国特許出願公開第2019/0156247号明細書
"A Unified Approach to Interpreting Model Predictions", S. Lundberg et al., Neural Information Processing Systems (NIPS), 2017
機械学習を活用した情報処理システムにおいては、ある推論環境において推論精度の低下が検出された場合、推論対象として取得されたデータ(以下、「推論データ」と称する。)を学習対象のデータ(以下、「学習データ」と称する。)として利用して再学習することで推論精度の向上を期待できることがある。また、再学習した機械学習モデル(以下、「推論モデル」と称する。)を他の推論環境においても共用することで、推論精度や処理効率の向上を期待できることがある。しかし例えば、精度低下の原因が、ある推論環境に固有の推論データの傾向の変化であるために、当該推論環境で得た推論データを学習データとして再学習した推論モデルを他の推論環境に適用してしまうと、他の推論環境における推論精度が返って低下してしまうことがある。
特許文献1に開示された技術は、自然言語処理や画像認識のように推論データに特定の推論環境に固有の傾向の変化がないことを前提としている。そのため、例えば、複数の店舗から送られてくる売上データを推論データとして店舗毎に用意された推論環境により未来の販売予測を行う場合等、推論データの傾向が推論環境毎に異なるようなユースケースについては必ずしも適用することができない。
本発明は、以上の背景に基づきなされたもので、複数の推論環境により推論を行う機械学習システムにおいて個々の推論環境における推論精度を確保することが可能な、情報処理システム、及び情報処理システムの制御方法を提供することを目的とする。
上記の目的を達成するための本発明の一つは、情報処理システムであって、一つ以上の推論モデルにデータを入力して推論を行う複数の推論部と、前記推論部による推論精度を評価する推論精度評価部と、第1の前記推論部において推論精度の低下が検出された場合に、当該第1の推論部に入力されたデータを学習した新たな推論モデルを生成する学習部と、前記推論精度の低下の要因を判定する要因判定部と、判定した前記要因に基づき、前
記第1推論部と異なる第2の前記推論部に前記新たな推論モデルを適用するか否かを判定する配置決定部と、を備える。
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。
本発明によれば、複数の推論環境により推論を行う機械学習システムにおいて個々の推論環境における推論精度を確保することができる。
機械学習を活用した情報処理システムの一例である。 本実施形態の情報処理システムの仕組みを説明する図である。 本実施形態の情報処理システムの概略的な構成を示す図である。 情報処理装置の一例を示す図である。 推論サーバが備える主な機能を説明する図である。 推論モデル割当テーブルの一例である。 学習サーバが備える主な機能を説明する図である。 管理サーバが備える主な機能を説明する図である。 データ傾向管理テーブルの一例である。 推論精度管理テーブルの一例である。 MLコード管理テーブルの一例である。 推論モデル配置管理テーブルの一例である。 推論処理を説明するフローチャートである。 データ傾向判定処理を説明するフローチャートである。 推論精度評価処理を説明するフローチャートである。 精度低下対応決定処理を説明するフローチャートである。 MLコードデプロイ処理を説明するフローチャートである。 精度低下対応決定処理の例を模式的に示した図である。 精度低下対応決定処理の例を模式的に示した図である。
以下、実施形態について図面を参照しつつ説明する。以下の説明において、同一の又は類似する構成について同一の符号を付して重複する説明を省略することがある。また共通の符号にアルファベット等の添字を付して同種の構成を区別することがある。また以下の説明において、符号の前に付した「S」の文字は処理ステップを意味する。また以下の説明において、機械学習(Machine Learning)のことを「ML」と表記することがある。また以下の説明において、「機械学習モデル」のことを「推論モデル」とも称する。
図1は、機械学習を活用した情報処理システムの一例を示す図である。例示する情報処理システムは、複数の推論環境2a,2bと、推論環境2a,2bの夫々において推論に用いる推論モデルm1~m3を更新する学習環境3とを含む。例示する情報処理システムは、複数の店舗の夫々に設けられている端末装置4a~4dから送られてくるデータ(以下、「推論データ」と称する。)に基づき、例えば、各店舗における販売数量や仕入数量/在庫数量等を予測する。
同図に示すように、端末装置4a,4bから送られてくる推論データは、推論環境2aのルータ5aに入力され、また端末装置4c,4dから送られてくる推論データは、推論環境2bのルータ5bに入力される。
ルータ5aは、推論環境2aに適用されている推論モデルm1,m2の少なくともいずれかに推論データを割り当てることにより推論を行う。またルータ5bは、推論環境2bに適用されている推論モデルm1,m2の少なくともいずれかに推論データを割り当てることにより推論を行う。尚、ルータ5a,5bは必須ではなく、端末装置4a,4bに対して機械学習モデルを固定的に割り当ててもよい。
例示する情報処理システムにおいて、例えば、端末装置4bから送られてくる推論データの傾向が変化し(S1)、それにより推論モデルm2が行う推論について推論精度の低下が検出されたとする(S2)。この場合、例えば、学習環境3において当該推論データを学習データとして用いて再学習が行われ(S3)、生成された新たな推論モデルm3が推論環境2aに適用される(S4)。また同じ推論モデルm3を推論環境2bでも利用している場合、新たな推論モデルm3は推論環境2bにも適用される(S5)。
ここでこのように、ある推論環境において推論精度が低下していることが検出され(S2)、それにより再学習した新たな推論モデルm3を他の推論環境にも適用する場合、次の問題が起こり得る。即ち、上記の例では推論データの傾向が変化したのは推論環境2aを利用する端末装置4bのみであり、推論環境2bを利用する端末装置4c,4bから送られてくる推論データの傾向が変化していない場合、推論環境2bに新たな推論モデルm3を適用することで当該推論環境2bにおける推論精度が返って低下してしまうことがある。また新たな推論モデルm3が、例えば、複数の推論モデルの夫々の推論結果を利用して最良の結果を求めるいわゆるアンサンブルアルゴリズム(アンサンブルモデル)に利用されている場合には、推論環境2bに新たな推論モデルm3を適用することで推論精度が低下する可能性があるだけでなく、推論にかかる計算資源や時間が無駄に費やされてしまうことになる。
そこで図2に示すように、本実施形態の情報処理システムにおいては、例えば、推論モデルm2による推論精度の低下が検出されて精度確保のために再学習を行った際(S21,S22)、推論精度が低下した要因を判定し(S23)、判定した要因に応じて新たな推論モデルm3の適用方法を決定し(S24)、生成した新たな推論モデルm3を決定した上記方法で推論環境2a,2bに適用する(S25)。具体的には、例えば、判定した要因が推論データの傾向が変化したことによるものである場合、情報処理システムは、生成した新たな推論モデルm3を推論環境2aにのみ適用し(S26a)、一方、判定した要因が有効特徴量が変化したことによるものである場合、新たな推論モデルm3を推論環境2a及び推論環境2bの双方に適用する(S26b)。尚、上記の有効特徴量とは、正しい推論結果を得るために有効な特徴量である。
このような仕組みとすることで、学習済の新たな推論モデルm3は推論精度の向上が期待できる推論環境2にのみ適用され、推論精度の向上が期待できない推論環境2に新たな推論モデルm3が適用されてしまうことによる推論精度の低下を防ぐことができる。また不必要に推論処理が行われて推論にかかる計算資源や時間が無駄に費やされてしまうのを防ぐことができる。
図3に本発明の一実施形態として示す情報処理システム100の概略的な構成を示している。情報処理システム100は、2つの推論環境2a,2bの夫々に存在する推論サーバ500と、学習環境3に存在する、学習サーバ600及び管理サーバ700と、推論サーバ500に推論データを送信する端末装置4とを含む。推論サーバ500、学習サーバ600、管理サーバ700、及び端末装置4は、いずれも情報処理装置(コンピュータ)を用いて構成される。推論環境2a,2b、及び学習環境3は、夫々地理的に異なる場所に存在していてもよい。推論サーバ500、学習サーバ600、管理サーバ700の配置は同図に示すものに必ずしも限定されず、またこれらの数も必ずしも限定されない。
端末装置4は、例えば、売上データ等の実績値を推論データとして推論サーバ500に送信する。尚、端末装置4は、例えば、推論実施要求(推論リクエスト)とともに推論データを推論サーバ500に送信する。推論サーバ500は、推論データを受信すると、受信した推論データを、当該推論データ(当該推論データの送信元の端末装置4)に割り当てられている推論モデルに入力して未来の販売予測等の推論処理を行う。学習サーバ600は、推論精度の低下が検知された場合、推論精度が低下した推論モデルに入力された推論データを学習した新たな推論モデルを生成する。管理サーバ700は、推論精度が低下した要因に応じて新たな推論モデルの適用方法(対応方法)を決定し、決定した方法で新たな推論モデルを推論環境2に適用する。
推論環境2aは、推論サーバ500を提供するITインフラストラクチャ400、管理ネットワーク800、及びデータネットワーク810を含む。推論環境2a,2bの夫々に存在する推論サーバ500は、データネットワーク810を介して通信可能に接続されている。学習環境3は、学習サーバ600及び管理サーバ700を実現するITインフラストラクチャ400、管理ネットワーク800、及びデータネットワーク810を含む。推論サーバ500、学習サーバ600、及び管理サーバ700は、管理ネットワーク800を介して通信可能に接続されている。また推論サーバ500と学習サーバ600は、データネットワーク810を介して通信可能に接続されている。管理ネットワーク800は、主として推論サーバ500や学習サーバ600の管理に用いられる。データネットワーク810は、主として端末装置4に実際にサービスを提供する際(本番時)に推論サーバ500と学習サーバ600との間で行われる通信に用いられる。端末装置4は、広域ネットワーク820やデータネットワーク810を介して推論サーバ500と通信可能に接続される。
通信ネットワーク(管理ネットワーク800、データネットワーク810、広域ネットワーク820)は、例えば、WAN(Wide Area Network)、LAN(Local Area Network)、インターネット、専用線、公衆通信網等の通信インフラストラクチャにより構成さ
れる。同図に示す通信ネットワークの構成は一例であり、保守や運用上の必要性、ユーザニーズ、セキュリティ等の観点から適宜適切な構成としてよい。例えば、管理ネットワーク800、データネットワーク810は、同一の通信ネットワークであってもよい。また例えば、端末装置4と推論サーバ500とを接続する通信ネットワークを、データネットワーク810とは別に設けてもよい。
図4に、推論サーバ500、学習サーバ600、管理サーバ700、及び端末装置4の夫々を構成可能な情報処理装置(コンピュータ)の一例を示している。同図に示すように、例示する情報処理装置10は、プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、及び通信装置16を備える。これらは図示しないバス(bus)等の通信手段を介して通信可能に接続されている。尚、推論サーバ500、学習サー
バ600、管理サーバ700、及び端末装置4は、いずれも夫々が提供する機能を実現するために必要な構成を最低限備えていればよく、必ずしも例示する情報処理装置10の全ての構成を備えていなくてもよい。
情報処理装置10は、例えば、デスクトップ型のパーソナルコンピュータ、オフィスコンピュータ、メインフレーム、移動通信端末(スマートフォン、タブレット、ウェアラブル端末、ノートブック型のパーソナルコンピュータ等である。情報処理装置10は、例えば、クラウドシステムにより提供される仮想サーバのように仮想化技術やプロセス空間分離技術等を用いて提供される仮想的な情報処理資源を用いて実現されるものであってもよい。また推論サーバ500、学習サーバ600、管理サーバ700、及び端末装置4の機能の全部又は一部を、例えば、クラウドシステムがAPI(Application Programming In
terface)等を介して提供するサービスにより実現してもよい。
プロセッサ11は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、AI(Artificial Intelligence)チップ、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)等を用いて構成されている。
主記憶装置12は、プログラムやデータを記憶する装置であり、例えば、ROM(Read
Only Memory)、RAM(Random Access Memory)、不揮発性メモリ(NVRAM(Non Volatile RAM))等である。補助記憶装置13は、例えば、SSD(Solid State Drive
)、ハードディスクドライブ、光学式記憶装置(CD(Compact Disc)、DVD(Digital Versatile Disc)等)、ストレージシステム、ICカード、SDカードや光学式記録媒体等の記録媒体の読取/書込装置、仮想サーバの記憶領域等である。補助記憶装置13には、記録媒体の読取装置や通信装置16を介してプログラムやデータを読み込むことができる。補助記憶装置13に格納(記憶)されているプログラムやデータは主記憶装置12に随時読み込まれる。
入力装置14は、外部からの入力を受け付けるインタフェースであり、例えば、キーボード、マウス、タッチパネル、カードリーダ、音声入力装置等である。出力装置15は、処理経過や処理結果等の各種情報を出力するインタフェースである。出力装置15は、例えば、上記の各種情報を可視化する表示装置(液晶モニタ、LCD(Liquid Crystal Display)、グラフィックカード等)、上記の各種情報を音声化する装置(音声出力装置(スピーカ等))、上記の各種情報を文字化する装置(印字装置等)である。出力装置15は、入力装置14とともにユーザインタフェースを構成する。尚、例えば、情報処理装置10が通信装置16を介して他の装置(スマートフォン、タブレット、ノートブック型コンピュータ、各種携帯情報端末等)と情報の入力や出力を行う構成としてもよい。
通信装置16は、他の装置との間の通信を実現する。通信装置16は、通信ネットワーク(管理ネットワーク800、データネットワーク810、及び広域ネットワーク8200のうちの少なくともいずれか)を介した他の装置との間の通信を実現する、無線方式又は有線方式の通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Bus)モジュール、シリアル通信モジュール等である。続いて、各装置が備える機能について説明する。
図5に推論サーバ500が備える主な機能を示している。同図に示すように、推論サーバ500は、記憶部510及び推論部520を備える。これらの機能は、推論サーバ500を構成する情報処理装置10のプロセッサ11が、当該情報処理装置10の主記憶装置12に格納されているプログラムを読み出して実行することにより、もしくは、当該情報処理装置10が備えるハードウェア(FPGA、ASIC、AIチップ等)により実現される。
記憶部510は、推論モデル群5110、及び推論モデル割当テーブル5120を記憶し管理するリポジトリとして機能する。記憶部510は、例えば、DBMSが提供するデータベースのテーブルや、ファイルシステムが提供するファイルとして、これらのデータを記憶する。
推論モデル群5110は、機械学習のアルゴリズムや学習データにより生成された一つ以上の推論モデルを含む。推論モデルには、例えば、回帰式を用いて時系列データの将来値を予測するモデル、DNN(Deep Neural Network)を用いて画像を分類するモデル等
がある。
推論モデル割当テーブル5120は、端末装置4から送られてくる推論データの推論モデルへの割り当てに関する情報を含む。
図6に推論モデル割当テーブル5120の一例を示す。例示する推論モデル割当テーブル5120は、端末装置ID5121、推論モデルID5122、及び推論モデルAPIエンドポイント5123の各項目を有する複数のレコード(エントリ)で構成されている。端末装置ID5121には、端末装置4の識別子である端末装置IDが設定される。推論モデルID5122には、推論モデルの識別子である推論モデルIDが設定される。推論モデルAPIエンドポイント5123には、推論モデルが推論データとともに推論実施要求を受け付けるAPI(Application Programming Interface)のエンドポイント(例
えば、URL(Uniform Resource Locator)やIP(Internet Protocol)アドレス等の
ネットワークアドレス)が設定される。APIは、推論サーバ500が提供してもよいし、推論サーバ500以外が提供してもよい。
例示する推論モデル割当テーブル5120の場合、例えば、端末装置ID5121が「client001」の端末装置4から送られてくる推論データは、推論モデルID5122が「model001」の推論モデルに入力されることを示している。また推論モデルAPIエンドポ
イント5123には、推論モデルが実行される推論サーバ500が設置される推論環境を示すドメイン名の記述を含むURLが設定される。同図における「domain1」は推論環境
2aを、「domain2」は推論環境2bを示す。
同一の推論モデルの異なるインスタンスが複数の環境で実行されることもある。例えば、同図の例では、推論モデルID5122が「model001」の推論モデルのインスタンスが「domain1」で示される推論環境2aと、「domain2」で示される推論環境2bで実行され、夫々「https://model001.domain1」で示されるAPIエンドポイントと、「https://model001.domain2」で示されるAPIエンドポイントにて推論データ(推論実施要求)を受け付ける。また同一の端末装置4から送られてくる推論データが複数の推論モデルに入力されることもある。例えば、同図の例では、端末装置ID5121が「client003」の端末装置4からの推論データは、推論モデルID5122が「model001」の推論モデルと、推論モデルID5122が「model002」の推論モデルに入力される。尚、例えば,アンサンブルアルゴリズムにより推論が行われる場合にはこのように同一の端末装置4から送られてくる推論データを複数の推論モデルに入力される。
尚、本実施形態では、端末装置4から送られてくる推論データを入力する推論モデルを、このように推論モデル割当テーブル5120を用いて管理するが、他の方法で管理してもよい。例えば、DNS(Domain Name System)により推論データを処理する推論モデルの名前解決を行う際に、端末装置4毎に異なる推論モデル(API)に割り当てられているネットワークアドレスを返すようにしてもよい。
図5に戻り、推論部520は、端末装置4から推論データを受信し、受信した推論データを推論モデル割当テーブル5120から特定される推論サーバ500の推論モデルに入力することにより推論処理を行う。このように推論部520は、推論データを割り当て先に転送するルータの役割を果たす。
尚、端末装置4が推論部520に推論データを送信する方法は必ずしも限定されない。例えば、推論部520が提供するAPIを端末装置4から呼び出すようにしてもよい。また例えば、端末装置4が、端末装置4と推論部520のいずれもがアクセス可能なストレージの記憶領域に推論データを格納しておき、端末装置4から推論部520に、上記ストレージに格納されている推論データへのアクセス情報(接続先や認証情報など)を送信し
、推論部520が、端末装置4から推論実施要求を受信した際、上記アクセス情報を用いて上記ストレージから推論データを取得するようにしてもよい。
推論部520及び推論モデル割当テーブル5120は、2つの推論環境2a,2bの夫々の推論サーバ500のうちいずれか一方にのみ配置してもよい。また推論部520及び推論モデル割当テーブル5120を記憶する推論サーバ500と、推論モデル群5110を記憶する推論サーバ500を、夫々異なる情報処理装置に配置してもよい。推論部520、推論サーバ500、及び推論環境2の対応関係は必ずしも限定されない。例えば、推論部520が複数の推論サーバ500により実現されていてもよい。また推論部520と推論環境2とは一対一に対応していてもよいし対応していなくてもよい。
図7に学習サーバ600が備える主な機能を示している。同図に示すように、学習サーバ600は、記憶部610、前処理部620、学習部630、及び評価部640の各機能を有する。これらの機能は、学習サーバ600を構成する情報処理装置10のプロセッサ11が、当該情報処理装置10の主記憶装置12に格納されているプログラムを読み出して実行することにより、もしくは、当該情報処理装置10が備えるハードウェア(FPGA、ASIC、AIチップ等)により実現される。
記憶部610は、学習データ群6110を記憶し管理するリポジトリとして機能する。記憶部610は、例えば、DBMSが提供するデータベースのテーブルや、ファイルシステムが提供するファイルとして、学習データ群6110を記憶する。学習データ群6110には、学習データの生成元となるデータ(以下、「生成元データ」と称する。)や生成元データに基づき前処理部620によって生成した学習データが含まれる。生成元データは、例えば、端末装置4から取得される推論データである。
前処理部620は、生成元データに種々の前処理を行って学習データと評価データを生成する。前処理には、例えば、生成元データの欠損値を補完する処理、生成元データを正規化する処理、特徴量を抽出する処理、生成元データを学習データと評価データに分割する処理等がある。
学習部630は、学習データに基づき機械学習を行って推論モデルを生成する。推論モデルを生成するアルゴリズムは必ずしも限定されない。上記アルゴリズムとして、例えば、DNN(Deep Neural Network)、各種回帰分析、時系列分析、アンサンブル学習(Ensemble Learning)等がある。
評価部640は、評価データを用いて推論モデルのパフォーマンスを評価する。推論モデルのパフォーマンスの種類や推論モデルのパフォーマンスの評価方法は必ずしも限定されない。推論モデルのパフォーマンスの種類として、例えば、精度や公平性等がある。推論モデルの評価方法として、例えば、実績値との間の平均二乗誤差や平均絶対誤差、決定係数を評価指標として用いるものがある。
以下の説明において、推論モデルの学習に関する処理(前処理部620、学習部630、及び評価部640の夫々の処理)を実現するためのプログラムやデータのことをMLコードと称する。MLコードは、例えば、有効特徴量が変化した際に更新される。MLコードは、例えば、人(推論モデルの開発者等)が起動してもよいし、所定のソフトウェアによりMLコードを順次呼び出して自動実行してもよい。また例えば、所定のソフトウェアがMLコードを様々な条件(アルゴリズム選択やパラメータ設定)で実行し、評価の最も高い推論モデルを自動選択するようにしてもよい。
図8に管理サーバ700が備える主な機能を示している。同図に示すように、管理サー
バ700は、記憶部710、データ傾向判定部720、推論精度評価部730、MLコードデプロイ部740、要因判定部750、及び配置決定部760の各機能を有する。尚、管理サーバ700は、人(推論モデルの開発者等)によるMLコードの開発を支援する機能をさらに備えていてもよい。これらの機能は、管理サーバ700を構成する情報処理装置10のプロセッサ11が、当該情報処理装置10の主記憶装置12に格納されているプログラムを読み出して実行することにより、もしくは、当該情報処理装置10が備えるハードウェア(FPGA、ASIC、AIチップ等)により実現される。
記憶部710は、データ傾向管理テーブル7110、推論精度管理テーブル7120、MLコード管理テーブル7130、推論モデル配置管理テーブル7140、推論データ/結果群7150、MLコード群7160、及び推論モデル群7170を記憶し管理するリポジトリとして機能する。記憶部710は、例えば、DBMSが提供するデータベースのテーブルや、ファイルシステムが提供するファイルとしてこれらの情報(データ)を記憶する。記憶部710は、MLコードや推論モデルを管理する機能を実現するためのプログラムやデータをさらに記憶してもよい。例えば、記憶部710は、推論データの傾向や推論精度の時間変化を表示するプログラムを記憶してもよい。
データ傾向管理テーブル7110は、端末装置4が推論サーバ500に送信する推論データの傾向をグループ化した結果を示す情報を含む。
図9にデータ傾向管理テーブル7110の一例を示す。同図に示すように、データ傾向管理テーブル7110は、端末装置ID7111、データ傾向グループID7112、及び判定日時7113の各項目を有する複数のレコードで構成される。このうち端末装置ID7111には、端末装置IDが設定される。データ傾向グループID7112には、傾向が類似する推論データを分類するグループであるデータ傾向グループに夫々付与される識別子であるデータ傾向グループIDが設定される。判定日時7113には、データ傾向判定部720が当該端末装置IDの端末装置4から送られてくる推論データの傾向を判定した日時が設定される。同図の例では、端末装置ID7111が「client002」である端
末装置4から送信される推論データの傾向が、判定日時71113「2019/10/01 09:00:00」の時点においてはデータ傾向グループID7112「group001」で示されるデータ傾
向であり、判定日時7113「2019/10/02 13:00:00」の時点ではデータ傾向グループI
D7112「group002」で示されるデータ傾向であることを示している。これにより当該端末装置4から送信される推論データの傾向が変化していることを検出できる。
図8に戻り、推論精度管理テーブル7120には、端末装置4が送信した推論データを推論モデルに入力することにより得られた推論結果の精度(推論精度)を示す情報が管理される。
図10に推論精度管理テーブル7120の一例を示す。同図に示すように、推論精度管理テーブル7120は、端末装置ID7121、推論モデルID7122、評価日時7123、及び推論精度7124の各項目を有する複数のレコードで構成される。このうち端末装置ID7121には、端末装置IDが設定される。推論モデルID7122には、推論モデルIDが設定される。評価日時7123には、推論精度評価部730が、当該端末装置IDの端末装置4の当該推論モデルIDの推論モデルに推論データを入力して推論を行い推論精度を評価した日時が設定される。推論精度7124には、推論精度評価部730が評価した推論精度を示す情報が設定される。同図の例では、端末装置ID7121が「client001」の端末装置4から送信された推論データを推論モデルID7122が「model001」で示される推論モデルに入力して推論を行った結果が、評価日時7123「2019/10/01 10:00:00」の時点において推論精度7124「90%」であり、また評価日時712
3「2019/10/01 11:00:00」の時点において推論精度7124「88%」であること(推論精
度が低下していること)を示している。
図8に戻り、MLコード管理テーブル7130には、学習サーバ600と、学習サーバ600にデプロイされているMLコードとの対応を示す情報が管理される。
図11にMLコード管理テーブル7130の一例を示す。MLコード管理テーブル7130は、学習サーバID7131、前処理プログラムID7132、学習プログラムID7133、及び評価プログラムID7134の各項目を有する複数のレコードで構成される。学習サーバID7131には、学習サーバ600の識別子である学習サーバIDが設定される。前処理プログラムID7132には、前処理部620を実現するプログラムの識別子である前処理プログラムIDが設定される。学習プログラムID7133には、学習部630を実現するプログラムの識別子である学習プログラムIDが設定される。評価プログラムID7134には、評価部640を実現するプログラムの識別子である評価プログラムIDが管理される。同図の例では、例えば、学習サーバID7131が「server001」の学習サーバ600に、前処理プログラムID7132が「prep001-1.0」のプログラム、学習プログラムID7133が「learn001-1.0」のプログラム、及び評価プログラムID7134が「eval001-1.0」のプログラムがデプロイされていることを示している
図8に戻り、推論モデル配置管理テーブル7140には、推論サーバ500と、推論サーバ500にデプロイされている推論モデルと、推論モデルが端末装置4から送信される推論データを受け付ける推論モデルAPIエンドポイントを示す情報との対応を示す情報を含む。
図12に推論モデル配置管理テーブル7140の一例を示す。同図に示すように、推論モデル配置管理テーブル7140は、推論サーバID7141、推論モデルID7142、及び推論モデルAPIエンドポイント7143の各項目を有する複数のレコードで構成される。推論サーバID7141には、推論サーバ500の識別子である推論サーバIDが設定される。推論モデルID7142には、推論モデルIDが設定される。推論モデルAPIエンドポイント7143には、推論モデルが推論実施要求とともに推論データを受け付けるためのAPIのエンドポイントを示す情報が設定される。同図に示す例では、推論サーバID7141が「server101」の推論サーバ500に、推論モデルID7142
が「model001」の推論モデルがデプロイされ、当該推論モデルが推論モデルAPIエンドポイント7143が「https://model001.domain1」のAPIエンドポイントにて端末装置4から送信される推論実施要求及び推論データを受け付けることを示している。
図8に戻り、推論データ/結果群7150は、端末装置4が推論サーバ500に送信する推論データと、推論サーバ500が端末装置4に送信する推論結果とを含む。MLコード群7160は、MLコードを含む。推論モデル群7170は、推論モデルの情報を含む。
データ傾向判定部720は、端末装置4が推論サーバ500に送信する推論データの傾向を判定する。データ傾向判定部720は、推論データの傾向の判定結果をデータ傾向管理テーブル7110に格納する。
推論精度評価部730は、推論モデルが推論した結果についてその精度を評価し、推論精度の低下の有無を検出する。推論精度評価部730は、評価結果を推論精度管理テーブル7120に管理する。
MLコードデプロイ部740は、MLコード群7160に含まれているMLコードを学
習サーバ600にデプロイする。MLコードデプロイ部740は、MLコードとMLコードがデプロイされた学習サーバ600との関係をMLコード管理テーブル7130に管理する。
要因判定部750は、推論部520による推論精度の低下が検出された場合に、推論精度が低下した要因を判定する。
配置決定部760は、推論モデル群7170に格納されている推論モデルの推論サーバ500への配置や、端末装置4への推論モデルの割り当てを決定する。配置決定部760は、推論モデルの推論サーバ500への配置状況を推論モデル配置管理テーブル7140に管理する。
続いて、情報処理システム100において行われる処理について説明する。
図13は、推論サーバ500の推論部520が実行する処理(以下、「推論処理S1300」と称する。)を説明するフローチャートである。推論処理S1300は、例えば、推論サーバ500が端末装置4から推論データを受信したことを契機として開始される。但し、これに限らず他の方法で開始されてもよい。以下、同図とともに推論処理S1300について説明する。
端末装置4から推論実施要求とともに推論データを受信すると(S1311)、推論部520は、当該端末装置4の端末装置IDに対応する推論モデルIDと推論モデルAPIエンドポイント5123を、推論モデル割当テーブル5120から取得する(S1312)。尚、端末装置IDは、例えば、端末装置4が送信する推論データに含まれるものとするが、これに限らず他の方法で端末装置IDを特定してもよい。
続いて、推論部520が、取得したAPIエンドポイントに推論データを送信してAPIに推論実施要求を行う(S1313)。尚、推論実施要求を行う方法は必ずしも限定されない。S1312にて推論モデルAPIエンドポイント5123が複数取得される場合、推論部520は、取得された全てのエンドポイントに推論データを入力する。
続いて、推論部520は、APIが推論モデルに推論データを入力して行った推論の結果を取得する(S1314)。尚、推論モデルが推論部520に推論結果を返す方法は、推論部520が当該モデルのAPIを呼び出した際のレスポンスとして同期的に返してもよいし、当該API呼び出しとは別に非同期的に返してもよい。
続いて、推論部520は、端末装置4に推論結果を返す(S1315)。尚、S1312にて複数の推論モデルAPIエンドポイント5123を取得している場合、推論部520は、例えば、複数の推論モデルの夫々から受信した複数の推論結果を端末装置4に返す。また推論部520が、複数の推論結果を1つに統合して端末装置4に返すようにしてもよい。そのような場合として、例えば、推論部520が、推論結果とともに夫々について推論の確からしさを示すスコアを取得し、取得した複数の推論結果の中から最もスコアの高い推論結果を端末装置4に返す場合、取得した複数の推論結果のうち最も多く他の推論結果と同一の結果であったものを返す(多数決方法)場合等がある。推論結果は、推論部520が端末装置4から推論データを受信した際のレスポンスとして端末装置4に同期的に返してもよいし、例えば、APIの呼び出しとは別に非同期的に返してもよい。
続いて、推論部520が、S1311で端末装置4から受信した推論データと、S1315で推論モデルから取得した推論結果とを管理サーバ700の推論データ/結果群7150に格納する(S1316)。上記格納の方法には、例えば、管理サーバ700が推論
データ/結果群7150に推論データや推論結果を格納するためのAPIを提供して推論部520が当該APIを呼び出す方法、ファイル共有プロトコルなどを介して推論サーバ500と管理サーバ700とが推論データ/結果群7150を共有し、推論部520が推論データ及び推論結果をファイルとして書き込む方法等があるが、これに限らず他の方法としてもよい。以上で推論処理S1300は終了する。
図14は、データ傾向判定部720が実行する処理(以下、「データ傾向判定処理S1400」と称する。)を説明するフローチャートである。データ傾向判定部720は、データ傾向判定処理S1400を実行することにより、端末装置4から推論サーバ500に送信された推論データの傾向を判定する。データ傾向判定処理S1400は、例えば、推論部520が推論データ/結果群7150に推論実施要求及び推論データを格納することにより開始される。但しこれに限らずデータ傾向判定処理S1400は他の方法で開始されてもよい。例えば、予め定められた時間間隔毎に定期的に開始してもよい。以下、同図とともにデータ傾向判定処理S1400について説明する。
まずデータ傾向判定部720が、推論データ/結果群7150に格納されている推論データ(例えば、新たに格納された推論データ)について、傾向が近いグループを判定する(S1411)。上記判定の方法としては、例えば、推論データのデータ項目を軸とする多次元空間上で推論データをクラスタリングして傾向が近いグループを判定する方法があるが、これに限らず他の方法で判定してもよい。
続いて、データ傾向判定部720が、判定結果と判定日時とをデータ傾向管理テーブル7110に格納する(S1412)。以上でデータ傾向判定処理S1400は終了する。
図15は、推論精度評価部730が実行する処理(以下、「推論精度評価処理S1500」と称する。)を説明するフローチャートである。推論精度評価部730は、推論精度評価処理S1500を実行することにより、推論モデルによって実行された推論について推論精度を評価する。推論精度評価処理S1500は、例えば、推論部520が推論データ/結果群7150に推論結果を格納したことを契機として開始されるが、これに限らず他の方法で開始されてもよい。例えば、予め定められた時間間隔毎に定期的に推論精度評価処理S1500を開始してもよい。以下、同図とともに推論精度評価処理S1500について説明する。
まず推論精度評価部730が、推論データ/結果群7150の推論結果について推論精度を評価する(S1511)。推論精度の評価の方法としては、例えば、推論結果を人が見て評価した結果をユーザインタフェースを介して取得する方法や、推論結果として得られた予測値と、実測値とを比較する方法等があるが、他の方法により評価してもよい。
続いて、推論精度評価部730が、推論精度の評価結果と評価日時とを推論精度管理テーブル7120に格納する(S1512)。
続いて、推論精度評価部730が、評価対象の推論結果を出力した推論モデルについて、推論精度が低下しているか否かを判定する(S1513)。上記判定の方法としては、例えば、予め定められた閾値と推論精度とを比較し、推論精度が閾値を下回った場合に推論精度が低下したと判定する方法や、前回の推論精度からの低下量が予め定められた閾値以上であるときに推論精度が低下したと判定する方法等があるが、他の方法で判定してもよい。推論精度評価部730が、推論精度が低下していると判定した場合(S1513:YES)、処理はS1514に遷移する。一方、推論精度評価部730が、推論精度が低下していると判定しなかった場合(S1513:NO)、推論精度評価処理S1511は終了する。
S1514では、推論精度評価部730は、配置決定部760の精度低下対応決定処理S1600を呼び出す。精度低下対応決定処理S1600の詳細については後述する。精度低下対応決定処理S1600が実行された後、推論精度評価処理S1511は終了する。
図16は、要因判定部750及び配置決定部760が実行する処理(以下、「精度低下対応決定処理S1600」と称する。)を説明するフローチャートである。精度低下対応決定処理S1600は、例えば、推論精度評価部730によって呼び出されることにより開始されるが、これに限らず他の方法で開始されてもよい。例えば、推論モデルの開発者や情報処理システム100の運用管理者等がユーザインタフェースを介して当該処理を実行するようにしてもよい。以下、同図とともに精度低下対応決定処理S1600について説明する。
まず要因判定部750が、有効特徴量が変化したことが推論精度が低下した要因であるか否かを判定する(S1611)。上記判定の方法は必ずしも限定されないが、例えば、非特許文献1(“A Unified Approach to Interpreting Model Predictions”, S. Lundberg et al., Neural Information Processing Systems (NIPS), 2017)に開示されている方法がある。要因判定部750が、有効特徴量が変化したことが推論精度が低下した要因であると判定した場合(S1612:YES)、処理はS1613に遷移する。一方、要因判定部750が、有効特徴量が変化したことが推論精度が低下した要因であると判定しなかった場合(S1612:NO)、処理はS1621に遷移する。
S1612では、配置決定部760は、有効特徴量が変化したことが推論モデルの推論精度が低下した要因である旨を推論モデルの開発者等の人に通知(アラートを出力)してMLコードの更新を促す。尚、学習サーバ600が、MLコードを様々な条件(アルゴリズムの選択やパラメータの選択)に応じた条件等)で実行し、最も評価の高い推論モデルを選択するソフトウェアを実行可能である場合、配置決定部760がこのタイミングで上記ソフトウェアを実行するようにしてもよい。
続いて、配置決定部760は、MLコードデプロイ部7260のMLコードデプロイ処理S1613を実行し、MLコードを学習サーバにデプロイする(S1613)。MLコードデプロイ処理S1613については図17とともに後述する。
続いて、配置決定部760は、MLコードデプロイ処理S1613によってデプロイされたMLコードを実行し、有効特徴量の変化に対応した新たな推論モデルを生成する(S1614)。配置決定部760は、新たな推論モデルを推論モデル群7170に格納する。
続いて、配置決定部760は、推論環境2aの推論サーバ500、及び推論環境2bの推論サーバ500に、S1615で生成した新たな推論モデルをデプロイし、推論モデル配置管理テーブル7140に当該推論サーバの推論サーバIDと、当該モデルの推論モデルID及び推論モデルAPIエンドポイントとを格納する(S1615)。
続いて、配置決定部760は、推論モデル割当テーブル5120を更新し、推論精度が低下した推論モデルを利用する全ての端末装置4にS1615で生成したモデルを割り当てる(S1616)。即ち、配置決定部760は、推論精度が低下した推論モデルの推論モデルIDと、推論モデル割当テーブル5120の推論モデルID5122の推論モデルIDとを比較し、両者が一致したレコードについて、推論モデルID5122にS1615で生成したモデルの推論モデルIDを、また推論モデルAPIエンドポイント5123
にS1615で生成したモデルの推論モデルAPIエンドポイントを、夫々格納する。当該処理の実行後、精度低下対応決定処理S1600は終了し、図15の推論精度評価処理S1500も終了する。
S1621では、配置決定部760は、MLコードを実行して新たな推論モデルを生成する。配置決定部760は、生成した新たな推論モデルを推論モデル群7170に格納する。
S1622では、配置決定部760は、推論精度が低下した推論モデルがデプロイされていた推論環境2の推論サーバ500に、S1621で生成した新たな推論モデルをデプロイし、推論モデル配置管理テーブル7140に当該推論サーバ500の推論サーバIDと、当該推論モデルの推論モデルID及び推論モデルAPIエンドポイントとを格納する。このとき、推論モデルID及び推論モデルAPIエンドポイントは上書きしてもよいし、上書きせずにレコードを追加してもよい。上書きした場合、例えば、推論精度が低下した推論モデルの代わりにS1621で生成された推論モデルにより推論が行われる。またレコードを追加した場合、例えば、推論精度が低下した推論モデルと新たな推論モデルの双方を用いたアンサンブルアルゴリズムにより推論が行われる。
続いて、配置決定部760は、推論モデル割当テーブル5120を参照し、推論精度が低下した推論モデルが割り当てられていた端末装置4を特定する(S1623)。即ち、配置決定部760は、精度が低下した推論モデルの推論モデルIDと、推論モデル割当テーブル5120の推論モデルID5122の推論モデルIDとを比較し、両者が一致したレコードの端末装置IDを特定する。
続いて、配置決定部760は、データ傾向管理テーブル7110を参照し、S1623で特定した端末装置4のうち、送信してきた推論データに傾向変化のあった端末装置4を特定する(S1624)。即ち、配置決定部760は、S1623で特定した端末装置IDと、データ傾向管理テーブル7110の端末装置ID7111の端末装置IDとを比較し、両者が一致するレコードについて、予め定められた期間の間にデータ傾向グループID7112のデータ傾向グループIDが変化しているか否かを判定し、データ傾向グループIDが変化していると判定したレコードの端末装置IDの端末装置4を、推論データに傾向変化のあった端末装置4として特定する。
続いて、配置決定部760は、データ傾向管理テーブル7110を参照し、推論データに傾向変化のあった端末装置4と同じデータ傾向グループに属する端末装置4を特定する(S1625)。即ち、配置決定部760は、S1624で特定した端末装置4の端末装置IDと、データ傾向管理テーブル7110の端末装置ID7111の端末装置IDとを比較し、両者が一致するレコードのデータ傾向グループIDを取得し、当該データ傾向グループIDと同じデータ傾向グループIDを持つ別のレコードを特定し、特定したレコードの端末装置IDの端末装置4を、推論データに傾向変化のあった端末装置4と同じデータ傾向グループに属する端末装置4として特定する。
続いて、配置決定部760は、推論モデル割当テーブル5120を更新し、S1624及びS1625で特定した端末装置4に、S1621で生成した新たな推論モデルを割り当てる(S1626)。即ち、配置決定部760は、S1624及びS1625で特定した端末装置4の端末装置IDと、推論モデル割当テーブル5120の端末装置ID5121の端末装置IDとを比較し、両者が一致するレコードについて、推論モデルID5122にS1621で生成した新たな推論モデルの推論モデルIDを、推論モデルAPIエンドポイント5123にS1621で生成した新たな推論モデルの推論モデルAPIエンドポイントを、夫々格納する。尚、推論モデル割当テーブル5120の更新は、例えば、デ
ータ傾向判定処理S1400の途中にデータ傾向が変化したか否かを判定する処理ステップを設け、データ傾向が変化したと判定した場合に行うようにしてもよい。当該処理の実行後、精度低下対応決定処理S1600は終了し、図15の推論精度評価処理S1500も終了する。
図17は、前述したMLコードデプロイ処理S1613を説明するフローチャートである。MLコードデプロイ部740は、同図に示す手順に従ってMLコードを学習サーバ600にデプロイする。本例では、MLコードデプロイ処理S1613は、配置決定部760によって呼び出されることにより開始されるが、これに限らず他の方法で開始されてもよい。例えば、推論モデルの開発者や運用管理者等の人が、MLコードデプロイ部740のユーザインタフェースを介して当該処理を実行するようにしてもよい。
S1721では、MLコードデプロイ部740は、MLコード群7160を監視する。続いて、MLコードデプロイ部740は、MLコード群にてMLコードが更新されているか否か(有効特徴量の変化に対応した内容のMLコードに更新されているか否か)を判定する(S1722)。尚、MLコードの更新には、新規のMLコードの追加や既存のMLコードの削除、既存のMLコードの変更等がある。MLコードデプロイ部740が、MLコードが更新されていると判定した場合(S1722:YES)、処理はS1723に遷移する。MLコードデプロイ部740が、MLコードが更新されていないと判定した場合(S1722:NO)、処理はS1721に遷移する。このとき、当該処理によって学習サーバ600が過負荷となるのを防ぐため、予め定められた一定時間、学習サーバ600が行っている所定の処理を停止するようにしてもよい。
S1723では、MLコードデプロイ部740は、更新されているMLコードを学習サーバ600にデプロイする。その後、MLコードデプロイ処理S1614は終了し、続いて図16のS1614の処理に進む。
図18及び図19は、図16に示した精度低下対応決定処理S1600の例を模式的に示した図である。
図18は、推論モデルIDが「model002」の推論モデルの推論精度が低下し、その結果、図16のS1611において有効特徴量が変化したことが推論精度が低下した要因であると判定された場合である。本例では、図16のS1621において、有効特徴量の変化に対応した、推論モデルIDが「model002’」の新たな推論モデルが生成され、生成された新たな推論モデルが推論環境2aの推論サーバ500及び推論環境2bの推論サーバ500にデプロイされている。また推論精度が低下した「model002」が割り当てられていたクライアント「client002」、「client003」、及び「client004」に、「model002’」が
割り当てられている。
図19は、端末装置IDが「client002」の端末装置4から送信された推論データの傾
向が変化した結果、推論モデルIDが「model002」の推論モデルの推論精度が低下し、その結果、図16のS1611において有効特徴量が変化したことが推論精度が低下した要因でないと判定された場合である。本例では、図16のS1614において、推論モデルIDが「model002’」の新たな推論モデルが生成され、生成された新たな推論モデルが推論環境2aの推論サーバ500にデプロイされる。また推論モデルIDとして「model002」に代えて「model002’」が「client002」に割り当てられている。ここで同図の例では
、端末装置IDが「client002」の端末装置4から送信される推論データの傾向変化とい
う当該端末装置4に限定された要因によって推論精度が低下しているため、新たな推論モデルは当該端末装置4にのみ割り当てられている(図中の下段左側の図)。またその後に端末装置IDが「client004」の端末装置4から送信される推論データに端末IDが「cli
ent002」の端末装置4から送信される推論データと同様の傾向変化が生じると、端末装置4に、推論モデルIDが「model002」の推論モデルの代わりに推論モデルIDが「model002’」の推論モデルが「client004」に割り当てられる(図中下段右側の図)。
以上の詳細に説明したように、本実施形態の情報処理システム100は、推論モデルの推論精度が低下したことを検出した場合、推論モデルの推論精度が低下した要因を判定し、有効特徴量が変化したことが推論モデルの推論精度が低下した要因である場合、例えば、推論モデルの開発者等によって更新されたMLコードを用いて、有効特徴量の変化に対応した新たな推論モデルを生成し、生成した新たな推論モデルを推論環境2の夫々の推論サーバ500にデプロイする。一方、有効特徴量が変化したことが推論モデルの精度が低下した要因でない場合、情報処理システム100は、推論精度が低下した推論データに対応した新たな推論モデルを生成し、推論精度が低下した推論モデルと同じ推論環境の推論サーバ500に新たな推論モデルをデプロイする。また情報処理システム1は、推論精度が低下した推論モデルが割り当てられていた端末装置4及び当該端末装置4と同じデータ傾向グループに属する端末装置4に新たな推論モデルを割り当てる。このように本実施形態の情報処理システム100は、推論モデルの精度が低下した要因に応じて新たな推論モデルの適用方法を適切に決定するので、推論精度が低下したり、推論にかかる負荷や時間が無駄に増えることがなく、複数の推論環境の夫々における推論精度の向上を図ることができる。
以上、本発明の実施形態につき説明したが、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。また例えば、上記した実施形態は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また各実施形態の構成の一部について、他の構成に追加、削除、置換することが可能である。
また上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また実施形態で示した各機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体を情報処理装置(コンピュータ)に提供し、その情報処理装置が備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が以上の実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、フレキシブルディスク、CD-ROM、DVD-ROM、磁気テープ、不揮発性のメモリカード、ROM等が用いられる。
以上の実施形態において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。また以上では各種の情報を表形式で例示したが、これらの情報は表以外の形式で管理してもよい。
2 推論環境、3 学習環境、4 端末装置、5 ルータ、100 情報処理システム、500 推論サーバ、510 記憶部、5110 推論モデル群、5120 推論モデル割当テーブル、520 推論部、600 学習サーバ、610 記憶部、6110 学習データ群、620 前処理部、630 学習部、640 評価部、700 管理サーバ、710 記憶部、7110 データ傾向管理テーブル、7120 推論精度管理テーブル、7130 MLコード管理テーブル、7140 推論モデル配置管理テーブル、715
0 推論データ/結果群、7160 MLコード群、7170 推論モデル群、720 データ傾向判定部、730 推論精度評価部、740 MLコードデプロイ部、750 要因判定部、760 配置決定部

Claims (15)

  1. 一つ以上の推論モデルにデータを入力して推論を行う複数の推論部と、
    前記推論部による推論の精度を評価する推論精度評価部と、
    第1の前記推論部において推論精度の低下が検出された場合に、当該第1の推論部に入力されたデータを学習した新たな推論モデルを生成する学習部と、
    前記推論精度の低下の要因を判定する要因判定部と、
    判定した前記要因に基づき、前記第1の推論部と異なる第2の前記推論部に前記新たな推論モデルを適用するか否かを判定する配置決定部と、
    を備える、情報処理システム。
  2. 請求項1に記載の情報処理システムであって、
    前記要因判定部が前記推論モデルの有効特徴量が変化したことを前記要因として判定した場合に、前記配置決定部は、前記複数の推論部のうち前記第1の推論部を含む一つ以上の前記推論部を前記新たな推論モデルの適用先として決定する、
    情報処理システム。
  3. 請求項2に記載の情報処理システムであって、
    前記要因判定部が前記推論モデルの有効特徴量が変化したことを前記要因として判定した場合に、前記配置決定部は、前記新たな前記推論モデルを利用する全ての前記推論部を当該新たな推論モデルの適用先として決定する、
    情報処理システム。
  4. 請求項1に記載の情報処理システムであって、
    前記要因判定部が前記第1の推論部に入力される前記データの傾向が変化したことを前記要因として判定した場合に、当該データと傾向の変化が類似するデータが入力される前記第2の推論部を特定する傾向判定部を更に備え、
    前記配置決定部は、前記第1の推論部と、前記傾向判定部が特定した前記第2の推論部とを前記新たな推論モデルの適用先として決定する、
    情報処理システム。
  5. 請求項4に記載の情報処理システムであって、
    前記傾向判定部は、前記新たな推論モデルの適用先として決定しなかった他の前記第2の推論部に入力されるデータについて前記傾向の変化と類似する傾向の変化が生じているか否かの監視を継続し、
    前記配置決定部は、前記他の第2の推論部に入力される前記データに前記傾向の変化と類似する傾向の変化が生じていることを検出した場合に、当該他の第2の推論部を前記新たな推論モデルの適用先として決定する、
    情報処理システム。
  6. 請求項1乃至5のいずれか一項に記載の情報処理システムであって、
    前記推論部は、入力される前記データを複数の前記推論モデルのうちの一つ以上に割り当てることにより推論を行う、
    情報処理システム。
  7. 請求項6に記載の情報処理システムであって、
    前記推論部は、入力される前記データを複数の前記推論モデルに割り当ててアンサンブルアルゴリズムを実行することにより推論を行う、
    情報処理システム。
  8. 請求項1乃至5のいずれか一項に記載の情報処理システムであって、
    複数の端末装置と通信可能に接続し、
    前記推論部は、前記端末装置から取得した前記データを前記推論モデルに入力して推論を行い、
    前記配置決定部は、前記端末装置の夫々と、夫々から取得したデータの入力先となる前記推論モデルとの対応を管理し、ある前記第1の推論部において推論精度の低下が検出された場合に、生成した前記新たな推論モデルが当該第1の推論部に入力されたデータの取得元の前記端末装置から取得したデータの入力先となるように前記対応を管理する、
    情報処理システム。
  9. 一つ以上の推論モデルにデータを入力して推論を行う複数の推論部を備える情報処理システムの制御方法であって
    前記情報処理システムが、
    一つ以上の推論モデルを含むにデータを入力して推論を行う複数の推論部により推論を行うステップ、
    前記推論部による推論の精度を評価するステップ、
    第1の前記推論部において推論精度の低下が検出された場合に、当該第1の推論部に入力されたデータを学習した新たな推論モデルを生成するステップ、
    前記推論精度の低下の要因を判定するステップ、及び、
    判定した前記要因に基づき、前記第1の推論部と異なる第2の前記推論部に前記新たな推論モデルを適用するか否かを判定するステップ、
    を実行する、情報処理システムの制御方法。
  10. 請求項9に記載の情報処理システムの制御方法であって、
    前記情報処理システムが、前記推論モデルの有効特徴量が変化したことを前記要因として判定した場合に、前記複数の推論部のうち前記第1の推論部を含む一つ以上の前記推論部を前記新たな推論モデルの適用先として決定するステップ
    をさらに実行する、情報処理システムの制御方法。
  11. 請求項10に記載の情報処理システムの制御方法であって、
    前記情報処理システムが、前記推論モデルの有効特徴量が変化したことを前記要因として判定した場合に、前記新たな前記推論モデルを利用する全ての前記推論部を当該新たな推論モデルの適用先として決定するステップ
    をさらに実行する、情報処理システムの制御方法。
  12. 請求項9に記載の情報処理システムの制御方法であって、
    前記情報処理システムが、
    前記第1の推論部に入力される前記データの傾向が変化したことを前記要因として判定した場合に、当該データと傾向の変化が類似するデータが入力される前記第2の推論部を特定するステップ、及び、
    前記第1の推論部と、特定した前記第2の推論部とを前記新たな推論モデルの適用先として決定するステップ
    をさらに実行する、情報処理システムの制御方法。
  13. 請求項12に記載の情報処理システムの制御方法であって、
    前記情報処理システムが、
    前記新たな推論モデルの適用先として決定しなかった他の前記第2の推論部に入力されるデータについて前記傾向の変化と類似する傾向の変化が生じているか否かの監視を継続するステップ、及び、
    前記他の第2の推論部に入力される前記データに前記傾向の変化と類似する傾向の変化
    が生じていることを検出した場合に、当該他の第2の推論部を前記新たな推論モデルの適用先として決定するステップ
    をさらに実行する、情報処理システムの制御方法。
  14. 請求項9乃至13のいずれか一項に記載の情報処理システムの制御方法であって、
    前記推論部は、入力される前記データを複数の前記推論モデルのうちの一つ以上に割り当てることにより推論を行う、
    情報処理システムの制御方法。
  15. 請求項14に記載の情報処理システムの制御方法であって、
    前記推論部は、入力される前記データを複数の前記推論モデルに割り当ててアンサンブルアルゴリズムを実行することにより推論を行う、
    情報処理システムの制御方法。
JP2020010366A 2020-01-24 2020-01-24 情報処理システム、及び情報処理システムの制御方法 Active JP7245796B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020010366A JP7245796B2 (ja) 2020-01-24 2020-01-24 情報処理システム、及び情報処理システムの制御方法
US17/066,522 US20210232950A1 (en) 2020-01-24 2020-10-09 Information processing system and method for controlling information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020010366A JP7245796B2 (ja) 2020-01-24 2020-01-24 情報処理システム、及び情報処理システムの制御方法

Publications (2)

Publication Number Publication Date
JP2021117706A JP2021117706A (ja) 2021-08-10
JP7245796B2 true JP7245796B2 (ja) 2023-03-24

Family

ID=76969346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020010366A Active JP7245796B2 (ja) 2020-01-24 2020-01-24 情報処理システム、及び情報処理システムの制御方法

Country Status (2)

Country Link
US (1) US20210232950A1 (ja)
JP (1) JP7245796B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004279211A (ja) 2003-03-14 2004-10-07 Omron Corp 知識作成支援装置及びパラメータ探索方法並びにプログラム製品
JP2005523527A (ja) 2002-04-19 2005-08-04 コンピュータ アソシエイツ シンク,インコーポレイテッド ローカルネットを介しての自動的モデルメインテナンス
JP2010002815A (ja) 2008-06-23 2010-01-07 Ricoh Co Ltd 状態判別方法、状態判別システム及び画像形成装置
WO2018173128A1 (ja) 2017-03-21 2018-09-27 矢崎総業株式会社 中子及び成形装置並びに成形方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005523527A (ja) 2002-04-19 2005-08-04 コンピュータ アソシエイツ シンク,インコーポレイテッド ローカルネットを介しての自動的モデルメインテナンス
JP2004279211A (ja) 2003-03-14 2004-10-07 Omron Corp 知識作成支援装置及びパラメータ探索方法並びにプログラム製品
JP2010002815A (ja) 2008-06-23 2010-01-07 Ricoh Co Ltd 状態判別方法、状態判別システム及び画像形成装置
WO2018173128A1 (ja) 2017-03-21 2018-09-27 矢崎総業株式会社 中子及び成形装置並びに成形方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HUMMER Waldemar et al.,ModelOps:Cloud-based Lifecycle Management for Reliable and Trusted AI,2019 IEEE International Conference on Cloud Engineering(IC2E),2019年08月08日,インターネット:<URL:https://ieeexplore.ieee.org/document/8790192>

Also Published As

Publication number Publication date
US20210232950A1 (en) 2021-07-29
JP2021117706A (ja) 2021-08-10

Similar Documents

Publication Publication Date Title
US9612807B2 (en) Code placement using a dynamic call graph
WO2016168476A1 (en) A method to detect malicious behavior by computing the likelihood of data accesses
CN106104626B (zh) 基于分析的数字内容的更新
JP2017527929A (ja) コンピュータ・インフラストラクチャの管理におけるポリシーの自己調整のための半教師あり機械学習の活用
JP2017027601A (ja) バックアップランタイム制約に基づいて仮想マシンをサーバ上に設置するシステム
JP6993495B2 (ja) クラウド・ネットワーキングにおけるスケーラブルな統計及び分析メカニズム
JP2023500813A (ja) 構成を使用したコンピューティング環境内のソフトウェア・アプリケーションの検出のための自動的な技術
US11409552B2 (en) Hardware expansion prediction for a hyperconverged system
JP2022531595A (ja) リモートネットワーク管理プラットフォームのための集中型機械学習プレディクタ
JP7207009B2 (ja) 異常検知装置、異常検知方法および異常検知プログラム
JP7245796B2 (ja) 情報処理システム、及び情報処理システムの制御方法
US11237890B2 (en) Analytics initiated predictive failure and smart log
US10999159B2 (en) System and method of detecting application affinity using network telemetry
EP3803770A1 (en) Distributed computing system with a synthetic data as a service asset assembly engine
US11915060B2 (en) Graphics processing management system
US11797353B2 (en) Method and system for performing workloads in a data cluster
CN116368539A (zh) 用于分区神经网络的具有省电和加密特征的媒体捕捉设备
JP6816824B2 (ja) 分散システム、データ管理装置、データ管理方法、及びプログラム
US20240020711A1 (en) Methods and systems for customer accounts association in multilingual environments
EP3803721B1 (en) Distributed computing system with a synthetic data as a service feedback loop engine
US20240168761A1 (en) Content-aware auto-scaling of stream processing applications on container orchestration
US20240303341A1 (en) Method to clone and/or migrate the applicable bios settings in a device twin/migration environment
US20240303529A1 (en) Machine learning-based application management for enterprise systems
CN112527277B (zh) 可视化的计算任务编排方法、装置、电子设备及存储介质
US20240087250A1 (en) Methods and systems for managing images in augmented reality (ar) environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230119

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: 20230307

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230313

R150 Certificate of patent or registration of utility model

Ref document number: 7245796

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150