(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023083728
(43)【公開日】2023-06-16
(54)【発明の名称】システムおよび方法
(51)【国際特許分類】
G06N 20/00 20190101AFI20230609BHJP
G09B 19/00 20060101ALI20230609BHJP
G09B 7/00 20060101ALI20230609BHJP
G06F 11/34 20060101ALI20230609BHJP
G06F 11/36 20060101ALI20230609BHJP
【FI】
G06N20/00
G09B19/00 H
G09B7/00
G06F11/34 109
G06F11/36 192
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021197586
(22)【出願日】2021-12-06
(71)【出願人】
【識別番号】518050920
【氏名又は名称】444株式会社
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109335
【弁理士】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100170209
【弁理士】
【氏名又は名称】林 陽和
(72)【発明者】
【氏名】薗田 正和
(72)【発明者】
【氏名】染葉 勇太
【テーマコード(参考)】
2C028
5B042
【Fターム(参考)】
2C028AA10
2C028BB04
2C028BC01
2C028BD01
5B042GA22
5B042HH11
5B042HH20
5B042MA14
(57)【要約】
【課題】学習モデルの性能の評価を適切に実行する。
【解決手段】本開示の一例としてのシステムは、入力データに対して所定の処理を実行する学習モデルと、学習モデルに所定の処理を実行させるためのテストコードと、を取得し、学習モデルが第1の入力データに対して所定の処理を実行するように第1の入力データに基づいてテストコードを実行する実行部と、第1の入力データに基づくテストコードの実行の結果に基づいて学習モデルの性能を評価する評価部と、を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
入力データに対して所定の処理を実行する学習モデルと、前記学習モデルに前記所定の処理を実行させるためのテストコードと、を取得し、前記学習モデルが第1の入力データに対して前記所定の処理を実行するように前記第1の入力データに基づいて前記テストコードを実行する実行部と、
前記第1の入力データに基づく前記テストコードの実行の結果に基づいて前記学習モデルの性能を評価する評価部と、
を備える、システム。
【請求項2】
前記実行部は、前記第1の入力データに基づいて前記テストコードを実行することに先立って、前記第1の入力データとは異なる第2の入力データに基づいて前記テストコードを実行し、
前記評価部は、前記第1の入力データに基づく前記テストコードの実行の結果に基づいて前記学習モデルの性能を評価することに先立って、前記第2の入力データに基づく前記テストコードの実行の結果に基づいて前記テストコードの妥当性を評価する、
請求項1に記載のシステム。
【請求項3】
前記実行部は、前記第2の入力データに基づいて前記テストコードを実行した後、前記評価部により前記テストコードが妥当であると評価された場合に、前記第1の入力データに基づいて前記テストコードを実行する、
請求項2に記載のシステム。
【請求項4】
前記実行部は、仮想環境を構築した上で前記テストコードを実行し、前記テストコードの実行が完了するたびに前記仮想環境を削除する、
請求項1~3のうちいずれか1項に記載のシステム。
【請求項5】
ユーザに前記学習モデルおよび前記テストコードを作成させるように前記ユーザに問題を提示することと、前記問題に対する前記ユーザの解答としての前記学習モデルおよび前記テストコードの提出を受け付けることと、を管理する管理部をさらに備え、
前記実行部は、前記ユーザの解答としての前記学習モデルおよび前記テストコードの提出が受け付けられた場合に、前記第1の入力データに基づいて前記テストコードを実行する、
請求項1~4のうちいずれか1項に記載のシステム。
【請求項6】
前記評価部は、前記問題に応じて複数の評価関数を選択的に使用して、前記学習モデルの性能を評価する、
請求項5に記載のシステム。
【請求項7】
前記学習モデルの性能の評価の結果を前記ユーザに通知する通知部をさらに備える、
請求項5または6に記載のシステム。
【請求項8】
前記管理部は、前記第1の入力データが記憶されたクラウドストレージへの前記学習モデルおよび前記テストコードのアップロードを前記ユーザに要求し、前記アップロードが完了した旨の通知を前記ユーザから受け取ることで、前記問題に対する前記ユーザの解答としての前記学習モデルおよび前記テストコードの提出を受け付け、
前記実行部は、前記クラウドストレージから前記学習モデル、前記テストコード、および前記第1の入力データをダウンロードし、ダウンロードした前記学習モデル、前記テストコード、および前記第1の入力データを使用して、前記学習モデルが前記第1の入力データに対して前記所定の処理を実行するように前記第1の入力データに基づいて前記テストコードを実行する、
請求項5~7のうちいずれか1項に記載のシステム。
【請求項9】
入力データに対して所定の処理を実行する学習モデルと、前記学習モデルに前記所定の処理を実行させるためのテストコードと、を取得し、前記学習モデルが第1の入力データに対して前記所定の処理を実行するように前記第1の入力データに基づいて前記テストコードを実行し、
前記第1の入力データに基づく前記テストコードの実行の結果に基づいて前記学習モデルの性能を評価する、
方法。
【請求項10】
前記第1の入力データに基づいて前記テストコードを実行することに先立って、前記第1の入力データとは異なる第2の入力データに基づいて前記テストコードを実行し、
前記第1の入力データに基づく前記テストコードの実行の結果に基づいて前記学習モデルの性能を評価することに先立って、前記第2の入力データに基づく前記テストコードの実行の結果に基づいて前記テストコードの妥当性を評価する、
請求項9に記載の方法。
【請求項11】
前記第2の入力データに基づいて前記テストコードを実行した後、前記テストコードが妥当であると評価された場合に、前記第1の入力データに基づいて前記テストコードを実行する、
請求項10に記載の方法。
【請求項12】
仮想環境を構築した上で前記テストコードを実行し、前記テストコードの実行が完了するたびに前記仮想環境を削除する、
請求項9~11のうちいずれか1項に記載の方法。
【請求項13】
ユーザに前記学習モデルおよび前記テストコードを作成させるように前記ユーザに問題を提示することと、前記問題に対する前記ユーザの解答としての前記学習モデルおよび前記テストコードの提出を受け付けることと、を管理し、
前記ユーザの解答としての前記学習モデルおよび前記テストコードの提出が受け付けられた場合に、前記第1の入力データに基づいて前記テストコードを実行する、
請求項9~12のうちいずれか1項に記載の方法。
【請求項14】
前記問題に応じて複数の評価関数を選択的に使用して、前記学習モデルの性能を評価する、
請求項13のうちいずれか1項に記載の方法。
【請求項15】
前記学習モデルの性能の評価の結果を前記ユーザに通知する、
請求項13または14に記載の方法。
【請求項16】
前記第1の入力データが記憶されたクラウドストレージへの前記学習モデルおよび前記テストコードのアップロードを前記ユーザに要求し、前記アップロードが完了した旨の通知を前記ユーザから受け取ることで、前記問題に対する前記ユーザの解答としての前記学習モデルおよび前記テストコードの提出を受け付け、
前記クラウドストレージから前記学習モデル、前記テストコード、および前記第1の入力データをダウンロードし、ダウンロードした前記学習モデル、前記テストコード、および前記第1の入力データを使用して、前記学習モデルが前記第1の入力データに対して前記所定の処理を実行するように前記第1の入力データに基づいて前記テストコードを実行する、
請求項13~15のうちいずれか1項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、システムおよび方法に関する。
【背景技術】
【0002】
従来、ユーザのプログラミングスキルを評価する技術について検討されている。このような従来の技術では、ユーザにより作成されたプログラムのソースコードを評価対象のデータとして取得し、当該ソースコードの実行の結果に基づくソースコードの評価の結果に基づいて、ユーザのプログラミングスキルを評価する、という構成が採用されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、近年、機械学習に関する技術について発展してきている。このため、機械学習によりトレーニングされた学習モデルの性能を適切に評価することが望まれている。
【0005】
しかしながら、評価対象のデータのみを取得することで評価を行う上記のような従来の技術は、学習モデルの性能の評価にはなじまない。たとえば、学習モデルは、入力データに対して所定の処理を実行するものであるが、その所定の処理を学習モデルに実行させるためのコードは、学習モデルの設計に応じて様々に異なり、必ずしも一律ではない。したがって、学習モデルの性能を評価する場合、上記のような従来の技術のように評価対象のデータとしての学習モデルのみを取得するだけでは、その学習モデルによる所定の処理の結果が適切に取得できず、適切な評価が実行できない場合がある。
【0006】
そこで、本開示が解決しようとする課題の一つは、学習モデルの性能の評価を適切に実行することが可能なシステムおよび方法を提供することである。
【課題を解決するための手段】
【0007】
本開示の一例としてのシステムは、入力データに対して所定の処理を実行する学習モデルと、学習モデルに所定の処理を実行させるためのテストコードと、を取得し、学習モデルが第1の入力データに対して所定の処理を実行するように第1の入力データに基づいてテストコードを実行する実行部と、第1の入力データに基づくテストコードの実行の結果に基づいて学習モデルの性能を評価する評価部と、を備える。
【0008】
また、本開示の他の一例としての方法は、入力データに対して所定の処理を実行する学習モデルと、学習モデルに所定の処理を実行させるためのテストコードと、を取得し、学習モデルが第1の入力データに対して所定の処理を実行するように第1の入力データに基づいてテストコードを実行し、第1の入力データに基づくテストコードの実行の結果に基づいて学習モデルの性能を評価する。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施形態にかかるシステムの概要を示した例示的かつ模式的な図である。
【
図2】
図2は、実施形態にかかる管理サーバおよび評価サーバの機能を示した例示的かつ模式的なブロック図である。
【
図3】
図3は、実施形態にかかるシステムにおいて実行される処理の流れを示した例示的かつ模式的なシーケンス図である。
【
図4】
図4は、実施形態にかかるシステムにおいて実行される処理の
図3に続く流れを示した例示的かつ模式的なシーケンス図である。
【
図5】
図5は、実施形態にかかる管理サーバおよび評価サーバを構成するコンピュータのハードウェア構成を示した例示的かつ模式的なブロック図である。
【発明を実施するための形態】
【0010】
以下、本開示にかかるシステムおよび方法の実施形態を図面に基づいて説明する。以下に記載する実施形態の構成、ならびに当該構成によってもたらされる作用および効果は、あくまで一例であって、以下の記載内容に制限されるものではない。
【0011】
なお、本開示では、「第1」、「第2」などといった序数が必要に応じて使用されるが、これらの序数は、識別の便宜のために使用されるものであり、特定の優先順位を示すものではない。
【0012】
図1は、実施形態にかかるシステム100の概要を示した例示的かつ模式的な図である。
【0013】
図1に示されるように、実施形態にかかるシステム100は、管理サーバ110と、評価サーバ120と、を備える。管理サーバ110および評価サーバ120は、互いに協働することで、管理者Yにより作成された問題をユーザXに提示し、当該問題に応じてユーザXが作成した学習モデルの性能の評価を行い、当該評価の結果をユーザXに通知するように構成される。
【0014】
実施形態において、ユーザXは、端末101を使用して各種の作業を行い、管理者Yは、端末102を使用して各種の作業を行う。また、実施形態では、端末101、管理サーバ110、および評価サーバ120の間におけるデータの送受信には、ネットワーク上に設けられたクラウドストレージ130が使用されうる。
【0015】
なお、
図1では、管理サーバ110および評価サーバ120がそれぞれ単一の装置として設けられた構成が例示されているが、これはあくまで一例である。実施形態では、管理サーバ110および評価サーバ120がそれぞれ2以上の装置の組み合わせとして構成されていてもよい。
【0016】
ここで、実施形態は、管理サーバ110および評価サーバ120に次の
図2に示されるような機能を持たせることで、ユーザXにより作成された学習モデルの性能の評価を適切に実行することを実現する。
【0017】
図2は、実施形態にかかる管理サーバ110および評価サーバ120の機能を示した例示的かつ模式的なブロック図である。
【0018】
図2に示されるように、管理サーバ110は、管理部211と、通知部212と、を備える。また、評価サーバ120は、実行部221と、評価部222と、を備える。
【0019】
なお、前述した通り、実施形態では、管理サーバ110および評価サーバ120がそれぞれ2以上の装置の組み合わせとして構成されていてもよい。このため、実施形態では、管理部211と通知部212とが物理的に独立していてもよいし、実行部221と評価部222とが物理的に独立していてもよい。
【0020】
管理サーバ110の管理部211は、ユーザXに学習モデルおよびテストコードを作成させるようにユーザXに問題を提示することと、問題に対するユーザXの解答としての学習モデルおよびテストコードの提出を受け付けることと、を管理する。なお、テストコードとは、学習モデルにその機能を発揮させるためにユーザXにより作成されるコードであり、提示された問題に応じた所定の処理(たとえば画像を識別または分類する処理など)を学習モデルに実行させるためのコードである。
【0021】
より具体的に、管理サーバ110の管理部211は、クラウドストレージ130への学習モデルおよびテストコードのアップロードをユーザXに要求し、アップロードが完了した旨の通知をユーザXから受け取ることで、管理者Yにより作成された問題に対するユーザXの解答としての学習モデルおよびコードの提出を受け付ける。
【0022】
そして、評価サーバ120の実行部221は、ユーザXにより提出された学習モデルとテストコードとを取得し、学習モデルがテストデータに対して所定の処理を実行するように、テストデータに基づいてテストコードを実行する。なお、テストデータとは、学習モデルの性能を評価する用の第1の入力データである。テストデータは、たとえばクラウドストレージ130に予めアップロードされている。
【0023】
そして、評価サーバ120の評価部222は、テストデータに基づく実行部221によるテストコードの実行の結果に基づいて、学習モデルの性能を評価する。評価の方法としては、たとえばクラウドストレージ130に予めアップロードされた正解データを使用する方法が考えられる。この場合、たとえば、テストコードの実行の結果と正解データとが完全に一致するか否か、または、テストコードの実行の結果と正解データとの間の誤差(絶対誤差または相対誤差)が許容範囲内にあるか否か、に基づいて学習モデルの性能を定量的に評価する評価関数が使用されうる。
【0024】
そして、管理サーバ110の通知部212は、評価サーバ120の評価部222により実行された学習モデルの性能の評価の結果をユーザXに通知する。このとき、通知部212は、学習モデルの性能の評価の結果に基づいて評価されるユーザXのスキルのレベルもあわせてGUI(Graphical User Interface)などを介してユーザXに通知しうる。
【0025】
ところで、テストコードは、ユーザXが端末101で作成したものであるため、環境が異なる評価サーバ120の実行部221がうまく実行できない場合がある。この場合、ユーザXがテストコードを修正できるように、実行部221によるテストコードの実行時に発生したエラーに関する情報がユーザXにフィードバックされうる。しかしながら、この場合、敢えてエラーを発生させることでテストデータの内容を盗み取るようなテストコードをユーザXが作成すると、実際の評価に使用されるテストデータを踏まえて学習モデルが作成し直されるおそれがあるため、評価の信頼性が損なわれる。
【0026】
そこで、実施形態において、評価サーバ120の実行部221は、テストデータに基づいてテストコードを実行することに先立って、テストデータとは異なるサンプルデータに基づいてテストコードを実行する。なお、サンプルデータとは、テストコードの妥当性を確認する用の第2の入力データである。サンプルデータは、クラウドストレージ130に予めアップロードされる。
【0027】
そして、評価サーバ120の評価部222は、テストデータに基づくテストコードの実行の結果に基づいて学習モデルの性能を評価することに先立って、サンプルデータに基づくテストコードの実行の結果に基づいてテストコードの妥当性を評価する。
【0028】
そして、評価サーバ120の実行部221は、サンプルデータに基づいてテストコードを実行した後、評価サーバ120の評価部222によりテストコードが妥当であると評価された場合にのみ、テストデータに基づいてテストコードを実行する。これにより、テストコードがテストデータを盗み取るような不当なコードでないことを確認した上で、テストデータに基づく学習モデルの評価を実行することが可能になる。
【0029】
なお、上記の説明では、学習モデルの性能を評価する方法として、テストコードの実行の結果と正解データとが完全に一致するか否か、または、テストコードの実行の結果と正解データとの間の誤差が許容範囲内にあるか否か、に基づいて学習モデルの性能を定量的に評価する評価関数を使用する方法が例示されている。
【0030】
しかしながら、問題によっては、他の観点で作成された評価関数を使用することが適切な場合もありうる。そこで、実施形態において、評価サーバ120の評価部222は、問題に応じて複数の評価関数を選択的に使用して、学習モデルの性能を評価しうる。
【0031】
また、上記のように、実施形態では、テストコードの実行が複数回実行されうるが、各回のテストコードの実行は、まっさらな環境で行われることが望ましい。そこで、実施形態において、評価サーバ120の実行部221は、仮想環境を構築した上でテストコードを実行し、テストコードの実行が完了するたびに仮想環境を削除する。
【0032】
以上の構成に基づき、実施形態にかかるシステム100では、ユーザXにより作成された学習モデルの性能の評価が行われる場合に、以下の
図3および
図4に示されるような流れで処理が実行される。
【0033】
図3は、実施形態にかかるシステム100において実行される処理の流れを示した例示的かつ模式的なシーケンス図であり、
図4は、実施形態にかかるシステム100において実行される処理の
図3に続く流れを示した例示的かつ模式的なシーケンス図である。
【0034】
図3に示されるように、実施形態では、まず、S301において、管理者Yは、端末102を使用して、管理サーバ110に対して、ユーザXに問題を提示して解答の提出を受け付けるという流れを複数回繰り返すためのセッションを作成する。
【0035】
そして、S302において、管理サーバ110(の管理部211)は、S301で作成されたセッションに参加するための情報を発行し、管理者Yの端末102に通知する。以下では、セッションに参加するための情報を、セッション参加情報と表現することがある。
【0036】
そして、S303において、管理者Yは、端末102を使用して、ユーザXの端末101に対して、S302で発行されたセッション参加情報を通知する。
【0037】
そして、S304において、ユーザXは、端末101を使用して、管理サーバ110に対して、S303で通知されたセッション参加情報に基づくセッションへの参加の要求を行う。
【0038】
そして、S305において、管理サーバ110(の管理部211)は、S304で行われた要求に応じて、ユーザXの端末101に対して、たとえば参加の許可または不許可の応答を行う。以下では、S305で参加の許可の応答が行われたことを前提に説明を進める。
【0039】
そして、S306において、ユーザXは、端末101を使用して、管理サーバ110に対して、問題の提示を要求する。
【0040】
そして、S307において、管理サーバ110(の管理部211)は、ユーザXの端末101に対して問題を提示する。
【0041】
そして、S308において、ユーザXは、端末101を使用して、S307で提示された問題に対する解答を作成する。このとき、ユーザXは、端末101を使用して、解答に必要なデータをクラウドストレージ130から適宜取得しうる。
【0042】
そして、S309において、ユーザXは、端末101を使用して、管理サーバ110に対して、S308で作成した解答を提出する旨を通知する。
【0043】
そして、S310において、管理サーバ110は、ユーザXの解答をアップロードする場所(たとえばネットワーク上のアドレスで示されるアップロード場所)を発行するようクラウドストレージ130に依頼する。
【0044】
そして、S311において、クラウドストレージ130は、S310の依頼に応じて、アップロード場所を発行し、管理サーバ110に通知する。
【0045】
そして、S312において、管理サーバ110(の管理部211)は、S311で発行されたアップロード場所をユーザXの端末101に通知し、当該アップロード場所への解答のアップロードを要求する。
【0046】
そして、S313において、ユーザXは、端末101を使用して、S312で通知されたアップロード場所に、S308で作成した解答をアップロードする。
【0047】
S313のアップロードが完了すると、S314において、ユーザXの端末101は、管理サーバ110に対して、アップロードが完了した旨を通知する。このとき、ユーザXの端末101は、たとえばファイルパスなどのような、解答としてアップロードされたテストコードの実行に必要な情報を通知しうる。
【0048】
そして、S315において、管理サーバ110(の管理部211)は、評価サーバ120の実行部221に対して、解答としてアップロードされたテストコードの実行に必要な情報を送信する。このとき、管理サーバ110(の管理部211)は、評価サーバ120の実行部221に対して、たとえば問題の属性情報のような、評価関数の選択の根拠として使用されうる情報も送信しうる。
【0049】
そして、S316において、評価サーバ120の実行部221は、テストコードを実行するための(まっさらな)仮想環境を構築する。
【0050】
そして、S317において、評価サーバ120の実行部221は、クラウドストレージ130に対して、テストコードの妥当性を確認するためのサンプルデータを要求する。このとき、評価サーバ120の実行部221は、クラウドストレージ130に対して、サンプルデータだけでなく、ユーザXが解答としてアップロードした学習モデルおよびテストコードも要求する。
【0051】
そして、S318において、クラウドストレージ130は、評価サーバ120の実行部221に対して、サンプルデータを送信する。このとき、クラウドストレージ130は、評価サーバ120の実行部221に対して、サンプルデータだけでなく、ユーザXが解答としてアップロードした学習モデルおよびテストコードも送信する。
【0052】
そして、S319において、評価サーバ120の実行部221は、サンプルデータに基づいてテストコードを実行し、学習モデルにサンプルデータに対する所定の処理を実行させる。
【0053】
そして、S320において、評価サーバ120の実行部221は、たとえばS315で取得した問題の属性情報に基づいて、評価サーバ120の評価部222に使用させる評価関数を選択する。
【0054】
そして、S321において、評価サーバ120の実行部221は、評価サーバ120の評価部222に対して、S319におけるテストコードの実行結果を送信し、テストコードの妥当性の評価を依頼する。このとき、評価サーバ120の実行部221は、評価サーバ120の評価部222に対して、S320でどのような評価関数が選択されたかも通知する。
【0055】
S321の依頼が完了すると、S322において、評価サーバ120の実行部221は、S316で構築した仮想環境を削除する。
【0056】
一方、S321の依頼が完了すると、S323において、評価サーバ120の評価部222は、クラウドストレージ130に対して、サンプルデータに基づくテストコードの実行結果と比較すべき正解データを要求する。
【0057】
そして、S324において、クラウドストレージ130は、評価サーバ120の評価部222に対して、正解データを送信する。
【0058】
そして、S325において、評価サーバ120の評価部222は、S324で取得した正解データと、S319におけるテストコードの実行結果と、を比較し、テストコードの妥当性を評価する。
【0059】
そして、S326において、評価サーバ120の評価部222は、S325での評価の結果を管理サーバ110に通知する。
【0060】
なお、S315からS326までの処理ブロックB301は、学習モデルの性能の評価に先立って行われるテストコードの妥当性を評価するための仮評価処理と表現することができる。仮評価処理によりテストコードが不当であると判定された場合、管理サーバ110は、ユーザXの端末101に対して処理のエラー通知を行い、テストコード(および必要に応じて学習モデル)を再作成するよう促しうる。
【0061】
ここで、仮評価処理によりテストコードが妥当であると判定された場合、
図4に示されるS327からS338までの処理により、学習モデルの性能の評価が行われる。
【0062】
すなわち、この場合、
図4に示されるように、S327において、管理サーバ110(の管理部211)は、評価サーバ120の実行部221に対して、テストコードの実行に必要な情報(および問題の属性情報)を送信する。このS327の処理は、
図3に示されるS315の処理と実質的に同様である。
【0063】
そして、S328において、評価サーバ120の実行部221は、テストコードを実行するための(まっさらな)仮想環境を構築する。このS328の処理は、
図3に示されるS316の処理と実質的に同様である。
【0064】
そして、S329において、評価サーバ120の実行部221は、クラウドストレージ130に対して、学習モデルの性能を評価するためのテストデータを要求する。このとき、評価サーバ120の実行部221は、クラウドストレージ130に対して、テストデータだけでなく、ユーザXが解答としてアップロードした学習モデルおよびテストコードも要求する。
【0065】
そして、S330において、クラウドストレージ130は、評価サーバ120の実行部221に対して、テストデータを送信する。このとき、クラウドストレージ130は、評価サーバ120の実行部221に対して、テストデータだけでなく、ユーザXが解答としてアップロードした学習モデルおよびテストコードも送信する。
【0066】
そして、S331において、評価サーバ120の実行部221は、テストデータに基づいてテストコードを実行し、学習モデルにテストデータに対する所定の処理を実行させる。
【0067】
そして、S332において、評価サーバ120の実行部221は、たとえばS327で取得した問題の属性情報に基づいて、評価サーバ120の評価部222に使用させる評価関数を選択する。
【0068】
そして、S333において、評価サーバ120の実行部221は、評価サーバ120の評価部222に対して、S331におけるテストコードの実行結果を送信し、学習モデルの性能の評価を依頼する。このとき、評価サーバ120の実行部221は、評価サーバ120の評価部222に対して、S332でどのような評価関数が選択されたかも通知する。
【0069】
S333の依頼が完了すると、S334において、評価サーバ120の実行部221は、S328で構築した仮想環境を削除する。
【0070】
一方、S333の依頼が完了すると、S335において、評価サーバ120の評価部222は、クラウドストレージ130に対して、テストデータに基づくテストコードの実行結果と比較すべき正解データを要求する。
【0071】
そして、S336において、クラウドストレージ130は、評価サーバ120の評価部222に対して、正解データを送信する。
【0072】
そして、S337において、評価サーバ120の評価部222は、S336で取得した正解データと、S331におけるテストコードの実行結果と、を比較し、学習モデルの性能を評価する。
【0073】
そして、S338において、評価サーバ120の評価部222は、S337での評価の結果を管理サーバ110に通知する。
【0074】
なお、
図4に示されるS327からS338までの処理ブロックB302は、
図3に示される処理ブロックB301としての仮評価処理の後に行われる本評価処理と表現することができる。
【0075】
そして、S339において、ユーザXは、端末101を使用して、管理サーバ110(の通知部212)に対して、学習モデルの性能の評価の結果の通知を要求する。
【0076】
そして、S340において、管理サーバ110(の通知部212)は、ユーザXの端末101に対して、学習モデルの性能の評価の結果を通知する。
【0077】
なお、実施形態において、ユーザXは、S340で通知される評価の結果を踏まえて、同じ問題に対して新たな解答を作成してもよい。この場合、
図3に示されるS308から
図4に示されるS340までの処理ブロックB303が繰り返し実行されうる。
【0078】
また、実施形態において、ユーザXは、1つのセッションに複数の問題が含まれる場合、複数の問題全てに対する解答を作成しうる。この場合、
図3に示されるS306から
図4に示されるS340までの処理ブロックB304が繰り返し実行されうる。なお、実施形態の技術が、セッション形式で複数の問題を提示する場合のみならず、1つの問題を単体で提示する場合にも適用可能であることは、言うまでもない。
【0079】
以上説明したように、実施形態にかかるシステム100は、実行部221と、評価部222と、を含む。実行部221は、入力データに対して所定の処理を実行する学習モデルと、学習モデルに所定の処理を実行させるためのテストコードと、を取得し、学習モデルが第1の入力データとしてのテストデータに対して所定の処理を実行するようにテストデータに基づいてテストコードを実行する。評価部222は、テストデータに基づくテストコードの実行の結果に基づいて学習モデルの性能を評価する。
【0080】
上記の構成によれば、学習モデルの性能の評価にあたり、評価対象となる学習モデルだけでなく、学習モデルにその機能を発揮させるためのテストコードも取得される。テストコードを利用すれば、学習モデルによる処理の結果を適切に取得することができるので、学習モデルの性能の評価を適切に実行することができる。
【0081】
ところで、学習モデルの性能を評価するための他の方法として、学習モデルによる処理をサーバ(たとえば評価サーバ120)上では実行しない方法、つまり学習モデルによる処理をその学習モデルを作成したユーザのローカル環境(たとえば端末101)で実行し、その処理の結果のみをサーバに評価させる方法も考えられる。しかしながら、この方法では、サーバによる評価の対象が、真に学習モデルによる処理の結果として得られたデータであるか、学習モデルによる処理の結果を模してユーザが手入力で作成したデータであるかの区別がつかないため、不正が発生するおそれがある。
【0082】
これに対して、実施形態では、学習モデルおよびテストコードに基づいて評価サーバ120上で実行される処理の結果が評価の対象となるため、上記のような不正が発生しない。したがって、この点においても、実施形態によれば、学習モデルの性能の評価を適切に実行することができる。
【0083】
ここで、実施形態において、実行部221は、テストデータに基づいてテストコードを実行することに先立って、テストデータとは異なる第2の入力データとしてのサンプルデータに基づいてテストコードを実行する。そして、評価部222は、テストデータに基づくテストコードの実行の結果に基づいて学習モデルの性能を評価することに先立って、サンプルデータに基づくテストコードの実行の結果に基づいてテストコードの妥当性を評価する。
【0084】
上記の構成によれば、サンプルデータおよびテストデータといった異なるデータを用いて2回の評価を行うことにより、評価の信頼性を高めることができる。
【0085】
また、実施形態において、実行部221は、サンプルデータに基づいてテストコードを実行した後、評価部222によりテストコードが妥当であると評価された場合に、テストデータに基づいてテストコードを実行する。
【0086】
上記の構成によれば、テストデータに基づいてテストコードを実行する必要が無い場合、つまりテストコードが不当であると評価される場合にまで、テストデータに基づいてテストコードが実行されるのを回避することができる。
【0087】
また、実施形態において、実行部221は、仮想環境を構築した上でテストコードを実行し、テストコードの実行が完了するたびに仮想環境を削除する。
【0088】
上記の構成によれば、常にまっさらな仮想環境でテストコードを実行することができる。
【0089】
また、実施形態にかかるシステム100は、管理部211を備える。管理部211は、ユーザに学習モデルおよびテストコードを作成させるようにユーザXに問題を提示することと、問題に対するユーザXの解答としての学習モデルおよびテストコードの提出を受け付けることと、を管理する。実行部221は、ユーザXの解答としての学習モデルおよびテストコードの提出が受け付けられた場合に、テストデータに基づいてテストコードを実行する。
【0090】
上記の構成によれば、ユーザXの解答の提出に応じたタイミングでテストデータに基づいてテストコードを実行し、学習モデルの性能を評価することができる。
【0091】
また、実施形態において、評価部222は、問題に応じて複数の評価関数を選択的に使用して、学習モデルの性能を評価する。
【0092】
上記の構成によれば、たとえば問題の趣旨に合った評価関数を使用して評価を行うことができるので、評価の信頼性を高めることができる。
【0093】
また、実施形態にかかるシステム100は、通知部212を備える。通知部212は、学習モデルの性能の評価の結果をユーザXに通知する。
【0094】
上記の構成によれば、たとえば学習モデルの作成に関するユーザXのスキルのレベルをユーザXに容易に通知することができる。
【0095】
また、実施形態において、管理部211は、テストデータが記憶されたクラウドストレージ130への学習モデルおよびテストコードのアップロードをユーザに要求し、アップロードが完了した旨の通知をユーザXから受け取ることで、問題に対するユーザXの解答としての学習モデルおよびテストコードの提出を受け付ける。そして、実行部221は、クラウドストレージ130から学習モデル、テストコード、およびテストデータをダウンロードし、ダウンロードした学習モデル、テストコード、およびテストデータを使用して、学習モデルがテストデータに対して所定の処理を実行するようにテストデータに基づいてテストコードを実行する。
【0096】
上記の構成によれば、クラウドストレージ130を利用して、学習モデル、テストコード、およびテストデータの受け渡しをスムーズに行うことができる。
【0097】
最後に、上述した実施形態にかかる管理サーバ110および評価サーバ120のハードウェア構成について説明する。実施形態にかかる管理サーバ110および評価サーバ120は、たとえば次の
図5に示されるようなハードウェア構成を有するコンピュータ500として構成される。
【0098】
実施形態にかかる管理サーバ110および評価サーバ120を構成するコンピュータ500のハードウェア構成を示した例示的かつ模式的なブロック図である。
【0099】
図5に示されるように、コンピュータ500は、プロセッサ510と、メモリ520と、ストレージ530と、入出力インターフェース(I/F)540と、通信インターフェース(I/F)550と、を備えている。これらのハードウェアは、バス560に接続されている。
【0100】
プロセッサ510は、たとえばCPU(Central Processing Unit)として構成され、コンピュータ500の各部の動作を統括的に制御する。
【0101】
メモリ520は、たとえばROM(Read Only Memory)およびRAM(Random Access Memory)を含み、プロセッサ510により実行されるプログラムなどの各種のデータの揮発的または不揮発的な記憶、およびプロセッサ510がプログラムを実行するための作業領域の提供などを実現する。
【0102】
ストレージ530は、たとえばHDD(Hard Disk Drive)またはSSD(Solid State Drive)を含み、各種のデータを不揮発的に記憶する。
【0103】
入出力インターフェース540は、たとえばキーボードおよびマウスなどのような入力装置(不図示)からコンピュータ500へのデータの入力と、たとえばコンピュータ500からディスプレイおよびスピーカなどのような出力装置(不図示)へのデータの出力と、を制御する。
【0104】
通信インターフェース550は、コンピュータ500が他の装置と通信を実行することを可能にする。
【0105】
実施形態にかかる管理サーバ110および評価サーバ120が有する機能(
図2参照)は、管理サーバ110および評価サーバ120を構成する各コンピュータ500のプロセッサ510がメモリ520またはストレージ530に予め記憶された証プログラムを実行した結果として、ハードウェアとソフトウェアとの協働による機能モジュール群として実現される。ただし、実施形態では、
図2に示される機能モジュール群のうち一部または全部が、専用に設計された回路のようなハードウェアのみによって実現されてもよい。
【0106】
なお、上述したプログラムは、必ずしもメモリ520またはストレージ530に予め記憶されている必要はない。たとえば、上述したプログラムは、フレキシブルディスク(FD)のような各種の磁気ディスク、またはDVD(Digital Versatile Disk)のような各種の光ディスクなどといった、コンピュータで読み取り可能な媒体にインストール可能な形式または実行可能な形式で記録されたコンピュータプログラムプロダクトとして提供されてもよい。
【0107】
また、上述したプログラムは、インターネットなどのネットワーク経由で提供または配布されてもよい。すなわち、上述したプログラムは、インターネットなどのネットワークに接続されたコンピュータ上に格納された状態で、ネットワーク経由でのダウンロードを受け付ける、といった形で提供されてもよい。
【0108】
以上、本開示のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態およびその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲とに含まれる。
【符号の説明】
【0109】
100 システム
211 管理部
212 通知部
221 実行部
222 評価部
【手続補正書】
【提出日】2023-04-20
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
少なくとも1つのコンピュータにより構成された実行部、評価部、および管理部を備え、
前記実行部は、入力データに対して所定の処理を実行する学習モデルと、前記学習モデルに前記所定の処理を実行させるためのテストコードと、を取得し、前記学習モデルが第1の入力データに対して前記所定の処理を実行するように前記第1の入力データに基づいて前記テストコードを実行し、
前記評価部は、前記第1の入力データに基づく前記テストコードの実行の結果に基づいて前記学習モデルの性能を評価し、
前記実行部は、前記第1の入力データに基づいて前記テストコードを実行することに先立って、前記第1の入力データとは異なる第2の入力データに基づいて前記テストコードを実行し、
前記評価部は、前記第1の入力データに基づく前記テストコードの実行の結果に基づいて前記学習モデルの性能を評価することに先立って、前記第2の入力データに基づく前記テストコードの実行の結果に基づいて前記テストコードの妥当性を評価し、
ユーザに前記学習モデルおよび前記テストコードを作成させるように前記ユーザに問題を提示することと、前記問題に対する前記ユーザの解答としての前記学習モデルおよび前記テストコードの提出を受け付けることと、を管理する管理部をさらに備え、
前記実行部は、前記ユーザの解答としての前記学習モデルおよび前記テストコードの提出が受け付けられた場合に、前記第1の入力データに基づいて前記テストコードを実行し、
前記管理部は、前記第1の入力データが記憶されたクラウドストレージへの前記学習モデルおよび前記テストコードのアップロードを前記ユーザに要求し、前記アップロードが完了した旨の通知を前記ユーザから受け取り、
前記実行部は、前記クラウドストレージから前記学習モデル、前記テストコード、および前記第1の入力データをダウンロードし、ダウンロードした前記学習モデル、前記テストコード、および前記第1の入力データを使用して、前記学習モデルが前記第1の入力データに対して前記所定の処理を実行するように前記第1の入力データに基づいて前記テストコードを実行する、システム。
【請求項2】
前記実行部は、前記第2の入力データに基づいて前記テストコードを実行した後、前記評価部により前記テストコードが妥当であると評価された場合に、前記第1の入力データに基づいて前記テストコードを実行する、
請求項1に記載のシステム。
【請求項3】
前記実行部は、仮想環境を構築した上で前記テストコードを実行し、前記テストコードの実行が完了するたびに前記仮想環境を削除する、
請求項1または2に記載のシステム。
【請求項4】
前記評価部は、前記問題に応じて複数の評価関数を選択的に使用して、前記学習モデルの性能を評価する、
請求項1~3のうちいずれか1項に記載のシステム。
【請求項5】
前記少なくとも1つのコンピュータにより構成された通知部をさらに備え、
前記通知部は、前記学習モデルの性能の評価の結果を前記ユーザに通知する、
請求項1~4のうちいずれか1項に記載のシステム。
【請求項6】
少なくとも1つのコンピュータを用いて、
入力データに対して所定の処理を実行する学習モデルと、前記学習モデルに前記所定の処理を実行させるためのテストコードと、を取得し、前記学習モデルが第1の入力データに対して前記所定の処理を実行するように前記第1の入力データに基づいて前記テストコードを実行し、
前記第1の入力データに基づく前記テストコードの実行の結果に基づいて前記学習モデルの性能を評価し、
前記第1の入力データに基づいて前記テストコードを実行することに先立って、前記第1の入力データとは異なる第2の入力データに基づいて前記テストコードを実行し、
前記第1の入力データに基づく前記テストコードの実行の結果に基づいて前記学習モデルの性能を評価することに先立って、前記第2の入力データに基づく前記テストコードの実行の結果に基づいて前記テストコードの妥当性を評価し、
ユーザに前記学習モデルおよび前記テストコードを作成させるように前記ユーザに問題を提示することと、前記問題に対する前記ユーザの解答としての前記学習モデルおよび前記テストコードの提出を受け付けることと、を管理し、
前記ユーザの解答としての前記学習モデルおよび前記テストコードの提出が受け付けられた場合に、前記第1の入力データに基づいて前記テストコードを実行し、
前記第1の入力データが記憶されたクラウドストレージへの前記学習モデルおよび前記テストコードのアップロードを前記ユーザに要求し、前記アップロードが完了した旨の通知を前記ユーザから受け取り、
前記クラウドストレージから前記学習モデル、前記テストコード、および前記第1の入力データをダウンロードし、ダウンロードした前記学習モデル、前記テストコード、および前記第1の入力データを使用して、前記学習モデルが前記第1の入力データに対して前記所定の処理を実行するように前記第1の入力データに基づいて前記テストコードを実行する、
方法。
【請求項7】
前記少なくとも1つのコンピュータを用いて、
前記第2の入力データに基づいて前記テストコードを実行した後、前記テストコードが妥当であると評価された場合に、前記第1の入力データに基づいて前記テストコードを実行する、
請求項6に記載の方法。
【請求項8】
前記少なくとも1つのコンピュータを用いて、
仮想環境を構築した上で前記テストコードを実行し、前記テストコードの実行が完了するたびに前記仮想環境を削除する、
請求項6または7に記載の方法。
【請求項9】
前記少なくとも1つのコンピュータを用いて、
前記問題に応じて複数の評価関数を選択的に使用して、前記学習モデルの性能を評価する、
請求項6~8のうちいずれか1項に記載の方法。
【請求項10】
前記少なくとも1つのコンピュータを用いて、
前記学習モデルの性能の評価の結果を前記ユーザに通知する、
請求項6~9のうちいずれか1項に記載の方法。