以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/O(Input/Output)インターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも1つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボードおよびポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「メモリ」は、1以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも1つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
また、以下の説明では、「永続記憶装置」は、1以上の永続記憶デバイスである。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)であり、具体的には、例えば、Hard Disk Drive(HDD)またはSolid State Drive(SSD)である。
また、以下の説明では、「プロセッサ」は、1以上のプロセッサデバイスである。少なくとも1つのプロセッサデバイスは、典型的には、Central Processing Unit(CPU)のようなマイクロプロセッサデバイスであるが、Graphics Processing Unit(GPU)のような他種のプロセッサデバイスでもよい。少なくとも1つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも1つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも1つのプロセッサデバイスは、処理の一部または全部を行うハードウェア回路(例えばField-Programmable Gate Array(FPGA)またはApplication Specific Integrated Circuit(ASIC))といった広義のプロセッサデバイスでもよい。
また、以下の説明では、「xxxテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2つ以上のテーブルに分割されてもよいし、2つ以上のテーブルの全部または一部が1つのテーブルであってもよい。
また、以下の説明では、「yyy部」の表現にて機能を説明することがあるが、機能は、1以上のコンピュータプログラムがプロセッサによって実行されることで実現されてもよいし、1以上のハードウェア回路(例えばFPGAまたはASIC)によって実現されてもよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置および/またはインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサ或いはそのプロセッサを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機または計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が1つの機能にまとめられたり、1つの機能が複数の機能に分割されたりしてもよい。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶装置および/またはインターフェース装置等を用いながら行うため、処理の主語が、プロセッサ(或いは、そのプロセッサを有するコントローラのようなデバイス)とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な(例えば非一時的な)記録媒体であってもよい。また、以下の説明において、2つ以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2つ以上のプログラムとして実現されてもよい。
また、以下の説明では、「モデル改善支援システム」は、1以上の計算機で構成されてもよいし、複数の計算リソースを含んだリソースプール(例えばクラウド基盤)上に実現されてもよい。例えば、計算機が表示デバイスを有していて計算機が自分の表示デバイスに情報を表示する場合、当該計算機がモデル改善支援システムでよい。「情報を表示する」ことは、モデル改善支援システムが有する表示デバイスに当該情報を表示することであってもよいし、モデル改善支援システムが遠隔の表示用計算機に情報を送信することであってもよい(後者の場合は表示用計算機によって当該情報が表示される)。
また、以下の説明では、モデルの「開発」とは、既存のモデルに関するフィードバック無しにモデルを作成すること(いわゆる新規開発)と、モデルの「改善」とのいずれのも意味する。モデルの「改善」とは、既存のモデルに関するフィードバックを基に当該モデルを「修正」することと、当該フィードバックを基に新たなモデルを作成することとのいずれも意味する。
以下、本発明を実施するための形態である幾つかの実施例を図面に従い説明し、最後に、それらの実施例を総括する。なお以降で示す実施例ならびに図面は、本発明を実施するための形態の一つであって、同様の処理が可能な他の構成および形態への適用を制限するものではない。
図1は、本発明の実施例1に係るシステム全体の構成例を示した図である。
実施例1では、あるモータの軸受け破損の故障予兆診断を行うアプリをアプリ開発者1000が開発するケースにおいて、アプリの運用時に得られたモデルの利用に関するデータをモデル開発者1020にフィードバックし、モデル開発者1020がモデルの改善を実施するケースを例に取る。
アプリは、モデル開発者1020が開発したモデルをApplication Programming Interface(API)等を用いて呼び出し、診断を実施する。ただし、軸受け破損のみを高い精度で予兆診断できるモデルが存在せず、精度は劣るがコイル破損等、軸受け破損以外の故障も診断可能なモデルが存在するケースを考える。他方、モデルを開発したモデル開発者は、複数種類の故障予兆診断の予測制度の平均値の最大化を重要な指標と考え、モデルを改善する。
このような場合、あるバージョンのモデルでは、アプリ開発者1000の期待した結果を得られるが、モデル開発者1020が注力する指標が改善された新しいモデルでは、必ずしもアプリ開発者1000が期待した結果を得られない。本状況を回避するために、アプリ開発者1000からモデル開発者1020に対して、アプリ開発者1000側の要望や評価結果などをモデル開発者1020にフィードバックする。
フィードバックでは、アプリ開発者1000側の重視する指標や、アプリにおけるモデルの評価結果に加え、アプリがモデルに入力するデータセットをアプリ開発者1000がモデル開発者1020に提供する。
実施例1では、アプリ開発者1000が、マーケットプレイスシステム2000に、アプリで利用しているモデルに関して、アプリ開発者1000が重視している指標と、アプリ環境におけるモデル評価結果と、アプリ開発者1000が利用しているデータセットとを登録する。モデル開発者1020は、学習/評価システム5000を用いて、アプリ開発者1000が登録した指標やデータセットを利用し、モデルの改善を行う。実施例1のモデル改善支援システム10により、アプリ開発者1000が提供するデータセットの内容はモデル開発者1020に非開示の状態で、モデル開発者1020によるモデルの改善が可能になる。
モデル改善支援システム10は、アプリ開発者1000やモデル開発者1020の要求を受け付ける1か複数のマーケットプレイスシステム2000と、モデルおよびモデル管理に必要な情報を管理する1か複数のモデル管理システム3000と、モデル開発や学習/評価に必要なデータとデータ管理に必要な情報とを管理する1か複数のデータ管理システム4000と、モデル開発者1020からの要求に応答してモデルの学習/評価を行う1か複数の学習/評価システム5000と、を含む。
1か複数のアプリ開発者1000は、1か複数のアプリ開発用計算機1010を用いてアプリの開発を行う。アプリ開発用計算機1010は、1か複数のネットワーク1200を介して1か複数のマーケットプレイスシステム2000と通信する。アプリ開発者1000は、アプリ開発用計算機1010を用いて、マーケットプレイスシステム2000にアクセスし、アプリで利用するモデルの取得や、アプリで利用しているモデルへのフィードバックなどを登録する。
1か複数のモデル開発者1020は、1か複数のモデル開発用計算機1030を用いて学習用プログラムや評価用プログラムの開発を行う。モデル開発用計算機1030は、1か複数のネットワーク1200を介してマーケットプレイスシステム2000と通信をする。モデル開発者1020は、1か複数のマーケットプレイスシステム2000を介し、1か複数の学習/評価システム5000にアクセスし、モデルを学習させ、学習したモデルの評価を行い、マーケットプレイスシステム2000に登録する。また、モデル開発者1020は、マーケットプレイスシステム2000を利用して、モデルを利用している1か複数のアプリ開発者1000からの、モデルに関するフィードバックを取得する。
なお、アプリ開発者1000とモデル開発者1020は、マーケットプレイスシステム2000に対して、モデルの開発や学習/評価等の実施を要求できるものであればよく、人間であっても、プログラムであってもよい。
1か複数のマーケットプレイスシステム2000は、1か複数のIF(Interface)計算機2100を含む。
IF計算機2100は、アプリ開発用計算機1010やモデル開発用計算機1030を介してアプリ開発者1000やモデル開発者1020からの要求を受信し実行するモデルIFプログラムP2000と、アプリ開発者1000やモデル開発者1020といったユーザを表す情報を含むユーザ管理テーブルT2000と、それぞれが一または複数のユーザをまとめたグループである一つ以上のテナントを表す情報を含むテナント管理テーブルT2100とを備える。
1か複数のモデル管理システム3000は、1か複数のモデル管理計算機3100を備える。
モデル管理計算機3100は、モデルの管理を行ったり他の計算機に対するモデル関連情報の入出力のインターフェースを提供したりするモデル管理プログラムP3000と、モデル情報を含むモデル管理テーブルT3000と、モデルの学習/評価を行うプログラムを表す情報を含む学習/評価プログラム管理テーブルT3100と、モデルの学習/評価の設定を表す情報を含む学習/評価設定テーブルT3200と、モデルの学習/評価の処理の実行状態を表す情報を含む学習/評価ジョブテーブルT3300と、作成したモデルの評価結果を表す情報を含む評価結果テーブルT3400と、学習プログラムの実態である学習プログラムファイルF3000と、評価プログラムの実態である評価プログラムファイルF3100と、モデルの実態であるモデルファイルF3200とを備える。
モデル管理システム3000が備える全てのデータやファイルの内容の送受信は、モデル管理計算機3100が有するモデル管理プログラムP3000を介して行われ、一例としてデータベースマネジメントシステムが挙げられるが、データやファイルを管理することができれば、これ以外でもよい。また、データやファイルの永続化は、リレーショナルデータベースやNoSQL等のデータベースを用いてもよいし、ファイルシステムへファイルとして格納してもよいし、それ以外でもよい。
1か複数のデータ管理システム4000は、1か複数のデータ管理計算機4100を備える。
データ管理計算機4100は、データの管理を行ったりデータの入出力のインターフェースを提供したりするデータ管理プログラムP4000と、データセットを表す情報を含むデータセット管理テーブルT4000と、データセットの実態であるデータセットファイルF4000とを備える。
データ管理システム4000が備える全てのデータやファイルの内容の送受信は、データ管理計算機4100が有するデータ管理プログラムP4000を介して行われ、一例としてデータベースマネジメントシステムが挙げられるが、データやファイルを管理することができれば、これ以外でもよい。また、データやファイルの永続化は、リレーショナルデータベースやNoSQL等のデータベースを用いてもよいし、ファイルシステムへファイルとして格納してもよいし、それ以外でもよい。
1か複数の学習/評価システム5000は、1か複数の学習/評価制御計算機5100と、1か複数の学習/評価実行計算機5200とを備える。学習/評価制御計算機5100は、モデルの学習/評価を制御する学習/評価制御プログラムP5000と、学習/評価を行うための計算機を表す情報を含む計算機管理テーブルT5000とを備える。学習/評価実行計算機5200は、学習/評価を実行する学習/評価実行プログラムP5100を備える。なお、学習/評価制御計算機5100と、学習/評価実行計算機5200との少なくとも一つは、各学習処理または評価処理の経過等を表す情報を含むログを記録する機能や、ログを他の計算機へ送信する機能を備えてもよい。
モデル改善支援システム10を含むシステム全体における各計算機は、1か複数のネットワーク1200によって接続される。ネットワーク1200の一例は、インターネットであり、Virtual Private Network(VPN)であってもよいし、その他のネットワークであってもよい。
なお、図1で記載していない物理機器や、機器同士を接続する配線等があってもよい。また、モデル改善支援システム10内の計算機が接続されるネットワーク1200と、モデル改善支援システム10外の計算機(例えば、アプリ開発用計算機1010)が接続されるネットワーク1200は、共通のネットワークでもよいし、分離したネットワークでもよい。
図2は、計算機の構成例を示した図である。
計算機1910の構成は、上述した計算機2100、3100、4100、5100、5200、1010および1030のいずれにも適用可能である。計算機1910は、インターフェース装置と、記憶装置と、それらに接続されたプロセッサとを備える。具体的には、例えば、計算機1910は、メモリ1920と、CPU1930と、入出力IF1940と、永続記憶装置1950と、NW−IF1960と、GPU1970を備え、これらは内部バス1980で接続されている。入出力IF1940およびNW−IF1960が、インターフェース装置の一例である。メモリ1920および永続記憶装置1950が、記憶装置の一例である。CPU1930およびGPU1970が、プロセッサの一例である。
プログラムは永続記憶装置1950に格納されており、メモリ1920にロードされ、CPU1930で実行される。なお、本実施例では、すべての計算機1910のメモリ1920にはOperating System(OS)がロードされ、OSがCPU1930で実行される。
すべての計算機は、物理的な計算機であっても、物理的な計算機上で動作する仮想的な計算機であってもよい。また、各計算機の記憶装置は必須要素ではなく、例えば外部ストレージ装置でもよく、ストレージ装置の機能を論理的に提供するストレージサービスであってもよい。
各計算機が備えるNW−IF1960の一例としては、Network Interface(NIC)が挙げられるが、これ以外であってもよい。
また、ディスプレイ等の出力装置やキーボード・マウスといった入出力IF1940が備えられてもよい。Secure Shell(SSH)といった手段によりネットワーク経由で当該計算機が遠隔管理される場合には、入力IFは必須の要素ではない。なお、GPU1970は、必須要素ではない。
上記の各計算機に含まれるプログラムとテーブルは、各計算機が備える永続記憶装置に含まれていてもよい。加えて、すべてのプログラムは各計算機が備えるCPUによって実行される。
なお、本実施例において、すべてのプログラムは、異なる複数の計算機で実行されてもよいし、一つの計算機で実行されてもよい。また、各プログラムは、一つの計算機ですべてのステップが実行されてもよいし、ステップ毎に異なる計算機で実行されてもよい。
また、図2に例示の構成要素以外の構成要素や、構成要素間を接続する配線等が計算機1910に含まれてもよい。
以下、各テーブルを説明する。なお、テーブルにおいて、或る要素の識別子は、当該要素を識別可能であれば、識別子としての値の形式や表現は限定されない。例えば、形式として、テキスト形式およびMarkdown形式のいずれが採用されてもよいし、他の形式が採用されてもよい。また、後述の開示条件および実行条件のいずれについても、条件に該当する対象の指定と条件に該当しない対象の指定とのうちの少なくとも一つの指定が採用されてよい。また、図では、識別子を「ID」と略記したり、情報を「Info.」と略記したりすることがある。
図3は、モデル管理テーブルT3000の構成例を示した図である。
モデル管理テーブルT3000は、モデル管理システム3000に登録された各モデルの管理に必要な情報を含む。各レコードは、モデルの各バージョンのモデル情報を含む。なお、モデル管理テーブルに記載されるのは、同じ目的を持った同種のモデルだけでなく、例えばモータ故障予兆診断に加えて、不審物検出のように、異なる種別のモデルの情報が記載されていてもよい。
モデル管理テーブルT3000は、モデル毎にレコードを有する。各レコードは、モデル識別子T3005と、モデル名T3010と、バージョン情報T3015と、モデルファイルT3020と、課金情報T3025と、ユーザ情報T3030と、テナント情報T3035と、説明T3040と、画像情報T3045と、モデルグループ情報T3050と、学習設定識別子T3055と、評価設定識別子T3060と、開示条件T3065と、実行条件T3070といった情報を含む。
モデル識別子T3005は、テーブル内でモデルを一意に特定するための識別子(例えば連番等)である。
モデル名T3010は、モデルの名称を表す情報(例えば、モデル生成/評価画面G3000でモデル開発者1020によって入力された文字列)である。モデル名は、例えば、モデル一覧画面G1000や、モデル詳細画面G2000で表示される。
バージョン情報T3015は、同じモデルの異なるバージョンを識別する値である。なお、同じモデルであることは、例えばモデルグループ情報T3050の値が同値である等から判断してもよい。
モデルファイルT3020は、モデルの実態となるファイル(例えば、ディープラーニングのネットワーク情報や重みの情報を含むファイル)のファイル名を表す。例えば、当該ファイル名は、モデル生成/評価画面G3000で、モデル開発者1020が設定した値である。
課金情報T3025は、モデルを評価したり利用したりする際に用いられる値であり、評価や利用を要求したユーザに対して課金される額等の情報を含む。値は、例えば、利用を要求したユーザに対して一ヶ月当たり“$200”を要求する場合、“$200/mon”等でよい。なお、図3において、「E」は、評価を意味し、「U」は、利用を意味する。
ユーザ情報T3030は、モデル生成/評価画面G3000等を介して、モデルの各バージョンをマーケットプレイスシステム2000に対して登録したユーザの識別子を表す。
テナント情報T3035は、モデル生成/評価画面G3000等を介して、モデルの各バージョンをマーケットプレイスシステム2000に対して登録したユーザが所属するテナントの識別子を表す情報である。
説明T3040は、例えばモデルの詳細画面G2000等で表示される、当該モデルの説明文を表す情報である。当該情報は、モデル生成/評価画面G3000でモデル開発者1020から入力された情報でよい。
画像情報T3045は、例えばモデル一覧画面G1000等で表示される画像(モデルを表現した画像)を表す情報である。当該情報は、モデル生成/評価画面G3000でモデル開発者1020が指定した情報でよい。
モデルグループ情報T3050は、各レコードのモデル情報について、バージョンが異なるが同じも出るのグループに属することを特定するための識別子であり、例えば最初に登録されたバージョンのモデル情報を含むレコードのモデル識別子T3005の値である。
学習設定識別子T3055は、学習/評価システム5000で実施されるモデル生成時の設定情報を示す識別子であり、例えば、学習/評価設定テーブルT3200が有する設定識別子T3105の値でよい。
評価設定識別子T3060は、学習/評価システム5000で実施されるモデル評価時の設定情報を示す識別子であり、例えば、学習/評価プログラム管理テーブルT3100が有するプログラム識別子3105の値でよい。
開示条件T3065は、モデル管理システム3000に登録されたモデルの開示先となるユーザやテナント等の範囲を制御する値である。当該値としては、例えば、“All”(全てのユーザに開示)、“user=1”(ユーザ識別子“1”のユーザに対してのみ開示)が採用されてよい。なお、値として、開示先のユーザに代えてまたは加えて、非開示のユーザを指定する値(例えば、“not user=1”(ユーザ識別子“1”のユーザは開示先から除外))が採用されてもよい。「開示条件」は、一つ以上の開示条件要素で構成され、開示条件T3065は、一つ以上の開示条件要素にそれぞれ対応した一つ以上の値である。「開示条件」が、「開示条件セット」と呼ばれ、「開示条件要素」が、開示条件と呼ばれてもよい。
実行条件T3070は、モデル管理システム3000に登録されたモデルの実行場所等を制御する値である。当該値としては、例えば、“region=1”(モデルを実行する計算機の属するリージョンの識別子が“1”の場合のみ、モデルが実行されてよい)がある。なお、値としては、実行が許される条件を示す値に代えてまたは加えて、実行が許されない条件を示す値(例えば、“not region=1”(モデルを実行する計算機の属するリージョンの識別子が“1”の場合、当該計算機ではモデルが実行されない))が採用されてもよい。「実行条件」は、一つ以上の実行条件要素で構成され、実行条件T3070は、一つ以上の開示条件要素にそれぞれ対応した一つ以上の値である。「実行条件」が、「実行条件セット」と呼ばれ、「実行条件要素」が、実行条件と呼ばれてもよい。
図4は、学習/評価プログラム管理テーブルT3100の構成例を示した図である。
学習/評価プログラム管理テーブルT3100は、モデル管理システム3000に登録された学習プログラムおよび評価プログラムを管理するのに必要なプログラム情報を含む。
学習/評価プログラム管理テーブルT3100は、プログラム毎にレコードを有する。各レコードが、プログラム識別子T3105と、プログラムファイルT3110と、プログラム種別T3115と、課金情報T3120と、ユーザ情報T3125と、テナント情報T3130と、説明T3135と、開示条件T3140と、実行条件T3145と、要求スペックT3150と、追加プログラムT3155といった情報を含む。
プログラム識別子T3105は、テーブル内でプログラム情報を一意に特定するための識別子である。
プログラムファイルT3110は、プログラム登録画面G4000等を介して、プログラムを登録した際に、プログラム登録画面G4000で、ユーザが指定したファイルのファイル名、あるいは、モデル管理プログラムP3000によって自動的に付与された値等である。
プログラム種別T3115は、プログラム登録画面G4000等を介して、プログラムを登録した際に、登録画面でユーザが指定したプログラム種別を表現した値を含む。
課金情報T3120は、プログラムを用いてモデルを学習/評価する際に、ユーザに対して課金される額等を表現した値を含む。
ユーザ情報T3125は、プログラム登録画面G4000等を介して、プログラムをモデル管理システム3000に対して登録したユーザの識別子を表す値である。
テナント情報T3130は、プログラム登録画面G4000等を介して、プログラムをモデル管理システム3000に対して登録したユーザが所属するテナントの識別子を表す値である。
説明T3135は、例えばモデル生成/評価画面G3000で表示される、当該プログラムの説明文を表す情報である。
開示条件T3140は、モデル管理システム3000に登録されたプログラムの開示先のユーザやテナント等の範囲を制御する値である。
実行条件T3145は、モデル管理システム3000に登録されたプログラムの実行場所等を制御する値である。
要求スペックT3150は、プログラムを実行する際に、学習/評価実行計算機5200に要求されるCPU1930やメモリ1920の性能のようなスペックを示した情報、つまり、プログラムの実行のための計算リソースの条件を示した情報である。
追加プログラムT3155は、プログラム種別T3155“追加学習”に対応し追加学習を行うプログラムの識別子である。なお、これは、実施例2で利用される。
図5は、学習/評価設定テーブルT3200の構成例を示した図である。
学習/評価設定テーブルT3200は、モデル管理システム3000に登録された学習/評価プログラムを利用して、モデルを生成または評価する際に、どのプログラムと、どのデータセットを利用して、モデルを生成または評価するかを示した情報を含む。
学習/評価設定テーブルT3200は、設定毎にレコードを含む。各レコードが、設定識別子T3205と、プログラム識別子T3210と、データセット識別子T3215と、パラメタT3220と、ユーザ情報T3225と、テナント情報T3230と、開示条件T3235と、実行条件T3240と、モデル識別子T3245と、設定種別T3250と、依存設定情報T3255といった情報を含む。
設定識別子T3205は、テーブル内で学習/評価設定情報を一意に特定するための識別子である。
プログラム識別子T3210は、本設定に該当する学習/評価時に利用するプログラムの識別子であり、例えば、モデル生成/評価画面G3000にて、ユーザが入力したプログラム名でもよいし、学習/評価プログラム管理テーブルT3100が保持する、当該プログラムのプログラム識別子T3105などでよい。
データセット識別子T3215は、本設定に該当する学習/評価時に利用するデータセットを識別子であり、例えば、モデル生成/評価画面G3000にて、ユーザが入力したデータセット名でもよいし、データセット管理テーブルT4000が保持する、当該データセットのデータセット識別子T3210などでよい。
パラメタT3220は、本設定に該当する学習/評価において利用するパラメタを表す情報であり、例えば、モデル生成/評価画面G3000において、ユーザ(アプリ開発者1000及びモデル開発者1020の少なくとも一方)が入力した、学習設定や、評価指標でよい。
ユーザ情報T3225は、モデル生成/評価画面G3000等を介して、モデルの各バージョンをマーケットプレイスシステム2000に対して登録したユーザの識別子を表す情報である。
テナント情報T3230は、モデル生成/評価画面G3000等を介して、モデルの各バージョンをマーケットプレイスシステム2000に対して登録したユーザが所属するテナントの識別子を表す情報である。
開示条件T3235は、モデル管理システムに登録された学習/評価ジョブを開示するユーザやテナント等の範囲を制御する値である。
実行条件T3240は、モデル管理システムに登録された学習/評価ジョブの実行を制御する値である。なお、実行条件T3240を、ユーザが直接入力するのではなくモデル管理プログラムP3000が設定してよい。具体的には、例えば、学習/評価設定テーブルT3200の一つのレコードについて、モデル管理プログラムP3000が、プログラム識別子T3210で指定されるプログラムの実行条件T3145と、データセット識別子T3215で指定されるデータセットの実行条件T4080(図10参照)との関係(例えば、論理積)を計算し、当該関係に従う情報を、実行条件T3240として、当該レコードに設定する。
モデル識別子T3245は、当該学習または評価と紐づくモデルを示す値である。本値は、モデル生成/評価画面G3000にて、モデル生成または評価の要求が生成されると、必要に応じてモデル管理プログラムP3000が設定する。
設定種別T3250は、設定種別(例えば、“学習”、“追加学習”または“評価”)を示す値である。
依存設定情報T3255は、該当する学習/評価設定が他の学習/評価に依存する場合に、当該学習/評価設定が依存する学習/評価設定を示す値(例えば、設定識別子)である。
図6は、学習/評価ジョブテーブルT3300の構成例を示した図である。
学習/評価ジョブテーブルT3300は、各モデルの学習(生成)や、評価がどの学習/評価実行計算機5200で実行されるかという情報や、学習/評価の設定情報や、学習/評価の進捗状態等を管理する情報を含む。
学習/評価ジョブテーブルT3300は、学習/評価ジョブ毎にレコードを含む。各レコードが、ジョブ識別子T3310と、設定識別子T3320と、ユーザ識別子T3330と、テナント識別子T3340と、実行計算機識別子T3350と、進捗状態T3360と、開始時刻T3370と、終了時刻T3380と、依存ジョブT3390といった情報を含む。
ジョブ識別子T3310は、学習/評価ジョブを特定するための識別子である。
設定識別子T3320は、学習/評価ジョブが、どのようなプログラムと、データセットと、パラメタで実行されたか、という情報を特定するための識別子である。
ユーザ識別子T3330は、モデルの学習/評価を実施したユーザの識別子である。
テナント識別子T3340は、モデルの学習/評価を実施したユーザが属するテナントの識別子である。
実行計算機識別子T3350は、モデルの学習/評価を実行する学習/評価実行計算機5200を特定する識別子である。
進捗状態T3360は、モデルの学習/評価の進捗状態を示す値である。当該値は、例えば、“100%”等のパーセンテージで表されてもよいし、“データセットを加工中”や“学習実行中”や、“完了”等の文字列で表されてもよい。
開始時刻T3370と、終了時刻T3380は、それぞれ、モデルの学習/評価を開始した時刻と終了した時刻を示す。開始時刻は、例えば、学習/評価制御プログラムP5000がモデル管理計算機3100からモデル学習実施の要求を受信した時刻等よい。終了時刻は、例えば、学習/評価実行プログラムP5100が、学習プログラムファイルF3000の実行完了を検知した時刻でよい。
依存ジョブT3390は、学習/評価ジョブが他の学習/評価ジョブに依存する際に、当該学習/評価ジョブが依存する学習/評価ジョブの識別子を示す。
図7は、評価結果テーブルT3400の構成例を示した図である。
評価結果テーブルT3400は、各モデルの評価を実施した結果がどのようなものであったかを示す情報を含む。
評価結果テーブルT3400は、評価結果毎にレコードを含む。各レコードが、評価結果識別子T3410と、設定識別子T3420と、ジョブ識別子T3430と、結果T3440と、ログ情報T3450といった情報を含む。
評価結果識別子T3410は、評価結果を一意に特定するための識別子である。
設定識別子T3420は、評価がどのプログラムによってどのような設定で実行されたかという情報を特定するための識別子(例えば、学習/評価設定テーブルT3200が備える設定識別子T3205の値)である。
ジョブ識別子T3430は、モデルの評価がどの学習/評価実行計算機5200で実行されたかという情報を特定するための識別子(例えば、学習/評価ジョブテーブルT3300が備えるジョブ識別子T3310の値)である。
結果T3440は、各モデルの評価がどのような結果であったかを示す情報を含む。当該情報は、例えば、学習/評価設定テーブルT3200が保持する、評価設定情報のうち、ユーザがどのような指標での評価を求めるかを示した、パラメタT3220の値に対する結果値を含む。当該結果値は、例えば、学習/評価実行プログラムP5100によって実行される評価プログラムファイルF3100が出力するログ情報から収集された値でもよいし、評価プログラムファイルF3100が出力する標準出力から読み取られた値でもよい。
ログ情報T3450は、モデルの評価に関連するログを表す情報を含む。当該情報は、例えば、学習/評価制御プログラムP5000や、学習/評価実行プログラムP5100や、評価プログラムファイルF3100が出力するログや標準出力や標準エラー出力の内容を含んでもよい。
図8は、ユーザ管理テーブルT2000の構成例を示した図である。
ユーザ管理テーブルT2000は、アプリ開発者1000やモデル開発者1020等、マーケットプレイスシステム2000を利用するユーザの情報を含む。
ユーザ管理テーブルT2000は、ユーザ毎にレコードを有する。各レコードが、ユーザ識別子T2010と、ユーザ名T2020と、パスワードT2030と、ロールT2040と、メールアドレスT2050といった情報を含む。
ユーザ識別子T2010は、ユーザを特定するための識別子である。
ユーザ名T2020とパスワードT2030は、例えば、ユーザがアプリ開発用計算機1010や、モデル開発用計算機1030が備えるブラウザ等を介して、マーケットプレイスシステム2000へアクセスする際の認証情報として用いる情報である。なお、ユーザ名T2020は、例えばモデルを開発した開発者の名前として、モデル詳細画面G2000が備える、モデル情報G2010等に表示されてもよい。
ロールT2040は、ユーザがどのような役割をもつかを示した値である。当該値としては、例えば、モデルを開発するモデル開発者1020を意味する“Model developer”や、アプリを開発するアプリ開発者1000を意味する“Application developer”等が採用されてよい。なお、ロールT2040の値として、マーケットプレイスシステム2000を管理する管理者を意味する値も採用されてもよい。
メールアドレスT2050は、ユーザのメールアドレスを表す情報である。当該情報は、例えば、モデルを開発した開発者の名前として、モデル詳細画面G2000が備える、モデル情報G2010等に表示され、他のユーザがモデル開発者に連絡可能とされてもよい。
図9は、テナント管理テーブルT2100の構成例を示した図である。
テナント管理テーブルT2100は、アプリ開発者1000やモデル開発者1020等、マーケットプレイスシステム2000を利用する、1か複数のユーザのグループであるテナントの情報を含む。
テナント管理テーブルT2100は、テナント毎にレコードを含む。各レコードが、テナント識別子T2110と、テナント名T2120と、所属ユーザ識別子T2130と、管理者ユーザ識別子T2140といった情報を含む。
テナント識別子T2110は、テナントを特定するための識別子である。
テナント名T2120は、テナントの名称を示す値(例えば文字列)である。
所属ユーザ識別子T2130は、テナントに所属する1か複数のユーザの各々の識別子を含む。
管理者ユーザ識別子T2140は、テナントを管理する1か複数のユーザの各々の識別子を含む。
図10は、データセット管理テーブルT4000の構成例を示した図である。
データセット管理テーブルT4000は、モデル管理システム3000に登録されるモデルを作成する場合や、モデルの評価を行う場合に必要なデータセットを管理するための情報を含む。
データセット管理テーブルT4000は、データセット毎にレコードを含む。各レコードが、データセット識別子T4010と、データセットファイルT4020と、説明T4030と、課金情報T4040と、ユーザ情報T4050と、テナント情報T4060と、開示条件T4070と、利用条件T4080といった情報を含む。
データセット識別子T4010は、データセットを一意に特定するための識別子である。
データセットファイルT4020は、データセット登録画面G5000を介してデータセットを登録した際にデータセット登録画面G5000でユーザが指定したファイルのファイル名(あるいは、データ管理プログラムP4000によって自動的に付与された値)である。
説明T4030は、例えばモデル生成/評価登録画面G3000に表示される、当該データセットの説明文を表す。
課金情報T4040は、データセットを用いて学習/評価をする際にユーザに対して課金される額等を表す値である。
ユーザ情報T4050は、データセット登録画面G5000を介してデータセットを登録したユーザの識別子を表す。
テナント情報T4060は、データセット登録画面G5000を介してデータセットを登録したユーザが属するテナントの識別子を表す。
開示条件T4070は、データセットの開示先とするユーザやテナント等の範囲を制御する値である。
利用条件T4080は、データ管理システム4000に登録されたデータセットを利用してモデルの学習/評価を行う際の実行場所等を制御する値である。
図11は、計算機管理テーブルT3800の構成例を示した図である。
計算機管理テーブルT3800は、学習/評価実行計算機5200を提供するサービスベンダや、計算機環境のリージョンや、計算機の名前や、リソース(例えば、CPU1930や、GPU1970)の性能を示すリソース保有情報や、リソースの消費情報や、計算機への接続に必要な情報のような情報を含んだ計算機情報を含む。
計算機管理テーブルT5000は、計算機毎にレコードを含む。各レコードは、計算機識別子T5010と、プロバイダT5020と、リージョンT5030と、アベイラビリティゾーンT5040と、名前T5050と、リソース保有情報T5060と、リソース消費情報T5070と、接続情報T5080といった情報を含む。
計算機識別子T5010は、計算機を特定するための識別子である。
プロバイダT5020は、計算機のプロバイダ(例えば、クラウドサービスプロバイダ)を特定するための識別子である。
リージョンT5030は、計算機が属するリージョンを特定する識別子である。
アベイラビリティゾーンT5040は、リージョン内での計算機の地理的分類を示す情報である。
名前T5050は、計算機の名前(例えば、プロバイダ内での計算機を定めるために利用する識別子)である。名前は、テキスト形式の名前でもよいし、UUID等、プロバイダが定める識別子でもよい。
リソース保有情報T5060は、計算機が備えるリソース(例えば、CPU1930、メモリ1920、GPU1970)の性能を表す情報である。
リソース消費情報T5070は、リソース保有情報T5060で示されたリソース性能のうち、学習/評価実行プログラムP5100、学習プログラムファイルF3000または評価プログラムファイルF3100が、当該計算機で実行されたことによって消費されているリソース性能を表す情報である。例えば、学習/評価制御プログラムP5000が当該計算機を監視することで、リソース消費情報T5070が更新されてよい。
接続情報T5080は、計算機をネットワーク1200上で特定できる情報である。当該情報は、例えば、学習/評価制御プログラムP5000が学習/評価の要求を送信する際に必要とされる接続情報(例えば、Internet Protocol(IP)アドレスや、Uniform Resource Identifier(URI)等)でよい。
以下、本実施例で行われる処理の一例を説明する。
図12は、IF計算機2100が有するIFプログラムP2000が、アプリ開発用計算機1010、またはモデル開発用計算機1030を介して送信された、アプリ開発者1000、またはモデル開発者1020からの要求を受信し、要求に対する処理を実行し、応答を送信する処理を示したフローチャートである。
IFプログラムP2000が実行されると、IFプログラムP2000が、ステップS1000にて、要求の待ち受けを開始する。要求には、例えば、要求の種類(例えば、マーケットプレイスシステム2000への学習プログラムの登録、学習プログラムを利用したモデルの作成、或いは、登録されているモデルの取得)と、種々の情報(例えば、モデルの識別子、或いは、要求を行ったユーザの識別子)が含まれる。
ステップS1010において、IFプログラムP2000が要求を受信すると、処理がステップS1020へ進む。
ステップS1020では、IFプログラムP2000が、受信された要求に含まれる情報(例えば、要求種別、モデル識別子、ユーザ識別子等)を解析する。なお、ステップS1020にて、例えば、要求種別やモデル識別子等の情報の形式や内容が妥当であるかを検査する処理が実行されてもよい。
ステップS1030では、IFプログラムP2000が、要求で指定されている要求種別を判定する。判定された種別に応じて次のステップが決まる。なお、ステップS1020で実施した検査の結果、要求が妥当ではないと判断された場合、処理がステップS1090へ進み、IFプログラムP2000が、要求不当を示す応答を生成してもよい。
判定の結果が、モデル一覧表示であった場合は、処理がステップS1040へ進む。ステップS1040では、IFプログラムP2000が、モデル一覧画面G1000に必要な情報を収集するため、モデル管理テーブルT3000の全レコードの全情報を取得する。その後、処理がステップS1090へ進む。
判定の結果が、モデル詳細表示であった場合は、処理がステップS1050へ進む。ステップS1050では、IFプログラムP2000が、モデル詳細画面G2000に必要な情報を収集するため、ステップS1020で解析した要求から、詳細表示を行うモデルのモデル識別子を取得し、モデル管理テーブルT3000より、当該モデル識別子に対応したモデル情報を収集する。その後、処理がステップS1090へ進む。
判定の結果が、モデル生成/評価であった場合、処理がステップS1060へ進む。ステップS1060では、IFプログラムP2000が、ステップS1020で解析された要求から、モデル生成/評価の実行に必要な学習/評価設定情報を取得し、学習/評価設定テーブルT3200に、取得された学習/評価設定情報に基づく新しいレコードを追加する。さらに、IFプログラムP2000が、追加したレコードに含まれる設定識別子T3205を、学習/評価制御計算機5100が有する学習/評価制御プログラムP5000へ送信する。その後、処理がステップS1090へ進む。
判定の結果が、学習/評価プログラムの登録であった場合、処理がステップS1070へ進む。ステップS1070では、IFプログラムP2000が、ステップS1020で解析された要求から、学習/評価プログラムの登録に必要な、学習/評価プログラム情報を取得し、学習/評価プログラム管理テーブルT3100に、取得された学習/評価プログラム情報に基づく新しいレコードを追加する。その後、処理がステップS1090へ進む。
判定の結果が、データセット登録であった場合、処理がステップS1080へ進む。ステップS1080では、IFプログラムP2000が、ステップS1020で解析された要求から、データセット情報を取得し、データセット管理テーブルT4000に、取得されたデータセット情報に基づく新しいレコードを追加する。処理が、ステップS1090へ進む。
ステップS1090では、IFプログラムP2000が、要求に応じて収集したデータを基に、呼び出し元(要求の送信元)の計算機へ送信する応答データ(例えば、モデル一覧画面の情報や、モデル生成/評価の結果等を含んだ応答データ)を生成する。
ステップS1100では、IFプログラムP2000が、ステップS1090で生成された応答データを呼び出し元の計算機へ送信する。その後、処理がステップS1110へ進む。
ステップS1110では、IFプログラムP2000が、OS等からIFプログラムP2000の終了要求があるか否かを確認する。終了要求がない場合は、処理がステップS1010へ戻る。終了要求があった場合は、処理がステップS1120へ進みIFプログラムP2000が終了する。
なお、ステップS1020で解析される要求には、アプリ開発者1000やモデル開発者1020のユーザ情報の取得や更新、実行中のモデル生成処理やモデル評価処理の強制停止等、図に明記されていない種別が含まれていてもよい。また、画面の構成要素は、例えば、当該画面の入出力項目に相当するパラメタを持ったAPIによって実現されていてもよい。
図13は、モデル管理計算機3100が有するモデル管理プログラムP3000が、IFプログラムP2000から受信した要求に従って、学習/評価プログラムの登録処理、または、モデル学習処理、または、モデル評価処理を実施するステップを示したフローチャートである。
モデル管理プログラムP2100が実行されると、モデル管理プログラムP3000が、ステップS2010にて、要求の待ち受けを開始する。その後、処理が、ステップS2020へ進む。当該要求には、例えば、要求種別(例えば、学習/評価プログラムの登録、モデル学習、モデル評価等)等、処理に必要な情報が含まれる。
ステップS2020でモデル管理プログラムP3000が要求を受信すると、処理がステップS2030へ進む。
ステップS2030では、モデル管理プログラムP3000が、受信した要求を解析する。その後、処理がステップS2040へ進む。
ステップS2040では、モデル管理プログラムP3000が、解析された要求で指定されている要求種別が、学習/評価プログラムの登録であるか、モデルの学習であるか、モデルの評価であるか、を判定する。要求種別が、学習/評価プログラムの登録であれば、処理がS2060へ進む。要求種別が、モデルの学習であれば、処理がS2070へ進む。要求種別が、モデルの評価であれば、処理がS2080へ進む。なお、要求種別が、学習/評価プログラムの登録、モデル学習、および、モデル評価のいずれにも該当しない場合は、処理がステップS2090へ進み、要求が正しくない旨の応答データが生成されてもよい。
ステップS2060では、モデル管理プログラムP3000が、要求で指定されている学習/評価プログラムを、モデル管理システム3000に登録するため、ステップS2030で解析された要求に含まれる学習/評価プログラム情報に基づく新しいレコードを、モデル管理システム3000が有する学習/評価プログラム管理テーブルに追加する。このとき、モデル管理プログラムP3000が、同じ名称や同じファイルを有する学習/評価プログラムのレコードが存在するか否か確認してよい。そのようなレコードが存在する場合には、モデル管理プログラムP3000が、ステップS2090にて、その旨を示す応答データを生成してもよい。
ステップS2070では、モデル管理プログラムP3000が、モデル学習を実施するために、要求に含まれる学習設定情報を、モデル管理システム3000に登録し、学習/評価システム5000に学習開始の要求を送信する。
ステップS2070では、モデル管理プログラムP3000が、S2030で解析された要求に含まれる学習設定情報に基づく新しいレコードを、モデル管理システム3000が有する学習/評価設定テーブルT3200に追加する。
具体的には、例えば、まず、モデル管理プログラムP3000が、要求から、プログラム識別子、データセット識別子、パラメタ、およびモデル識別子を取得し、取得したそれらの情報に基づく新しいレコードを、学習/評価設定テーブルT3200に追加する。このとき、設定識別子は、モデル管理プログラムP3000が自動で設定してよい。
次に、モデル管理プログラムP3000が、S2030で取得した学習設定情報のうち、プログラム識別子T3205をキーにして、プログラム管理テーブルT3100から、該当するプログラムのレコードを学習プログラム情報として取得する。次に、モデル管理プログラムP3000が、S2030で取得した学習設定情報のうち、データセット識別子T3215をキーにして、データセット管理テーブルT4000から、該当するデータセットのレコードをデータセット情報として取得する。なお、データセット識別子T3215に複数の値が指定されている場合は、その数だけ処理が繰り返され、値毎に、データセット情報が取得される。
次に、モデル管理プログラムP3000が、取得された学習プログラム情報に含まれる実行条件を取得する。また、モデル管理プログラムP3000が、それぞれ取得されたデータセット情報から、データセットの実行条件を取得する。全ての実行条件を取得後、モデル管理プログラムP3000が、これらの論理積を計算し、計算された論理積を含む学習設定情報を、学習/評価設定テーブルT3200が有する実行条件T3240として保存する。なお、論理積の結果が不正となる場合、ステップS2090にて、その旨を示す応答データが生成されてもよい。
また、モデル管理プログラムP3000が、学習/評価設定テーブルT3200が備えるモデル識別子T3245として、当該学習の結果生成されるモデルのモデル識別子を保存する。モデル識別子は、モデル管理テーブルT3000が有するモデル識別子T3005であり、モデル管理プログラムP3000によって設定される。さらに、モデル管理プログラムP3000が、学習/評価設定テーブルT3200が有する設定種別T3245の値を、当該設定が学習であることを示すために“学習”とする。
実行条件の計算終了後、モデル管理プログラムP3000が、学習/評価システム5000に対して、該当する学習/評価設定情報の設定識別子と共に学習要求を発行する。
ステップS2080では、モデル管理プログラムP3000が、モデル評価を実施するために、要求に含まれる評価設定情報を、モデル管理システム3000に登録し、学習/評価システム5000に評価開始の要求を送信する。ステップS2080では、モデル管理プログラムP3000が、S2030で解析された要求に含まれる評価設定情報に基づく新しいレコードを、モデル管理システム3000が有する学習/評価設定テーブルT3200に追加する。
具体的には、例えば、まず、モデル管理プログラムP3000が、要求からプログラム識別子、データセット識別子、パラメタ、およびモデル識別子を取得し、取得したそれらの情報に基づく新しいレコードを、学習/評価設定テーブルT3200に追加する。
次に、モデル管理プログラムP3000が、S2030で取得した評価設定情報のうち、プログラム識別子T3205をキーにして、プログラム管理テーブルT3100から、該当するプログラムのレコードを学習プログラム情報として取得する。次に、モデル管理プログラムP3000が、S2030で取得した評価設定情報のうち、データセット識別子T3215をキーにして、データセット管理テーブルT4000から、該当するデータセットのレコードをデータセット情報として取得する。なお、データセット識別子T3215に複数の値が指定されている場合は、その数だけ処理が繰り返され、値毎に、データセット情報が取得される。
次に、モデル管理プログラムP3000が、取得された評価プログラム情報に含まれる実行条件を取得する。また、モデル管理プログラムP3000が、それぞれ取得されたデータセット情報から、データセットの実行条件を取得する。全ての実行条件を取得後、モデル管理プログラムP3000が、これらの論理積を計算し、計算された論理積を含む評価設定情報を、学習/評価設定テーブルT3200が有する実行条件T3240として保存する。なお、論理積の結果が不正となる場合、ステップS2090にて、その旨を示す応答データが生成されてもよい。
また、モデル管理プログラムP3000が、学習/評価設定テーブルT3200が備えるモデル識別子T3245として、当該評価が対象とするモデルのモデル識別子を保存する。さらに、モデル管理プログラムP3000が、学習/評価設定テーブルT3200が有する設定種別T3245の値を、当該設定が評価であることを示すために“評価”とする。
実行条件の設定終了後、モデル管理プログラムP3000が、学習/評価システム5000に対して、該当する学習/評価設定情報の設定識別子と共に評価要求を発行する。
ステップS2090では、モデル管理プログラムP3000が、IFプログラムP2000への応答データ(例えば、学習/評価プログラムの登録、モデル学習、または、モデル評価の要求が成功したのか否か、または受信した要求情報に不正があり、要求に失敗したか等を示す応答データ)を生成する。その後、処理がステップS2100へ進む。
ステップS2100では、モデル管理プログラムP3000が、生成された応答データを要求送信元であるIFプログラムP2000へ返送する。その後、処理がステップS2110へ進む。
ステップS2110では、モデル管理プログラムP3000が、モデル管理計算機3100が有するOS等から、モデル管理プログラムP2100の終了要求があるか否かを確認する。終了要求がない場合は、処理がステップS2020へ戻る。終了要求があった場合には、処理がステップS2120へ進みモデル管理プログラムP3000が終了する。
図14は、データ管理システム4000が有するデータ管理プログラムP4000が、IFプログラムP2000から受信した要求に従って、データセットの登録処理を実施するステップを示したフローチャートである。
データ管理プログラムP4000が実行されると、データ管理プログラムP4000が、ステップS3010にて、要求の待ち受けを開始する。その後、処理がステップS3020へ進む。
ステップS3020では、データ管理プログラムP4000が要求を受信すると、処理がステップS3030へ進む。
ステップS3030では、データ管理プログラムP4000が、受信した要求(例えば、登録するデータセットファイル等が関連付いた要求)を解析し、当該要求からデータセット情報を取得する。その後、処理がステップS3040へ進む。
ステップS3040では、データ管理プログラムP4000が、要求に関連付いているデータセットファイルをデータ管理システム4000に登録するため、要求に含まれるデータセット情報に基づく新しいレコードを、データ管理システム4000が有するデータセット管理テーブルT4000に追加する。このとき、データ管理プログラムP4000が、同じ名称や同じデータセットファイルを有するデータセットのレコードが存在するか否か確認してよい。そのようなレコードが存在する場合には、データ管理プログラムP4000が、ステップS3050にて、その旨を示す応答データを生成してもよい。
ステップS3050では、データ管理プログラムP4000が、IFプログラムP2000への応答データ(例えば、データセットの登録が成功したか否か、または、受信した要求情報に不備があり、要求に失敗したか等を示す応答データ)を生成する。その後、処理がステップS3060へ進む。
ステップS3060では、データ管理プログラムP4000が、生成された応答データを要求送信元であるIFプログラムP2000へ返送する。その後、処理がステップS3070へ進む。
ステップS3070では、データ管理プログラムP4000が、データ管理計算機4100が有するOS等から、データ管理プログラムP4000の終了要求があるか否かを確認する。終了要求がない場合は、処理がステップS3020へ戻る。終了要求があった場合は、処理がステップS3080へ進みデータ管理プログラムP4000が終了する。
図15は、学習/評価制御計算機5100が有する学習/評価制御プログラムP5000が、モデル管理プログラムP3000から受信した要求に従って、学習/評価で利用するプログラムまたはデータの準備や、学習/評価を実行する学習/評価実行計算機5200の選定を実施し、選定された学習/評価実行計算機5200へ、学習/評価実行を要求する処理を示したフローチャートである。
学習/評価制御プログラムP5000が実行されると、学習/評価制御プログラムP5000が、ステップS4000にて、要求の待ち受けを開始する。その後、処理がステップS4010へ進む。なお、要求は、モデル生成/評価画面G3000にて入力された学習/評価に関する設定情報を含む。
ステップS4010では、学習/評価制御プログラムP5000が要求を受信すると、処理がステップS4020へ進む。
ステップS4020では、学習/評価制御プログラムP5000が、要求に含まれる学習/評価に関する設定情報を取得し、学習/評価設定テーブルT3200に登録するための、学習/評価設定情報を作成する。ステップS4020では、まず、学習/評価制御プログラムP5000が、要求に含まれる学習プログラム情報または評価プログラム情報から、プログラムの実行条件を取得する。次に、学習/評価制御プログラムP5000が、要求に含まれる1または複数のデータセット情報から、それぞれ実行条件を取得する。学習/評価制御プログラムP5000が、取得したプログラム実行条件およびデータセット実行条件に関して、論理積を実施し、プログラムおよびデータセットを利用した、学習/評価の実行条件を取得する。この時、論理積の結果が空の場合、学習/評価制御プログラムP5000が、指定されたプログラムおよびデータセットを利用した学習/評価が不可能であるため、その旨を示す情報を作成し、処理がステップS4060へ進む。論理積の結果が空でない場合、学習/評価制御プログラムP5000が、要求に含まれる情報を、実行条件の論理積演算の結果とともに、学習/評価設定情報として、学習/評価設定テーブルT3200へ保存し、処理がステップS4030へ進む。例えば、モデル開発者1020が開発したアプリXに対して、アプリ開発者1000から二つのデータセットがフィードバックされ、モデル開発者1020が当該二つのデータセットを用いてアプリXの学習/評価を行いたい場合、二つのデータセットの各々について、当該データセットの実行条件とアプリXの学習/評価に使用するプログラムの実行条件との論理積が実施される。論理性が空でないデータセットを用いて、アプリXの学習/評価が可能である。
ステップS4030では、学習/評価制御プログラムP5000が、学習/評価設定情報で指定される実行条件と、要求スペックと、計算機の状況から、学習/評価を行う計算機を選定し、その後、モデルの学習/評価状況を管理する学習/評価ジョブ情報を作成し、学習/評価ジョブテーブルT3300に登録する。
ステップS4030では、学習/評価制御プログラムP5000が、まず、ステップS4020で作成した、学習/評価設定情報を解析し、当該学習/評価の実行可能条件を示す、実行条件フィールドT3240の情報を取得する。また、学習/評価制御プログラムP5000が、学習/評価設定情報から、プログラム識別子T3210を取得し、当該識別子をキーにして、学習/評価プログラム管理テーブルT3100から該当するプログラムの情報を抽出する。学習/評価制御プログラムP5000が、抽出された情報から、プログラムの実行に必要なリソース量を示す要求スペックT3150を取得する。次に、学習/評価制御プログラムP5000が、計算機管理テーブルT5000から、実行条件T3240が表す条件を満たす学習/評価実行計算機5200の計算機識別子T5010を取得する。条件を満たす計算機が複数見つかった場合、取得される計算機識別子T5010は、複数あってもよい。次に、学習/評価制御プログラムP5000が、取得した計算機識別子T5010をキーに、計算機管理テーブルT5000から、リソース保有情報T5060およびリソース消費情報T5070を取得し、それらの情報T5060およびT5070を基に、利用可能リソース情報を計算する。利用可能リソース情報は、例えば、リソース種別毎に、リソース保有情報T5060が表す値からリソース消費情報T5070が表す値を引くことで求めることができる。学習/評価制御プログラムP5000が、利用可能リソース情報と、上記取得された要求スペックT3150とを比較することで、要求スペックT3150を満たすことができる計算機の計算機識別子を取得する。複数の計算機識別子が取得できた場合、学習/評価制御プログラムP5000が、例えば利用可能リソース情報が最も大きい計算機の計算機識別子を選択する等、何らかの指標を利用して、1つの計算機識別子を取得(選択)する。取得された本計算機識別子T5010から特定される学習/評価実行計算機5200が、当該要求の処理を行う計算機(ジョブ実行計算機)となる。
次に、学習/評価制御プログラムP5000が、ジョブ実行計算機が行う実行の状況(モデルの学習/評価状況)を記録するため、学習/評価ジョブテーブルT3300に新たなレコードを追加する。なお、追加されるレコードにおいて、設定識別子T3320は、ステップS4020で取得した設定情報の設定識別子であり、ユーザ識別子T3330は、ユーザ管理テーブルT2000に含まれるユーザ識別子のうち、当該ジョブを要求したユーザの識別子であり、テナント識別子T3340は、テナント管理テーブルT2100に含まれるテナント識別子のうち、当該ジョブを要求したユーザが所属するテナントの識別子であり、実行計算機識別子T3350は、本ステップS4030で決定したジョブ実行計算機(学習/評価実行計算機5200)の計算機識別子であり、進捗状態T3360の値は、“0%”であり、開始時刻T3370の値は、現在の時刻であり、終了時刻T3380の値は、例えば“-”である。なお、ジョブ識別子T3310の値は、学習/評価制御プログラムP5000によって付与され、記録される。
ステップS4040では、学習/評価制御プログラムP5000が、選定された学習/評価実行計算機5200に対して、モデル管理プログラムP3000からの要求に応じた要求(モデルの学習/評価の実行要求)を送信し、処理がステップS4050へ進む。要求は、学習/評価実行計算機5200が備える学習/評価実行プログラムP5100へ送信される。学習/評価実行計算機5200の特定には、計算機管理テーブルT5000が備える接続情報T5080の値(例えばIPアドレス)を用いて行われてもよい。なお、送信される要求には、例えば、設定識別子と、ジョブ識別子が含まれる。
ステップS4050では、学習/評価制御プログラムP5000が、学習/評価実行計算機5200で実行される学習/評価ジョブの状況を監視するために、学習/評価監視スレッドS4500を開始する。ステップS4510の実行後、処理がステップS4060へ進む。すなわちスレッドS4500によって、ステップS4060以降のステップと、ステップS4510〜S4560は学習/評価実行計算機5200内で並列に実行される。
ステップS4060では、学習/評価制御プログラムP5000が、モデルの学習/評価を要求したモデル管理プログラムP3000に対する応答データを生成し、当該応答データをモデル管理プログラムP3000に送信する。その後、処理がステップS4070へ進む。なお、送信される応答データは、例えば、評価の実行開始や、いずれかのステップで異常が発生したことを知らせるエラーメッセージを含む。
ステップS4070では、学習/評価制御プログラムP5000が、学習/評価制御計算機5100が有するOS等から、学習/評価制御プログラムP5000への終了要求があるかを確認する。終了要求がない場合は、処理がステップS4010へ戻る。終了要求があった場合は、処理がステップS4080へ進み学習/評価制御プログラムP5000が終了する。
学習/評価監視スレッドS4500が、ステップS4510で、実行されたジョブの状態監視を開始する。その後、処理がステップS4520へ進む。
ステップS4520では、学習/評価監視スレッドS4500が、学習/評価実行計算機5200に対して、ジョブ識別子を持つジョブの実行状況を問い合わせ、返答を得る。学習/評価実行計算機5200からの返答の値は、例えば、“実行中”や、“停止中”のように、状態を文字列や数字で表したものでもよく、“10%”や、“20%”のように、進捗度を示すような数字であってもよい。学習/評価監視スレッドS4500が、得られた返答の値を、学習/評価ジョブテーブルT3300の進捗状態T3360として記録する。加えて、学習/評価監視スレッドS4500が、学習/評価実行計算機5200が備えるリソース(例えば、CPU1930やメモリ1920)のリソース消費状況も収集し、当該学習/評価実行計算機5200に対応したリソース消費状況T5070を、収集されたリソース消費状況を表す情報に更新する。その後、処理がステップS4530へ進む。
ステップS4530では、学習/評価監視スレッドS4500が、返答の値がジョブ完了を意味する値であるかを判定する。当該値が、例えば“完了”や“100%”であれば、処理がステップS4550へ進む。当該値が、それ以外の値の場合は、処理が、ステップS4540へ進んだ上、ステップS4510へ戻る。
ステップS4550では、学習/評価監視スレッドS4500が、学習/評価ジョブテーブルT3300の進捗状態T3360の値を“100%”や“完了”に更新する。その後、処理がステップS4560へ進み、スレッドS4500が終了する。
図16は、学習/評価実行計算機5200が有する学習/評価実行プログラムP5100が、学習/評価制御プログラムP5000から受信した要求にしたがって、モデルを学習/評価するステップを示したフローチャートである。
学習/評価実行プログラムP5100が実行されると、ステップS5000にて、学習/評価実行プログラムP5100が、学習/評価制御プログラムP5000からの要求を受信する。その後、処理がステップS5010へ進む。
ステップS5010では、学習/評価実行プログラムP5100が、要求に含まれるジョブ識別子をキーに、学習/評価ジョブテーブルT3300より、該当するジョブ情報を取得する。次に、学習/評価実行プログラムP5100が、取得されたジョブ情報の依存ジョブT3390を確認する。依存ジョブが設定されている場合、処理が、ステップS5020へ進み、学習/評価実行プログラムP5100が、依存ジョブの終了を待ち、依存ジョブが終了した後、処理がステップS5030へ進む。依存ジョブが設定されていない場合、ステップS5020がスキップされ、処理がステップS5030へ進む。
ステップS5030では、学習/評価実行プログラムP5100が、ステップS5010で取得したジョブ情報に含まれる設定識別子をキーにして、学習/評価設定テーブルT3200から該当する設定情報を取得する。
ステップS5040では、学習/評価実行プログラムP5100が、ステップS5030にて取得された設定情報に含まれるデータセット識別子T3215から識別されるデータセットファイルF4000を、データ管理プログラムP4000を介して取得する。その後、処理がステップS5050へ進む。
ステップS5050では、学習/評価実行プログラムP5100が、取得された設定情報に含まれるプログラム識別子T3210から識別されるプログラムファイルF3000、またはF3100を、モデル管理プログラムP3000を介して取得する。その後、処理がステップS5060へ進む。
ステップS5060では、学習/評価実行プログラムP5100が、取得された設定情報に含まれる設定種別T3250を取得する。設定種別T3250の値が“学習”であった場合、処理がステップS5070へ進む。設定種別T3250の値が“評価”であった場合、処理がステップS5090へ進む。
ステップS5070では、学習/評価実行プログラムP5100が、取得したデータセットファイルF4000と、取得したプログラムファイルF3000と、取得した設定情報に含まれるパラメタT3220とを、取得したプログラムファイルF3000への入力として、プログラムを実行することで、モデルの学習を開始する。プログラム終了後、処理がステップS5080へ進む。
ステップS5080では、学習/評価実行プログラムP5100が、取得した設定情報に含まれるモデル識別子T3245を取得し、当該識別子と一致するモデル識別子T3005を含む、モデル管理テーブルT3000のレコードに、ステップS5070で作成したモデルファイルの情報を登録する。その後、処理がステップS5120へ進む。
ステップS5090では、学習/評価実行プログラムP5100が、取得された設定情報に含まれるモデル識別子T3245を取得し、当該識別子をキーとして、モデル管理テーブルT3000から評価対象のモデル情報(モデルファイルT3020を含む情報)を取得する。その後、処理がステップS5100へ進む。
ステップS5100では、学習/評価実行プログラムP5100が、取得したデータセットファイルと、取得したプログラムファイルと、取得したモデルファイルT3020から識別されるモデルファイルと、取得した設定情報に含まれるパラメタT3220とを、取得したプログラムへの入力として、プログラムを実行することで、モデルの評価を開始する。プログラム終了後、処理がステップS5110へ進む。
ステップS5110では、学習/評価実行プログラムP5100が、ステップS5100における評価結果情報を、例えばプログラムが出力したログファイルや、標準出力や、標準エラー出力を介して取得し、評価結果テーブルT3400へ、当該評価結果情報に基づく新しいレコードを追加する。その後、処理がステップS5120へ進む。なお、追加されるレコードにおいて、設定識別子T3420の値は、要求に含まれる設定識別子であり、ジョブ識別子T3430の値は、要求に含まれるジョブ識別子であり、結果T3440の値は、取得した評価結果情報であり、ログ情報T3450の値は、例えばプログラムが出力したログファイルや、標準出力の内容である。
ステップS5120では、学習/評価実行プログラムP5100が終了する。
図17は、アプリ開発者1000またはモデル開発者1020に対して提供されるモデル一覧画面の一例を示す。なお、図17〜図21に例示する画面は、GUI(Graphical User Interface)でよい。画面の表示は、マーケットプレイスシステム2000が有するIF計算機2100のIFプログラムP2000によって行われるが、画面に表示される情報の少なくとも一部は、モデル改善支援システム10において管理されている複数のテーブルに基づく。IFプログラムP2000が、モデル管理システム3000、データ管理システム4000および学習/評価システム5000と通信することで、テーブルの情報を取得することができる。図17〜図21に例示する画面において、ボタンやテキストボックス等はGUI部品の一例である。
モデル一覧画面G1000は、マーケットプレイスシステム2000を介して登録されたモデルの一覧を表示する画面である。画面G1000は、例えば、マーケットプレイスシステムへ登録された1か複数のモデル画像G1010と、モデル名称G1020と、新しいモデルを登録するためのモデル登録ボタンG1030と、を含む。
画面G1000に表示される各モデルの情報は、モデル管理テーブルT3000から取得された情報である。例えば、画像G1010は、画像情報T3045が表す画像であり、名称G1020は、モデル名T3010が表す名称である。なお、モデル管理テーブルT3000が備える開示条件T3070の値が、例えば“All”であれば、全てのユーザにモデルが開示される。値が“user=1”の場合は、画面G1000にアクセスしたユーザの識別子が“1”の場合のみモデルが開示される。
モデル登録ボタンG1030は、学習および評価プログラムとデータセットを用いて新たなモデルを作成し、登録するために、モデル生成/評価画面G3000に遷移するためのボタンである。IFプログラムP2000が、アクセスしたユーザのユーザ識別子をキーにユーザ管理テーブルT2000から当該ユーザの情報を取得し、取得したロールT2040がモデル開発者を意味する“Model developer”の場合のみ、ボタンG1030を表示する等、制御してもよい。
各モデルの画像G1010や、モデル名称G1020をマウスポインタでクリックすると、モデル詳細画面G2000への遷移が行われてもよい。
図18は、アプリ開発者1000またはモデル開発者1020に対して提供されるモデル詳細画面の一例を示す。
モデル詳細画面G2000は、選択されたモデルの詳細を表示する画面である。画面G2000は、例えば、モデル名称G2005と、モデル画像G2007と、モデル情報G2010と、モデルバージョンG2015と、モデルの概要説明G2020と、学習設定情報G2025と、評価結果情報G2030と、データセット登録ボタンG2035と、新バージョン登録ボタンG2040と、を備える。
モデル名称G2005と、モデル画像G2007と、モデル概要説明G2020は、それぞれモデル管理テーブルT3000に含まれる、モデル名T3010と、画像情報T3045と、説明T3040に基づいている。なお、項目以外にも、例えばモデル管理テーブルT3000が備える、課金情報T3025等が表示されてもよい。
IFプログラムP2000が、モデル情報G2010として、モデル管理テーブルT3000に含まれるバージョン情報T3015と、ユーザ情報T3030の値をキーにユーザ管理テーブルT2000から取得されたユーザ情報(対象モデルを開発したユーザの情報)とを表示してよい。
モデルバージョンG2015は、異なるバージョンのモデルの詳細を表示するためのドロップダウンボックスである。IFプログラムP2000が、モデル管理テーブルT3000から、モデルグループ情報T3050が同値のレコードを特定し、特定されたレコードのモデル情報のバージョン情報T3015を表示する。
学習設定情報G2025は、当該モデルを作成する際に実施した学習に関する情報である。IFプログラムP2000が、モデル管理テーブルT3000が備える学習設定識別子T3055をキーに、学習/評価設定テーブルT3200から該当する学習設定情報を取得し、当該情報G2025を表示する。
評価結果情報G2030は、当該モデルの評価設定情報および評価結果情報を含む。IFプログラムP2000が、モデル管理テーブルT3000が有する評価設定識別子T3060をキーに、学習/評価設定テーブルT3200および評価結果テーブルT3400から、該当する評価設定情報および評価結果情報を取得し、取得した情報G2030を表示する。
データセット登録ボタンG2035は、アプリ開発者1000またはモデル開発者1020により、当該モデルの改善を行うために新たなデータセットを登録するためのボタンである。当該ボタンが押下されることによって、データ登録画面G5000(図21)への遷移が行われる。
新バージョン登録ボタンG2040は、モデル開発者1020によって、当該モデルの新しいバージョンを登録するためのボタンである。当該ボタンが押下されることにより、モデル生成/評価画面G3000(図19A)への遷移が行われる。
図19Aは、モデル開発者1020に対して提供されるモデル生成/評価画面の一例を示す。図19Bは、当該画面の一部を示す。図19Cは、当該画面の別の一部を示す。
モデル生成/評価画面G3000は、学習/評価を行い新たなモデルをマーケットプレイスに登録するための画面である。画面G3000は、例えば、モデル名入力テキストボックスG3010と、モデルバージョン入力テキストボックスG3015と、画像パス入力テキストボックスG3020と、画像参照ボタンG3023と、生成モデル説明入力テキストボックスG3027と、学習プログラムテーブルG3030と、学習プログラム新規登録ボタンG3035と、評価プログラムテーブルG3040と、評価プログラム新規登録ボタンG3045と、データセットテーブルG3050と、データセット新規登録ボタンG3055と、ジョブ設定/結果テーブルG3060と、モデル登録ボタンG3065と、を備える。なお、これら以外にも、例えば、モデル管理テーブルT3000が備える課金情報T3025、開示条件T3035および実行条件T3070の少なくとも一部が表示されてもよいし、学習/評価プログラム管理テーブルT3100が備える説明T3135および開示条件T3140の少なくとも一部が表示されてもよい。
モデル名入力テキストボックスG3010は、モデルの名称を入力するテキストボックスである。入力された値は、モデル管理テーブルT3000が備える、モデル名T3010に反映される。
モデルバージョン入力テキストボックスG3015は、モデルのバージョンを入力するテキストボックスである。入力された値は、モデル管理テーブルT3000が備える、バージョン情報T3015に反映される。
画像パス入力テキストボックスG3020は、モデル一覧画面G1000や、モデル詳細画面G2000で表示する画像ファイルについて、モデル開発用計算機1030におけるファイルのパスを入力するテキストボックスである。当該テキストボックスに入力されたファイルパスは、手動で入力されたファイルパスでもよいし、画像参照ボタンG3023を押下することで展開されるファイル選択ダイアログにて指定されたファイルパスでもよい。
生成モデル説明入力テキストボックスG3027は、モデルの概要説明を入力するテキストボックスである。入力された値は、モデル管理テーブルT3000が備える説明T3040に反映される。
学習プログラムテーブルG3030は、モデル生成に利用可能な学習プログラム一覧を示したテーブルである。各行に、1つの学習プログラムの情報が表示される。各行に表示される学習プログラム情報は、学習/評価プログラム管理テーブルT3100において、プログラム種別T3115が“学習”(学習プログラムであることを意味する値)と設定されている情報でよい。また、開示条件T3140の値が、例えば“All”であれば、学習プログラム情報が、全てのユーザに開示されてよい。当該値が“user=1”であれば、当該画面を表示しているユーザのユーザ識別子が“1”の場合のみ、学習プログラム情報が表示されてもよい。さらに、モデル開発者1020が、利用カラムをマウスポインタでクリックし、チェックボックスにチェックを入れることで、モデル開発者1020が利用する学習プログラムが選択されてもよい。
学習プログラム新規登録ボタンG3035は、学習プログラムを新規に登録する際に利用されるボタンである。当該ボタンが押下されることで、プログラム登録画面G4000(図20)への遷移が行われる。学習プログラムを登録することで、学習プログラムテーブルG3030に行が追加されてもよい。
評価プログラムテーブルG3040は、モデル評価に利用可能な評価プログラム一覧を示したテーブルである。各行に1つの評価プログラムの情報が表示される。各行に表示される評価プログラム情報は、学習/評価プログラム管理テーブルT3100においてプログラム種別T3115が“評価”(評価プログラムであることを意味する値)と設定されている情報でよい。また、開示条件T3140の値に応じて、評価プログラム情報の表示が制御されてよい。さらに、モデル開発者1020が、利用カラムをマウスポインタでクリックし、チェックボックスにチェックを入れることで、利用する評価プログラムが選択されてもよい。
評価プログラム新規登録ボタンG3035は、評価プログラムを新規に登録する際に利用されるボタンである。当該ボタンが押下されることで、プログラム登録画面G4000への遷移が行われる。評価プログラムを登録することで、評価プログラムテーブルG3030に行が追加されてもよい。
データセットテーブルG3050は、モデル学習/評価に利用可能なデータセット一覧を示したテーブルである。各行に、1つのデータセットの情報が表示される。各行に表示されるデータセット情報は、データセット管理テーブルT4000から取得された情報である。データセット情報の表示は、開示条件T3140の値に応じて制御されてよい。さらに、モデル開発者1020が、利用カラムをマウスポインタでクリックし、チェックボックスにチェックをいれることで、利用するデータセットが選択されてもよい。また、選択するデータセットが複数存在してもよい。
データセット新規登録ボタンG3055は、学習や評価で利用するためのデータセットを新規に登録するために利用されるボタンである。当該ボタンが押下されることで、データセット登録画面G5000への遷移が行われる。データセットが登録されることで、データセットテーブルG3050に行が追加されてもよい。
ジョブ設定/結果テーブルG3060は、学習および評価ジョブの設定および結果情報を表示するテーブルである。当該テーブルの学習設定や評価指標は、ユーザが直接入力し、設定を行ってもよい。また、制御カラムの、開始ボタンや中止ボタンを押下することで、学習/評価の実行開始や、中止を制御してもよい。当該テーブルで設定した内容は、学習/評価設定テーブルT3200の各カラムに追加される。
モデル登録ボタンG3065は、本画面設定により作成したモデルをモデル管理システムに登録し、マーケットプレイスシステムで利用できるようにするために利用するボタンである。
図20は、モデル開発者1020に提供されるプログラム登録画面G4000の一例を示す。
プログラム登録画面G4000は、新たな学習プログラムまたは評価プログラムをモデル管理システム3000に登録するための画面である。画面G4000は、例えば、プログラムファイル入力テキストボックスG4010と、プログラムファイル参照用ボタンG4020と、プログラムファイル概要説明入力テキストボックスG4030と、プログラム種別設定チェックボックスG4040と、開示条件入力テキストボックスG4050と、実行条件入力テキストボックスG4060と、要求スペック入力テキストボックスG4070と、課金設定入力テキストボックスG4080と、プログラム登録ボタンG4090を備える。
プログラムファイル入力テキストボックスG4010は、モデル詳細画面G2000やモデル生成/評価登録画面G3000で表示する学習/評価用プログラムファイルについて、モデル開発用計算機1030におけるファイルのパスを入力するテキストボックスである。ファイルパスは、手動で入力されてもよいし、プログラムファイル参照用ボタンG4020を押下することで展開されるファイル選択ダイアログにて指定されてもよい。モデル管理プログラムP3000は、当該テキストボックスで指定されたパスからファイル名を抽出し、学習/評価プログラム管理テーブルT3100のプログラムファイルT3110に設定する。
プログラムファイル概要説明入力テキストボックスG4030は、登録するプログラムの概要をテキスト形式や、Markdown形式で入力するテキストボックスである。入力された値は、学習/評価プログラム管理テーブルT3100の、説明フィールドT3135に記録される。
プログラム種別設定チェックボックスG4040は、登録するプログラムの種別を選択するためのチェックボックスである。学習/評価を選択することが可能である。チェックされた値は、学習/評価プログラム管理テーブルT3100のプログラム種別フィールドT3115に記録される。
開示条件入力テキストボックスG4050と、実行条件入力テキストボックスG4060と、要求スペック入力テキストボックスG4070と、課金設定入力テキストボックスG4080は、それぞれ、登録するプログラムの開示条件と、実行条件と、要求スペックと、課金設定を入力するテキストボックスである。入力された値は、それぞれ、学習/評価プログラム管理テーブルT3100の、開示条件フィールドT3140と、実行条件フィールドT3145と、要求スペックフィールドT3150と、課金設定フィールドT3120と、に記録される。
プログラム登録ボタンG4090は、入力した値を設定値とし、モデル管理システムにプログラムを登録するためのボタンである。プログラムファイル入力テキストボックスG4010で指定したパスに存在するプログラムファイルが、モデル管理プログラムP3000に送信され、モデル管理システム3000に格納される。本画面G4000で入力されたプログラム管理情報を用いて、モデル管理プログラムP3000に、プログラムの登録要求が送信され、新しいプログラムファイルの登録が実行される。
図21は、アプリ開発者1000またはモデル開発者1020に対して提供されるデータ登録画面G5000の一例を示す。
データ登録画面G5000は、新たな学習用または評価用のデータセットをデータ管理システム4000に登録するための画面である。画面G5000は、例えば、データセットファイル入力テキストボックスG5010と、データセットファイル参照用ボタンG5020と、データセット概要説明入力テキストボックスG5030と、開示条件入力テキストボックスG5040と、利用条件入力テキストボックスG5050と、課金設定入力テキストボックスG5060と、プログラム登録ボタンG5070を備える。
データセットファイル入力テキストボックスG5010は、モデル詳細画面G2000やモデル生成/評価登録画面G3000で表示するデータセットファイルについて、アプリ開発用計算機1010または、モデル開発用計算機1030におけるファイルのパスを入力するテキストボックスである。ファイルパスは、手動で入力されてもよいし、データセットファイル参照用ボタンG5020を押下することで展開されるファイル選択ダイアログにて指定されてもよい。データ管理プログラムP4000は、当該テキストボックスで指定されたパスからファイル名を抽出し、データセット管理テーブルT4000のデータセットファイルT4020に設定する。
データセット概要説明入力テキストボックスG5030は、登録するデータセットの概要をテキスト形式や、Markdown形式で入力するテキストボックスである。入力された値は、データセット管理テーブルT4000の、説明フィールドT4030に記録される。
開示条件入力テキストボックスG5040と、実行条件入力テキストボックスG5050と、課金設定入力テキストボックスG5060は、それぞれ、登録するデータセットの開示条件と、利用条件と、要求スペックと、課金設定を入力するテキストボックスである。入力された値は、それぞれ、学習/評価プログラム管理テーブルT4000の、開示条件フィールドT4070と、利用条件フィールドT4080と、課金設定フィールドT4040と、に記録される。
データセット登録ボタンG5070は、入力した値を設定値とし、データ管理システムにデータセットを登録するためのボタンである。データセットファイル入力テキストボックスG5010で指定したパスに存在するデータセットファイルが、データ管理プログラムP4000に送信され、データ管理システム4000に格納されてよい。本画面G5000で入力されたデータセット管理情報を用いて、データ管理プログラムP4000に、データセットの登録要求が送信され、新しいデータセットファイルの登録が実行される。