(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-28
(54)【発明の名称】プライベート転移学習
(51)【国際特許分類】
G06N 3/08 20060101AFI20221221BHJP
G06F 21/53 20130101ALI20221221BHJP
【FI】
G06N3/08
G06F21/53
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022523266
(86)(22)【出願日】2020-10-22
(85)【翻訳文提出日】2022-04-18
(86)【国際出願番号】 IB2020059918
(87)【国際公開番号】W WO2021079299
(87)【国際公開日】2021-04-29
(32)【優先日】2019-10-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】リントン、ジェブ
(72)【発明者】
【氏名】ベンケン、ジョン
(72)【発明者】
【氏名】メルション、ジョン
(72)【発明者】
【氏名】アミサノ、マイケル
(72)【発明者】
【氏名】ライト、デイヴィッド
(57)【要約】
プライベート転移学習のための方法についての実施形態が開示される。本方法は、トレーニング・アプリケーション・プログラミング・インタフェース(API)および推論APIを含む機械学習モデルを生成することを含む。本方法は、所定の暗号化メカニズムを用いて機械学習モデルを暗号化することを更に含む。本方法は、暗号化された機械学習モデルを信頼された実行環境にコピーすることを更に含む。本方法は、推論APIを用いて信頼された実行環境において機械学習モデルを実行することも含む。
【特許請求の範囲】
【請求項1】
プライベート転移学習のためのコンピュータ実施方法であって、
トレーニング・アプリケーション・プログラミング・インタフェース(API)および推論APIを含む機械学習モデルを生成することと、
所定の暗号化メカニズムを用いて前記機械学習モデルを暗号化することと、
前記暗号化された機械学習モデルを信頼された実行環境にコピーすることと、
前記トレーニングAPIおよび前記推論APIのうちの少なくとも1つを用いて前記信頼された実行環境において前記機械学習モデルを実行することと、
を含む、コンピュータ実施方法。
【請求項2】
前記機械学習モデルは、ディープ・ニューラル・ネットワーク(DNN)モデルを含む、請求項1に記載の方法。
【請求項3】
前記DNNモデルは一般タスクを実行するようにトレーニングされる、請求項2に記載の方法。
【請求項4】
前記トレーニングAPIは、前記一般タスクを、前記一般タスクよりも特殊なタスクに精緻化するタスクを実行するように前記DNNモデルをトレーニングする、請求項3に記載の方法。
【請求項5】
前記信頼された実行環境において、前記機械学習モデルの本体と、追加の機械学習モデルのヘッドとの組合せを生成することを更に含む、請求項1ないし4のいずれかに記載の方法。
【請求項6】
前記組合せのために前記推論APIを実行することを更に含む、請求項5に記載の方法。
【請求項7】
前記組合せのために前記トレーニングAPIを実行することを更に含む、請求項5または6に記載の方法。
【請求項8】
プライベート転移学習のためのシステムであって、前記システムは、
コンピュータ処理回路と、
前記コンピュータ処理回路によって実行されると、前記コンピュータ処理回路に方法を実行させるように構成された命令を記憶するコンピュータ可読ストレージ媒体とを備え、前記方法は、
トレーニング・アプリケーション・プログラミング・インタフェース(API)および推論APIを含む機械学習モデルを生成することと、
所定の暗号化メカニズムを用いて前記機械学習モデルを暗号化することと、
前記暗号化された機械学習モデルを信頼された実行環境にコピーすることと、
前記トレーニングAPIを用いて前記信頼された実行環境において前記機械学習モデルを実行することと、
前記推論APIを用いることによって、前記トレーニングAPIによってトレーニングされた前記機械学習モデルを実行することと、
を含む、システム。
【請求項9】
前記機械学習モデルは、ディープ・ニューラル・ネットワーク(DNN)モデルを含む、請求項8に記載のシステム。
【請求項10】
前記DNNモデルは一般タスクを実行するようにトレーニングされる、請求項9に記載のシステム。
【請求項11】
前記トレーニングAPIは、前記一般タスクを、前記一般タスクよりも特殊なタスクに精緻化するタスクを実行するように前記DNNモデルをトレーニングする、請求項10に記載のシステム。
【請求項12】
前記方法は、前記信頼された実行環境において、前記機械学習モデルの本体と、追加の機械学習モデルのヘッドとの組合せを生成することを更に含む、請求項8ないし11のいずれかに記載のシステム。
【請求項13】
前記方法は、前記組合せのために前記推論APIを実行することを更に含む、請求項12に記載のシステム。
【請求項14】
前記方法は、前記組合せのために前記トレーニングAPIを実行することを更に含む、請求項12または13に記載のシステム。
【請求項15】
前記信頼された実行環境において前記トレーニングAPIを用いて前記機械学習モデルを実行することは、GPUにおいて前記トレーニングAPIを実行することを含み、
前記推論APIを用いることによって前記トレーニングAPIによってトレーニングされた前記機械学習モデルを実行することは、前記GPUにおいて前記推論APIを実行することを含む、請求項8ないし14のいずれかに記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プライベート転移学習に関し、より詳細には、プライベート転移学習(private transfer learning)のためのセキュアなポータブルDNNに関する。
【背景技術】
【0002】
ディープ・ニューラル・ネットワーク(DNN)は機械学習アーキテクチャである。機械学習アーキテクチャは、コンピュータ・システム、例えば学習することができるマシンである。マシンが学習することができる1つのことは、どのようにアイテムを分類するか、例えば、どのように人物の画像を物体の画像と区別するかである。このため、DNNは、画像を入力として取り、DNNが画像を人物として分類するか、または物体として分類するかを示すその画像のラベルを出力することができる。機械学習、例えばDNNによって物体を分類する動作は、本明細書において、推論または順方向パス(forward pass)と呼ばれる。対照的に、逆方向パス(backward pass)は、所定の分類を実行するように学習するコンピュータ・プログラムであるDNNモデルのトレーニングを伴う。正確になるようにDNNモデルをトレーニングすることは複雑である可能性があり、このため、人物の画像を物体の画像と区別する等の一般タスクをどのように行うかを学習するために、比較的大量のデータに依拠する可能性がある。
【0003】
したがって、当該技術分野において、上述した問題に対処することが必要とされている。
【発明の概要】
【0004】
複数の態様の観点から、本発明は、プライベート転移学習のためのコンピュータ実施方法、コンピュータ・プログラム製品およびシステムを提供し、これは、トレーニング・アプリケーション・プログラミング・インタフェース(API)および推論APIを含む機械学習モデルを生成することと、所定の暗号化メカニズムを用いて機械学習モデルを暗号化することと、暗号化された機械学習モデルを信頼された実行環境(trusted execution environment)にコピーすることと、推論APIおよびトレーニングAPIのうちの少なくとも1つを用いて信頼された実行環境において機械学習モデルを実行することとを含む。
【0005】
一態様の観点から、本発明は、プライベート転移学習のためのコンピュータ実施方法を提供し、本方法は、トレーニング・アプリケーション・プログラミング・インタフェース(API)および推論APIを含む機械学習モデルを生成することと、所定の暗号化メカニズムを用いて機械学習モデルを暗号化することと、暗号化された機械学習モデルを信頼された実行環境にコピーすることと、推論APIを用いて信頼された実行環境において機械学習モデルを実行することとを含む。
【0006】
一態様の観点から、本発明は、コンピュータ可読ストレージ媒体に記憶されたプログラム命令を含むコンピュータ・プログラム製品を提供し、コンピュータ可読ストレージ媒体はそれ自体、一過性の信号ではなく、プログラム命令は、プロセッサに方法を実行させるようにこのプロセッサによって実行可能であり、この方法は、トレーニング・アプリケーション・プログラミング・インタフェース(API)および推論APIを含む機械学習モデルを生成することと、所定の暗号化メカニズムを用いて機械学習モデルを暗号化することと、暗号化された機械学習モデルを信頼された実行環境にコピーすることと、トレーニングAPIを用いて信頼された実行環境において機械学習モデルを実行することとを含む。
【0007】
一態様の観点から、本発明はシステムを提供し、このシステムは、コンピュータ処理回路と、コンピュータ処理回路によって実行されると、コンピュータ処理回路に方法を実行させるように構成された命令を記憶するコンピュータ可読ストレージ媒体とを備え、方法は、トレーニング・アプリケーション・プログラミング・インタフェース(API)および推論APIを含む機械学習モデルを生成することと、所定の暗号化メカニズムを用いて機械学習モデルを暗号化することと、暗号化された機械学習モデルを信頼された実行環境にコピーすることと、トレーニングAPIを用いて信頼された実行環境において機械学習モデルを実行することと、推論APIを用いることによって、トレーニングAPIによってトレーニングされた機械学習モデルを実行することとを含む。
【0008】
一態様の観点から、本発明はシステムを提供し、このシステムは、コンピュータ処理回路と、グラフィック処理回路(GPU)と、コンピュータ処理回路によって実行されると、コンピュータ処理回路に方法を実行させるように構成された命令を記憶するコンピュータ可読ストレージ媒体とを備え、方法は、トレーニング・アプリケーション・プログラミング・インタフェース(API)および推論APIを含む機械学習モデルを生成することと、所定の暗号化メカニズムを用いて機械学習モデルを暗号化することと、暗号化された機械学習モデルを信頼された実行環境にコピーすることと、GPUにおいてトレーニングAPIを実行することによって、信頼された実行環境において機械学習モデルを実行することと、GPUにおいて推論APIを実行することによって、トレーニングAPIによってトレーニングされた機械学習モデルを実行することとを含む。
【0009】
一態様の観点から、本発明は、プライベート転移学習のためのコンピュータ実施方法を提供し、本方法は、トレーニング・アプリケーション・プログラミング・インタフェース(API)および推論APIを含む機械学習モデルを生成することと、所定の暗号化メカニズムを用いて機械学習モデルを暗号化することと、暗号化された機械学習モデルを信頼された実行環境にコピーすることと、トレーニングAPIを用いて信頼された実行環境において機械学習モデルを実行することとを含む。
【0010】
本発明の更なる態様の観点から、本発明は、プライベート転移学習のためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、処理回路によって読み出し可能なコンピュータ可読ストレージ媒体を備え、本発明のステップを実行する方法を実行するための処理回路による実行のための命令を記憶する。
【0011】
更なる態様の観点から、本発明は、コンピュータ可読媒体上に記憶され、デジタルコンピュータの内部メモリにロード可能なコンピュータ・プログラムを提供し、このコンピュータ・プログラムは、このプログラムがコンピュータ上で実行されるとき、本発明のステップを実行するためのソフトウェア・コード部分を備える。
【0012】
プライベート転移学習のための方法についての実施形態が開示される。本方法は、トレーニング・アプリケーション・プログラミング・インタフェース(API)および推論APIを含む機械学習モデルを生成することを含む。本方法は、所定の暗号化メカニズムを用いて機械学習モデルを暗号化することを更に含む。本方法は、暗号化された機械学習モデルを信頼された実行環境にコピーすることを更に含む。本方法は、推論APIを用いて信頼された実行環境において機械学習モデルを実行することも含む。
【0013】
本開示の更なる態様は、コンピュータ実施方法に関して上記で論考した機能に類似した機能を有するシステムおよびコンピュータ・プログラム製品を対象とする。この発明の概要は、本開示の各態様、全ての実施、またはあらゆる実施形態、あるいはその組合せを示すことを意図したものではない。
【0014】
本出願に含まれる図面は、本明細書に組み込まれ、本明細書の一部をなす。これらは本開示の実施形態を示し、明細書と共に、本開示の原理を説明するのに役立つ。図面は、単に特定の実施形態を示すものであり、本開示を限定するものではない。
【図面の簡単な説明】
【0015】
【
図1】本開示のいくつかの実施形態によるプライベート転移学習のためのシステムのブロック図である。
【
図2】本開示のいくつかの実施形態によるプライベート転移学習のためのシステムのブロック図である。
【
図3】本開示のいくつかの実施形態によるプライベート転移学習のためのプロセスのデータ・フロー図である。
【
図4】本開示のいくつかの実施形態によるプライベート転移学習のための例示的な方法のフローチャートである。
【
図5】本開示のいくつかの実施形態による例示的な分類チャート・デジタル化(CCD)マネージャのブロック図である。
【
図6】本開示のいくつかの実施形態によるクラウド・コンピューティング環境を示す図である。
【
図7】本発明のいくつかの実施形態による抽象化モデル層を示す図である。
【発明を実施するための形態】
【0016】
本開示は、様々な変形および代替の形態に修正可能であるが、その詳細は、図面に例として示されており、詳細に説明される。しかしながら、本開示を記載される特定の実施形態に限定することは意図されていないことを理解されたい。それどころか、本開示の範囲内にある全ての変形、等価物および代替を包含することが意図される。
【0017】
DNNは、入力と出力との間に複数の層を有する機械学習ソフトウェア・アーキテクチャである。DNNは、入力の関連パラメータ、およびDNNが操作を学習する関連付けられた重みを用いて、入力を出力に算術的に変換することができる。トレーニング段階中、DNNは、比較的多数のラベル付けされた入力を処理し、入力を、ラベルに合致する出力に変換するように様々なパラメータの重みを操作することを学習することができる。これらの算術的変更は、線形および非線形を含む様々なタイプの数学的関係を表すことができる。このようにして、DNNは一般DNNモデルを生成することができる。
【0018】
転移学習は、一般DNNモデルを、より特殊なタスクを実行するモデルに展開するために有用である。例えば、人物の画像を物体と区別する一般DNNモデルを所与として、転移学習は、野球の試合の画像をクリケットの試合の画像と区別するモデルを展開することができる。転移学習の実行は、一般DNNモデルのためのトレーニングデータと比べて、比較的少量のトレーニングデータしか伴わないことが可能である。例えば、人物を物体と区別するように一般DNNモデルをトレーニングすることは、1万個のラベル付けされた入力を伴う可能性がある。対照的に、一般モデルを、野球の試合の画像をクリケットの試合の画像と区別する転移学習モデルに展開することは、50個未満のラベル付けされた入力を伴う可能性がある。このようにして、転移学習は、他の機械学習技術と比べて、コストおよびリソースの低減の利点を提供する。このため、転移学習は、比較的高度にトレーニングされた一般DNNモデルから、比較的高度に特殊なタスクを実行する貴重なDNNモデルを構築することができる。しかしながら、比較的高度に特殊なタスクを実行するように展開することができる、そのように高度にトレーニングされた一般DNNモデルを保有することは、認証されていないユーザ、窃盗犯または他の悪意のあるアクター、あるいはそれらの組合せに対するそれらの使用の保護に関するセキュリティの問題を暗に意味する可能性がある。
【0019】
信頼された実行環境は、ホスト・コンピュータ・システムに対するセキュア・エンクレーブを提供することができ、機密プログラムまたは制御されたプログラムを、認証されていないイントロスペクション(introspection)(ビュー)またはコピーなしで実行することができる。実際に、信頼された実行環境は、信頼された実行環境をホスティングするコンピュータにおける特権を有する管理者およびプロセスから、制御されたプログラムを保護することさえ可能である。
【0020】
したがって、本開示の実施形態は、高度にトレーニングされた一般DNNモデルの流布および使用を制御することができる。このようにして、実施形態は、未変更形態における推論のために一般DNNモデルを用いること、およびタスクに固有のトレーニングを用いて一般DNNモデルを転移学習モデルに展開することを可能にすることができる。順方向パスと対照的に、機械学習モデルのトレーニングの動作は、本明細書において、逆方向パスとも呼ばれる。このため、本開示の実施形態は、信頼された実行環境の外側で開くことができないDNNモデルを、暗号化を用いてパッケージングすることができる。いくつかの実施形態では、DNNのアーキテクチャのためのコード、重みおよびバイアスは、2つのアプリケーション・プログラミング・インタフェース(API)機能と共にパッケージングされる。API機能のうちの1つは、ラベル付けされていない入力に対し推論を行う。このため、データは、DNNを通る順方向パスのためのラベルを有しない入力である。別のAPI機能は、一般DNNモデルをトレーニングする。このため、データは、一般DNNを通る逆方向パスのためのラベルを有する入力である。
【0021】
図1は、本開示のいくつかの実施形態によるプライベート転移学習のためのシステム100のブロック図である。システム100は、事前トレーニングされたモデル(pre-trained model)104を有するセキュア・エンクレーブ102と、推論API106-1と、トレーニングAPI1-6-2とを備える。セキュア・エンクレーブ102は、セキュアな動作、すなわち信頼された実行環境(TEE)のために予約されたコンピュータ・デバイス(図示せず)のシステム・メモリの所定の部分とすることができる。
【0022】
いくつかの実施形態によれば、システム100を用いて、トレーニングされたディープ・ニューラル・ネットワーク・モデル、すなわち、事前トレーニングされたモデル104の流布および使用を制御することができる。システム100は、未変更形態における推論のために事前トレーニングされたモデル104を用いることを可能にし、事前トレーニングされたモデル104はタスク固有のトレーニングを通じてカスタマイズされることを可能にすることができる。更に、システム100は、事前トレーニングされたモデル104の使用または伝播あるいはその両方がどのように行われるかに対する制御を維持しながら、これらの利点を提供することができる。システム100において、事前トレーニングされたモデル104は、1つまたは複数のユーザによるトレーニングに適することができ、ユーザは、1つまたは複数の当事者からのプライベート入力を用いてトレーニングまたは精緻化を提供することができる。
【0023】
セキュア・エンクレーブ102は、セキュア・エンクレーブ102内の使用に制限された鍵(図示せず)を含むことができる。セキュア動作は、セキュア・エンクレーブ102において実行されるコンピュータ・アプリケーションによって実行することができる。これらの動作をセキュア化するために、コンピュータ・アプリケーションの命令は、鍵を用いて暗号化され、セキュア・エンクレーブ102におけるメモリ・ロケーションに書き込まれる。更に、プロセッサ(図示せず)による実行の前に、これらのメモリ・ロケーションから命令が読み出され、鍵を用いて復号される。したがって、セキュア・エンクレーブ102からセキュア化された動作の命令を読み出そうと試みる悪意のあるアクター、例えばハッカーは、暗号化された命令を読み出すことに制限される。鍵なしでは、悪意のあるアクターは実際の命令を特定することができず、このため、動作はセキュアであり得る。
【0024】
例えば、事前トレーニングされたモデル104は、セキュア・エンクレーブ102において実行されるコンピュータ・アプリケーションとすることができる。いくつかの実施形態によれば、事前トレーニングされたモデル104は、一般タスクを実行するようにトレーニングされたDNNモデルとすることができる。更に、事前トレーニングされたモデル104は、セキュア・エンクレーブ102にコピーされる前に暗号化することができる。これは、セキュア・エンクレーブ102に関して上記で説明した鍵暗号化に対する追加のレベルの暗号化を伴う。いくつかの実施形態では、事前トレーニングされたモデルの製造者は、2つの機能、すなわち推論API106-1およびトレーニングAPI106-2を用いて、暗号化された分布ブロブにおける事前トレーニングされたモデル104の、アーキテクチャのためのコード、重みおよびバイアスを暗号化することができる。ラベルを有する導入されたデータは、事前トレーニングされたモデル104を通る逆伝搬パスのために推論API106-1に入力することができる。ラベルを有しない導入されたデータは、事前トレーニングされたモデル104を通る順方向パスのためにトレーニングAPI106-2に入力することができる。このようにして、システム100は、TEE内部で開かれることに制約された、暗号化を伴う使用のためのディープ・ニューラル・ネットワークを提供することができる。
【0025】
2つのAPIをセキュア・エンクレーブ102の外側に単に露出させることによって、事前トレーニングされたモデル104を意図されたように使用し、ユーザ固有のタスクおよびデータ・セットのためにカスタマイズすることができる。しかしながら、事前トレーニングされたモデル104は、ライセンスのないユーザへの制御されていない伝播のためにセキュア・エンクレーブ102の外にコピーすることができず、予め決められた範囲を超えた形で変更することができず、また、所定の有効期限を超えて用いることができず、有効期限後、ユーザは、事前トレーニングされたモデル104の新バージョンをダウンロードするように動機付けされ得る。
【0026】
当業者であれば理解するように、ディープ・ニューラル・ネットワークは、中央処理ユニット(CPU)よりも、グラフィカル処理ユニット(GPU)においてより効率的に動作することができる。しかしながら、信頼された実行環境は、セキュア・エンクレーブ102内にGPUを含まない場合がある。したがって、データは、(比較的大きな事前トレーニングされたモデル104の場合)トレーニングまたは推論あるいはその両方のために、セキュア・エンクレーブ102の外側へGPUに送信され得る。このため、いくつかの実施形態では、セキュア・エンクレーブ102は1つまたは複数のGPUを含むことができる。更に、事前トレーニングされたモデル104は、仮想化されたGPU環境(GPUメモリがTEEの外側の悪意のあるアクターによってイントロスペクトされる場合がある)における動作を禁止するように構成することができる。悪意のあるアクターがGPUメモリからモデル・パラメータの推論を行うことをより困難にするために、事前トレーニングされたモデル104に、バッチ計算のランダム・シャッフリングを含めることも有用である場合がある。
【0027】
図2は、本開示のいくつかの実施形態によるプライベート転移学習のためのシステム200のブロック図である。システム200は、TEE202と、実行環境204とを備える。上述したように、セキュア・エンクレーブはTEEと呼ぶことができる。更に、用語TEEは、TEE202等の専用メモリ要素の大きなグループを指すことができる。システム200において、TEE202は、
図1に関して説明したセキュア・エンクレーブ102に類似することができるセキュア・エンクレーブ206を含む。TEE202は、セキュア・エンクレーブ206のための暗号化鍵(図示せず)等の追加のメモリ要素も含むことができる。
【0028】
実行環境204は、コンピュータ・プロセッサ命令を記憶する専用メモリ要素のグループとすることができる。信頼された実行環境202およびセキュア・エンクレーブ206と対照的に、実行環境204はオープンとすることができ、これは、メモリ・ロケーションが悪意のあるユーザ等に読み出される可能性があることを意味する。実行環境204は、DNNコーディング・プラットフォームが実行されている可能性がある実行環境204の一部であり得るプログラミング環境210を含むことができる。DNNコーディング・プラットフォームは、例えばデータ・サイエンティストが、DNNモデル208等のモデルを構築、試験および実行することができる、コンピュータ・ソフトウェア・アーキテクチャを指すことができる。したがって、プログラミング環境210は、順方向パス(推論)API212-1および逆方向パス(トレーニング)API212-2を呼び出すことによって、信頼された実行環境202のセキュア・エンクレーブ206内のDNNモデル208の実行を引き起こすコンピュータ・アプリケーションを含むことができる。本明細書において、これらのAPIは、上述したように個々に、および集合的に、API212と呼ばれる。
【0029】
セキュア・エンクレーブ206は、
図1に関して説明した事前トレーニングされたモデル104に類似することができるDNNモデル208を含むことができる。再び
図2を参照すると、DNNモデル208は、例えば、比較的大きな画像内の比較的小さな物体の物体認識のためにトレーニングされた比較的大きな畳込みDNNモデルとすることができる。そのようなDNNモデルは、衛星からの地球の画像において比較的大きな範囲の電磁スペクトルが捕捉されるハイパースペクトル衛星写真において有用とすることができる。数千GPU時間を費やして、比較的高い精度レベルでそのようなモデルをトレーニングすることができる。そのようなモデルをトレーニングすることは、大きな金融費用も消費し得る。更に、DNNモデル208のアーキテクチャは、広く知られていない貴重な先進専有技術を使用する場合があり、このため、企業スパイ行為または他のタイプのスパイ行為を防ぐためのセキュリティ制約を暗に意味し得る。
【0030】
別の例では、DNNモデル208は、予測テキスト生成のためにトレーニングされた比較的大きな言語モデルとすることができる。予測テキスト生成は、1つのキーまたはボタンが、モバイル・コンピューティング・デバイスの数値キーパッド等における複数の文字を表すことができる技術を指す。このようにして、キーの各選択の結果として、ユーザが入力している単語の予測を生成することができる。したがって、ユーザは、単語全体をタイピングする代わりに、いくつかのキー選択に基づいて予測される単語を選択することができる。予測テキスト生成は、専有アーキテクチャ技術も組み込むことができ、トレーニングに数千時間がかかり得る。そのようなDNNモデル208は、比較的多岐にわたるトピックに関する質問回答、文法構文解析、テキスト要約および報告生成等のより複雑なタスクを実行するために、比較的少ないトレーニング時間で更にトレーニングすることができる。更に、トピックの範囲は、追加のトレーニングを通じて特定の領域において更に広くすることができる。そのようなDNNモデル208は、DNNモデル208がDNNモデル208の生成器に報酬を与えることなくDNNモデル208が複製され得るパブリック空間にDNN208が流出したした場合に弱まり得る比較的大きな金融的価値を提供することができる。したがって、本開示の実施形態は、そのようなシナリオを防ぐようにDNNモデル208をセキュア化することができる。
【0031】
順方向パスAPI212-1および逆方向パスAPI212-2は、信頼された実行環境202のセキュア・エンクレーブ206内で実行されるため、セキュア化されていない実行環境204からの、これらのAPI212を実行するための任意の呼び出しが、悪意のあるアクターによるDNNモデル208の実行を回避するために、API呼び出しを引き起こす権限について検証される。したがって、APIは、DNNモデル208の暗号化された実行ファイルにプログラムされた認証情報に基づいた認証および認可を含む。これにより、DNNモデル208がどのように、誰によって、どれだけ、どの特殊な方式で用いられるかの精密な制御を可能にする。したがって、API212は、DNNモデル208のトレーニングおよび推論の使用の制限を可能にするアクセス制御を含むことができる。加えて、これらのアクセス制御は、DNNモデル208に関する監査および性能メトリックを、DNNモデル208の提供者に戻して提供することができるテレメトリを提供することができる。このようにして、DNNモデル208は、(政府によって行われる攻撃を除く)イントロスペクトされているモデルのリスクなしで他の当事者に配信するのに適したものであり得る。いくつかの実施形態では、DNNモデル208は、利用権の異なるセットに従ってライセンス付与することができる。したがって、APIの使用は、これらの権利に従って制約することができる。例えば、使用は、逆方向パスAPI212-2の実行に制限するか、または双方のAPI212について許可することができる。使用は、所定の期間の使用についても許可することができる。
【0032】
いくつかの実施形態では、DNNモデル208の使用は、ハイパーパラメータ・チューニングも含むことができる。ハイパーパラメータ・チューニングにより、順方向パスAPI212-1は、DNNモデル・ユーザが、DNNモデル208が学習する方式を構成するパラメータの選択を定義することを可能にすることができる。ハイパーパラメータは、ADAMおよびOne-Cycle、学習率、トレーニングのエポック数、層ロック等の最適化アルゴリズムを含むことができる。
【0033】
いくつかの実施形態では、DNNモデル208の使用により、DNNモデル208の2つ以上の可能なアーキテクチャの変形の選択を可能にすることができる。例えば、DNNモデル208の本体は、複数カテゴリまたは単一カテゴリ分類のために別のDNNモデルのヘッドと共に用いることができる。DNNモデル208の本体は、モデル・ロジックの一部分を参照することができる。モデル・ロジックは、複数の層に配置することができ、第1の層はDNNモデル208の初期ロジックを含み、最後の層は最終ロジックを含む。したがって、DNNモデルのヘッドは、DNNモデル・ロジックの最後の層または最後のいくつかの層を指すことができる。いくつかの実施形態では、アーキテクチャの変形は、DNNモデル208を、生成DNNから分類器へと別の目的で用いることを伴うことができる。生成DNNは、分類DNNのためのラベル付けされた入力を生成するDNNモデルを指す。分類DNNは、入力をラベル付け、例えば分類するDNNモデルを指す。いくつかの実施形態では、これらのおよび他の潜在的アーキテクチャの変形は、順方向パスAPI212-1および逆方向パスAPI212-2内で選択可能とすることができる。
【0034】
いくつかの実施形態では、システム200は、PyTorchおよびTensorflow(R)等の既存のDNNコーディング・プラットフォームと統合することができる。このようにして、システム200は、DNNモデル208を暗号化された分散ブロブにより容易にパッケージングすることを可能にすることができる。加えて、システム200を既存のDNNコーディング・プラットフォームと統合することにより、データ・サイエンティストが、自身が既に慣れている場合がある同じコーディング環境およびコマンドを用いることによってDNNモデル208に対し推論およびトレーニングをより効率的に実行することを可能にすることもできる。
【0035】
図3は、本開示のいくつかの実施形態によるプライベート転移学習のためのプロセス300のデータ・フロー図である。プロセス300において、モデル所有者開発環境302を用いて機械学習(ML)モデル304が生成される。モデル所有者開発環境302は、データ・サイエンティストおよびソフトウェア・エンジニアが機械学習モデル304等の機械学習モデルを構築およびトレーニングすることを可能にするように構成された、プライベートでセキュアなコンピュータ・ハードウェアおよびソフトウェア・アーキテクチャとすることができる。機械学習モデル304は、比較的単純なアルゴリズムから、
図2に関して説明したDNNモデル208等のDNNモデルに及ぶ、様々なタイプの機械学習モデルのうちの1つとすることができる。
【0036】
再び
図3を参照すると、モデル所有者は、暗号化を用いて機械学習モデル304から暗号ブロブ(crypto blob)306を生成することができる。暗号ブロブ306は、Opal規格に従って署名および管理することができる。Opal規格は、ディスク・ドライブ等の電子ストレージ・デバイスのためのセキュリティ関連規格のグループを指す。例えば、これらの規格は、認証されていないユーザがデバイスの制御を行うかまたはデバイスに記憶されたデータを閲覧することを防ぐ、記憶されたデータのための暗号化方法を定義することができる。暗号化は、公開鍵-秘密鍵基盤(PKI)、認証等によって提供することができる。PKIにおいて、2人のユーザによって共有された公開鍵は、認証されたユーザが機械学習モデル304等のセキュア化されたファイルにアクセスすることができることを確実にするために、暗号化された秘密鍵と協力して用いることができる。認証は、機械学習モデル304等のコンピュータ・アプリケーションの完全性を検証するための公開ハッシュタグおよびクリアリングハウス署名の使用を伴うことができる。認証は、セキュア・エンクレーブ206等のセキュア・エンクレーブ内の潜在的に悪意を持って符号化されたコンピュータ命令の回避策として用いることができる。
【0037】
再び
図3を参照すると、モデル所有者は、複数の暗号ブロブ306として暗号化された機械学習モデルのライブラリをホスティングすることができるクラウド・ストレージ・システム308に暗号ブロブ306を記憶することができる。更に、このライブラリから機械学習モデルへのアクセスを得るために、顧客は、機械学習モデル304等の選択されたモデルに加入することができる。クラウド・ストレージ・システム308から、暗号ブロブ306はデータ所有者開発環境310にコピーすることができる。データ所有者開発環境310は、TEE202等の信頼された実行環境とすることができる。データ所有者開発環境310は、セキュア・エンクレーブ312およびAPI314を含むことができる。セキュア・エンクレーブ312は、
図2に関して説明したセキュア・エンクレーブ206に類似することができる。API314は、
図2に関して説明したAPI212に類似することができる。セキュア・エンクレーブ312は、機械学習モデル304と、秘密鍵を有するローダ316とを備えることができる。このため、セキュア・エンクレーブ312は、暗号ブロブ306を復号するために必要な鍵を有する。本開示の実施形態において、秘密鍵を有するローダ316は、暗号ブロブ306を復号し、これにより機械学習モデル304およびAPI314を生成することができる。更に、セキュア・エンクレーブ312は、これらの命令をセキュア・エンクレーブ312のメモリ・ロケーションに書き込む前に、それ自体の鍵(図示せず)を用いて機械学習モデル304の命令およびAPI314を暗号化することができる。
【0038】
セキュア・エンクレーブ312において実行されているが、機械学習モデル304は依然として暗号化メモリに記憶されており、これは管理者およびルート・ユーザ等の特権ユーザによって読み出し不可能である。セキュア・エンクレーブ312は、メモリ・バス・プローブ攻撃も防ぐ。なぜなら、暗号化されたデータのみがセキュア・エンクレーブ312からバスに沿って渡されるためである。このようにして、単にAPI314をユーザに露出させることで、機械学習モデル304が認証なしで誤使用も配信もされないことを確実にすることができる。
【0039】
図4は、本開示のいくつかの実施形態によるプライベート転移学習のための例示的な方法400のフローチャートである。ブロック402において、
図3に関して説明した機械学習モデル304等の機械学習モデルを生成することができる。機械学習モデル304は、トレーニング・アプリケーション・プログラミング・インタフェース(API)および推論APIを含むことができる。モデル所有者は、
図3に関して説明したモデル所有者開発環境302等のモデル所有者開発環境において機械学習モデル304を生成することができる。
【0040】
再び
図4を参照すると、ブロック404において、機械学習モデル304は、所定の暗号化メカニズムを用いて暗号化することができる。例えば、暗号化メカニズムは、公開鍵-秘密鍵基盤または認証を含むことができる。
【0041】
ブロック406において、暗号化された機械学習モデルは、
図2に関して説明した信頼された実行環境202等の、信頼された実行環境にコピーすることができる。暗号化された機械学習モデルは、
図3に関して説明した暗号ブロブ306等の暗号ブロブとすることができる。
【0042】
再び
図4を参照すると、ブロック408において、機械学習モデルは、推論APIまたはトレーニングAPIを用いて信頼された実行環境において実行することができる。上述したように、推論APIを用いて、機械学習モデルへの物体入力を分類することができる。更に、トレーニングAPIを用いて、モデル所有者が機械学習モデルをトレーニングした一般タスクよりも特殊なタスクに対し、機械学習モデルのトレーニングを更に精緻化することができる。
【0043】
ここで
図5を参照すると、本開示のいくつかの実施形態によるプライベート転移学習マネージャ500のブロック図が示されている。様々な実施形態において、プライベート転移学習マネージャ500はプライベート転移学習マネージャ214に類似しており、
図4に記載の方法または
図1~
図3において論考した機能あるいはその両方を実行することができる。いくつかの実施形態では、プライベート転移学習マネージャ500は、プライベート転移学習マネージャ500によって提供される命令に基づいてクライアント・マシンが方法または方法の一部分を実行するように、上述した方法または機能あるいはその両方のための命令をクライアント・マシンに提供する。いくつかの実施形態では、プライベート転移学習マネージャ500は、複数のデバイスに組み込まれたハードウェア上で実行されるソフトウェアを備える。
【0044】
プライベート転移学習マネージャ500は、メモリ525と、ストレージ530と、相互接続(例えば、バス)520と、1つまたは複数のCPU505(本明細書においてプロセッサ505とも呼ばれる)と、I/Oデバイス・インタフェース510と、I/Oデバイス512と、ネットワーク・インタフェース515とを備える。
【0045】
各CPU505は、メモリ525またはストレージ530に記憶されたプログラミング命令を取得し、実行する。相互接続520を用いて、CPU505、I/Oデバイス・インタフェース510、ストレージ530、ネットワーク・インタフェース515、およびメモリ525の間でプログラミング命令等のデータを移動させる。相互接続520は、1つまたは複数のバスを用いて実装することができる。CPU505は、種々の実施形態において、単一のCPU、複数のCPU、または複数の処理コアを有する単一のCPUとすることができる。いくつかの実施形態において、CPU505は、デジタル・シグナル・プロセッサ(DSP)とすることができる。いくつかの実施形態において、CPU505は、1つまたは複数の3D集積回路(3DIC)(例えば、3Dウェハレベル・パッケージング(3DWLP)、3Dインタポーザ・ベース集積、3D積層IC(3D-SIC)、モノリシック3DIC、3Dヘテロジニアス集積、3Dシステム・イン・パッケージ(3DSiP)、またはパッケージ・オン・パッケージ(PoP)あるいはその組合せのCPU構成)を含む。メモリ525は、一般に、ランダム・アクセス・メモリ(例えば、スタティック・ランダム・アクセス・メモリ(SRAM)、ダイナミック・ランダム・アクセス・メモリ(DRAM)、またはFlash)を表すものとして含まれる。ストレージ530は、一般に、ハード・ディスク・ドライブ、ソリッド・ステート・デバイス(SSD)、リムーバブル・メモリ・カード、光学ストレージ、またはフラッシュ・メモリ・デバイス、あるいはその組合せ等の不揮発性メモリを表すものとして含まれる。加えて、ストレージ530は、I/Oデバイス・インタフェース510を介してプライベート転移学習マネージャ500にまたはネットワーク・インタフェース515を介してネットワーク550に接続される、ストレージ・エリア・ネットワーク(SAN)デバイス、クラウドまたは他のデバイスを含むことができる。
【0046】
いくつかの実施形態では、メモリ525は命令560を記憶する。しかしながら、様々な実施形態において、命令560は、部分的にメモリ525に記憶され、部分的にストレージ530に記憶されるか、または完全にメモリ525に記憶されるかもしくは完全にストレージ530に記憶されるか、またはネットワーク・インタフェース515を介してネットワーク550を通じてアクセスされる。
【0047】
命令560は、
図4の方法または
図1~
図3に論考された機能あるいはその組合せの任意のものの、任意の部分または全てを実行するためのプロセッサ実行可能命令とすることができる。
【0048】
様々な実施形態において、I/Oデバイス512は、情報を提示し、入力を受信することが可能なインタフェースを含む。例えば、I/Oデバイス512は、プライベート転移学習マネージャ500とインタラクトするリスナーに情報を提示し、リスナーから入力を受信することができる。
【0049】
プライベート転移学習マネージャ500は、ネットワーク・インタフェース515を介してネットワーク550に接続される。ネットワーク550は、物理、無線、セルラ、または異なるネットワークを含むことができる。
【0050】
いくつかの実施形態では、プライベート転移学習マネージャ500は、マルチ・ユーザ・メインフレーム・コンピュータ・システム、単一ユーザ・システムもしくはサーバ・コンピュータ、または直接ユーザ・インタフェースをほとんどもしくは全く有しないが他のコンピュータ・システム(クライアント)からの要求を受信する類似のデバイスとすることができる。更に、いくつかの実施形態では、プライベート転移学習マネージャ500は、デスクトップ・コンピュータ、ポータブル・コンピュータ、ラップトップもしくはノートブック・コンピュータ、タブレット・コンピュータ、ポケット・コンピュータ、電話、スマート・フォン、ネットワーク・スイッチもしくはルータ、または任意の他の適切なタイプの電子デバイスとして実装することができる。
【0051】
図5は、例示的なプライベート転移学習マネージャ500の代表的な主要コンポーネントを示すことを意図されていることに留意されたい。しかしながら、いくつかの実施形態では、個々のコンポーネントは、
図5に表すものよりも高いまたは低い複雑度を有する可能性があり、
図5に示すもの以外のまたはそれに加えたコンポーネントが存在する可能性があり、そのようなコンポーネントの数、タイプおよび構成は変動し得る。
【0052】
本開示は、クラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載の教示の実施は、クラウド・コンピューティング環境に限定されない。むしろ、本開示の実施形態は、現在知られていない、または後に開発される任意の他のタイプのコンピューティング環境において実施されることが可能である。
【0053】
クラウド・コンピューティングは、最小限の管理労力およびサービス・プロバイダとの対話で迅速にプロビジョニングおよびリリースすることができる、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシンおよびサービス)の共有プールへの好都合でオン・デマンドのネットワーク・アクセスを可能にするためのサービス送達のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含むことができる。
【0054】
特性は以下の通りである。
オン・デマンドのセルフサービス:クラウド消費者は、サービス・プロバイダとの人間の対話を必要とすることなく、自動的に必要に応じて、サーバ時間およびネットワーク・ストレージ等のコンピューティング能力を一方的にプロビジョニングすることができる。
ブロード・ネットワーク・アクセス:能力は、ネットワークを介して利用可能にされ、異種シンまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップおよびPDA)による使用を促進する標準的なメカニズムを通じてアクセスされる。
リソース・プーリング:マルチ・テナント・モデルを用いて複数の消費者にサービングするために、プロバイダのコンピューティング・リソースがプールされ、異なる物理的リソースおよび仮想リソースは、要求に従って動的に割当ておよび再割当てされる。消費者が、通常、提供されるリソースの厳密な場所に対する制御も知識も有しないが、より高い抽象度(例えば、国、州またはデータセンタ)で場所を指定することが可能であり得るという点で、場所独立性の意義がある。
高速な拡張性:能力は、場合によっては自動的に、即座にスケール・アウトするように高速かつ弾力的に供給され、即座にスケール・インするように高速に解放され得る。消費者に対しては、プロビジョニングに利用可能な能力が、多くの場合無制限であるように見え、いつでも任意の量で購入可能である。
測定されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、アクティブなユーザ・アカウント)に適したある抽象度において計測能力を活用することによって、リソース使用を自動的に制御し、最適化する。リソース使用量は、モニタリング、制御、および報告することができ、利用サービスのプロバイダおよび消費者の両方に透明性がもたらされる。
【0055】
サービス・モデルは、以下の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される能力は、クラウド・インフラ上で実行中のプロバイダのアプリケーションを使用する能力である。アプリケーションは、ウェブ・ブラウザ等のシン・クライアント・インタフェース(例えば、ウェブ・ベースの電子メール)を通して、様々なクライアント・デバイスからアクセス可能である。消費者は、限定されたユーザ固有アプリケーションの構成設定は例外である可能性があるが、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または更には個々のアプリケーション能力を含む、基礎となるクラウド・インフラを管理または制御しない。
サービスとしてのプラットフォーム(PaaS):消費者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して生成された、消費者が作成または取得したアプリケーションを、クラウド・インフラ上に展開する能力である。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラを管理または制御しないが、展開されたアプリケーション、および、場合によっては、アプリケーション・ホスティング環境構成に対して制御を行う。
サービスとしてのインフラ(IaaS):消費者に提供される能力は、処理、ストレージ、ネットワーク、ならびに消費者がオペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを展開および実行することが可能な、他の基本コンピューティング・リソースをプロビジョニングする能力である。消費者は、基礎となるクラウド・インフラを管理または制御しないが、オペレーティング・システム、ストレージ、配置されたアプリケーションに対して制御を行い、かつ場合によっては、選択ネットワーキング・コンポーネント(例えば、ホスト・ファイアウォール)の限定的な制御を行う。
【0056】
展開モデルは、以下の通りである。
プライベート・クラウド:クラウド・インフラは、組織のためだけに動作される。クラウド・インフラは、その組織または第三者によって管理されてもよく、構内または構外に存在し得る。
コミュニティ・クラウド:クラウド・インフラは、いくつかの組織によって共有され、共有の関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラは、その組織または第三者によって管理されてもよく、構内または構外に存在し得る。
パブリック・クラウド:クラウド・インフラは、一般公衆または大きな業界団体に利用可能とされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラは、一意なエンティティのままであるが、データおよびアプリケーション・ポータビリティを可能にする標準化技術または独自技術(例えば、クラウド間のロード・バランシングのためのクラウド・バースティング)によって結合された、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成物である。
【0057】
クラウド・コンピューティング環境は、無国籍、低結合、モジュール性、および意味相互運用性に焦点を当てたサービス指向型である。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラである。
【0058】
ここで、本開示のいくつかの実施形態によるクラウド・コンピューティング環境610を示す
図6を参照する。示すように、クラウド・コンピューティング環境610は、1つまたは複数のクラウド・コンピューティング・ノード600を含む。クラウド・コンピューティング・ノード600は、
図4に示す方法、または
図1~
図3に論考された機能、あるいはその両方を実行することができる。更に、クラウド・コンピューティング環境600は、クラウド消費者によって使用されるローカル・コンピューティング・デバイス、例えば、携帯情報端末(PDA)もしくは携帯電話600A、デスクトップ・コンピュータ600B、ラップトップ・コンピュータ600C、または自動車コンピュータ・システム600N、あるいはそれらの組合せと通信することができる。更に、クラウド・コンピューティング・ノード600は、互いに通信することができる。クラウド・コンピューティング・ノード600はまた、上述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはそれらの組合せ等の、1つまたは複数のネットワーク内で物理的または仮想的にグループ化されてもよい(図示せず)。これによって、クラウド・コンピューティング環境610が、インフラ、プラットフォーム、またはソフトウェア、あるいはそれらの組合せを、クラウド消費者がローカル・コンピューティング・デバイス上でリソースを維持する必要がないサービスとして提案することが可能となる。
図6に示されるコンピューティング・デバイス600A~Nのタイプは、単なる例示であることを意図し、コンピューティング・ノード600およびクラウド・コンピューティング環境610は、任意のタイプのネットワークまたはネットワーク・アドレス可能な接続あるいはその両方を経て(例えば、ウェブ・ブラウザを用いて)、任意のタイプのコンピュータ化デバイスと通信し得ると理解される。
【0059】
ここで
図7を参照すると、本開示のいくつかの実施形態による、クラウド・コンピューティング環境610(
図6)によって提供される機能抽象化モデル層のセットが示されている。
図7に示されるコンポーネント、層、および機能は、単なる例示であることが意図され、本開示の実施形態は、それらに限定されないと、予め理解されるべきである。以下に示すように、以下の層および対応する機能が提供される。
【0060】
ハードウェアおよびソフトウェア層700は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム702、RISC(縮小命令セットコンピュータ)アーキテクチャ・ベース・サーバ704、サーバ706、ブレード・サーバ708、ストレージ・デバイス710、ならびにネットワークおよびネットワーキング・コンポーネント712を含む。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア714およびデータベース・ソフトウェア716を含む。
【0061】
仮想化層720は、仮想エンティティの以下の例、仮想サーバ722、仮想ストレージ724、仮想プライベート・ネットワークを含む仮想ネットワーク726、仮想アプリケーションおよびオペレーティング・システム728、ならびに仮想クライアント730が提供され得る、抽象化層を提供する。
【0062】
1つの例では、管理層740は、後述する機能を提供し得る。リソース・プロビジョニング742は、クラウド・コンピューティング環境内でタスクを実行するために利用される、コンピューティング・リソースおよび他のリソースの動的な調達を提供する。測定および価格設定744は、リソースがクラウド・コンピューティング環境内で利用されるときにコスト追跡を提供し、これらのリソースの消費に対する課金または請求を提供する。1つの例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、データおよび他のリソースについての保護だけでなく、クラウド消費者およびタスクについての本人確認を提供する。ユーザ・ポータル746は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理748は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソース配分および管理を提供する。サービス・レベル管理748は、スタティック・センサ・データを処理するのに適した処理能力およびメモリを配分することができる。サービス水準合意(SLA)計画および遂行750は、SLAに従って将来の要件が予期されるクラウド・コンピューティング・リソースの事前配置および調達を提供する。
【0063】
ワークロード層760は、クラウド・コンピューティング環境が利用され得る機能性の例を提供する。この層から提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション762、ソフトウェア開発およびライフサイクル管理764、仮想クラスルーム教育配信766、データ解析処理768、トランザクション処理770、およびプライベート転移学習マネージャ772を含む。
【0064】
本開示は、統合の任意の可能な技術的詳細レベルにおける、システム、方法またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含むことができる。
【0065】
コンピュータ可読記憶媒体は、命令実行デバイスによって用いるための命令を保持および記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、限定ではないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または上記の任意の適切な組合せとすることができる。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録された溝内の隆起構造等の機械的に符号化されたデバイス、および上記の任意の適切な組合せが含まれる。本明細書において用いられるとき、コンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通じて伝播する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、または配線を介して送信される電気信号等の、一過性の信号自体であると解釈されるべきではない。
【0066】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはワイヤレス・ネットワークあるいはその組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インタフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
【0067】
本開示の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、または、Smalltalk(R)、C++等のオブジェクト指向プログラミング言語および「C」プログラミング言語もしくは同様のプログラム言語等の手続き型プログラミング言語を含む1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアローン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上かつ一部がリモート・コンピュータ上で、または全体がコンピュータもしくはサーバ上で実行されてよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む、任意のタイプのネットワークを介してユーザのコンピュータに接続することができ、または接続は外部コンピュータ(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)に対して行ってもよい。いくつかの実施形態では、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行することができる。
【0068】
本開示の態様について、本開示の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら本明細書において説明している。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されよう。
【0069】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実施する手段を作り出すように、コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作の態様を実施する命令を含む製造品を含むように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに対して特定の方式で機能するように指示できるものであってもよい。
【0070】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ実施プロセスを作り出すべくコンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の演算ステップを実行させるものであってもよい。
【0071】
図中のフローチャートおよびブロック図は、本開示の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能性および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、指定される論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表すことができる。いくつかの代替の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、関与する機能性に応じて、1つのステップとして達成されてもよく、同時に実行されてもよく、一部または全体が時間的に重複した方式で実質的に同時に実行されてもよく、またはそれらのブロックは場合によっては逆の順序で実行されてもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定される機能または動作を実行するか、あるいは専用ハードウェアとコンピュータ命令との組合せを遂行する専用ハードウェア・ベースのシステムによって実施され得ることにも留意されたい。
【国際調査報告】