(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-30
(54)【発明の名称】機械学習モデルのデプロイメント
(51)【国際特許分類】
G06F 8/61 20180101AFI20240723BHJP
G06F 8/60 20180101ALI20240723BHJP
【FI】
G06F8/61
G06F8/60
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023573396
(86)(22)【出願日】2022-06-20
(85)【翻訳文提出日】2023-11-28
(86)【国際出願番号】 EP2022066657
(87)【国際公開番号】W WO2023274761
(87)【国際公開日】2023-01-05
(32)【優先日】2021-06-28
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】クミエロウスキ、ルーカス
(72)【発明者】
【氏名】マスニー、アマデウス
(72)【発明者】
【氏名】リシュカ、ダニエル
(72)【発明者】
【氏名】ヤルギェウォ、ヴォイチェフ
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AB06
5B376AD22
(57)【要約】
クライアント・システムにおいて機械学習モデルをデプロイするための方法、コンピュータ・システムおよびコンピュータ・プログラム製品が提供される。本発明は、機械学習モデルがトレーニングされたトレーニング環境に関する情報をトレーニング・システムに要求することを含むことができる。本発明は、トレーニング環境に関する情報に基づいて、クライアント・システムのローカル環境のトレーニング・システムのトレーニング・システム環境との互換性を判定することを含むことができる。本発明は、クライアント・システムのローカル環境がトレーニング・システムのトレーニング環境と互換性があると判定することを含むことができる。本発明は、機械学習モデルをダウンロードすることを含むことができる。
【特許請求の範囲】
【請求項1】
クライアント・システムにおいて機械学習モデルをデプロイする方法であって、
機械学習モデルがトレーニングされたトレーニング環境に関する情報をトレーニング・システムに要求することと、
前記トレーニング環境に関する前記情報に基づいて、クライアント・システムのローカル環境の前記トレーニング・システムの前記トレーニング環境との互換性を判定することと、
前記クライアント・システムの前記ローカル環境が前記トレーニング・システムの前記トレーニング環境と互換性があると判定することと、
前記機械学習モデルをダウンロードすることとを含む、方法。
【請求項2】
前記ローカル環境の前記トレーニング環境との互換性を判定することが、
前記クライアント・システムの前記ローカル環境が前記トレーニング・システムの前記トレーニング環境と互換性がないと判定することと、
前記クライアント・システムの前記ローカル環境を適合させることであって、前記クライアント・システムの前記ローカル環境が前記トレーニング・システムの前記トレーニング環境と互換性があるように適合させることとをさらに含む、請求項1に記載の方法。
【請求項3】
前記クライアント・システムが、前記トレーニング・システムとのクライアント-サーバ構成で構成され、前記トレーニング・システムが、前記機械学習モデルと前記トレーニング環境に関する前記情報とを、前記クライアント・システムにサービスとして提供する、請求項2に記載の方法。
【請求項4】
前記サービスがアプリケーション・プログラム・インターフェース(API)サービスであり、前記方法が、
前記クライアント・システムによって、前記APIサービスへのアクセスを可能にするAPIパッケージをダウンロードすることをさらに含み、少なくとも前記要求、前記適合化および前記ダウンロードが前記APIパッケージのAPI関数を使用して行われる、請求項3に記載の方法。
【請求項5】
前記APIパッケージがパブリック・リポジトリからダウンロードされる、請求項4に記載の方法。
【請求項6】
前記機械学習モデルがバイナリ・ファイルである、請求項1ないし5のいずれかに記載の方法。
【請求項7】
前記機械学習モデルが前記トレーニング・システムの永続モデルに従って永続化され、前記永続モデルが少なくともpickle永続モデルを含む、請求項1ないし6のいずれかに記載の方法。
【請求項8】
前記トレーニング環境に関する前記情報が、少なくとも従属ライブラリのリストを含み、前記従属ライブラリのリストが、前記機械学習モデルのトレーニング時に必要な1つまたは複数のライブラリと、前記1つまたは複数のライブラリのリリース番号とからなる、請求項2に記載の方法。
【請求項9】
前記クライアント・システムの前記ローカル環境の前記トレーニング環境との互換性を判定することが、
前記従属ライブラリのリストのうちの前記1つまたは複数のライブラリの前記リリース番号が前記クライアント・システムの1つまたは複数のライブラリのリリース番号と同じであるか否かに基づいて、前記従属ライブラリのリストのうちの前記1つまたは複数のライブラリが前記クライアント・システムにインストールされているか否かを判定することをさらに含む、請求項8に記載の方法。
【請求項10】
前記クライアント・システムの前記ローカル環境を適合させることが、
前記クライアント・システムの前記1つまたは複数のライブラリを更新することをさらに含み、前記クライアント・システムの前記1つまたは複数のライブラリを更新することが、前記クライアント・システムにインストールされていないライブラリをインストールすること、または、前記クライアント・システムの前記1つまたは複数のライブラリの前記リリース番号をダウングレードまたはアップグレードすること、あるいはその両方を少なくとも含む、請求項9に記載の方法。
【請求項11】
前記クライアント・システムが通信ネットワークを介して前記トレーニング・システムに遠隔で接続されている、請求項1ないし10のいずれかに記載の方法。
【請求項12】
前記トレーニング・システムがクラウド・サービス環境にある、請求項1ないし11のいずれかに記載の方法。
【請求項13】
トレーニング・システムにおいて機械学習モデルをトレーニングする方法であって、
機械学習モデルをトレーニングすることと、
トレーニング・システムのトレーニング環境を示すメタデータを作成することと、
トレーニングされた前記機械学習モデルに前記メタデータをリンクさせることと、
トレーニングされた前記機械学習モデルをダウンロードする前に前記メタデータへのアクセスを少なくとも可能にするためにアプリケーション・プログラム・インターフェース(API)サービスを提供することと、トレーニングされた前記機械学習モデルをダウンロードすることとを含む、方法。
【請求項14】
前記APIサービスがクラウド環境にある、請求項13に記載の方法。
【請求項15】
トレーニングされた前記機械学習モデルが前記トレーニング・システムの永続モデルに従って永続化され、前記永続モデルが少なくともpickle永続モデルを含む、請求項13ないし14のいずれかに記載の方法。
【請求項16】
クライアント・システムにおいて機械学習モデルをデプロイするためのコンピュータ・システムであって、
1つまたは複数のプロセッサと、1つまたは複数のコンピュータ可読メモリと、1つまたは複数のコンピュータ可読有形記憶媒体と、前記1つまたは複数のメモリのうちの少なくとも1つを介した前記1つまたは複数のプロセッサのうちの少なくとも1つによる実行のために前記1つまたは複数の有形記憶媒体のうちの少なくとも1つに記憶されたプログラム命令とを含み、前記コンピュータ・システムが方法を行うことができ、前記方法が、
機械学習モデルがトレーニングされたトレーニング環境に関する情報をトレーニング・システムに要求することと、
前記トレーニング環境に関する前記情報に基づいて、クライアント・システムのローカル環境の前記トレーニング・システムの前記トレーニング環境との互換性を判定することと、
前記クライアント・システムの前記ローカル環境が前記トレーニング・システムの前記トレーニング環境と互換性があると判定することと、
前記機械学習モデルをダウンロードすることとを含む、コンピュータ・システム。
【請求項17】
前記ローカル環境の前記トレーニング環境との前記互換性を判定することが、
前記クライアント・システムの前記ローカル環境が前記トレーニング・システムの前記トレーニング環境と互換性がないと判定することと、
前記クライアント・システムの前記ローカル環境を適合させることであって、前記クライアント・システムの前記ローカル環境が前記トレーニング・システムの前記トレーニング環境と互換性があるように適合させることをさらに含む、請求項16に記載のコンピュータ・システム。
【請求項18】
前記トレーニング環境に関する前記情報が、少なくとも従属ライブラリのリストを含み、前記従属ライブラリのリストが、前記機械学習モデルのトレーニング時に必要な1つまたは複数のライブラリと、前記1つまたは複数のライブラリのリリース番号とからなる、請求項17に記載のコンピュータ・システム。
【請求項19】
前記クライアント・システムの前記ローカル環境の前記トレーニング環境との前記互換性を判定することが、
前記従属ライブラリのリストのうちの前記1つまたは複数のライブラリの前記リリース番号が前記クライアント・システムの1つまたは複数のライブラリのリリース番号と同じであるか否かに基づいて、前記従属ライブラリのリストのうちの前記1つまたは複数のライブラリが前記クライアント・システムにインストールされているか否かを判定することをさらに含む、請求項18に記載のコンピュータ・システム。
【請求項20】
クライアント・システムにおいて機械学習モデルをデプロイするためのコンピュータ・プログラム製品であって、
1つまたは複数の非一過性のコンピュータ可読記憶媒体と、前記1つまたは複数の有形記憶媒体のうちの少なくとも1つに記憶されたプログラム命令とを含み、前記プログラム命令がプロセッサに方法を行わせるように前記プロセッサによって実行可能であって、前記方法が、
機械学習モデルがトレーニングされたトレーニング環境に関する情報をトレーニング・システムに要求することと、
前記トレーニング環境に関する前記情報に基づいて、クライアント・システムのローカル環境の前記トレーニング・システムの前記トレーニング環境との互換性を判定することと、
前記クライアント・システムの前記ローカル環境が前記トレーニング・システムの前記トレーニング環境と互換性があると判定することと、
前記機械学習モデルをダウンロードすることとを含む、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にはコンピューティングの分野に関し、より具体的には機械学習モデルをデプロイする方法に関する。
【背景技術】
【0002】
データベース・トランザクション処理システムなど多くのソフトウェア・システムに機械学習モデルが組み込まれるようになってきている。これらのモデルは、実装がきわめて複雑な場合があり、多くのライブラリを必要とすることがある。そのようなモデルの実行と結果は、ライブラリとそのバージョンとに依存し得る。
【発明の概要】
【0003】
本発明の実施形態は、トレーニングされた機械学習モデルまたは人工知能モデルあるいはその両方を、ウェブ・ベースのサービスコンピュータ・システムからプライベート・コンピューティング・システムに転送することによって、クライアント・ベースのシステムにおいて、トレーニングされた機械学習モデルをデプロイするための方法、コンピュータ・システムおよびコンピュータ・プログラム製品を開示する。有利な実施形態が、従属請求項に記載されている場合がある。本発明の実施形態は、相互に矛盾しない場合、互いに自由に組み合わせることができる。
【0004】
一実施形態では、本発明は、機械学習モデルがトレーニングされたトレーニング環境に関する情報を、トレーニング・システムに要求することを含むことができる。本発明は、トレーニング環境に関する情報に基づいて、クライアント・システムのローカル環境のトレーニング・システムのトレーニング環境との互換性を判定することを含むことができる。本発明は、クライアント・システムのローカル環境がトレーニング・システムのトレーニング環境と互換性があると判定することを含むことができる。本発明は、機械学習モデルをダウンロードすることを含むことができる。
【0005】
一実施形態では、本発明は、機械学習モデルをトレーニングすることを含むことができる。本発明は、トレーニング・システムのトレーニング環境を示すメタデータを作成することを含むことができる。本発明は、トレーニングされた機械学習モデルにメタデータをリンクさせることを含むことができる。本発明は、トレーニングされた機械学習モデルをダウンロードする前に少なくともメタデータへのアクセスを可能にするために、アプリケーション・プログラム・インターフェース(API)サービスを提供することと、トレーニングされた機械学習モデルをダウンロードすることとを含むことができる。
【0006】
本発明の上記およびその他の目的、特徴および利点は、本発明の例示の実施形態の以下の詳細な説明を添付図面とともに読めば明らかになるであろう。詳細な説明と併せて、当業者が本発明を理解するのを容易にする際に図が明確になるため、図面の様々な機構は一律の縮尺にはなっていない。
【図面の簡単な説明】
【0007】
【
図1】本主題の一実施例によるコンピュータ・システムを示すブロック図である。
【
図2】機械学習モデルが構築される環境を記述するメタデータの一例を示す図である。
【
図3】本主題の一実施例による、機械学習モデルをデプロイする方法を示すフローチャートである。
【
図4】本主題の一実施例による、トレーニングされた機械学習モデルを提供する方法を示すフローチャートである。
【
図5】本主題の一実施例による、機械学習モデルをデプロイする方法を示すフローチャートである。
【
図6】本主題に関わる1つまたは複数の方法ステップの実装に適したコンピュータ化システムを表す図である。
【
図7】本発明の一実施形態によるクラウド・コンピューティング環境を示す図である。
【
図8】本発明の一実施形態による抽象化モデル層を示す図である。
【発明を実施するための形態】
【0008】
本発明の様々な実施形態の説明を例示のために示すが、これらは網羅的であること、または開示されている実施形態に限定することを意図したものではない。記載されている実施形態の範囲および思想から逸脱することなく、多くの修正および変形が当業者には明かであろう。本明細書で使用されている用語は、実施形態の原理、実際の適用、または市場に見られる技術に対する技術的改良を最もよく説明するために、または当業者が本明細書で開示されている実施形態を理解することができるように選定されている。
【0009】
ユーザは、ユーザ自身のインフラストラクチャ上で追加の検証、微調整および整備を行うために、トレーニングされたモデルアクセスにすることができるように、トレーニングされたモデルをダウンロードする必要がある場合がある。しかし、機械学習モデルは、多くの場合、厳密なリリース・バージョンの第三者製ライブラリを使用して作成される。それらのライブラリは、どのシステムでもデフォルトで利用可能というわけではなく、下位互換性を保証しないことがあり、たとえばモデルがscikit-learn(サイキットラーン)のバージョン0.19でトレーニングされており、クライアント・システムがscikit-learnのバージョン0.23でトレーニングされている場合には、トレーニングされたモデルをクライアント・システムで実行可能ではないことがある。この問題は、モデルが複数の第三者製ライブラリに基づいている場合にはさらに複雑になる可能性がある。ソフトウェアのデプロイメントは、機械学習モデルが構築された環境の知識を必要とする場合があるため、この問題は、機械学習モデルのデプロイメントを難しい作業にすることがある。機械学習モデルのデプロイメントは、トレーニング・システムからクライアント・システムに機械学習モデルをインストールするプロセスとすることができる。上記の問題の1つの解決策は、トレーニングされた機械学習モデルがクライアント・システムにおいてデプロイ可能であるかデプロイ可能ではないかの判定を試みる複数の専門家を必要とする場合がある。しかし、この手順は、きわめて誤りを生じやすく、リソースを消費する可能性があり、たとえば、特に、複雑なコンピューティング環境の場合、この手順は、機械学習モデルがデプロイ可能であると判定されるまできわめて長時間を要することがある。別の解決策として、ライブラリのハード・コード版を使用するコンテナなどの閉環境が考えられるが、この解決策は、複数機械学習モデルの場合には信頼性のある解決策でない可能性がある。具体的には、この解決策は、各モデルのために独立したコンテナ・パッケージを必要とする可能性があり、その結果として多くのハードウェア資源が浪費される可能性がある。本主題は、機械学習モデルのデプロイメントのためのローカルの互換性のある環境を提供するために、機械学習モデルが構築されている環境を記述するメタデータを使用することによって、この問題を解決し、上記の解決策の欠点を克服することができる。トレーニングされた機械学習モデルのデプロイメントにより、トレーニングされた機械学習モデルを、クライント・システムにおいて使用するために利用可能にすることができる。これにより、ローカル・システムにおける機械学習モデルの正常な処理を可能にすることができる。ソフトウェアのデプロイメントは、クライアント・システムにおける機械学習モデルの正常なローカル推論にとって重要な第一段階であるため、これは特に有利となり得る。
【0010】
トレーニング環境は、機械学習モデルのトレーニングが行われる実行環境とすることができる。ローカル環境は、機械学習モデルの推論が行われる実行環境とすることができる。実行環境は、トレーニングまたは推論を実行するために使用されるソフトウェア・コンポーネントを指す場合がある。ソフトウェア・コンポーネントの一例は、UNIX(R)などのオペレーティング・システム、pythonなどのプログラミング言語コンポーネント、numpyなどのライブラリであろう。ソフトウェア・コンポーネントは、バージョン番号を有することがある。すなわち、ソフトウェア・コンポーネントのセットとそのソフトウェア・コンポーネントのセットのバージョンとによって実行環境が規定され得る。ローカル環境は、ローカル環境がトレーニング環境のソフトウェア・コンポーネントのセットを含み、トレーニング環境のソフトウェア・コンポーネントのセットの同じバージョンを有する場合に、トレーニング環境と互換性がある。
【0011】
クライアント・システムは、たとえばオンプレミス・システムとすることができ、トレーニング・システムは、たとえばオフプレミス・システムとすることができる。オンプレミス・システムは、オンプレミス・ソフトウェアを実行するためのユーザまたは組織の構内にあるローカル・システムとすることができる。オフプレミス・システムは、たとえば、オンプレミス・システムのユーザがネットワークを介してアクセスすることができ、第三者によって所有される場合があるリモート・システムとすることができる。オンプレミス・システムとオフプレミス・システムは、異なる構成に従って設けることができる。たとえば、構成は、オンプレミス・システムがクライアント側に相当し、オフプレミス・システムがこの構成のサーバ側に相当し得る、クライアント-サーバ構成であってもよい。別の実施例では、構成は、オフプレミス・システムがパブリック・クラウドまたはプライベート・クラウドにあり、オンプレミス・システムが非クラウド・ベースのシステムとすることができる、クラウド構成であってもよい。
【0012】
一実施形態によると、クライアント・システムは、トレーニング・システムとともにクライアント-サーバ構成で構成される。トレーニング・システムは、機械学習モデルと、トレーニング環境に関する前記情報とを、クライアント・システムにサービスとして提供する。このサービスは、リソースの集合と、それらのリソースを操作するために使用することができる1組のメソッドとすることができる。メソッドは所定の順序で実行することができ、たとえば、トレーニングされたモデルに関する情報を要求するメソッドが実行されてから、トレーニングされたモデルをダウンロードするメソッドを実行することができる。各リソースは、Java(R)Scriptオブジェクト表記(JSON)または拡張マークアップ言語(XML)形式で表すことができる。たとえば、メタデータを取り出すために、クライアント・システムは、要求においてメソッドとともにリソース名を指定し、その要求をトレーニング・システムに送ることができる。次に、トレーニング・システムが、要求されたリソースを指定された形式でクライアント・システムに返すことができる。
【0013】
一実施形態によると、サービスは、アプリケーション・プログラム・インターフェース(API)サービスによって提供される。メソッドはさらに、APIサービスへのアクセスを可能にするAPIパッケージをクライアント・システムにおいてダウンロードすることを含み、APIパッケージのAPI関数を使用して要求、適合化およびダウンロードが行われる。APIサービスは、トレーニング・システムのサービスの使用を可能にする関数を提供することができる。APIサービスは、たとえば、クライアント・システムによって行われる要求の形式を定義することができる。たとえば、APIは、クライアント・システムによって呼び出し可能な2つのメソッドを提供または提示することができる。2つのメソッドのうちの第1のメソッドは、モデルに関する情報を取得するために使用することができ(たとえば、第1のメソッドは、optimizer.get_details(pipeline_name))のように呼び出すことができる)、2つのメソッドのうちの第2のメソッドは、モデルを取得/ダウンロードするために使用することができる(たとえば、第2のメソッドは、optimizer.get_pipeline(pipeline_name))のように呼び出すことができる)。互換性のすべての検査を第2のメソッド「get_pipelines」の内部で自動的に行うことができる。この第2のメソッドは、ソフトウェア情報を取得し、ローカル実行時情報を収集し、非互換性部分がないか検査し、ユーザに通知することができる。必要であれば、第2のメソッドは、非互換ライブラリをアップグレード/ダウングレードするように拡張することもできる。
【0014】
一実施形態によると、APIパッケージは、パブリック・リポジトリからダウンロードされる。これは、そのAPIパッケージを、トレーニング・システムの機械学習モデルを必要とする複数のクライアント・システムが使用することができるため、有利である。
【0015】
一実施形態によると、機械学習モデルは、バイナリ・ファイルとして受信される。バイナリ形式で受信されるということは、モデルがトレーニングされた環境を見つけるのを不可能ではないとしても難しくする可能性がある。本主題は、トレーニング環境に関する追加情報を提供するため、バイナリ・ファイルの使用を可能にすることができる。これは、トレーニングされたモデルをバイナリ・ファイルとして提供する既存のシステムとシームレスに統合することができるため、有利である。
【0016】
一実施形態によると、機械学習モデルは、トレーニング・システムの永続モデルに従って永続化される。永続モデルは、pickle永続モデルを含む。
【0017】
一実施形態によると、トレーニング環境は、機械学習モデルのトレーニング時に必要なライブラリとそのリリース番号とのリストによって定義される。ローカル環境がトレーニング環境と互換性があるか否かの判定は、ライブラリのリストのうちの各ライブラリがローカル・システムにインストールされているか否か、またはインストールされているライブラリのリリース番号がトレーニング環境のリリース番号と同じであるか否か、あるいはその両方を判定することを含み、ローカル環境を適合させることが、インストールされていないライブラリをインストールすること、または、インストールされているライブラリのリリース番号をダウングレードまたはアップグレードするために、インストールされているライブラリを変更すること、あるいはその両方を含む。
【0018】
一実施形態によると、クライアント・システムは、通信ネットワークを介してトレーニング・システムに遠隔で接続される。一実施形態によると、トレーニング・システムは、クラウド・サービス環境にある。
【0019】
図1に、本主題の一例によるコンピュータ・システム100を示す。コンピュータ・システム100は、トレーニング・システム101と、1つまたは複数のクライアント・システム102a~102nを含む。トレーニング・システム101は、1つまたは複数のネットワーク103を介してクライアント・システム102a~102nのそれぞれと通信するように構成可能である。説明を簡単にするために、1つのネットワークだけが示されている。しかし、トレーニング・システム101は、複数のネットワークを介してクライアント・システム102a~102nに接続してもよく、たとえば、トレーニング・システム101は、それぞれのネットワークを介してコンピュータ・システム102a~102nのそれぞれに接続してもよい。たとえば、ネットワーク103は、ケーブル・ネットワーク、光ファイバ・ネットワーク、ハイブリッド・ファイバ同軸ネットワーク、無線ネットワーク(たとえば、WiFiまたは携帯電話網あるいはその両方)、衛星ネットワーク、インターネット、イントラネット、ローカル・エリア・ネットワーク、任意のその他の適切なネットワーク、またはこれらのネットワークの組み合わせを含み得るが、これらには限定されない。
【0020】
図のように、コンピュータ・システム102a~102nにはそれぞれユーザ105a~105nが関連付けられ得る。ユーザ105a~105nは、視聴者、所有者、サポート技術者などを含み得る。ユーザ105a~105nは、クライアント・システム102a~102nおよびトレーニング・システム101と対話または通信するために、ワークステーション(図示せず)を使用することができる。トレーニング・システム101は、クラウド・コンピューティング構成で動作する単一のサーバ・デバイスまたは複数のサーバ・デバイスとして設けられてもよい。
【0021】
トレーニング・システム101は、クライアント・システム102a~102nに対して遠隔にあってもよく、ネットワーク103を介してアクセス可能とすることができる。トレーニング・システム101は、機械学習モデルのトレーニング、実行および記憶のためのリソースを提供することができる。トレーニング・システム101は、たとえば、N個のトレーニングされた機械学習モデルML1...MLNを記憶するためのストレージ・システム112を含むことができ、ここでN≧1である。ストレージ・システム112は、さらに、機械学習モデルML1...MLNにそれぞれ関連付けられるかまたはリンクされたメタデータMeta1...MetaNを記憶することができる。メタデータMeta1...MetaNのそれぞれは、JSONファイルなどのドキュメントとして提供可能である。トレーニングされた各モデルとそれをトレーニングするために使用された環境パッケージを記述するドキュメントとのリンクは、トレーニング・システム101によって提供可能である。
【0022】
メタデータMeta
1...Meta
Nは、たとえば、トレーニング・システム101のサービスによって、クライアント・システム102a~102n上で実行されるpython APIに提示可能である。
図2に、メタデータMeta
1...Meta
Nのうちの1つを提示する例示のドキュメントを示す。これは、モデルをトレーニングするために使用されたパッケージとそのバージョンのリストを示している。生成されたモデルのメタデータは、事前定義済みソフトウェア仕様のリンク/名前を付加することによって拡張することができる。
図2のドキュメントを、software_specificationと呼ぶ。このドキュメントは、生成された機械学習モデルを事前定義済みsoftware_specificationバージョンにリンクさせるために使用することができる。このドキュメントは、トレーニング・プロセス時に必要なすべての従属パッケージとそのリリース番号とのリストを含む。トレーニング・イメージ・サイトにおいてアップグレードがある場合、ドキュメントは更新される(互換性を破る変更が導入されない場合)か、またはその新規バージョンを提供することができる。
【0023】
図3は、トレーニング・システムにおいてトレーニングされた機械学習モデルをクライアント・システムにおいてデプロイする方法を示すフローチャートである。説明のために、
図3に記載されている方法は
図1に示すシステムにおいて実装されてもよいが、この実装形態には限定されない。
図3の方法は、たとえば、機械学習モデルML
1をデプロイするために、クライアント・システム102a~102nのうちの1つによって行われてもよい。モデルML
1は、クラウド・サービスのような閉環境であるトレーニング・システムにおいてトレーニングされてもよく、エンド・ユーザに対して機械学習モデル・オブジェクトとして明示的に提示されなくてもよい。たとえば、モデルML
1は、トレーニング・システムにおいてpickled joblibオブジェクトとして記憶することができる。このモデルはpickled joblibオブジェクトとして記憶されているため、クラウド・サービスの外部のエンド・ユーザにとって利用可能にすることができる。たとえば、この方法の少なくとも一部を行うためにクライアント・システムにおいてjupyter notebook serverが設定されてもよい。
【0024】
クライアント・システムは、ステップ310でトレーニング・システム101に、機械学習モデルML1をトレーニングするために使用されたトレーニング・システム101のトレーニング環境に関する情報を要求することができる。そのために、たとえばpythonパッケージが使用されてもよい。pythonパッケージ(API)はパブリック・リポジトリで提示されてもよい。pythonパッケージは、トレーニング・システム上で作成された資産との対話を可能にするpythonクライアントのような役割を果たすことができる。pythonクライアントは、モデルML1に関する情報を取得するメソッド(たとえば、このメソッドはoptimizer.get_details(pipeline_name)のように呼び出すことができる)、およびモデルML1を取得/ダウンロードするメソッド(たとえば、この2番目のメソッドはoptimizer.get_pipelines(pipeline_name))のように呼び出すことができる)などのメソッドを提供する。pythonパッケージは、トレーニングされたモデルML1のダウンロードおよびロードの機能を提供することができる。このパッケージは、クライアント・システムにおいてユーザ提供コードと自動生成ノートブックの両方で使用することができる。たとえば、ノートブック生成器はpythonパッケージ・インストール・コマンドをインジェクションすることができる。
【0025】
クライアント・システムは、要求した情報を受け取ることができ、クライアント・システムのローカル環境が、受け取った情報において定義されているトレーニング環境と非互換性であるか否かを判定することができる(照会ステップ303)。この情報は、たとえば、ライブラリまたはパッケージとそのそれぞれのバージョンのリスト(リストされたライブラリおよびリストされたバージョンと称することがある)を含むことができる。たとえば、クライアント・システムは、要求した情報を、
図2を参照しながら説明したJSONファイルとして受け取ってもよい。クライアント・システムは、ステップ303で、受け取った情報においてリストされているライブラリのそれぞれが、クライアント・システムにインストールされているか否かを判定することができる。リストされているライブラリのうちのライブラリがクライアント・システムにすでにインストールされている場合、クライアント・システムは、さらに、そのインストールされているライブラリがそのライブラリのリストされているバージョンと同じバージョンまたはリリースを有するか否かを判定することができる。1つまたは複数のライブラリがインストールされていないか、または1つまたは複数のインストールされているライブラリがそれぞれのリストされているバージョンと同じバージョンを有していないか、あるいはその両方である場合、これはローカル環境がトレーニング環境と互換性がないことを示している可能性がある。上記の例に従うと、これらのすべての互換性検査は、メソッド「get_pipelines」の内部で自動的に行うことができる。このメソッドは、ソフトウェア情報を取得し、ローカル実行時情報を収集し、非互換性部分がないか検査し、ユーザに通知することができる。必要であれば、非互換ライブラリをアップグレード/ダウングレードするように拡張することもできる。
【0026】
クライアント・システムが、ローカル環境がトレーニング環境と互換性があると判定した場合、ステップ307を行うことができる。クライアント・システムが、ローカル環境がトレーニング環境と互換性がないと判定した場合、クライアント・システムは、ステップ305で、ローカル環境とトレーニング環境との間の互換性を得るようにローカル環境を適合させることができる。何が非互換性を生じさせたかに応じて、クライアント・システムは、インストールされていないライブラリをインストールするか、または、インストールされているライブラリのバージョンをリストされているライブラリのバージョンと合致するようにアップグレード/ダウングレードするか、あるいはその両方を行うことができる。ローカル環境を更新した後、ステップ307を行うことができる。
【0027】
クライアント・システムは、ステップ307で、トレーニング・システムから機械学習モデルをダウンロードすることができる。これにより、ユーザは、ローカル環境/実行時においてトレーニングされたのと同じ方式で、機械学習モデルML1を使用して作業することが可能になる。
【0028】
図4は、トレーニングされた機械学習モデルを提供する方法を示すフローチャートである。説明のために、
図4に記載されている方法は、
図1に示すシステムにおいて実装可能であるが、この実装形態には限定されない。
図4の方法は、たとえばトレーニング・システム101によって行うことができる。
【0029】
トレーニング・システム101は、ステップ401で、機械学習モデルをトレーニングすることができる。機械学習モデルは、たとえば、pythonなどのプログラミング言語で書かれてもよい。機械学習モデルのトレーニングは、実行されるために1つまたは複数のライブラリを必要とし得る。たとえば、機械学習モデルの実行は、データ構造を作成するためと、数表および時系列を操作するために、pandasライブラリを必要とし得る。ライブラリのそれぞれは、リリース番号またはバージョン番号を有し得る。
【0030】
トレーニング・システム101は、ステップ403で、機械学習モデルをトレーニングするために使用されているトレーニング・システムのトレーニング環境を示すメタデータを作成することができる。トレーニング環境は、たとえば、機械学習モデルをトレーニングするために使用されているライブラリとそのそれぞれのバージョンによって定義することができる。メタデータは、たとえば
図2に示すJSONファルとして提供することができる。
【0031】
トレーニング・システム101は、ステップ405で、作成されたメタデータをトレーニングされた機械学習モデルにリンクさせることができる。これは、たとえば、機械学習モデルの名前をJSONファルに含めることによって行うことができる。
【0032】
トレーニング・システム101は、ステップ407で、トレーニングされた機械学習モデルをダウンロードする前にメタデータへのアクセスを可能にするためのサービスを(たとえばクライアント・システム102a~102nに)提供することができる。このサービスは、リソースの集合とそれらのリソースを操作するために使用することができる1組のメソッドとすることができる。たとえば、メタデータをリソースとして提供することができ、トレーニングされた機械学習モデルをリソースとして提供することができる。メタデータ・リソースは、JSONまたはXML形式で表現されてもよい。たとえば、メタデータを取り出すために、クライアント・システムは、要求においてメソッドとともにリソース名を指定することができ、その要求をトレーニング・システムに送信することができる。次に、トレーニング・システムが、要求されたリソースを指定された形式でクライアント・システムに返すことができる。
【0033】
図5は、機械学習モデルをデプロイする方法を示すフローチャートである。ステップ501でモデル・トレーニングを開始することができる。トレーニングされたモデルはステップ502でモデル・ストア503に保存することができる。トレーニングされたモデルは、モデルをトレーニングするために使用された環境を記述するメタデータ(たとえばsoftware_specと称する)に対するリンクとともに記憶される。トレーニングされたモデルは、pickleモデルとして記憶または永続化されてもよい。
図5に示すように、メタデータ504はモデルをトレーニングするために使用されたライブラリを示すことができる。ステップ501からステップ502は、たとえばトレーニング・システム101において行われてもよい。ステップ505で、トレーニングされたモデルをダウンロードするために、getパイプラインをたとえばクライアント・システム102aにおいて開始することができる。ステップ506で、クライアント・システムは、「Get」メソッドを使用してトレーニング・システム101にメタデータ504を要求することができ、要求したメタデータ504を受け取ることができる。メタデータ504内のライブラリのうちの各ライブラリについて、ステップ507からステップ510までを行うことができる。ステップ507で、そのライブラリがクライアント・システムに欠けているか否かを判定することができる。そのライブラリが欠けている場合、ステップ508でそのライブラリをクライアント・システムにインストールすることができる。そのライブラリが欠けていない場合、たとえばクライアント・システムにすでにインストールされている場合、クライアント・システムは、ステップ509で、インストールされているライブラリが正しいバージョンを有するか否か、すなわちインストールされているライブラリが受け取ったメタデータ504において示されているライブラリと同じバージョンを有するか否かを判定することができる。ライブラリのバージョンが正しいものでない場合、ステップ510で、メタデータ504内の対応するライブラリのバージョンと一致させるようにライブラリがダウングレードまたはアップグレードされる。一実施例では、ステップ510の実行は、任意である場合も任意でない場合もある。そのために、ステップ510の自動実行が、フラグ「automatic_update=False or True」によって制御されてもよい。これは、たとえばユーザが他の目的のために構成された環境を有する場合に、ユーザがステップ510の自動実行を防止したい場合があるため、有利となり得る。ステップ507およびステップ509で行われた検査に基づいて、ステップ512でクライアント・システムにおけるライブラリがメタデータにおいてリストされているライブラリと互換性があるか否かを判定することができる。互換性がある場合、ステップ513でクライアント・システムにおいて、トレーニングされたモデルをダウンロードすることができる。互換性がない場合、ステップ514でエラー・メッセージが出されてもよい。ステップ514は、エラーによってユーザに通知するため、ステップ510が実行されない場合に提供されるので有利であり、ローカル環境を更新してからモデルをダウンロードするか否かの決定がユーザに委ねられる。
【0034】
図6は、本開示に関わる方法ステップの少なくとも一部を実装するのに適した汎用コンピュータ化システム600を示す。
【0035】
本明細書に記載の方法は、少なくとも部分的に非対話式であり、サーバまたは内蔵システムなどのコンピュータ化システムによって自動化されることを理解されたい。ただし、例示の実施形態では、本明細書に記載の方法は(部分的に)対話型システムで実施可能である。これらの方法は、さらに、ソフトウェア612、622(ファームウェア622を含む)、ハードウェア(プロセッサ)605、またはこれらの組合せで実装可能である。例示の実施形態では、本明細書に記載の方法は、実行可能プログラムとしてソフトウェアで実装され、パーソナル・コンピュータ、ワークステーション、ミニコンピュータ、またはメインフレーム・コンピュータなどの専用または汎用デジタル・コンピュータによって実行される。したがって、最も汎用的なシステム600は、汎用コンピュータ601を含む。
【0036】
例示の実施形態では、
図6に示すように、ハードウェア・アーキテクチャに関しては、コンピュータ601はプロセッサ605と、メモリ・コントローラ615に結合されたメモリ(メイン・メモリ)610と、ローカル入力/出力コントローラ635を介して通信可能に結合された1つまたは複数の入力または出力(I/O)あるいはその両方のデバイス(または周辺機器)10、645とを含む。入力/出力コントローラ635は、当技術分野で知られているような1つまたは複数のバスまたはその他の有線または無線接続とすることができるが、これには限らない。入力/出力コントローラ635は、通信を可能にするコントローラ、バッファ(キャッシュ)、ドライバ、リピータおよび受信器など、図を簡単にするために省略されている追加要素を有してもよい。また、ローカル・インターフェースは、上記のコンポーネント間の適切な通信を可能にするために、アドレス接続、制御接続またはデータ接続あるいはこれらの組合せを含むことができる。本明細書に記載のI/Oデバイス10、645は一般に、当技術分野で知られている任意の汎用暗号カードまたはスマート・カードを含むことができる。
【0037】
プロセッサ605は、特に、メモリ610に記憶されたソフトウェアを実行するためのハードウェア・デバイスである。プロセッサ605は、任意の特注または市販のプロセッサ、中央処理装置(CPU)、コンピュータ601に関連付けられたいくつかのプロセッサのうちの補助プロセッサ、(マイクロチップまたはチップ・セットの形態の)半導体ベースのマイクロプロセッサ、または一般に、ソフトウェア命令を実行するための任意のデバイスとすることができる。
【0038】
メモリ610は、揮発性メモリ素子(たとえばランダム・アクセス・メモリ(DRAM、SRAM、SDRAMなどのRAM))および不揮発性メモリ素子(たとえば、ROM、消去可能プログラマブル読み出し専用メモリ(EPROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、プログラマブル読み出し専用メモリ(PROM))のうちのいずれか1つまたは組合せを含むことができる。メモリ610は、様々なコンポーネントが互いに遠隔にあるがプロセッサ605がアクセスすることができる、分散アーキテクチャを有することができることに留意されたい。
【0039】
メモリ610内のソフトウェアは、1つまたは複数の別個のプログラムを含むことができ、そのそれぞれが論理関数、特に本発明の実施形態に関わる関数を実装するための、実行可能命令の順序付けられたリストを含む。
図6の実施例では、メモリ610内のソフトウェアは、命令612、たとえばデータベース管理システムなどのデータベースを管理する命令を含む。
【0040】
メモリ610内のソフトウェアは、典型的には適切なオペレーティング・システム(OS)611も含む必要がある。OS611は、場合によって本明細書に記載のような方法を実装するためのソフトウェア612などの他のコンピュータ・プログラムの実行を基本的に制御する。
【0041】
本明細書に記載の方法は、ソース・プログラム612、実行可能プログラム612(オブジェクト・コード)、スクリプト、または実行される命令のセット612を含む任意のその他のエンティティの形態とすることができる。ソース・プログラムの場合、プログラムは、OS611と連係して正常に動作するように、メモリ610内に含まれている場合も含まれていない場合もある、コンパイラ、アセンブラ、インタプリタなどによって変換される必要がある。また、方法は、データおよびメソッドのクラスを有するオブジェクト指向プログラミング言語、またはルーチン、サブルーチンまたは関数あるいはこれらの組合せを有する手続き型プログラミング言語として書くことができる。
【0042】
例示の実施形態では、従来型キーボード650とマウス655を入力/出力コントローラ635に結合することができる。I/Oデバイス645などの他の出力デバイスが、たとえば、プリンタ、スキャナ、マイクロフォンなどであるがこれらには限定されない入力デバイスを含んでもよい。最後に、I/Oデバイス10、645は、さらに、たとえば、ネットワーク・インターフェース・カード(NIC)または変調器/復調器(他のファイル、デバイス、システムまたはネットワークにアクセスするため)、無線周波数(RF)またはその他の送受信器、電話インターフェース、ブリッジ、ルータなどであるがこれらには限定されない、入力と出力の両方を伝達するデバイスを含んでもよい。I/Oデバイス10、645は、当技術分野で知られている任意の汎用暗号カードまたはスマート・カードであってもよい。システム600はさらに、ディスプレイ630に結合されたディスプレイ・コントローラ625を含むことができる。例示の実施形態では、システム600はさらに、ネットワーク665に結合するためのネットワーク・インターフェースを含むことができる。ネットワーク665は、ブロードバンド接続を介したコンピュータ601と任意の外部サーバ、クライアントなどとの間の通信のためのIPベースのネットワークとすることができる。ネットワーク655は、本明細書で説明されている方法のステップの一部または全部を行うために必要となり得るデータをコンピュータ601と外部システム30との間で送受信する。例示の実施形態では、ネットワーク665は、サービス・プロバイダによって管理されるマネージドIPネットワークとすることができる。ネットワーク665は、たとえば、WiFi、WiMaxなどの無線プロトコルおよび技術を使用して無線方式で実装されてもよい。ネットワーク665は、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、メトロポリタン・エリア・ネットワーク、インターネット・ネットワークまたはその他の同様の種類のネットワーク環境などのパケット交換ネットワークとすることもできる。ネットワーク665は、固定無線ネットワーク、無線ローカル・エリア・ネットワーク(WLAN)、無線ワイド・エリア・ネットワーク(WWAN)、パーソナル・エリア・ネットワーク(PAN)、仮想プライベート・ネットワーク(VPN)、イントラネットまたはその他の適切なネットワーク・システムであってもよく、信号を送受信するための装置を含む。
【0043】
コンピュータ601がPC、ワークステーション、インテリジェント・デバイスなどである場合、メモリ610内のソフトウェアは、さらに、基本入出力システム(BIOS)622を含むことができる。BIOSは、起動時にハードウェアを初期設定し、テストし、OS611を始動させ、ハードウェア・デバイス間のデータの転送を支援する基本ソフトウェア・ルーチンのセットである。BIOSは、コンピュータ601が起動されたときにBIOSを実行することができるように、ROMに記憶される。
【0044】
コンピュータ601が動作中であるとき、プロセッサ605は、メモリ610に記憶されているソフトウェア612を実行し、メモリ610との間でデータをやり取りし、ソフトウェアに従ってコンピュータ601の動作を全般的に制御するように構成される。本明細書に記載の方法およびOS611は、全体または一部、典型的には一部が、プロセッサ605によって読み出され、場合によってはプロセッサ605内でバッファリングされ、次に実行される。
【0045】
本明細書に記載のシステムおよび方法が
図6に示すように、ソフトウェア612で実装される場合、方法は、任意のコンピュータ関連システムまたは方法による使用またはそれに関連する使用のために、ストレージ620などの任意のコンピュータ可読媒体に記憶することができる。ストレージ620は、HDDストレージなどのディスク・ストレージを含み得る。
【0046】
本開示は、クラウド・コンピューティング環境についての詳細な説明を含むが、本明細書に記載の教示の実装はクラウド・コンピューティング環境には限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られているかまたは今後開発される任意の他の種類のコンピューティング環境とともに実装可能である。
【0047】
クラウド・コンピューティングは、最小限の管理労力またはサービス・プロバイダとの相互連絡で迅速にプロビジョニングすることができ、解放することができる、構成可能コンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配布のモデルである。このクラウド・モデルは、少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つのデプロイメント・モデルとを含み得る。
【0048】
特徴は以下の通りである。
【0049】
オンデマンド・セルフサービス:クラウド消費者は、サービス・プロバイダとの間で人間の介在を必要とせずに一方的に、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能をプロビジョニングすることができる。
【0050】
広いネットワーク・アクセス:機能は、ネットワークを介して利用可能であり、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば携帯電話、ラップトップ、およびPDA)による使用を促進する標準機構を介してアクセスすることができる。
【0051】
リソース・プール:マルチテナント・モデルを使用して複数の消費者に対応するために、プロバイダのコンピューティング・リソースがプールされ、需要に応じて、異なる物理および仮想リソースが動的に割り当てられ、再割り当てされる。消費者は一般に、提供されるリソースの厳密な場所について管理することができないかまたは知らないが、より高い抽象レベルの場所(例えば、国、州、またはデータセンター)を指定することが可能な場合があるという点で、位置独立感がある。
【0052】
迅速な伸縮性:迅速かつ伸縮性をもって、場合によっては自動的に機能をプロビジョニングして、迅速にスケールアウトすることができ、また、迅速に機能を解放して迅速にスケールインすることができる。消費者にとっては、プロビジョニングのために利用可能な機能はしばしば無限であるように見え、いつでも好きなだけ購入することができる。
【0053】
従量制サービス:クラウド・システムが、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に応じて適切な何らかの抽象化レベルの計量機能を利用することによって、リソース利用を自動的に制御し、最適化する。リソース使用量を監視、制御および報告することができ、利用されたサービスの透明性をプロバイダと消費者の両方に与えることができる。
【0054】
サービス・モデルは以下の通りである。
【0055】
ソフトウェア・アズ・ア・サービス(Software as a Service(SaaS)):消費者に提供される機能は、クラウド・インフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションには、ウェブ・ブラウザなどのシン・クライアント・インターフェース(たとえばウェブ・ベースのeメール)を介して様々なクライアント・デバイスからアクセス可能である。消費者は、限られたユーザ固有アプリケーション構成設定の考えられる例外を除き、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個別のアプリケーション機能まで含めて、基礎にあるクラウド・インフラストラクチャを管理も制御もしない。
【0056】
プラットフォーム・アズ・ア・サービス(Platform as a Service(PaaS)):消費者に提供される機能は、クラウド・インフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者作成または取得アプリケーションをデプロイすることである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎にあるクラウド・インフラストラクチャを管理も制御もしないが、デプロイされたアプリケーションと、場合によってはアプリケーション・ホスティング環境構成とを制御することができる。
【0057】
インフラストラクチャ・アズ・ア・サービス(Infrastructure as a Service(IaaS)):消費者に提供される機能は、処理、ストレージ、ネットワークおよびその他の基本的コンピューティング・リソースをプロビジョニングすることであり、その際、消費者は、オペレーティング・システムとアプリケーションとを含み得る任意のソフトウェアをデプロイし、実行することができる。消費者は、基礎にあるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システムと、ストレージと、デプロイされたアプリケーションとを制御することができ、場合によっては選択されたネットワーク・コンポーネント(例えばホスト・ファイアウォール)の限定的な制御を行うことができる。
【0058】
デプロイメント・モデルは以下の通りである。
【0059】
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。組織または第三者によって管理可能であり、オンプレミスまたはオフプレミスに存在可能である。
【0060】
コミュニティ・クラウド:このクラウド・インフラストラクチャは、いくつかの組織によって共用され、共通の関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンス事項)を有する特定のコミュニティをサポートする。組織または第三者が管理することができ、オンプレミスまたはオフプレミスに存在可能である。
【0061】
パブリック・クラウド:このクラウド・インフラストラクチャは、公衆または大規模業界団体が利用することができ、クラウド・サービスを販売する組織によって所有される。
【0062】
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、独自の実体のままであるが、データおよびアプリケーション可搬性を可能にする標準化技術または専有技術(例えば、クラウド間のロード・バランシングのためのクラウド・バースティング)によって結合された、2つ以上のクラウド(プライベート、コミュニティまたはパブリック)の複合体である。
【0063】
クラウド・コンピューティング環境は、ステートレス性、疎結合性、モジュール性、および意味的相互運用性に焦点を合わせたサービス指向型である。クラウド・コンピューティングの核心にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0064】
次に
図7を参照すると、例示のクラウド・コンピューティング環境1050が図示されている。図のように、クラウド・コンピューティング環境1050は、たとえばパーソナル・デジタル・アシスタント(PDA)または携帯電話1054A、デスクトップ・コンピュータ1054B、ラップトップ・コンピュータ1054Cまたは自動車コンピュータ・システム1054Nあるいはこれらの組合わせなど、クラウド消費者によって使用されるローカル・コンピューティング・デバイスが通信することができる、1つまたは複数のクラウド・コンピューティング・ノード1010を含む。ノード1010は互いに通信することができる。ノード1010は、上述のプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウドまたはハイブリッド・クラウドあるいはこれらの組合せなどの1つまたは複数のネットワークにおいて物理的または仮想的にグループ化(図示せず)されてもよい。これによって、クラウド・コンピューティング環境1050は、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはこれらの組合わせを、クラウド消費者がそのためにローカル・コンピューティング・デバイス上でリソースを維持する必要がないサービスとして提供することができる。
図7に示すコンピューティング・デバイス1054A~1054Nの種類は、例示を意図したものに過ぎず、コンピューティング・ノード1010およびクラウド・コンピューティング環境1050は、(例えばウェブ・ブラウザを使用して)任意の種類のネットワーク接続またはネットワーク・アドレス指定可能接続あるいはその組合わせを介して、任意の種類のコンピュータ化デバイスと通信することができるものと理解される。
【0065】
次に
図8を参照すると、クラウド・コンピューティング環境1050(
図7)によって提供される1組の機能抽象化層が示されている。
図8に示すコンポーネント、層よび機能は、例示のみを意図したものであり、本発明の実施形態はこれらには限定されないことを前もって理解されたい。図のように、以下の層および対応する機能が提供される。
【0066】
ハードウェアおよびソフトウェア層1060は、ハードウェア・コンポーネントとソフトウェア・コンポーネントとを含む。ハードウェア・コンポーネントの例としては、メインフレーム1061、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ1062、サーバ1063、ブレード・サーバ1064、ストレージ・デバイス1065、およびネットワークおよびネットワーキング・コンポーネント1066がある。実施形態によっては、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア1067およびデータベース・ソフトウェア1068を含む。
【0067】
仮想化層1070は、以下のような仮想エンティティの例を与えることができる抽象化層を提供する。すなわち、仮想サーバ1071と、仮想ストレージ1072と、仮想プライベート・ネットワークを含む仮想ネットワーク1073と、仮想アプリケーションおよびオペレーティング・システム1074と、仮想クライアント1075である。
【0068】
一実施例では、管理層1080は、以下に記載の機能を提供することができる。リソース・プロビジョニング1081は、クラウド・コンピューティング環境内でタスクを実行するために使用されるコンピューティング・リソースおよびその他のリソースの動的調達を行う。メータリングおよびプライシング1082は、クラウド・コンピューティング環境内でリソースが使用されるときのコスト追跡と、それらのリソースの消費に対する対価の請求またはインボイス処理を行う。一実施例ではこれらのリソースにはアプリケーション・ソフトウェア・ライセンスが含まれる場合がある。セキュリティは、クラウド消費者およびタスクのための本人検証と、データおよびその他のリソースの保護とを行う。ユーザ・ポータル1083は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理1084は、必要なサービス・レベルが満たされるようにクラウド・コンピューティング・リソース割り当ておよび管理を行う。サービス・レベル・アグリーメント(Service Level Agreement(SLA))計画および履行1085は、SLAに従って将来の要求が予想されるクラウド・コンピューティング・リソースのための事前取り決めおよび調達を行う。
【0069】
ワークロード層1090は、クラウド・コンピューティング環境を使用することができる機能の例を提供する。この層から提供することができるワークロードおよび機能の例には、マッピングおよびナビゲーション1091、ソフトウェア開発およびライフサイクル管理1092、仮想教室教育配信1093、データ解析処理1094、トランザクション処理1095、および
図4または
図5を参照しながら説明したような本主題による機械学習モデル・プロビジョン(MLPR)1096が含まれる。
【0070】
本主題は、以下の項目を含むことができる。
【0071】
項目1. トレーニング・システムにおいてトレーニングされた機械学習モデルをクライアント・システムにおいてデプロイする方法であって、
機械学習モデルがそれに従ってトレーニングされたトレーニング・システムのトレーニング環境に関する情報をトレーニング・システムに要求することと、
クライアント・システムのローカル環境がトレーニング環境と互換性がない場合、互換性を得るためにローカル環境を適合させることと、
ローカル環境がトレーニング環境と互換性がある場合、機械学習モデルをダウンロードすることとを含む、方法。
【0072】
項目2. クライアント・システムが、トレーニング・システムとともにクライアント-サーバ構成で構成され、トレーニング・システムが機械学習モデルと前記情報とをクライアント・システムにサービスとして提供する、項目1の方法。
【0073】
項目3. サービスが、アプリケーション・プログラム・インターフェース、API、サービスであり、方法が、APIサービスへのアクセスを可能にするAPIパッケージをクライアント・システムにおいてダウンロードすることをさらに含み、要求、適合化およびダウンロードがAPIパッケージのAPI関数を使用して行われる、項目2の方法。
【0074】
項目4. APIパッケージがパブリック・リポジトリからダウンロードされる、項目3の方法。
【0075】
項目5. 機械学習モデルがバイナリ・ファイルとして受信される、前記項目1ないし4のいずれかの方法。
【0076】
項目6. 機械学習モデルが、トレーニング・システムの永続モデルに従って永続化され、永続モデルがpickle永続モデルのうちの少なくとも1つを含む、前記項目1ないし5のいずれかの方法。
【0077】
項目7. トレーニング環境が、機械学習モデルのトレーニング時に必要な従属ライブラリとそのリリース番号とのリストによって定義され、ローカル環境がトレーニング環境と互換性があるか否かを判定することが、従属ライブラリのリストのうちのライブラリがローカル・システムにインストールされているか否か、または、インストールされているライブラリのリリース番号がトレーニング環境のリリース番号と同じであるか否か、あるいはその両方を判定することを含み、ローカル環境を適合させることが、インストールされていないライブラリをインストールすること、または、インストールされているライブラリのリリース番号をダウングレードまたはアップグレードするためにインストールされているライブラリを変更すること、あるいはその両方を行うことを含む、前記項目1ないし6のいずれかの方法。
【0078】
項目8. クライアント・システムが通信ネットワークを介してトレーニング・システムに遠隔で接続されている、前記項目1ないし7のいずれかの方法。
【0079】
項目9. トレーニング・システムがクラウド・サービス環境にある、前記項目1ないし8のいずれかの方法。
【0080】
本発明は、統合の任意の可能な技術的詳細レベルのシステム、方法、またはコンピュータ・プログラム製品あるいはこれらの組合わせとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令が記憶されたコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0081】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学式ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合わせであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、可搬コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、可搬コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピィ・ディスク、パンチカードまたは命令が録音された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適切な組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体とは、電波またはその他の自由に伝播する電磁波、導波路またはその他の伝送媒体を伝播する電磁波(たとえば光ファイバ・ケーブルを通る光パルス)、またはワイヤを介して伝送される電気信号などの、一過性の信号自体であると解釈されるべきではない。
【0082】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、ネットワーク、たとえばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワークあるいはこれらの組合せを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはこれらの組合せを含み得る。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
【0083】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、または、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語、または同様のプログラム言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上でまたは一部がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータまたはサーバ上で実行されてもよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行ってもよい。一部の実施形態では、本発明の態様を実行するために、たとえばプログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
【0084】
本発明の態様について、本明細書では、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品を示すフローチャート図またはブロック図あるいはその両方を参照しながら説明している。フローチャート図またはブロック図あるいはその両方の図の各ブロックおよび、フローチャート図またはブロック図あるいはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実施可能であることを理解されたい。
【0085】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサにより実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックで指定されている機能/動作を実装する手段を形成するようにマシンを実現するために、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサに供給することができる。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロックで指定されている機能/動作の態様を実装する命令を含む製造品を含むように、コンピュータ、プログラマブル・データ処理装置、またはその他のデバイスあるいはこれらの組合せに対して特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
【0086】
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置またはその他のデバイス上で実行される命令がフローチャートまたはブロック図あるいはその両方のブロックで指定されている機能/動作を実装するように、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の動作ステップが実行されてコンピュータ実装プロセスを実現するようにするために、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスにロードされてもよい。
【0087】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能および動作を示す。これに関連して、フローチャートまたはブロック図の各ブロックは、指定されている論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表し得る。一部の別の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。たとえば、連続して示されている2つのブロックは、関与する機能に応じて、実際には、1ステップとして行われてもよく、並行して、または実質的に並行して、または部分的にまたは全体が時間的に重なり合って実行されてもよく、またはブロックは場合によっては逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の図の各ブロック、およびブロック図またはフローチャート図あるいはその両方の図のブロックの組合せは、指定されている機能または動作を実行する専用ハードウェア・ベースのシステムによって実装可能であるか、または専用ハードウェアとコンピュータ命令の組合せを実施することができることにも留意されたい。
【手続補正書】
【提出日】2024-03-26
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
クライアント・システムにおいて機械学習モデルをデプロイする方法であって、
機械学習モデルがトレーニングされたトレーニング環境に関する情報をトレーニング・システムに要求することと、
前記トレーニング環境に関する前記情報に基づいて、クライアント・システムのローカル環境の前記トレーニング・システムの前記トレーニング環境との互換性を判定することと、
前記クライアント・システムの前記ローカル環境が前記トレーニング・システムの前記トレーニング環境と互換性があると判定することと、
前記機械学習モデルをダウンロードすることとを含む、方法。
【請求項2】
前記ローカル環境の前記トレーニング環境との互換性を判定することが、
前記クライアント・システムの前記ローカル環境が前記トレーニング・システムの前記トレーニング環境と互換性がないと判定することと、
前記クライアント・システムの前記ローカル環境を適合させることであって、前記クライアント・システムの前記ローカル環境が前記トレーニング・システムの前記トレーニング環境と互換性があるように適合させることとをさらに含む、請求項1に記載の方法。
【請求項3】
前記クライアント・システムが、前記トレーニング・システムとのクライアント-サーバ構成で構成され、前記トレーニング・システムが、前記機械学習モデルと前記トレーニング環境に関する前記情報とを、前記クライアント・システムにサービスとして提供する、請求項2に記載の方法。
【請求項4】
前記サービスがアプリケーション・プログラム・インターフェース(API)サービスであり、前記方法が、
前記クライアント・システムによって、前記APIサービスへのアクセスを可能にするAPIパッケージをダウンロードすることをさらに含み、少なくとも前記要求、前記適合化および前記ダウンロードが前記APIパッケージのAPI関数を使用して行われる、請求項3に記載の方法。
【請求項5】
前記APIパッケージがパブリック・リポジトリからダウンロードされる、請求項4に記載の方法。
【請求項6】
前記機械学習モデルがバイナリ・ファイルである、請求項1ないし5のいずれかに記載の方法。
【請求項7】
前記機械学習モデルが前記トレーニング・システムの永続モデルに従って永続化され、前記永続モデルが少なくともpickle永続モデルを含む、請求項1ないし6のいずれかに記載の方法。
【請求項8】
前記トレーニング環境に関する前記情報が、少なくとも従属ライブラリのリストを含み、前記従属ライブラリのリストが、前記機械学習モデルのトレーニング時に必要な1つまたは複数のライブラリと、前記1つまたは複数のライブラリのリリース番号とからなる、請求項2に記載の方法。
【請求項9】
前記クライアント・システムの前記ローカル環境の前記トレーニング環境との互換性を判定することが、
前記従属ライブラリのリストのうちの前記1つまたは複数のライブラリの前記リリース番号が前記クライアント・システムの1つまたは複数のライブラリのリリース番号と同じであるか否かに基づいて、前記従属ライブラリのリストのうちの前記1つまたは複数のライブラリが前記クライアント・システムにインストールされているか否かを判定することをさらに含む、請求項8に記載の方法。
【請求項10】
前記クライアント・システムの前記ローカル環境を適合させることが、
前記クライアント・システムの前記1つまたは複数のライブラリを更新することをさらに含み、前記クライアント・システムの前記1つまたは複数のライブラリを更新することが、前記クライアント・システムにインストールされていないライブラリをインストールすること、または、前記クライアント・システムの前記1つまたは複数のライブラリの前記リリース番号をダウングレードまたはアップグレードすること、あるいはその両方を少なくとも含む、請求項9に記載の方法。
【請求項11】
前記クライアント・システムが通信ネットワークを介して前記トレーニング・システムに遠隔で接続されている、請求項1ないし10のいずれかに記載の方法。
【請求項12】
前記トレーニング・システムがクラウド・サービス環境にある、請求項1ないし11のいずれかに記載の方法。
【請求項13】
トレーニング・システムにおいて機械学習モデルをトレーニングする方法であって、
機械学習モデルをトレーニングすることと、
トレーニング・システムのトレーニング環境を示すメタデータを作成することと、
トレーニングされた前記機械学習モデルに前記メタデータをリンクさせることと、
トレーニングされた前記機械学習モデルをダウンロードする前に前記メタデータへのアクセスを少なくとも可能にするためにアプリケーション・プログラム・インターフェース(API)サービスを提供することと、トレーニングされた前記機械学習モデルをダウンロードすることとを含む、方法。
【請求項14】
前記APIサービスがクラウド環境にある、請求項13に記載の方法。
【請求項15】
トレーニングされた前記機械学習モデルが前記トレーニング・システムの永続モデルに従って永続化され、前記永続モデルが少なくともpickle永続モデルを含む、請求項13ないし14のいずれかに記載の方法。
【請求項16】
クライアント・システムにおいて機械学習モデルをデプロイするためのコンピュータ・システムであって、
1つまたは複数のプロセッサと、1つまたは複数のコンピュータ可読メモリと、1つまたは複数のコンピュータ可読有形記憶媒体と、前記1つまたは複数のメモリのうちの少なくとも1つを介した前記1つまたは複数のプロセッサのうちの少なくとも1つによる実行のために前記1つまたは複数の有形記憶媒体のうちの少なくとも1つに記憶されたプログラム命令とを含み、前記コンピュータ・システムが方法を行うことができ、前記方法が、
機械学習モデルがトレーニングされたトレーニング環境に関する情報をトレーニング・システムに要求することと、
前記トレーニング環境に関する前記情報に基づいて、クライアント・システムのローカル環境の前記トレーニング・システムの前記トレーニング環境との互換性を判定することと、
前記クライアント・システムの前記ローカル環境が前記トレーニング・システムの前記トレーニング環境と互換性があると判定することと、
前記機械学習モデルをダウンロードすることとを含む、コンピュータ・システム。
【請求項17】
前記ローカル環境の前記トレーニング環境との前記互換性を判定することが、
前記クライアント・システムの前記ローカル環境が前記トレーニング・システムの前記トレーニング環境と互換性がないと判定することと、
前記クライアント・システムの前記ローカル環境を適合させることであって、前記クライアント・システムの前記ローカル環境が前記トレーニング・システムの前記トレーニング環境と互換性があるように適合させることをさらに含む、請求項16に記載のコンピュータ・システム。
【請求項18】
前記トレーニング環境に関する前記情報が、少なくとも従属ライブラリのリストを含み、前記従属ライブラリのリストが、前記機械学習モデルのトレーニング時に必要な1つまたは複数のライブラリと、前記1つまたは複数のライブラリのリリース番号とからなる、請求項17に記載のコンピュータ・システム。
【請求項19】
前記クライアント・システムの前記ローカル環境の前記トレーニング環境との前記互換性を判定することが、
前記従属ライブラリのリストのうちの前記1つまたは複数のライブラリの前記リリース番号が前記クライアント・システムの1つまたは複数のライブラリのリリース番号と同じであるか否かに基づいて、前記従属ライブラリのリストのうちの前記1つまたは複数のライブラリが前記クライアント・システムにインストールされているか否かを判定することをさらに含む、請求項18に記載のコンピュータ・システム。
【請求項20】
コンピュータ・プログラムであって、請求項1ないし15のいずれか1項に記載の方法をコンピュータに実行させるための、コンピュータ・プログラム。
【国際調査報告】