(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-13
(45)【発行日】2024-08-21
(54)【発明の名称】機械学習モデル運用管理システム、運用管理方法及びコンピュータプログラム
(51)【国際特許分類】
G06F 11/34 20060101AFI20240814BHJP
G06N 20/00 20190101ALI20240814BHJP
【FI】
G06F11/34 176
G06N20/00
(21)【出願番号】P 2023032160
(22)【出願日】2023-03-02
(62)【分割の表示】P 2020054839の分割
【原出願日】2020-03-25
【審査請求日】2023-03-02
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】高重 聡一
(72)【発明者】
【氏名】小牧 大輔
(72)【発明者】
【氏名】手塚 伸
【審査官】大倉 崚吾
(56)【参考文献】
【文献】特開2017-215828(JP,A)
【文献】特開2014-134987(JP,A)
【文献】特開2016-192185(JP,A)
【文献】特開2003-067222(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/30-11/34
G06N 3/00-99/00
G06Q 10/06-10/067
(57)【特許請求の範囲】
【請求項1】
機械学習モデルの運用管理を行うシステムであって、
前記機械学習モデルを呼び出すシステムによる業務の内容を
含む業務ログと、前記機械学習モデルの推論を処理する場合の入出力データである
推論ログを記憶するメモリと、
前記システムと前記機械学習モデルとの依存関係を表す構成情報
に基づいて前記業務ログと前記推論ログとの対応付けを
実施する
プロセッサと、
を備えることを特徴とする機械学習モデル運用管理システム。
【請求項2】
前記
プロセッサは、
前記構成情報として
含まれる前記推論ログの
入出力データの処理の流れをあらわすデータフロー情
報および、前記
業務ログと
推論ログとの影響関係を示すフィードバックパターン定義
に基づいて前記業務ログと前記推論ログとの対応付けを実施する、
ことを特徴とする請求項1に記載の機械学習モデル運用管理システム。
【請求項3】
前記
プロセッサは、
前記フィードバックパターン定義として
含まれる、
前記システムと前記機械学習モデルとの処理の順序
である接続関係
と、
前記システムと前記機械学習モデルとの前記
業務ログ及び前記
推論ログの影響を、対応する要素数、対応付けのキー値の計算方式、および、対応する行の間の関係
とを用いて、
前記業務ログと前記推論ログとの対応付けを実施する、
ことを特徴とする請求項2に記載の機械学習モデル運用管理システム。
【請求項4】
前記
プロセッサは
、前記機械学習モデルのIDと前記業務のIDとを共に含むデータフロー情報を取得して、グラフ構造をたどることで対応付けられる前記
業務ログまたは前記
推論ログを特定することを特徴とする請求項2に記載の機械学習モデル運用管理システム。
【請求項5】
前記
プロセッサは、前記対応付けとして、前記
業務ログまたは前記
推論ログの対応付けにおいて、前記要素数、前記キー値の計算方式に基づいて、それぞれの
業務ログまたは
推論ログに含まれるIDを計算し、そのIDに基づいて対応付けることを特徴とする請求項3に記載の機械学習モデル運用管理システム。
【請求項6】
機械学習モデルの運用管理を行う
ための運用管理方法であって、
コンピュータが、
前記機械学習モデルを呼び出すシステムによる業務の内容を
含む業務ログと、前記機械学習モデルの推論を処理する場合の入出力データである
推論ログを記憶し、
前記システムと前記機械学習モデルとの依存関係を表す構成情報
に基づいて前記業務ログと前記推論ログとの対応付けを
実施する
、
ことを特徴とす
る運用管理方法。
【請求項7】
機械学習モデルの運用管理を行うコンピュータにより実行されるコンピュータプログラムであって、
前記機械学習モデルを呼び出すシステムによる業務の内容を
含む業務ログと、前記機械学習モデルの推論を処理する場合の入出力データである
推論ログを記憶し、
前記システムと前記機械学習モデルとの依存関係を表す構成情報
に基づいて前記業務ログと
前記推論ログとの対応付けを
実施する
ことを前記コンピュータに実行させる
ためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習モデル運用管理システム、運用管理方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
本発明は、機械学習モデルを開発し、デプロイする運用ライフサイクル(MLOps:Machine Learning/Operations)を管理する技術の中で、特に運用監視の技術に好ましく適用される。
【0003】
機械学習において、開発したモデルをシステムに導入した後に、そのモデルの精度や特定の状況における推論結果に問題が発生しているかを恒常的、定期的に確認することが重要となる。この際、モデルに問題が発生しているかを監視し、精度などに問題がある場合にそれを検出して対応するシステムが必要となる。
【0004】
本技術に関連するものとして、例えば特許文献1に開示されたものがある。この特許文献1には、推論システムの精度を収集、監視し、精度のより高いモデルをデプロイする方式が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】米国特許出願公開第2019/0156427号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載の技術では、推論結果を用いた業務のKPIに問題があった場合、業務と推論の結果の関連性がわからず、モデル・データのいずれかに問題があるかを特定するために、関連データをすべて探し出して、内容を確認する必要がある。これを支援する技術がないと、業務とモデルの実績の間の相関関係やトランザクションレベルでの1:1のデータの対応付けなどを、膨大なデータの中から人手で行う必要があり、膨大なコストがかかる。
【0007】
本発明は上記の課題に鑑みてなされたもので、業務と推論データの間の関係づけを支援し、問題となるデータの抽出を迅速に行うことが可能な機械学習モデル運用管理システム、運用管理方法及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決すべく、本発明の一つの観点に従う機械学習モデルの運用管理を行うシステムは、機械学習モデルを呼び出すシステムによる業務の内容を出力するシステムデータ列と、機械学習モデルの推論を処理する場合の入出力データである記録データ列とに基づいて、システムデータ列と記録データ列の対応付けを、システムと機械学習モデルとの依存関係を表す構成情報からこれらシステムデータ列と記録データ列との対応付けを算出する業務推論対応付け部を備えることを特徴とする。
【発明の効果】
【0009】
本発明によれば、業務と推論データの間の関係づけを支援し、問題となるデータの抽出を迅速に行うことが可能な機械学習モデル運用管理システム、運用管理方法及びコンピュータプログラムを実現することができる。
【図面の簡単な説明】
【0010】
【
図1】実施例1に係る機械学習モデル運用管理システムの概略の全体構成を示す図である。
【
図2】実施例1に係る機械学習モデル運用管理システムのハードウェア構成を示すブロック図である。
【
図3】実施例1に係る機械学習モデル運用管理システムにおける実験管理ログ及びバージョン管理部の一例を示す図である。
【
図4】実施例1に係る機械学習モデル運用管理システムにおける推論ログおよび業務ログの一例を示す図である。
【
図5】実施例1に係る機械学習モデル運用管理システムにおけるデータフロー情報の一例を示す図である。
【
図6】実施例1に係る機械学習モデル運用管理システムにおけるフィードバックパターン定義の一例を示す図である。
【
図7】実施例1に係る機械学習モデル運用管理システムの業務―推論ID対応付け部処理の一例を示すフローチャートである。
【
図8】実施例1に係る機械学習モデル運用管理システムのモデル関係特定処理の一例を示すフローチャートである。
【
図9】実施例1に係る機械学習モデル運用管理システムの紐づけ対象データソース特定処理の一例を示すフローチャートである。
【
図10】実施例1に係る機械学習モデル運用管理システムのログ内対応付け特定処理の一例を示すフローチャートである。
【
図11】実施例2に係る機械学習モデル運用管理システムの概略の全体構成を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0012】
なお、実施例を説明する図において、同一の機能を有する箇所には同一の符号を付し、その繰り返しの説明は省略する。
【0013】
また、以下の説明では、情報の一例として「xxxデータ」といった表現を用いる場合があるが、情報のデータ構造はどのようなものでもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxデータ」を「xxxテーブル」と言うことができる。さらに、「xxxデータ」を単に「xxx」と言うこともある。そして、以下の説明において、各情報の構成は一例であり、情報を分割して保持したり、結合して保持したりしても良い。
【実施例1】
【0014】
AIシステムの業務ログ情報と推論ログ情報を管理する、本実施例の機械学習モデル運用管理システムの構成例を
図1に示す。
図1はシステムの論理的な構成情報を示している。
【0015】
本実施例において、機械学習の学習に関する処理データ、および推論時に利用する実績のデータはともにモデル管理サーバ01において管理される。モデル管理サーバ01は、学習処理サーバ16、推論処理サーバ14、および、推論結果を利用するその他の業務処理サーバ15と連携して、機械学習モデルに関する情報の管理を行う。これらのシステムは
図2にあるように、CPU、ストレージ、メモリ、およびネットワーク装置などで構成されるサーバ装置などによって構成される。
【0016】
モデル管理・学習サーバ01、16、推論処理サーバ14及び業務処理サーバ15は、各種情報処理が可能な装置、一例としてコンピュータ等の情報処理装置である。情報処理装置は、演算素子、記憶媒体及び通信インターフェースを有し、さらに、マウス、キーボード等の入力装置、ディスプレイ等の表示装置、ネットワーク装置等を有する。
【0017】
演算素子は、例えばCPU(Central Processing Unit)、FPGA(Field-Programmable Gate Array)等である。記憶媒体は、例えばHDD(Hard Disk Drive)などの磁気記憶媒体、RAM(Random Access Memory)、ROM(Read Only Memory)、SSD(Solid State Drive)などの半導体記憶媒体等を有する。また、DVD(Digital Versatile Disk)等の光ディスク及び光ディスクドライブの組み合わせも記憶媒体として用いられる。その他、磁気テープメディアなどの公知の記憶媒体も記憶媒体として用いられる。
【0018】
記憶媒体には、ファームウェアなどのプログラムが格納されている。サーバの動作開始時(例えば電源投入時)にファームウェア等のプログラムをこの記憶媒体から読み出して実行し、サーバの全体制御を行う。また、記憶媒体には、プログラム以外にも、サーバの各処理に必要なデータ等が格納されている。
【0019】
なお、本実施例のサーバ装置は、それぞれ、情報処理装置が通信ネットワークを介して通信可能に構成された、いわゆるクラウドにより構成されてもよい。
【0020】
学習処理サーバ16は、機械学習で利用する学習データを入力として、機械学習モデルを構築する学習処理を実行し、その結果として、何らかの推論処理を行うモデルを生成する。その際、モデル学習に利用した学習データ161と、その結果として生成されたモデル163を実験管理ログ11としてモデル管理サーバ01に送信する。
【0021】
推論処理サーバ14は、学習処理サーバ16で生成された機械学習モデルを利用し、外部から推論用のデータを入力として受け取り、推論処理を行ってその結果を外部に返す。例えば、流通業務における、商品の需要予測処理などがある。別の例としては、ある顧客に対するセグメンテーションを行うなど、マーケティングに利用するシステムが挙げられる。
【0022】
推論処理サーバ14はその処理の入力として推論データ143を受け取り、そのデータに対して何らかの数学的処理を行った結果として推論結果145を生成する。ログ収集機能141は、その組み合わせを常に監視し、推論ログ12をモデル管理サーバ01に送信する。
【0023】
業務処理サーバ15は、推論処理サーバ14を利用して、業務に対する処理を実行する一般的な情報処理システムである。その業務処理において、業務上の記録を業務ログ13として出力する。この業務ログ13の例としては、ある需要の推移などを記録したものである。この結果は推論結果145と比較することができる。一方で、顧客のセグメンテーションにおいては、正解は存在せず、その結果を人間が正否判定するなどの処理が必要である。この正否判定ログが業務ログ13に相当する。このように、業務ログ13は業務に依存して異なる内容を含む。
【0024】
モデル管理サーバ01では、このような業務ログ13と推論ログ12の間の対応付けを管理する。
【0025】
機械学習の学習を行う機器(学習処理サーバ16)及び、モデル管理サーバ01は、業務-推論ID対応付け部10、実験管理ログ11、推論ログ12、業務ログ13及びバージョン管理部19で構成される。実験管理ログ11、推論ログ12および業務ログ13は、それぞれ学習処理サーバ16、推論処理サーバ14および、業務処理サーバ15から収集されたログ情報である。
【0026】
推論ログ12および業務ログ13は、収集対象となった推論処理システムに含まれる個別の推論モデル、および個別の業務システムに対して1つずつ個別のファイルもしくはテーブルとして保存される。そのため、モデルに対応する推論の履歴などを、対応する推論ログファイルを取得することで参照することができる。業務ログ13においても同様に業務ログファイルを取得することで、特定の業務における業務指標などの履歴を取得することができる。
【0027】
バージョン管理部19は、実際にシステムで利用しているモデルのバージョンと、そのモデルをどの実験の結果を用いているかを特定するための構成管理情報である。
【0028】
業務-推論ID対応付け部10は、推論ログ12の特定のログ行のグループと、業務ログ13の特定のログ行のグループとの間の対応付けを、問題定義情報(データフロー定義101およびフィードバックパターン定義103)を用いて実施する。
【0029】
実験管理ログ11の論理的な構成例を
図3(A)に示す。実験管理ログ11はモデルID301、UUID(Universally Unique Identifier)302、学習モデルソースコードID303、ハイパーパラメータ304、学習データ305、検証データ306、及び検証精度307で構成される。
【0030】
モデルID301は、モデルの特性を表し、モデルの構築をする設計者が他のモデルと区別するために割り当てる一意な識別子である。例えば「業務A向け回帰アルゴリズム」「業務B向けクラスタリングモデル」などである。UUID302は、繰り返しモデルのチューニングを行う場合に、その繰り返しの中であるモデルを特定するための一意な識別子である。
【0031】
学習モデルソースコードID303~学習データ305は、学習モデルを生成するために用いたプログラムおよびデータを特定するための情報である。プログラムのソースコードの実体であったり、外部のリポジトリ中のIDであったりといった情報が入れ込まれる。学習データについても同様に、CSVデータなどの実体であったり、外部のリポジトリ中のIDであったりといった情報を記載する。検証データ306および検証精度307は、生成した機械学習モデルの推論性能を検証するために利用したデータおよび、その検証結果を示す情報であり、生成されたモデルの優劣を比較するなどの目的において利用する。
【0032】
バージョン管理部19の論理的な構成例を
図3(B)に示す。バージョン管理部19は、モデルID391、バージョン392、エンドポイント393、デプロイ日394、及び廃棄日395で構成される。
【0033】
モデルID391は、システムにおいてモデルが使われる用途、コンポーネントの位置などを一意に特定するための識別子である。例えば「XX業務向け需要予測モデル」などのように用いられる。
【0034】
バージョン392は、そのモデルの更新来歴を表し、モデルのアルゴリズムやパラメータが更新されるたびに、新しく採番される識別子である。エンドポイント393は、そのモデルがデプロイされたシステムを表す識別子である。例えば、Webサービスとしてモデルが実装される場合、そのWebサービスのアクセス先のURLなどを入れる。これを利用することで、複数のサービスにそれぞれ同一IDのモデルがある場合にも、どのインスタンスの構成情報であるかを管理することができる。
【0035】
デプロイ日394と廃棄日395は、それぞれモデルがシステムに対して組み込まれたデプロイ日時と、他のバージョンのモデルに更新されることに伴い廃棄された日時を表す。
【0036】
推論ログ12の論理的な構成例を
図4(A)に示す。推論ログ12はトランザクションID401、モデルID402、タイムスタンプ404、入力値405、および出力値406で構成される。
【0037】
トランザクションID401は、ログ行を一意に特定する識別子である。モデルID402はモデルを一意に特定するための識別子であり、モデルID301と同様の値が入る。学習時の識別子と、推論時の識別子とを突き合わせることで、学習時のデータと推論時のデータの分布が一致しているかを確認するために利用することができる。タイムスタンプ404は、推論処理が実施された時刻を表す。入力値405と出力値406は、推論の入力と出力のデータをそのまま記録したものである。入力値と出力値の対応付けを確認することで、モデルが正常に動作しているか、モデルの入力データが異常値となっているか、などを確認することができる。
【0038】
業務ログ13の論理的な構成例を
図4(B)に示す。業務ログ13はログID411、タイムスタンプ41、ログメッセージ413で構成される。
【0039】
ログID411はログ行を一意に特定する識別子で、タイムスタンプ412は、ログが生成された時刻を表す。ログメッセージ413はログの内容を表すメッセージである。ログメッセージ413は業務ごとに依存する内容となるが、例えば「ある時刻における需要の実際の値」であったり、「顧客のセグメンテーションの正否を業務従事者が判断した正否情報」などが記録されることを想定している。
【0040】
次に、業務-推論ID対応付け部10が利用する問題定義情報について説明する。
【0041】
データフロー定義101の構成例を
図5に示す。データフロー定義101は、入力のデータが処理をされて、出力される処理の流れを示す。これにより、あるモデルIDで示される機械学習モデルが、全体システムの中のどの処理として実行されているかを把握することができる。
【0042】
データフロー定義101は学習時処理フロー501および、推論時処理フロー502で構成される。それぞれ、学習処理サーバ16および推論処理サーバ14で実行される処理のフローを表している。
【0043】
学習時処理フロー501は、学習データ情報511、処理フロー512、および、生成モデルID513で構成される。この情報から、ある生成モデルID513で識別される処理が、どの学習データ情報511から生成されるかの対応付けを把握することができる。
【0044】
推論時処理フロー502は、入力データストアID521、処理フロー522、モデル識別子523、出力データストアID524、および業務処理ID525で構成される。この情報から、あるモデル識別子523であらわされる機械学習モデルの入力値を格納するログデータファイル、出力値を格納するデータファイルを特定することができる。ログデータファイルに記載される内容は、
図4(A)に記載される推論ログ12と同等、もしくは、その中の入力値、出力値のどちらかをペイロードとして保持する情報である。
【0045】
同様に、上記推論処理フローによって、業務処理ID525で示される業務処理が出力するファイルの情報も特定することができる。業務処理の出力情報は、
図4(B)に示される情報と同等である。
【0046】
もう1つの問題定義情報である、フィードバックパターン定義103の構成例を
図6に示す。フィードバックパターン定義103はモデルID601、業務ID602、結合関係603および結合関係プロパティ604で構成される、コンポーネント間の依存関係を表すグラフ構造である。コンポーネントはモデルID601もしくは業務ID602で識別される、グラフ構造上のノードである。
【0047】
モデルID601および業務ID602は、推論処理、もしくは業務処理を一意に識別するIDである。これらのIDは、データフロー定義101における生成モデルID513、モデル識別子523、業務処理ID525と同じ情報であり、これらのIDを利用して、互いの定義情報の中で同一のIDを含む情報を抽出することができる。
【0048】
結合関係603は、推論処理および業務処理で用いられるデータの依存関係を示すグラフ構造中のリンクに相当する情報である。ある処理が前段、あるいは後段のどの処理に関連づいているかを示す。この情報により、どの推論処理と、どの業務処理のログを対応づけて管理する必要があるかを特定することができる。
【0049】
結合関係プロパティ604は、これらのログの中のどのデータ同士を対応付けて管理すべきかを表す情報であり、推論処理と業務処理の間のデータの相関関係を表す情報である。これは対応付け関係情報、キー情報、および評価情報で構成される。
【0050】
対応付け情報は、両者のログ行が1:1で対応づくか、N:1もしくは1:Nで対応づくかを示す。
【0051】
キー情報は、両者のログ行の中で、ログ行の対応付けを行うためのルールを示す情報である。例えば「トランザクションID」の場合は、両者のIDが同一の情報を対応付け、「時刻(+X)」の場合は、一定の時刻(X)が過ぎた時点に最も近い情報を対応付け、「参照マップ」の場合は、外部にあるデータベースの情報を参照して、片方のIDに対応する他方のIDを検索して対応付け、「計算式f(X), g(Y)」の場合は、結合元のIDがXであるときにf(X)で結合先のIDを計算して、結合先のIDがYであるときに結合元のIDをg(Y)の計算式で計算する、といった情報となる。
【0052】
評価情報は、業務ログ13におけるログ行の情報が推論処理に対してどのようなフィードバックを与えているかを示す情報である。例えば「誤判定検知」の場合は、人間が手動で推論結果を誤判定とした場合にログ行が生成され、「即値比較」の場合は業務ログ13と推論ログ12の出力値を直接比較する内容が生成され、「スコア値」の場合は、直接比較できないが、値の高低が連動する値を含むログが生成され、「精度伝播」の場合は、後段の処理の内容を間接的に該当モデルの出力値の評価と連動する業務ログ13とみなす必要がある場合を示す。
【0053】
図6には3つのパターンの構成例を示している。例(A)は、出力の値を直接評価することができず、人間による正否判定を伝えるシステムの例である。例(B)は、あるモデルがさらに後段の推論処理の入力となり、さらにそのモデルの推論処理が業務1の処理に影響を与えるものであることを示している。その結果は一定時刻を経過した業務上の実測値と直接比較することができることを表している。需要予測などにおいてあり得る構成である。例(C)は、その推論結果は業務上の何らかの指標で評価できるが、推論結果とは直接比較できない事例をあらわす。制御モデルと、その制御結果のパフォーマンスを測定する、などの場合があり得る。
【0054】
このように、機械学習を適用する様々なケースにおいて、そのログ情報を統一的な手順で結びつけるために、この問題定義情報を用いる。
【0055】
データフロー定義101およびフィードバックパターン定義103は、ともにあるシステムにおいて固有の情報である。これらの情報は、システム構築者によって明示的に定義することを基本とする。
【0056】
ただし、データのIDに同一のトランザクションIDを用いてデータフローを構成するようなシステムにおいては、このトランザクションIDを用いて、双方の問題定義情報の一部もしくは全体を、推論ログ12および実験管理ログ11から推定することも可能である。この場合、両者のログから同一のモデルID、バージョンID、およびトランザクションIDを用いているログ行を取り出し、その順序関係を比較して、時刻が早いものから、時刻が遅いものへの結合関係を推定することで、ログ情報とモデル情報の対応付け、および、結合関係603を推定する。
【0057】
データフロー定義101は実装の担当者が入力し、フィードバックパターン定義103は上位のシステム設計者もしくはデータサイエンティストや業務知識に詳しい設計者が入力するなど、ロールに応じた知識を入力することができ、それらの合成情報から自動的にログデータ間の対応付けを行うことが本実施例の特徴であるといえる。
【0058】
次に、業務-推論ID対応付け部10の処理の流れについて説明する。
【0059】
図7は業務-推論ID対応付け部10が収集した推論ログ12の各ログ行に対して実行する処理の概要を示す。この処理では、モデル関係の特定ステップ701、紐づけ対象データソース特定処理702、およびログ内対応付け処理703を順に実施する。
【0060】
図7のモデル関係の特定ステップ701の処理フローの例を
図8に示す。本処理では、ある機械学習モデルを利用した推論処理のデータの分布と、そのモデルの学習時のデータを比較するための処理を実施する。
【0061】
(ステップ801)各推論ログのログ行を参照し、その推論を実行したモデルのモデルID402を特定する。次にデータフロー定義101を参照し、フロー定義中にモデルID402をモデルID513として含むフロー情報8001を取得する。
【0062】
(ステップ802)ステップS801で取得したフロー情報を参照し、モデルIDに関連する入力データストアおよび出力データを含むデータファイル(もしくはテーブル名)を特定する。
【0063】
(ステップ803)推論ログ12中のタイムスタンプから、その時にデプロイされていたモデルのバージョン情報を取得する。これは、バージョン管理部19から、該当するモデルIDと、対象とするシステムのエンドポイントをキーにしてレコードを抽出し、そこに記載されているバージョン392を取得することによって実現できる。また、同一のレコードからUUID302も併せて取得する。
【0064】
(ステップ804)モデルID402およびモデルバージョン403をキーとして、推論ログ12を含むデータファイルから、キー情報が一致するログ行をすべて抽出する。
(ステップ805)モデルID402およびモデルバージョン403をキーとして、実験管理ログ11から、該当するUUID302のログ行からキーが一致する情報を取得し、そこに含まれる学習データ305を抽出する。
【0065】
ステップ804の結果として1つ以上の推論入出力データを含むデータセットを取得し、ステップ805の結果として1つ以上の学習データを含むデータセットを取得することができる。これらを比較することにより、データの異常が発生しているかを調査することができるようになる。
【0066】
対応付けられた結果は、
図1に示すようにグラフとして表示する、あるいは、対応付けられたデータセット同士を特定のディレクトリにファイルとして出力する、などの方法により、後続の分析処理に利用できる。これらの処理を、システムに組み込みの処理として実装する、あるいは、対応付けたデータをプログラムにプラグインされた関数に渡して任意の処理を実行させる、などの方法で分析に用いることができるシステムを合わせて実装する。これらの処理は既存のプログラミングの処理を用いて実現することが可能である。
【0067】
図7の紐づけ対象データソース特定処理702の処理フローの例を
図9に示す。本処理では、新しく取得された推論ログ12の各ログ行に対して、どの業務処理のログ情報と突き合わせる必要があるかをファイルレベルで特定する。その後、
図10で示す処理によって、各IDで特定される1つ以上のログ行で構成されるデータセットの中で、どのログ行を、他方のどのログ行に対応付けて管理すべきかを決定する。
【0068】
まず、要素を含まない空列のリスト構造のデータを作成し、「結合関係プロパティリスト9003」とする。
【0069】
(ステップ901)対象とするログ行のモデルID402を取得する。フィードバックパターン定義103を参照し、該当するモデルID402を含むノード9000を抽出する。
【0070】
(ステップ902)ステップS901で抽出したノード9000から紐付けられる結合関係603を抽出し、その結合関係603に含まれる結合情報プロパティ9001を取得する。また、結合関係603に接続されている結合先ノード9010を取得する。
【0071】
(ステップ903、907、908)ステップS902で取得した結合情報プロパティ9001の「評価情報」が伝播であった場合、その結合情報プロパティ9001を、プロパティのリスト情報9003に新規項目として追加する。その後、ノード9010および、該当ノードに割り当てられたモデルID402を取得し、その情報を当初のログ行におけるモデルIDとみなしてステップ901からの処理を再び実施する。
【0072】
(ステップ904)ステップS902で取得した結合情報プロパティ9001の「評価情報」が伝播ではなかった場合、結合関係603の結合先ノード9010は業務処理を表すとみなす。そのノード9010に割り当てられた業務IDが出力する業務ログ13の情報からデータフロー定義101を取得する。この処理は、業務IDを含むデータフロー定義101を抽出したのちに、そのフローに含まれる業務ログ13を特定する出力ログ情報9002(
図5中の521および524)を、フロー情報をたどって取得することによって実行できる。同様に、ステップ901で取得したモデルID402に対応する推論ログ12(同じく
図5中の521および524)に該当する出力ログ情報9002を、データフロー定義101をたどって取得する。
【0073】
(ステップ905)結合情報プロパティ9001を結合関係プロパティのリスト9003に追加する。
【0074】
(ステップ906)現在注目しているログ行のモデルID402、結合関係プロパティリスト9003および、ステップ904で特定したモデルと業務のログファイル情報9002を返す。
【0075】
最後にログ内対応付け処理によって、
図9で特定された対応ログファイル内のログ行レベルでの対応付けの処理フローを
図10に示す。この処理フローでは、入力として
図9の処理フローの処理結果として取得した注目するモデルID、結合関係プロパティリスト9003および、出力ログ情報9002を入力として受け取り、そのファイル群の中において対応付ける必要があるログ行を特定する。
【0076】
(ステップ1001)結合関係プロパティリスト9003中の結合情報プロパティ9001を、リストの逆順に取り出し、ステップ1002~1011を実行する。
【0077】
(ステップ1002)フィードバックパターン定義103から、注目するモデルID601を含むノードを抽出する。そのノードを結合先として持つ結合関係603を抽出して、その数を調べる。その数が1である場合はステップ1003~1007を実行し、その数が1以上である場合はステップ1008~1010を実行する。
【0078】
(ステップ1003)結合情報プロパティ9001の中の「キー」の値に従って、それぞれステップ1004~1007を実行する。
【0079】
(ステップ1004)「キー」の値が「トランザクションID」である場合、推論ログファイル情報9002中の各ログ行に対して、業務ログファイル情報9002に含まれるログ行の中で、同一IDを持つログ行を抽出して対応付ける。
【0080】
(ステップ1005)「キー」の値が「時刻(X)」である場合、推論ログファイル情報の各ログ行に対して、業務ログ13中の各ログ行のタイムスタンプを取得し、その値の差がXに最も近いログ行を抽出して対応付ける。
【0081】
(ステップ1006)「キー」の値が「参照マップ」である場合、参照マップで指定されるデータベースもしくは辞書型のデータ構造を取得し、次にそのマップ情報を参照して、推論ログ12中の各ログ行に含まれるトランザクションID401に対応する業務ログID10000を取得する。そして、業務ログ13の中から、業務ログID10000を含むログ行を抽出して対応付ける。
【0082】
(ステップ1007)「キー」の値が「計算式f(X),g(Y)」である場合、推論ログ12中の各ログ行に対して、各ログ行に含まれるトランザクションID401を取得し、そのIDをXとした場合の業務ログ13のID YをY=f(X)として計算する。そして、業務ログ13の中から、業務ログID(Y)を含むログ行を抽出して対応付ける。
【0083】
(ステップ1008-ステップ1010)結合元のコンポーネントの数が1以上のグラフ構造である場合、これは他の複数のログファイルのログ行と、注目するモデルIDに対応する推論ファイルの1行と対応付けられることを意味している。(
図6中のモデル3にモデル1、モデル2の2つが結合している部分に対応する)この場合、モデル3の1行に対して、少なくともモデル1の1行(もしくは複数行)、モデル2の1行(もしくは複数行)が対応づけられることを示す。この場合、モデル1、モデル2のそれぞれを参照し、モデル3のあるログ行Xが持つトランザクションID401を「業務ログID10002」とみなし、そのトランザクション行と対応付けるべきモデル1、およびモデル2のログ行10003を特定して対応付ける。この処理は、モデル1、モデル2の各行に対してステップ1003~1007を実行して、対応付けられるIDを導出し、その値が前記の業務ログID10002に合致するようなログ行10003を抽出することで実現できる。
【0084】
上記の処理によって対応付けられたログ行同士は、1つの対応付けられたデータとして画面に表示したり、データを結合した新しいログ行として別個のデータストアに関連付けて保存したりといった方法で分析処理を実施することができる。これらの処理をシステムに組み込みの処理として実施する、あるいは、対応付けたデータをプログラムにプラグインされた関数に渡して任意の処理を実行させる、などの方法で分析に用いることができるシステムを合わせて実装する。これらの処理は既存のプログラミングの処理を用いて実現することが可能である。
【0085】
本実施例によって、
図9および
図10に示す処理フローを利用して対応付けられたログ行は、業務ログのある1行以上のログ行(業務指標を示す)が、推論入出力のある1行以上のログ行(推論の結果などを示す)に対応付けられる。この結果を用いて、例えば
図1中のグラフ18に示すように、業務指標と推論結果を対応付けた情報の散布図として表示することができ、推論結果が業務結果に影響を及ぼしているかを確認することができるようになる。
【0086】
また、
図8に示す処理フローを利用して、そのモデルの、あるバージョンにおける推論における入力データが学習データのセットと関連付けられるため、これらのデータの分布を比較して、データが学習時と推論時で変化しているかを検知することができる。
【0087】
これらの表示はモデルの分析においては最もよく用いられる基本的な分析であるが、これまでは、モデルの特性を十分に理解したうえで、個別のデータを突き合わせる処理を個別に実装する必要があった。本発明により、システムの構成に依らない統一的な手順によってこれらの対応付けを行ことができるようになった。
【実施例2】
【0088】
実施例2においては、実施例1のシステム構成とサーバの配置が異なる。
図11に構成例を示す。モデル管理サーバ01は学習および、推論のシステムで分割して配備する。学習サーバ02とモデル管理サーバ01の間では通信を行うことによって、相互の実験管理部のデータの特定を行う。処理の論理的な構成、および処理フローは実施例1と同等である。
【0089】
なお、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【0090】
一例として、上記した実施例における
図4及び
図5に示す表示画面D3、D4において、優先度(色分け)毎に表示内容を絞り込んだ表示を行うことも可能である。
【0091】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0092】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラムまたはスクリプト言語で実装できる。
【0093】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段またはCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【0094】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【0095】
01…モデル管理サーバ 02…学習サーバ 10…業務-推論ID対応付け部 11…実験管理ログ 12…推論ログ 13…業務ログ 14…推論処理サーバ 15…業務処理サーバ 16…学習処理サーバ 19…バージョン管理部 101…データフロー定義 103…フィードバックパターン定義