(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-27
(45)【発行日】2023-12-05
(54)【発明の名称】情報処理システムおよび情報処理方法
(51)【国際特許分類】
G06F 8/20 20180101AFI20231128BHJP
G06N 20/00 20190101ALI20231128BHJP
G06F 8/70 20180101ALI20231128BHJP
【FI】
G06F8/20
G06N20/00
G06F8/70
(21)【出願番号】P 2018217271
(22)【出願日】2018-11-20
【審査請求日】2021-09-22
【前置審査】
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】301063496
【氏名又は名称】東芝デジタルソリューションズ株式会社
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】松岡 有希
(72)【発明者】
【氏名】西澤 実
(72)【発明者】
【氏名】後藤 哲也
(72)【発明者】
【氏名】仲 義行
【審査官】土谷 慎吾
(56)【参考文献】
【文献】特開2016-143363(JP,A)
【文献】特開2011-034452(JP,A)
【文献】特開2005-222462(JP,A)
【文献】特開2018-147261(JP,A)
【文献】特開2009-020624(JP,A)
【文献】特開2004-054785(JP,A)
【文献】特開2009-053954(JP,A)
【文献】伊吹勇郎,短期間でAIモデルを作成・提供可能とする深層学習基盤の開発,NTT DOCOMO テクニカル・ジャーナル,一般社団法人電気通信協会,2018年01月,第25巻, 第4号,pp.12-18,特にpp.14-17
【文献】小林大悟,Deep Learningを利用した画像認識システム開発の効率化プラットフォーム,画像ラボ,日本,日本工業出版株式会社,2018年04月10日,第29巻, 第4号,pp.40-48,ISSN 0915-6755, 特にpp.46-48
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/20
G06N 20/00
G06F 8/70
(57)【特許請求の範囲】
【請求項1】
機械学習を行う設計情報、および前記機械学習の対象データを取得する取得部と、
前記取得部が取得した前記設計情報を実行するフレームワーク環境およびライブラリ情報と、前記フレームワーク環境およびライブラリ情報のバージョン情報に応じた、前記フレームワーク環境における前記機械学習の実行を補助するソフトウェア構成とを設定する環境設定部と、
前記対象データに対する学習を、前記取得部により取得された前記設計情報と前記環境設定部により設定された前記フレームワーク環境を用いて実行することで、モデルを生成または更新
し、前記モデルを用いて推論処理を行い、前記推論処理の精度に基づいて前記モデルを保守するモデル処理部と、
前記取得部が取得した前記設計情報
および前記対象データ、前記環境設定部が設定した前記フレームワーク環境に関する情報、および前記モデル処理部により生成または更新された前記モデルに関する情報を開発履歴情報として管理する管理部と、
自システムの利用者からの環境設定情報の出力指示を受け付けて前記利用者に推奨する設定情報を提示し、前記利用者により選択された設定情報に基づいて前記環境設定部に環境設定させるインターフェース提供部と、
前記取得部と前記環境設定部と前記管理部と前記インターフェース提供部とを連携させる制御部と、
を備え、
前記管理部は、前記
利用者に利用されるフェーズを、
前記取得部が前記設計情報および前記対象データを取得する導入フェーズと、
前記モデル処理部が前記モデルを生成または更新する構築フェーズと、
前記モデル処理部が前記モデルを用いて
前記推論処理を行う運用フェーズと、
前記モデル処理部が前記モデルを保守する保守フェーズと、
に区分して管理し、
前記管理部は、
前記利用者のうち前記設計情報を開発する開発者には、
前記導入フェーズおよび前記構築フェーズにある前記開発履歴情報への開示権限を付与し、
前記利用者のうちサービスを構築する担当者には、前記運用フェーズおよび前記保守フェーズ
における前記モデルへの開示権限を付与する、
情報処理システム。
【請求項2】
前記環境設定部は、前記情報処理システムの利用者による前記設定の変更の要求を受け付け、受け付けた変更内容を反映した環境設定を提供し、
前記管理部は、前記設定の変更の有無を併せて管理する、
請求項1に記載の情報処理システム。
【請求項3】
前記管理部は、前記情報処理システムの利用者に対して設定されたアクセス権限に応じて、前記開発履歴情報の前記利用者への開示可能範囲を認識し、認識した開示可能範囲の前記開発履歴情報を前記利用者にレコメンド情報として提供する、
請求項1または2に記載の情報処理システム。
【請求項4】
コンピュータが、
機械学習を行う設計情報、および機械学習の対象データを取得し、
取得した前記設計情報を実行するフレームワーク環境およびライブラリ情報と、その実行を補助するソフトウェア構成とを設定し、
前記対象データに対する学習を、取得した前記設計情報と設定された前記フレームワーク環境を用いて実行することで、モデルを生成または更新し、
前記モデルを用いて推論処理を行い、
前記推論処理の精度に基づいて前記モデルを保守し、
取得した前記設計情報
および前記対象データ、設定した前記フレームワーク環境に関する情報、および生成または更新された前記モデルに関する情報を開発履歴情報として管理し、
利用者に利用されるフェーズを、
前記設計情報および前記対象データを取得する導入フェーズと、
前記モデルを生成または更新する構築フェーズと、
前記モデルを用いて
前記推論処理を行う運用フェーズと、
前記モデルを保守する保守フェーズと、
に区分して管理し、
前記利用者のうち前記設計情報を開発する開発者には、
前記導入フェーズおよび前記構築フェーズにある前記開発履歴情報への開示権限を付与し、
前記利用者のうちサービスを構築する担当者には、前記運用フェーズおよび前記保守フェーズ
における前記モデルへの開示権限を付与する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理システムおよび情報処理方法に関する。
【背景技術】
【0002】
従来、ニューラルネットワークを活用したディープラーニングにより生成した共通モデルに基づいて、モデルを更新したり、モデルの精度を上げるためのモデル統合システムに関する技術が公開されている。
【0003】
また近年、日々新たな学習モデルの生成モジュールやライブラリ情報が、オープンソース等の形態で公開されている。それらの生成モジュールやライブラリ情報などは、有志により正しく機能する状態に組み合わされてパッケージングされた後に、多数の開発者に公開されることがあり、個々の開発者の環境構築の手間を省いたり、開発の効率化を図ろうしたりする動きがみられる。
【0004】
従来の技術では、新たな生成モジュールやライブラリ情報を取り入れつつ、モデル開発技法の標準化を図ることについては十分に考慮されていない可能性があった。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明が生まれた背景として、機械学習を用いたサービスを開発する際に、開発者間で設計が統一されておらず品質が均一化されない点、開発手法や開発環境が異なることにより他の開発者が作成した部品等の再利用が困難である点が問題であった。これらの問題を解決するには、インターフェースを定義した「開発フレームワーク」、ソフトウェアの部品群である「開発コンポーネント」、開発物の実行環境である「開発環境」の3つのコアアセットが、開発作業シーケンスの中で人手を介さず、シームレスに連動して、機械学習が実行されることが望ましい。その際、そのアウトプットが、変更履歴も含めて構成管理されていることが望ましい。各アセットの概念そのものは、既存技術にあるが、開発者がやりたいことを選択し、所望のモデルを実装および学習して、出力のモデル情報を蓄積するまでを一気通貫で終わらせる仕組みはない。本発明が解決しようする課題は、組織内で、高品質で、効率よくモデルを開発するために、その開発に纏わる一連の人手による作業を一気通貫で終わらせるモデル開発基盤を提供することである。そして、それを実現するモデル開発技法の標準化を図ることができる情報処理システムおよび情報処理方法を提供することである。
【課題を解決するための手段】
【0007】
実施形態の情報処理システムは、取得部と、環境設定部と、モデル処理部と、管理部と、インターフェース提供部と、制御部とを持つ。取得部は、機械学習を行う設計情報、および機械学習の対象データを取得する。環境設定部は、前記取得部が取得した前記設計情報を実行するフレームワーク環境およびライブラリ情報と、前記フレームワーク環境およびライブラリ情報のバージョン情報に応じた、前記フレームワーク環境における前記機械学習における処理の実行を補助するソフトウェア構成とを設定する。モデル処理部は、前記対象データに対する学習を、前記取得部により取得された前記設計情報と前記環境設定部により設定された前記フレームワーク環境を用いて実行することで、モデルを生成または更新する。管理部は、前記取得部が取得した前記設計情報、前記環境設定部が設定した前記フレームワーク環境に関する情報、および前記モデル処理部により生成または更新された前記モデルに関する情報を開発履歴情報として管理する。インターフェース提供部は、自システムの利用者からの環境設定情報の出力指示を受け付けて前記利用者に推奨する設定情報を提示し、前記利用者により選択された設定情報に基づいて前記環境設定部に環境設定させる、または前記管理部に前記開発履歴情報を出力させる。制御部は、前記取得部と前記環境設定部と前記管理部と前記インターフェース提供部とを連携させる。
【図面の簡単な説明】
【0008】
【
図1】実施形態に係る情報処理システム1の構成を示す図。
【
図2】情報処理システム1において実施されるモデルの学習・推論処理フローの一例を示す図。
【
図3】情報処理システム1の処理の概要を説明する図。
【
図4】情報処理システム1の利用ケースを説明するための図。
【
図5】情報処理システム1の利用ケースの具体例を示す図。
【
図6】モデル処理部150による学習処理の流れの一例を示すフローチャート。
【
図7】仮想化基盤C-1の処理の流れの一例を示すフローチャート。
【
図8】学習済みモデル187の内容の一例を示す図。
【
図10】管理部160およびインターフェース提供部170による、インターフェース提供処理の流れの一例を示すフローチャート。
【発明を実施するための形態】
【0009】
以下では、実施形態の情報処理システムおよび情報処理方法を、図面を参照して説明する。
【0010】
図1は、実施形態に係る情報処理システム1の構成を示す図である。情報処理システム1は、例えば、通信部110と、制御部120と、取得部130と、環境設定部140と、モデル処理部150と、管理部160と、インターフェース提供部170と、記憶部180とを備える。モデル処理部150と記憶部180を除くこれらの構成要素の一部または全部は、CPU(Central Processing Unit)等のプロセッサが記憶部180に記憶されたプログラムを実行することにより実現されてよい。また、制御部120の構成要素の一部または全部は、LSI(Large ScaleIntegration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)等のハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。プログラムは、予めHDD(Hard Disk Drive)やフラッシュメモリなどの記憶装置(非一過性の記憶媒体を備える記憶装置)に格納されていてもよいし、DVDやCD-ROMなどの着脱可能な記憶媒体(非一過性の記憶媒体)に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。プロセッサが記憶部180に記憶されているプログラムを実行することによって、制御部120の機能が実現される。
【0011】
通信部110は、情報処理システム1の利用者(一般的なシステムの開発者を指し、本願で同様とする)の端末装置(例えば、パーソナルコンピュータやタブレット端末)などの外部装置とネットワークを介して通信を行い、情報の送受信を行う。ネットワークは、LAN(Local Area Network)やWAN(Wide Area Network)インターネット、専用回線、無線基地局、プロバイダなどのうちの一部または全部を含む。通信部110は、利用者の端末装置(不図示)により送信された、設計情報(例えば、利用者により作成されたコーディングプログラム)や、対象データなどを取得する。また、通信部110は、制御部120により出力された学習済みモデル等を利用者の端末装置等の外部装置に出力する。
【0012】
制御部120は、各構成要素の情報の出入力を制御するものであり、より具体的には取得部130と環境設定部140と管理部160とインターフェース提供部170とを連携させる。制御部120は、例えば、通信部110により受信された情報を取得部130や管理部160に出力する。また、制御部120は、例えば、モデル処理部150により生成された学習済みモデルや、インターフェース提供部170により提供される学習済みモデルを生成する開発環境の設定や開発環境のコピーを通信部110に出力して、外部装置に送信させる。
【0013】
また、制御部120は、通信部110を介して受信した情報処理システム1の利用者の指示を、各構成要素に出力する。更に、制御部120は、インターフェースを定義した「開発フレームワーク」、ソフトウェアの部品群である「開発コンポーネント」、開発物の実行環境である「開発環境」という3つのコアアセット(各々のコアアセットの詳細は後述する)を連携している。制御部120は取得部130や環境設定部140が設定した学習環境の上で、取得部130が取得する学習データや評価データをモデル処理部150に引渡し、学習を実行する。
【0014】
取得部130は、制御部120により出力された機械学習を行う設計情報、および対象データを取得する。
【0015】
なお、取得部130は、「他の機能部から取得する」ものであってもよいし、取得した情報を「自ら生成・加工して取得する」ものであってもよい。取得部130は、例えば、後述するソフトウェア情報185を呼び出して、対象データをクレンジングしたり、デノイズしたりするといった加工を行い、必要な対象データを取得する。
【0016】
環境設定部140は、制御部120により出力された環境設定に関する利用者の指示に基づいて、環境設定を行う。ここで、環境設定とは、例えば、利用するプログラム言語の種類や、機械学習を行うOSS(Open Source Software)、機械学習を行うためのホストOS(Operating System)などの組み合わせ(以下、フレームワーク環境と称する場合がある)や、フレームワーク環境において参照させるライブラリ情報、パラメータ等の変更内容を含む。環境設定部140は、設定した開発環境を、例えば、コンテナ形式(イメージコピー)で環境設定情報186として記憶部に記憶させる。なお、ホストOSは必須ではなくてもよい。
【0017】
環境設定部140は、環境設定において、フレームワーク環境およびライブラリ情報のバージョン情報に基づいて、フレームワーク環境およびライブラリ情報に応じたOSS構成を設定するものであってもよい。一般に、機械学習のOSSライブラリ情報は種類が多く、採用するライブラリやそのバージョンに応じて、必要なソフトウェア構成が異なるものである。環境設定部140は、そのようなソフトウェア構成を利用者の手を介さずに(または、利用者の操作を省略して)実現するものである。
【0018】
環境設定部140は、利用者により特に希望を受け付けなかった場合には、情報処理システム1の管理者により推奨する標準化された開発環境を提供するものであってもよい。その際、環境設定部140は、利用者による設定の変更の要求を受け付け、受け付けた変更内容を反映した環境設定を提供してもよい。推奨する開発環境については後述する。
【0019】
モデル処理部150は、環境設定部140により設定された環境において、取得部130により取得された機械学習を行う設計情報と対象データを学習するモデルを生成し、生成したモデルを学習済みモデル187として記憶部180に記憶させる。以下、モデル処理部150によるこれらの処理を「学習処理」と称する場合がある。
【0020】
また、モデル処理部150は、生成した学習済みモデル187を用いた推論処理を実施する。推論処理については後述する。
【0021】
モデル処理部150による学習処理や推論処理といった演算は、例えば、高速な学習処理を可能とするGPU(Graphic Processing Unit)を搭載したサーバ(以下、GPUサーバ)のプロセッサが記憶部180に記憶されたプログラムを実行することにより実現される。
【0022】
管理部160は、設計情報と、設計情報を実行させた環境設定、その環境で設定情報を実行させた結果である学習済みモデルとの対応関係を管理する。管理部160は、例えば、環境設定部140により標準化された開発環境を提供した場合に、その環境に対して利用者がどのような変更をおこなったかを管理する。
【0023】
インターフェース提供部170は、制御部120により出力された利用者の指示に基づいて、開発環境を利用者に提供する。詳細は後述する。
【0024】
記憶部180は、例えば、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)、SDカード、MRAM(Magnetoresistive Random Access Memory)等の不揮発性の記憶媒体と、RAM(Random Access Memory)、レジスタ等の揮発性の記憶媒体とによって実現されてよい。記憶部180は、プロセッサが実行するプログラムを記憶する他、制御部120による処理結果等を記憶する。
【0025】
記憶部180は、例えば、モデル開発プロセス標準181、モデル設計標準182、モデル設計書テンプレート183、利用者情報184、ソフトウェア情報185、環境設定情報186、学習済みモデル187などが記憶される。記憶部180に記憶される各種情報、特にソフトウェア情報185は、例えば、情報処理システム1の管理者によって新しいOSSが追加・更新されたり、情報処理システム1の利用者に提供する独自のソフトウェアが記憶される。
【0026】
なお、以下の説明において、モデル処理部150による学習処理は、多層構造のニューラルネットワークにより実現されるものとして説明するが、これに限定されるものではない。多層構造のニューラルネットワークは、例えば、入力層、出力層、隠れ層などから構成され、各層は複数個のノードを持ち、各層の間は、ノード同士のつながりの強さを表す重み付きのエッジで結ばれるものである。
【0027】
[学習・推論処理の流れ]
図2は、情報処理システム1において実施される機械学習モデルの学習・推論処理フローの一例を示す図である。
【0028】
開発フレームワークにおける機械学習の学習・推論処理は、例えば、以下に示すように(ML1)~(ML5)の5ステップの処理により実現される。
図2に示す(ML1)、(ML4)および(ML5)は学習処理を説明するステップにあたる。また、
図2に示す(ML2)および(ML3)は推論処理を説明するステップにあたる。
【0029】
(ML1) クレンジングステップ
取得部130は、取得した対象データに対するクレンジングを行う。クレンジングとは、例えば、異質なデータを検出して取り除く除去処理や、対象データにおける誤りを解消するための補正処理、不足データの補間処理などを実施することである。
【0030】
(ML2) 前処理ステップ
取得部130は、対象データの値を正規化する処理などを行うことで、機械学習に適した対象データを取得する。
【0031】
(ML3) 推論ステップ
モデル処理部150は、クレンジングおよび前処理が行われた対象データを取得部130より取得し、さらに環境設定部140において利用者により設定された環境やモデル定義等を設定した上で推論処理を行う。モデル処理部150は、例えば、対象データの種類(例えば、画像、センサデータなど)や分析問題(例えば、回帰、分類など)に応じて、あらかじめ定義されたモデル定義に対して対象データを与えることで、推論結果を出力する。
【0032】
(ML4) モデル評価ステップ
モデル処理部150は、学習済みモデル187からの出力データと入力データに対する教師データ(正解)との誤差を計算し、学習済みモデル187の正確性を評価する指標を設定する。
【0033】
(ML5) 重み更新ステップ
モデル処理部150は、モデル評価ステップにおいて計算した誤差が少なくなるように、各エッジの重みを少しずつ適正な値に更新する。
【0034】
モデル処理部150は、上記の(ML3)から(ML5)のステップに該当する処理を繰り返し実施することで、最適な学習済みモデル187を生成する。
【0035】
情報処理システム1は、上記の(ML1)から(ML5)に示した処理フローと、その処理フローに対応付いた開発標準(後述する)とを利用者に提供することで、設計の均一化を図るものである。また、情報処理システム1は、学習処理と推論処理の両方で共通に使用するモデル定義や前処理等のモジュールを共通管理することで、各種モジュールの保守性や拡張性を向上させることができる。
【0036】
[情報処理システム1の処理概要]
図3は、情報処理システム1の処理の概要を説明する図である。情報処理システム1における処理は、例えば、
図3に示す(A)から(D)の工程で説明することができる。
【0037】
[開発フレームワーク]
図3に示す(A)開発フレームワークは、
図2に示した機械学習における学習と推論の各処理を実装するモジュールのインターフェースを定義する。開発フレームワークは、例えば、学習処理A-1と、前処理A-2と、推論処理A-3と、モデル生成処理A-4とにより構成される。開発フレームワークを用いて利用者はモデルの実装を行う。開発フレームワークの各処理は、例えば、取得部130、環境設定部140、およびモデル処理部150により実現される。さらに、開発フレームワークにより生成された学習済みモデルによる学習処理A-1は、制御部120により、記憶部180に記憶された学習済みモデル187等が呼び出されてモデル処理部150において実行される。
【0038】
情報処理システム1は、後述する(D)開発標準を提供することにより、開発フレームワークにおける典型的な処理の設計の均一化を促す。また、情報処理システム1は、学習処理A-1と推論処理A-3の両処理において共通利用することができるモデル定義や前処理のモジュールを、両処理から分離し共通化することで、保守性や拡張性を向上させることができる。
【0039】
[開発コンポーネント]
図3に示す(B)開発コンポーネントは、上述の開発フレームワークにおいて機械学習を行う上での対象データのコンディショニングや、学習方法の設定といった、学習済みモデルが生成されるための事前準備にあたる工程において提供する機能群である。開発コンポーネントは、例えば、制御部120によりソフトウェア情報185のソフトウェアが呼び出されることで実現される。
【0040】
開発コンポーネントでは、例えば、対象データに対する前処理B-1として、デノイズ処理(ノイズを除去する処理)や、クレンジング処理(異質なデータを取り除き、誤りの補正や不足データの補間などのデータの整理などの処理)等の処理を行ったり、対象データの教示/増強処理B-2として、データの水増しや、GANs(Generative Adversarial Networks: 敵対的生成ネットワーク)による特徴抽出、能動学習フレームワークを用いたデータ整理等を行ったりする。
【0041】
また、開発コンポーネントでは、例えば、モデル学習の手法B-3(例えば、教師あり学習、半教師あり学習、自己教師あり学習など)の選択、モデル再利用B-4の条件設定、利用者によるモデル定義B-5(例えば、GoogLeNetモデル、ResNetモデル、VGG-16モデル等)の選択といった利用者による指示を受け付ける。条件設定とは、例えば、既存の学習済みモデル187の一部を再利用して、新しいモデルを構築する手法であるファインチューニングや、あらかじめ学習を行った学習済みモデル187を別の学習においても利用する転移学習、学習済みモデル187の精度を落とさない程度に圧縮して利用するモデル圧縮などの機能を提供することである。
【0042】
なお、開発コンポーネントの設定は、情報処理システム1の管理者によりあらかじめ推奨の組み合わせを設定し、その組み合わせを学習効率化B-6という設定情報として利用者に提供されてもよい。例えば、学習効率化B-6のうち「教示データ不足対応」が利用者により選択された場合、教示データ不足時に推奨すると管理者により設定されたB-1~B-5の各種処理をそれぞれ選択した状態と同等の設定を提供する。推奨の組み合わせは、例えば、これまでの情報処理システム1における開発をこれまでのモデル開発で実績のある各学習ステージのコア技術をアセット化した組み合わせである。
【0043】
開発コンポーネントにより設定された情報は、例えば、環境設定情報186として記憶部180に記憶される。
【0044】
[開発環境]
図3に示す(C)開発環境は、環境設定部140により設定された開発環境の具体例である。
【0045】
一般に、機械学習の処理を実行するには、GPUサーバのホストOS上に、GPUドライバや、ランタイム環境、統計・機械学習ライブラリ情報、機械学習に用いるOSSのライブラリ情報などをインストールした開発環境を用意する必要がある。GPUサーバ上で多種のOSSを実行可能にするためには、多数のOSSライブラリ情報を管理する必要があり、採用するOSSライブラリ情報やそのバージョン情報に応じて、必要なソフトウェア構成が異なる。
【0046】
そこで、仮想化基盤を利用して、開発環境の標準化を図る。例えば、開発実績のあるソフトウェア構成を標準の仮想環境イメージとして情報処理システム1の管理者があらかじめ設定することで、情報処理システム1の利用者は、開発の度に発生する環境構築に係る作業を省略することができる。また、情報処理システム1の利用者は、例えば機械学習に不慣れであったり、特定のOSSに不慣れな場合であっても、他の利用者による開発実績や開発環境を参照したり、再利用したりすることができるため、開発に着手するまでの準備時間を削減することができる。
【0047】
開発環境は、例えば、仮想化基盤C-1と、標準仮想環境イメージストアC-2と、モデル管理ストアC-3とを併せた環境を示すものである。
【0048】
仮想化基盤C-1は、例えば、GPUサーバと、GPUサーバのホストOSと、標準仮想環境と、モデル開発コードとにより構成される。標準仮想環境は、例えば、機械学習用のライブラリ情報や、数理解析用のライブラリ情報、ランタイム環境などにより構成されるものである。標準仮想環境の詳細については後述する。モデル開発コードは、情報処理システム1の利用者により作成されたプログラミングコードである。
【0049】
標準仮想環境イメージストアC-2は、上述の仮想化基盤における標準仮想イメージを保存するストアである。ここで、標準仮想環境イメージは、例えば、Docker(登録商標)等の特定のOSSにより提供されるコンテナと呼ばれる仮想環境を用いることにより実現される。環境設定部140は、例えば標準仮想環境イメージストアC-2を、環境設定情報186として記憶部180に記憶させる。
【0050】
モデル管理ストアC-3は、例えば、モデル開発コードと、モデル開発コードが実装されて、機械学習が実行された結果として生成された学習済みモデル187、および仮想環境イメージの組み合わせである。仮想環境イメージは、標準仮想環境イメージストアC-2であってもよいし、標準仮想環境イメージストアC-2に対して情報処理システム1の利用者が設定変更を加えた開発環境のイメージをストア(保存)するものであってもよい。
【0051】
[開発標準]
図3に示す(D)開発標準は、全行程において情報処理システム1の利用者に提供される指針や規約である。開発標準には、例えば、モデル開発プロセス標準181、モデル設計標準182、モデル設計書テンプレート183が含まれる。
【0052】
モデル開発プロセス標準181には、例えば、モデルの開発手順と、各手順で作成されるべき成果物の定義指針が格納される。モデルの開発手順は、例えば、作業項目名、目的、開始条件、終了条件、入力となる成果物、作業内容、出力となる成果物、利用するモデル設計書テンプレート等により定義される。
【0053】
モデル設計標準182には、例えば、上述のモデル開発プロセス標準の作業項目とその成果物について、用いるOSSソフトウェアや開発環境の事例に基づいて具体的に説明したガイドラインである。
【0054】
モデル設計書テンプレート183には、例えば、モデル設計書の目次構成や、記述すべき内容を定義したドキュメントテンプレートから成る。開発プロセスの作業ごとに作成すべき成果物が決まっており、それらのテンプレートが定義されている。
【0055】
これらの開発標準を提供することにより、情報処理システム1の利用者は、モデル開発における試行錯誤に要する時間を削減したり、設計作業における抜けや漏れを回避したりすることができる。また、これらの開発標準を提供することにより、機械学習開発基盤(機械学習のモデルを開発するための基盤)のほかの構成要素において利用すべきポイントをさらに定義することで、モデル開発ノウハウの蓄積や機械学習開発基盤の利用促進を図ることができる。
【0056】
[利用ケース]
図4は、情報処理システム1の利用ケースを説明するための図である。情報処理システム1の利用ケースは、
図4に示すように、導入フェーズP1、構築フェーズP2、運用フェーズP3、保守フェーズP4の4段階のフェーズで表現することができる。
【0057】
導入フェーズP1では、例えば、情報処理システム1の利用者により収集されたサンプルデータを用いてモデル設計が行われる。モデル処理部150は、その設計結果を用いて学習処理を実施し、さらに推論性能評価を行うことによって学習済みモデル187を生成する。
【0058】
構築フェーズP2では、例えば、情報処理システム1の利用者により収集された大規模データを用いて学習処理が進められる。モデル処理部150は、導入フェーズP1で生成した学習済みモデル187にさらに大規模データを用いた学習処理結果を反映することで、学習済みモデル187の学習精度を高める。
【0059】
運用フェーズP3では、例えば、情報処理システム1の利用者がモデルデータと観測データに基づいて推論処理を行い、推論結果に基づいてモデル評価を実施する。モデル処理部150は、モデル評価の結果に応じて各エッジに重み付けを行い、その重み付けを学習済みモデル187のパラメータとして反映して、学習済みモデル187の学習精度をさらに高める。この時点の学習済みモデル187が、例えば、顧客に納品する成果物モデルとして別途保存される。
【0060】
保守フェーズP4では、例えば、運用フェーズP3で生成した学習済みモデル187の推論精度を監視することで、学習済みモデル187の更新要否を判断する。情報処理システム1の利用者は、学習済みモデル187の更新を行った方がよいと判断した場合には、構築フェーズP2や運用フェーズP3と同様に、モデル処理部150により学習済みモデル187を更新する処理を行う。
【0061】
[利用ケースの具体例]
以下、情報処理システム1の利用者により生成された学習済みモデル187が、顧客に提供されるまでの利用ケースに沿って情報処理システム1の処理の流れの一例を説明する。
図5は、情報処理システム1の利用ケースの具体例を示す図である。
【0062】
[導入フェーズP1]
情報処理システム1の利用者である案件Aのサービス開発チームの開発者U1は、案件Aに即したモデル設計を行う。取得部130は、通信部110を介して、開発者U1が生成した開発コードを取得する(
図5(1))。
【0063】
次に、環境設定部140は、開発コードを実行するための環境構築を行う。環境設定部140は、例えば、開発者U1により送信された開発コードを実行する開発環境として、開発者U1により選択された標準仮想環境の構築を開始する(
図5(2-1))。
【0064】
次に、環境設定部140は、例えば、開発者U1による設定操作を受け付けることにより環境設定を行い、標準仮想環境に対して案件Aにおける対象データの特徴を反映した開発コンポーネントを適用して、仮想化基盤C-1上に仮想環境を構築する(
図5(2―2))。
【0065】
なお、
図5(2-1)および(2―2)において、開発者U1により特段の指定を受け付けなかった場合や、開発者U1による情報処理システム1に標準的な仮想環境を設定することを示す操作を受け付けた場合には、インターフェース提供部170が標準仮想環境イメージストアから選択した標準仮想環境を出力するものであってもよい。
【0066】
次に、モデル処理部150は、仮想化基盤C-1に案件Aの開発コードを配置する。次に、モデル処理部150は、案件Aの開発コードに対する学習処理のためのGPUサーバの割り当てを行い、サンプルデータを用いて学習処理を開始する。モデル処理部150は、学習処理の結果として学習済みモデル187を生成する(
図5(2-3))。この段階での開発コードや、学習済みモデル187、仮想化基盤C-1は、モデル管理ストアC-3に保存される。仮想化基盤C-1はイメージ形式で保存されるものであってもよい。
【0067】
〔構築フェーズP2]
モデル処理部150は、さらに大規模データを用いて
図5(2-3)に示す学習処理を行い、さらに推論処理による重み付け更新等を反映して、学習済みモデル187を更新する(
図5(3))。更新された学習済みモデル187や、重み付け等の設定情報は、モデル管理ストアC-3に逐次上書き保存されてもよいし、それぞれの更新段階毎に保存されてもよい。
【0068】
〔運用フェーズP3〕
開発者U1は、案件Aの学習済みモデル187の学習が進み、学習済みモデル187の出力精度が十分高まったと判断した場合に、サービス構築担当者U2に学習済みモデル187が受け渡される(
図5(4-1))。管理部160は、例えば、開発者U1による運用フェーズP3にフェーズを移動することを示す(利用者情報184のサービス構築担当者U2を案件Aに紐付けしたり、該当環境の環境設定情報186にサービス構築担当者U2への開示権限を付与する等の)操作を受け付ける。それにより、管理部160は、サービス構築担当者U2に対して、モデル管理ストアC-3に保存された案件Aの開発コードや、学習済みモデル187、および仮想化基盤C-1にアクセスできるようにする。
【0069】
サービス構築担当者U2は、例えば、モデル管理ストアC-3に保存された案件Aの開発コードや、学習済みモデル187、および仮想化基盤C-1を案件Aの顧客用の専用環境に適用してサービス構築を行い(
図5(4-2))、案件Aの顧客への運用・保守サービスの提供を開始する(
図5(4-3))。
【0070】
〔保守フェーズP4〕
サービス構築担当者U2は、例えば、案件Aの顧客に提供した学習済みモデル187の推論精度を監視する。
【0071】
[処理フロー 学習済みモデル187の生成]
図6は、モデル処理部150による学習処理の流れの一例を示すフローチャートである。
図6に示す処理は、例えば、
図4に示す各フェーズP1~P4において学習済みモデル187の生成・更新時に行われる処理である。
【0072】
通信部110は、情報処理システム1の利用者による学習実行指示を受け付ける(ステップS100)。取得部130は、例えば、ステップS100の時点で開発コードや対象データを取得してもよい。次に、モデル処理部150は、GPUサーバのリソースを確認し、十分な空きリソースがあるか否かを判定する(ステップS102)。モデル処理部150は、十分な空きリソースがあると判定しなかった場合、所定時間待機し、再度ステップS102を実行する。モデル処理部150は、十分な空きリソースがあると判定した場合、学習を行うためのGPUサーバの割り当てを行う(ステップS104)。次に、モデル処理部150は、学習実行環境である仮想化基盤C-1を立ち上げ(ステップS106)、学習処理を開始する(ステップS108)。次に、モデル処理部150は、学習処理の結果として生成または更新された学習済みモデル187を記憶部180に記憶させる(ステップS110)。以上、本フローチャートの処理の説明を終了する。
【0073】
[処理フロー 仮想化基盤立ち上げ]
図7は、学習実行環境である仮想化基盤C-1の処理の流れの一例を示すフローチャートである。
図7は、
図6のステップS106の処理内訳に該当する。
【0074】
まず、モデル処理部150は、標準仮想環境イメージストアC-2を展開し、仮想化基盤C-1を設ける(ステップS200)。次に、モデル処理部150は、仮想化基盤C-1を起動する(ステップS202)。次に、環境設定部140は、パラメータ等の変更を設定することで仮想化基盤C-1を整備する(ステップS204)。次に、モデル処理部150は、整備された仮想化基盤C-1に開発コードを取り込む(ステップS206)。以上、本フローチャートの処理の説明を終了する。
【0075】
[インターフェース提供]
以下、インターフェース提供部170による処理について説明する。インターフェース提供部170は、管理部160により出力された情報処理システム1の利用者のアクセス権限や、学習済みモデル187に設定された公開範囲を参照して、利用者が容易に開発に着手できるよう、開発インターフェースを出力する。開発インターフェースとは、例えば、環境設定部140により設定されたフレームワーク環境およびライブラリ情報、開発コードを含む仮想化基盤C-1のイメージストア、学習済みモデル187、各種ドキュメント情報の一部または全部である。
【0076】
以下、具体例を挙げて説明する。開発者U1は、
図5に示した案件Aの開発を終了し、他の案件Bの開発を行っているものとする。また、サービス構築担当者U2は、
図5に示した案件Aの保守を実施しているものとする。また、他の利用者U3は、情報処理システム1の利用を開始したばかりであり、管理部160により得られる情報を参考に、開発に着手しようとしているものとする。なお、利用者U3は、案件AおよびBの関係者ではないものとして説明する。
【0077】
図8は、環境設定情報186の内容の一例を示す図である。環境設定情報186は、例えば、各学習済モデルを識別するための番号に、そのモデルの開発者、案件、モデルの公開範囲、利用モデル、対応する標準仮想化基盤C-1、環境設定の変更の有無と変更内容、モデルの保存先等の情報などを対応付けた情報である。
【0078】
図9は、利用者情報184の内容の一例を示す図である。利用者情報184には、例えば、利用者毎に案件と、案件の環境設定情報186等に対するアクセス権限等が記憶される。
【0079】
管理部160は、例えば、利用者U3により参照可能なインターフェース情報を出力するよう操作指示を受け付ける。管理部160は、環境設定情報186と利用者情報184とを参照して、利用者U3に提供可能なインターフェース情報を検索する。
【0080】
管理部160は、
図8および
図9を参照して得られた検索情報として、例えば、モデルNo.4の学習済みモデル187のインターフェース情報を利用者U3に提供する。利用者U3は、これらの情報や、インターフェース提供部170により提供される開発インターフェース、モデル開発プロセス標準181、モデル設計標準182、モデル設計書テンプレート183等の開発標準を参考に、開発に着手することができる。
【0081】
インターフェース提供部170が提供するインターフェース情報とは、例えば、利用者U3に対して、モデルNo.4に関する情報の一部または全部であってもよいし、モデルNo.4を開発する仮想化基盤C-1を参照させるものであってもよい。インターフェース提供部170は、例えば、過去の案件で用いられた仮想化基盤C-1を参照させるものである場合、利用者U3は、他の利用者により開発実績のあるソフトウェア構成が反映された仮想化基盤C-1を使用することができ、環境構築作業が容易に行えるようになったり、実績のある開発環境で学習処理を試したりすることができる。また、利用者U3は、少なくとも仮想化基盤C-1に適用された開発者U1の作成した開発コードを参考にしてコーディングに着手することができる。
【0082】
また、管理部160は、例えば、他の利用者に優先的に参照させたい仮想化基盤C-1や、環境設定情報186を情報処理システム1の管理者によって設定させるものであってもよい。
【0083】
また、管理部160は、例えば、対象データの種別や問題特性をインプット情報として利用者より受け付け、そのインプット情報を参照して適切な仮想化基盤C-1や学習済みモデル187をレコメンド情報として表示するものであってもよい。インターフェース提供部170は、例えば、「入力データが画像データである」、「入力データがセンサデータである」等の情報を利用者より受け付け、同様の入力データを用いた仮想化基盤C-1や環境設定情報186をレコメンド情報として表示する。
【0084】
[処理フロー インターフェース提供]
図10は、管理部160およびインターフェース提供部170による、インターフェース提供処理の流れの一例を示すフローチャートである。
【0085】
まず、管理部160は、利用者によるレコメンド情報の提供要求を受け付ける(ステップS300)。次に、管理部160は、利用者情報184と環境設定情報186とを検索し、利用者のアクセス権限に応じた開示可能範囲の開発履歴情報に該当する、環境設定情報186の検索結果を得る(ステップS302)。次に、管理部160は、検索結果の開発履歴情報を利用者に提示する(ステップS304)。次に、インターフェース提供部170は、利用者によるインターフェース提供要求を受け付ける(ステップS306)。ここで受け付けるインターフェース提供要求は、利用者により選択された開発履歴情報のいずれかのコピー環境を要求するものであってもよいし、標準仮想環境の提供を要求するものであってもよい。次に、インターフェース提供部170は、要求された開発インターフェースを利用者に提供する(ステップS308)。以上、本フローチャートの処理の説明を終了する。
【0086】
以上で説明した少なくとも一つの実施形態によれば、機械学習を行う開発コード等の設計情報、および機械学習の対象データとなる大規模データやサンプルデータを取得する取得部130と、取得部130が取得した設計情報を実行するフレームワーク環境およびライブラリ情報にあたる仮想化基盤C-1と、フレームワーク環境およびライブラリ情報のバージョン情報に応じて、機械学習の処理の実行を補助するソフトウェア情報185のソフトウェア構成とを設定する環境設定部140と、対象データに対する学習を、取得部130により取得された設計情報と環境設定部140により設定されたフレームワーク環境とが反映された仮想化基盤C-1を用いて実行することで、学習済みモデル187を生成または更新するモデル処理部150と、取得部130が取得した設計情報、環境設定部140が設定したフレームワーク環境に関する情報、およびモデル処理部150により生成または更新された学習済みモデル187に関する情報を開発履歴情報としてモデル管理ストアC-3等として管理する管理部160と、情報処理システム1の利用者からの環境設定情報の出力指示を受け付けて利用者に推奨する設定情報を提示し、利用者により選択された設定情報に基づいて標準となる仮想化基盤C-1を利用させるインターフェース提供部170と、取得部130と環境設定部140と管理部160とインターフェース提供部170との各構成要素の情報の入出力を制御して連携させる制御部120とを持つことにより、情報処理システム1の利用者によるモデル開発技法の標準化を図ることができる。
【0087】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0088】
1…情報処理システム、110…通信部、120…制御部、130…取得部、140…環境設定部、150…モデル処理部、160…管理部、170…インターフェース提供部