(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-16
(45)【発行日】2022-12-26
(54)【発明の名称】信頼できる実行環境を使用するプライバシー強化深層学習クラウド・サービス
(51)【国際特許分類】
G06F 21/62 20130101AFI20221219BHJP
G06F 21/60 20130101ALI20221219BHJP
G06F 21/53 20130101ALI20221219BHJP
G06N 3/08 20060101ALI20221219BHJP
【FI】
G06F21/62 345
G06F21/60 320
G06F21/53
G06N3/08
(21)【出願番号】P 2020558008
(86)(22)【出願日】2019-06-24
(86)【国際出願番号】 EP2019066636
(87)【国際公開番号】W WO2020002210
(87)【国際公開日】2020-01-02
【審査請求日】2021-10-28
(32)【優先日】2018-06-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】グ、ションシュ
(72)【発明者】
【氏名】ハン、ヘキン
(72)【発明者】
【氏名】チャン、ジアロン
(72)【発明者】
【氏名】スー、ドン
(72)【発明者】
【氏名】ペンダラキス、ディミトリオス
(72)【発明者】
【氏名】モロイ、イアン、マイケル
【審査官】局 成矢
(56)【参考文献】
【文献】国際公開第2018/011842(WO,A1)
【文献】国際公開第2018/008605(WO,A1)
【文献】特開2018-005317(JP,A)
【文献】米国特許出願公開第2018/0129900(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 21/60
G06F 21/53
G06N 3/08
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサおよび少なくとも1つのメモリを備えているデータ処理システムにおける方法であって、前記少なくとも1つのメモリが、プライバシーが強化された深層学習システム・フレームワークを実装するように前記少なくとも1つのプロセッサを構成するために、前記少なくとも1つのプロセッサによって実行される命令を含んでおり、前記方法が、
前記プライバシーが強化された深層学習システム・フレームワークによって、ニューラル・ネットワークの暗号化された第1のサブネット・モデルをクライアント・コンピューティング・デバイスから受信することであって、前記第1のサブネット・モデルが、前記ニューラル・ネットワークの複数のパーティションのうちの1つのパーティションである、前記受信することと、
前記プライバシーが強化された深層学習システム・フレームワークによって、前記暗号化された第1のサブネット・モデルを前記プライバシーが強化された深層学習システム・フレームワークの信頼できる実行環境に読み込むことと、
前記プライバシーが強化された深層学習システム・フレームワークによって、前記信頼できる実行環境内の前記第1のサブネット・モデルを暗号解読し、前記信頼できる実行環境内の前記第1のサブネット・モデルを実行することと、
前記プライバシーが強化された深層学習システム・フレームワークによって、暗号化された入力データを前記クライアント・コンピューティング・デバイスから受信することと、
前記プライバシーが強化された深層学習システム・フレームワークによって、前記暗号化された入力データを前記信頼できる実行環境に読み込むことと、
前記プライバシーが強化された深層学習システム・フレームワークによって、前記信頼できる実行環境内で実行される前記第1のサブネット・モデルを使用して、前記信頼できる実行環境内の前記入力データを暗号解読して処理することと
を含む、方法。
【請求項2】
前記ニューラル・ネットワークが少なくとも前記第1のサブネット・モデルおよび第2のサブネット・モデルに分割され、前記第1のサブネット・モデルが、前記ニューラル・ネットワークの入力層およびニューラル・ネットワーク・モデルの1つまたは複数の中間層を含むFrontNetサブネット・モデルであり、前記第2のサブネット・モデルが、前記ニューラル・ネットワークの出力層および前記ニューラル・ネットワーク・モデルの1つまたは複数の中間層を含むBackNetサブネット・モデルである、請求項1に記載の方法。
【請求項3】
前記FrontNetサブネット・モデルに含まれる最後の中間層を示す前記ニューラル・ネットワーク内の分割点が、前記ニューラル・ネットワークへの入力に対応する機密情報を中間表現出力が含んでいない中間層として選択され、前記ニューラル・ネットワークのその後の中間層および前記出力層が前記BackNetサブネット・モデルに含まれる、請求項2に記載の方法。
【請求項4】
前記ニューラル・ネットワークを分割する前記ニューラル・ネットワーク内の最適な分割点を識別する自動分割ツールを使用して、前記ニューラル・ネットワークが自動的に分割され、前記最適な分割点が、前記ニューラル・ネットワークを分割する中間層を識別する、請求項2に記載の方法。
【請求項5】
前記信頼できる実行環境内で実行される前記第1のサブネット・モデルを使用する前記信頼できる実行環境内の前記入力データの前記処理が、前記入力データの処理の1つまたは複数の中間表現を生成し、前記方法が、
前記1つまたは複数の中間表現を前記ニューラル・ネットワークの第2のサブネット・モデルに入力することと、
前記1つまたは複数の中間表現を処理して結果データを生成することと、
前記結果データを出力することと
をさらに含む、請求項1に記載の方法。
【請求項6】
前記第2のサブネット・モデルが、前記信頼できる実行環境の外部で実行される、請求項5に記載の方法。
【請求項7】
前記結果データが、N個の異なる可能性のあるクラスにわたる確率分布を表すN次元実数値ベクトルであり、前記方法が、前記N次元実数値ベクトルから、対応する確率値を有する上位k個のクラスを選択し、前記クライアント・コンピューティング・デバイスに返すことをさらに含む、請求項5に記載の方法。
【請求項8】
前記結果データに基づいて深層学習動作を実行するために、前記結果データが
他の深層学習システムに出力される、請求項5に記載の方法。
【請求項9】
前記深層学習動作が深層学習画像認識動作であり、前記入力データが入力画像であり、前記結果データが、複数の事前に定義されたクラスのうちの1つへの前記入力画像の分類である、請求項8に記載の方法。
【請求項10】
前記信頼できる実行環境が、前記信頼できる実行環境の外部からの前記暗号解読された第1のサブネット・モデルおよび暗号解読された入力データへのアクセスを防ぐ、請求項1に記載の方法。
【請求項11】
請求項1~10の何れか1項に記載の方法を、コンピュータに実行させる、コンピュータ・プログラム。
【請求項12】
請求項11に記載の前記コンピュータ・プログラムをコンピュータ可読ストレージ媒体に記憶した、ストレージ媒体。
【請求項13】
請求項1~10の何れか1項に記載の方法を、コンピュータ・ハードウェアによる手段として構成した、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、一般に、改良されたデータ処理装置および方法に関し、より詳細には、信頼できる実行環境を利用することによって、深層学習クラウド・サービスにおけるデータのプライバシーを強化するためのメカニズムに関する。
【0002】
深層学習システムは、認知的作業を実行するときに人間の性能に近づくことができるため、人工知能(AI:artificial intelligence)サービスの一部として広く展開されている。深層学習は、非線形処理ユニットの複数の層の連鎖を特徴抽出および変換に使用する機械学習技術の一種である。連続する各層は、入力の前の層からの出力を使用する。深層学習システムは、教師あり(例えば、分類)学習メカニズムまたは教師なし(例えば、パターン解析)学習メカニズムあるいはその両方を使用してトレーニングされる。この学習は、異なるレベルの抽象化に対応する複数のレベルの表現に関して実行されてよく、これらのレベルは概念の階層を形成する。
【0003】
最新の深層学習モデルは、人工ニューラル・ネットワークに基づくが、ディープ・ビリーフ・ネットワーク内のノードおよび深層ボルツマン・マシンなどの深層生成モデルにおいて層ごとに構造化された、命題式または潜在的変数を含むこともできる。深層学習では、各レベルが、その入力データをさらに少し抽象的な合成表現に変換するように学習する。顔画像認識アプリケーションでは、例えば、生の入力は、ピクセルを抽象化し、エッジをエンコードする第1の表現層、エッジの配置を構成してエンコードする第2の層、鼻および目をエンコードする第3の層、および画像が顔を含んでいるということを認識する第4の層を含む、ピクセルの行列であってよい。重要なことに、深層学習プロセスは、どの特徴をそれ自身のどのレベルに最適に配置するべきかを学習することができるが、ハンド・チューニングの必要性を完全になくすわけではない。例えば、異なる抽象度を提供するように、層の数および層のサイズを変えるために、ハンド・チューニングが使用されることがある。
【0004】
「深層学習」の「深層」とは、データが変換される際に通る層の数のことを指す。さらに正確には、深層学習システムは、実質的なクレジット割当てパス(CAP:credit assignment path)の深さを含む。CAPは、入力から出力への変換のチェーンである。CAPは、入力と出力との間の因果関係を説明する可能性がある。フィードフォワード・ニューラル・ネットワークの場合、CAPの深さは、ネットワークの深さであり、(出力層もパラメータ化されるため)隠れ層の数に1を加えた値である。信号が1つの層を2回以上通って伝搬することがある回帰型ニューラル・ネットワークの場合、CAPの深さは、無制限になる可能性がある。浅い学習を深層学習から分ける深さのしきい値に関して一般に合意されず、ほとんどの研究者は、深層学習が2を超えるCAPの深さを含むということに合意している。深さ2のCAPは、どの機能もエミュレートすることができるという意味で、普遍的近似になるということが示されている。深さ2を超える、より多くの層は、ネットワークの機能の近似の能力を増やさないが、追加の層は、特徴を学習することに役立つ。
【発明の概要】
【0005】
この「発明の概要」は、概念の選択を簡略化された形態で導入するために提供されており、本明細書の「発明を実施するための形態」において、さらに説明される。この「発明の概要」は、請求される対象の重要な要因または不可欠な特徴を識別するよう意図されておらず、請求される対象の範囲の限定に使用されることも意図されていない。
【0006】
1つの実施形態例では、少なくとも1つのプロセッサおよび少なくとも1つのメモリを備えているデータ処理システムにおける方法であって、少なくとも1つのメモリが、プライバシーが強化された深層学習システム・フレームワークを実装するように少なくとも1つのプロセッサを構成するために、少なくとも1つのプロセッサによって実行される命令を含んでいる。この方法は、プライバシーが強化された深層学習システム・フレームワークによって、ニューラル・ネットワークの暗号化された第1のサブネット・モデルをクライアント・コンピューティング・デバイスから受信することを含む。ここで、第1のサブネット・モデルは、ニューラル・ネットワークの複数のパーティションのうちの1つのパーティションである。この方法は、プライバシーが強化された深層学習システム・フレームワークによって、暗号化された第1のサブネット・モデルをプライバシーが強化された深層学習システム・フレームワークの信頼できる実行環境に読み込むことをさらに含む。さらに、この方法は、プライバシーが強化された深層学習システム・フレームワークによって、信頼できる実行環境内の第1のサブネット・モデルを暗号解読することと、信頼できる実行環境内の第1のサブネット・モデルを実行することとを含む。加えて、この方法は、プライバシーが強化された深層学習システム・フレームワークによって、暗号化された入力データをクライアント・コンピューティング・デバイスから受信することと、プライバシーが強化された深層学習システム・フレームワークによって、暗号化された入力データを信頼できる実行環境に読み込むこととを含む。さらに、この方法は、プライバシーが強化された深層学習システム・フレームワークによって、信頼できる実行環境内で実行される第1のサブネット・モデルを使用して、信頼できる実行環境内の入力データを暗号解読して処理することを含む。
【0007】
他の実施形態例では、コンピュータ可読プログラムを含んでいるコンピュータ使用可能媒体またはコンピュータ可読媒体を備えているコンピュータ・プログラム製品が提供される。このコンピュータ可読プログラムは、コンピューティング・デバイス上で実行された場合、コンピューティング・デバイスに、方法の実施形態例に関して上で概説された動作のうちのさまざまな動作およびその組合せを実行させる。
【0008】
さらに別の実施形態例では、システム/装置が提供される。このシステム/装置は、1つまたは複数のプロセッサおよび1つまたは複数のプロセッサに結合されたメモリを備えてよい。このメモリは命令を含んでよく、これらの命令は、1つまたは複数のプロセッサによって実行された場合、1つまたは複数のプロセッサに、方法の実施形態例に関して上で概説された動作のうちのさまざまな動作およびその組合せを実行させる。
【0009】
本発明の実施形態例の以下の詳細な説明を考慮して、そのような詳細な説明の中で、本発明のこれらおよびその他の特徴および優位性が説明され、または当業者にとって明らかになるであろう。
【0010】
本発明ならびに本発明の最もよく使われる使用方法とその他の目的、および優位性は、実施形態例の以下の詳細な説明を、添付の図面と一緒に読みながら参照することによって、最も良く理解されるであろう。
【図面の簡単な説明】
【0011】
【
図1】一実施形態例に従って、プライバシー強化深層学習クラウド・サービスにおいてプライバシー強化深層ニューラル・ネットワーク(DNN:deep neural network)の分類を実装するためのアルゴリズムを概説する例示的な図である。
【
図2】一実施形態例に従って、プライバシー強化深層学習クラウド・サービスの複数のコンポーネント間の例示的な相互作用を概説するブロック図である。
【
図3】一実施形態例に従って、自動分割ツールのニューラル・ネットワーク評価フレームワークの二重の畳み込みニューラル・ネットワーク・アーキテクチャを示す例示的な図である。
【
図4】実施形態例の態様が実装されてよい例示的な分散データ処理システムの図的表現を示す図である。
【
図5】実施形態例の態様が実装されてよい1つの例示的なデータ処理システムのブロック図である。
【
図6】一実施形態例に従って、プライバシー強化深層学習クラウド・コンピューティング・サービスを構成して利用するための例示的な動作を概説するフローチャートである。
【
図7】本発明の実施形態に従ってクラウド・コンピューティング環境を示す図である。
【
図8】本発明の実施形態に従って抽象モデル・レイヤを示す図である。
【発明を実施するための形態】
【0012】
深層学習(または人工知能(AI))システムおよびサービスは、深層学習システムをそれらのバックエンドのエンジンの一部として利用するが、評判の良い深層学習またはAIサービス・プロバイダの場合でも、エンド・ユーザのプロビジョニングされる入力データの機密性に関する懸念がまだ存在する。すなわち、セキュリティ違反、悪用された脆弱性、怠慢、または内部関係者に起因して、機密ユーザ・データの偶発的な開示が予期せずに発生する可能性があるという懸念が存在する。
【0013】
深層学習(またはAI)クラウド・プロバイダは、典型的には、2つの独立した深層学習(DL:deep learning)サービス、すなわち、トレーニングおよび推論を提供する。エンド・ユーザは、自分のトレーニング・データをトレーニング・サービスに供給することによって、カスタマイズされたDLモデルを最初から構築することができる。エンド・ユーザが十分なトレーニング・データを所有していない場合、エンド・ユーザは、類似するタスクを対象にする既存のモデルを再利用して再トレーニングするために、転移学習手法を活用することもできる。エンド・ユーザは、自分のトレーニング済みモデルを取得した後に、そのモデルを深層ニューラルネットワーク(DNN)のハイパーパラメータおよび重みの形態で推論サービス(トレーニング・サービスの時点では、異なるAIサービス・プロバイダによってホストされてよい)にアップロードし、自分のAIクラウド・アプリケーション・プログラミング・インターフェイス(API:application programming interfaces)をブートストラップすることができる。これらのAPIは、モバイル・アプリケーションまたはデスクトップ・アプリケーションにさらに統合され得る。実行時に、エンド・ユーザは、自分の入力データを使用してリモートAPIを呼び出し、予測結果を推論サービスから受信することができる。
【0014】
エンド・ユーザは、サービス・プロバイダが、信頼することができ、頼ることができるというということを常に期待するが、エンド・ユーザの入力データのプライバシーに関して、まだ懸念を抱いていることがある。悪意ある攻撃、怠慢なシステム管理者による誤操作、または内部関係者によって行われたデータ窃盗に起因して、機密データの偶発的な開示が予期せずに発生する可能性がある。昇格した権限を有する敵対者は、機密データをディスク(保存データ)から、またはメイン・メモリ(実行時のデータ)から抽出できることがある。近年、このような種類の多数のデータ漏洩が観察されている。AIクラウド・サービスのユーザ入力データにも、同様の事件が発生する可能性がある。加えて、深層学習は、手作りの特徴とは対照的に、画像、音声、およびビデオなどの生の入力データを処理するということによって差別化されることが多い。このことは、入力データが漏洩または侵害されるかどうかというプライバシーに関する懸念をさらに引き起こす。
【0015】
実施形態例は、深層学習システム(深層学習推論パイプラインとも呼ばれる)における機密情報開示を軽減するためのプライバシー強化メカニズムを提供する。実施形態例は、深層学習推論パイプラインをFrontNetニューラル・ネットワーク・モデル(本明細書では「FrontNet」と呼ばれる)およびBackNetニューラル・ネットワーク・モデル(本明細書では「BackNet」と呼ばれる)に分割し、クラウド・インフラストラクチャ上で信頼できる実行環境手法を活用して、FrontNetモデルにおいて、ユーザ入力の機密性および完全性を暗号によって保護する。実施形態例は、ユーザがFrontNetとBackNetとの間の分割点を定義できるようにする。一部の実施形態例では、ユーザ入力のプライバシー保護と深層学習推論パイプラインの性能要件との間にバランスが存在するように、FrontNetとBackNetとの間の分割点の自動決定を可能にする、自動メカニズムが提供される。実施形態例の得られたプライバシー強化メカニズムは、許容できる性能オーバーヘッドを伴って、最大のプライバシー保証を実現する。
【0016】
深層学習推論パイプライン(または深層学習ニューラル・ネットワーク)の層状構造に基づいて、実施形態例は、深層学習ニューラル・ネットワークを、前述したように、各々がFrontNetおよびBackNetと呼ばれる2つの独立したサブネット・モデルに分割する。数学的には、深層ニューラル・ネットワーク(DNN)は、入力xを出力yにマッピングする関数F*(すなわち、y=F*(x;θ))として定義することができ、ここでθは、DNNをトレーニングするときにトレーニング段階において学習されるパラメータを表す。関数F*は、n個(ネットワークがn個の層を含んでいると仮定する)の副関数Diから成り、ここで、i∈[1,n]である。Fiは、層iでの入力xiを出力yiにマッピングする。これらの副関数は、チェーンで接続される。したがって、y=F*(x;θ)=FnFn-1...F1(x)である。m∈[1,n]である場合、第mの層でDNNを分割した後に、FrontNetサブネット・モデルの関数をΦ:X→IRとして表すことができる。Xは、特定の深層ニューラル・ネットワークに適用可能な入力空間であり、IRは、中間表現(IR:intermediate representations)の出力空間である。IR=Φ(x;θΦ)=FmFm-1...F1(x)およびその出力IRは、FrontNetサブネット・モデルから計算された中間表現(中間特徴マップ)である。BackNetサブネット・モデルの関数λはλ(IR;θλ)=FnFn-1...Fm+1(IR)であり、ここでIRは、FrontNetサブネット・モデルからBackNetサブネット・モデルへの入力である。
【0017】
FrontNetサブネット・モデルへのエンド・ユーザの入力に対する不正アクセスを獲得しようとし得る敵対者は、元の機密の入力xを再構築するために、何らかの背景的知識Bを持っている可能性があるということが仮定される。背景的知識は、(1)ユーザ入力の専門知識(例えば、入力ファイルの種類、自然画像事前分布(natural image priors))、(2)確率行列P={...,pij,...}によって表すことができるxのすべてのビットの分布の知識を含み、ここでpijは、xの第iのビットが値jを取る確率であり、1≦i≦|x|およびj∈Ωであり、ここでΩはエンコーディング・アルファベット(encoding alphabet)であり、∀i,Σjpij=1である。
【0018】
敵対者は、IR∈xのIR、および背景的知識Bを前提として、推論の入力xを再構築することを目指している。敵対者は、xの再構成済みバージョンである
【数1】
(以降xティルドと記載する)
を返すための攻撃戦略Aを考案することができる。攻撃戦略Aは、中間表現を視覚化的に認識することから、逆モデルを近似することによって高度な入力再構築手法を活用することにまで、及ぶことがある。FrontNetサブネット・モデルの表現関数Φ(.)は、攻撃A、背景的知識B、および次の中間表現IRが存在する場合に、xのε-プライバシーを侵害すると見なされる。
【0019】
【数2】
ここで、εは、IRを観察する前後でのxとxティルドとの間の距離の境界を示すためのプライバシー・パラメータであり、ε∈[0 1]である。distは、元の入力xと再構築された入力xティルドとの間の距離を測定する。具体的には、
【数3】
は、敵対者の背景的知識Bのみに基づいてxティルドが再構築されると見なし、一方
【数4】
では、敵対者の背景的知識Bおよび観察されたIRの両方に基づいてxティルドが再構築される。方程式1は、敵対者がxの中間表現IRを取得した後に、xティルドとxとの間の距離を大幅に減らすことができる場合に、真の推論の入力xのプライバシーが侵害されるということを示している。
【0020】
上で定義されているように、FrontNetサブネット・モデルの表現関数はIR=Φ(x;θΦ)であり、BackNetはy*=λ(Φ(x;θΦ);θλ)である。ネットワークの分割に従って、元のDNNのパラメータθがθΦおよびθλに分割される。FrontNetサブネット・モデルの出力形状は、対応するBackNetサブネット・モデルの入力形状と互換性がある。IRは、FrontNetサブネット・モデルの出力として配信され、結果y*を取得するための計算を続行する後続のBackNetサブネット・モデルへの入力になる。同じ入力xを前提として、y*が、分割前の元のDNNの出力であるyと同等になるべきであるということが期待される。
【0021】
クラウド側で、FrontNetサブネット・モデル(または単に「FrontNet」)およびエンド・ユーザからの入力が信頼できる実行環境(TEE:Trusted Execution Environment)に読み込まれ、信頼できる実行環境は、安全なリモート計算のための保護されたメモリの機密性、完全性、および鮮度を保証することができる。1つの実施形態例では、TEEは、Intel SGX enclaveの実装によって提供され得る。しかし、実施形態例は、例えば、SGX enclaveに限定されず、IBM Power SystemsのProtected Execution Facility、およびIBM Z SystemsのSecure Service Container、ARM TrustZone、ならびにAMD Secure Memory EncryptionおよびSecure Encrypted Virtualizationなどの、任意の適切なTEEを使用して実装され得る。TEEのメモリ・アクセス制御メカニズムおよびメモリ暗号化エンジン(MEE:memory encryption engine)が保護され、特権を持つシステム・ソフトウェアまたはシステムのその他の信頼できないコンポーネントからのすべての非TEEアクセスが、拒否される。したがって、FrontNetでのユーザ入力の計算プロセスが、特定のCPUパッケージの境界内に保たれ、外界から見えなくなる。TEE内の計算は、TEEの外部で実行されている相手方と同じ動作のみを示して、当然ながらまだ、特定の推論タスクのために特徴を抽出することに専念する。さらに、TEEは、リモートの関係者(すなわち、AIクラウド・サービスのエンド・ユーザ)に対して、信頼できるハードウェア・プラットフォームによってホストされている安全な環境内でFrontNetが実行されているということを、証明することができる。
【0022】
ユーザ入力の内容を、クラウド・サーバ上で公開されることから保護するために、エンド・ユーザは、自分の対称鍵を使用して入力を暗号化し、暗号化されたファイルをクラウド・サービスにアップロードしてよい。TEEでのリモートの証明の終了後に、エンド・ユーザは、安全な通信チャネルを介して、対称鍵をTEEにプロビジョニングすることができる。次に、TEE内のメカニズムが、ユーザ入力を暗号解読し、この入力を、同じTEEに読み込まれているFrontNetサブネット・モデルに渡す。加えて、実施形態例は、認証された暗号化を実現するために、例えばガロア・カウンタ・モード(GCM:Galois Counter Mode)または種々のその他の認証された暗号化メカニズムのうちのいずれかなどの、認証された暗号化メカニズムを活用してよい。したがって、実施形態例は、正規のエンド・ユーザを認証し、サービスを悪用する攻撃を無効にすることができる。TEEによって実装されているFrontNetサブネット・モデルをブラックボックス・サービスとして扱い、照会を使用してモデル情報を抽出する傾向がある敵対者は、正規のエンド・ユーザからの適切な対称鍵を使用して自分の入力を暗号化する必要がある。エンド・ユーザの鍵が漏洩していないと仮定すると、実施形態例は、完全性チェックに失敗するこれらの違法な要求に応えることを拒否し、ユーザ入力の再構築にとって極めて重要であると考えられるFrontNetサブネット・モデル情報の漏洩を防ぐことができる。TEE内のFrontNetサブネット・モデルの暗号化および実装を介してユーザ入力およびFrontNetサブネット・モデルの両方の機密性を保護することによって、すべての最先端の入力再構築方法は、無効になるであろう。
【0023】
実施形態例のさまざまな態様の説明を開始する前に、この説明全体にわたって、「メカニズム」という用語が、さまざまな動作、および機能などを実行する本発明の要素を指すために使用されるということが、最初に理解されるべきである。「メカニズム」は、この用語が本明細書において使用されるとき、装置、手順、またはコンピュータ・プログラム製品の形態での、実施形態例の機能または態様の実装であってよい。手順の場合、この手順は、1つまたは複数のデバイス、装置、コンピュータ、またはデータ処理システムなどによって実装される。コンピュータ・プログラム製品の場合、特定の「メカニズム」に関連付けられた機能を実装するため、または特定の「メカニズム」に関連付けられた動作を実行するために、コンピュータ・プログラム製品内またはコンピュータ・プログラム製品上で具現化されたコンピュータ・コードまたは命令によって表されたロジックが、1つまたは複数のハードウェア・デバイスによって実行される。したがって、本明細書に記載されたメカニズムは、特殊なハードウェア、汎用ハードウェア上で実行されるソフトウェア、命令が特殊なハードウェアまたは汎用ハードウェアによって容易に実行可能になるように媒体に格納されたソフトウェア命令、機能を実行するための手順または方法、あるいはこれらのいずれかの組合せとして実装され得る。
【0024】
本説明および特許請求の範囲では、実施形態例の特定の特徴および要素に関して、「1つの」、「~のうちの少なくとも1つ」、および「~のうちの1つまたは複数」という用語を使用することがある。これらの用語および語句が、特定の実施形態例に存在する特定の特徴または要素のうちの少なくとも1つが存在するが、2つ以上が存在する可能性もあるということを述べるよう意図されているということが、理解されるべきである。すなわち、これらの用語/語句は、説明または特許請求の範囲を、存在している単一の特徴/要素に限定するよう意図されておらず、そのような特徴/要素が複数存在することを必要とするようにも意図されていない。反対に、これらの用語/語句は、少なくとも単一の特徴/要素のみを必要とし、そのような特徴/要素は、説明および特許請求の範囲内に複数存在する可能性がある。
【0025】
さらに、「エンジン」という用語の使用が、本発明の実施形態および特徴を説明することに関して本明細書において使用された場合、エンジンに起因するか、またはエンジンによって実行されるか、あるいはその両方である動作、ステップ、プロセスなどを実現するため、または実行するため、あるいはその両方のためのいずれかの特定の実装を制限するよう意図されていないということが、理解されるべきである。エンジンは、機械可読メモリに読み込まれるか、または格納されて、プロセッサによって実行される適切なソフトウェアと組み合わせた一般的なプロセッサまたは特殊なプロセッサあるいはその両方の任意の使用を含むが、これらに限定されない、指定された機能を実行するソフトウェア、ハードウェア、またはファームウェア、あるいはその組合せであってよいが、これらに限定されない。さらに、特定のエンジンに関連付けられたすべての名前は、特に指定されない限り、参照の便宜のためであり、特定の実装を制限するよう意図されていない。さらに、あるエンジンに起因する任意の機能が、同じ種類または異なる種類の別のエンジンの機能に組み込まれるか、もしくは結合されるか、またはその両方が行われるか、あるいはさまざまな構成の1つまたは複数のエンジンにわたって分散されて、複数のエンジンによって同じように実行され得る。
【0026】
加えて、以下の説明では、実施形態例の種々の要素の複数のさまざまな例を使用して、実施形態例の例示的な実装をさらに説明し、実施形態例のメカニズムの理解を助けているということが、理解されるべきである。これらの例は、非限定的であるよう意図されており、実施形態例のメカニズムの実装のさまざまな可能性を網羅していない。本説明を考慮して、これらの種々の要素に関して、本発明の思想および範囲から逸脱することなく、本明細書において提供された例に加えて、またはそれらの例を置き換えて利用できる、多くのその他の代替の実装が存在するということが、当業者にとって明らかであろう。
【0027】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいる1つまたは複数のコンピュータ可読ストレージ媒体を含んでよい。
【0028】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタルバーサタイルディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組合せを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を介して伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0029】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組合せ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備え得る。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0030】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Java(R)、Smalltalk(R)、またはC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードのいずれかであってよい。このコンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上で部分的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われ得る。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行し得る。
【0031】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組合せが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0032】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示できるものであってもよい。
【0033】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれ、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で一連の動作可能なステップを実行させるものであってもよい。
【0034】
図内のフローチャートおよびブロック図は、本発明の種々の実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、1つまたは複数の規定されたロジック機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表し得る。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生し得る。例えば、連続して示された2つのブロックは、実際には、含まれている機能に依って、実質的に同時に実行されるか、または場合によっては逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0035】
図1および
図2は、一実施形態例に従ってプライバシー強化深層学習クラウド・サービスの一実施形態例を示す例示的な図である。
図1は、一実施形態例に従って、プライバシー強化深層学習クラウド・サービスにおいてプライバシー強化深層学習ニューラル・ネットワーク(DNN)の分類を実装するためのアルゴリズムを概説する例示的な図である。
図2は、一実施形態例に従って、プライバシー強化深層学習クラウド・サービスの複数のコンポーネント間の例示的な相互作用を概説するブロック図である。以下では、一実施形態例に従って、プライバシー強化深層学習クラウド・サービスの例示的な動作が
図1および
図2の両方を参照して説明される。
【0036】
図1および
図2に示されているように、プライバシー強化深層学習クラウド・サービスの実施形態例のワークフローは、クライアント・コンピューティング・デバイス側(
図2の左側)で、エンド・ユーザが、暗号化された入力および事前トレーニング済みモデル200の両方を、対称鍵暗号化またはその他の暗号化方法を使用して暗号化された元のFrontNetサブネット・モデル105と共に提供し、それによって、暗号化されたFrontNetサブネット・モデル210を生成することを含む。
図2は、クライアント側の動作を暗号化されたFrontNetサブネット・モデル210および暗号化された入力データをプライバシー強化深層学習クラウド・サービス(
図2の右側)に提供することのみとして示しているが、これは、BackNetサブネット・モデル220がクライアント側の動作によってすでに提供され、プライバシー強化深層学習クラウド・サービスのサーバ・コンピューティング・デバイスに読み込まれている実施形態を仮定しているということに、注意するべきである。前述したように、BackNetサブネット・モデル220が暗号化される必要がないということが、理解されるべきである。
【0037】
したがってエンド・ユーザは、事前トレーニング済み深層学習モデル200(例えば、DNNまたはその他のAIモデル)を、FrontNetサブネット・モデル210およびBackNetサブネット・モデル220に分割する。事前トレーニング済み深層学習モデル(例えば、DNNまたはその他のAIモデル)が分割される点は、クライアント・コンピューティング・デバイスを介してエンド・ユーザによって手動で決定されるか、またはクライアント・コンピューティング・デバイス上で実行される自動メカニズム(後述される実施形態例の自動分割メカニズムなど)によって決定され得る。FrontNetサブネット・モデル210は、秘密に保たれ、エンド・ユーザに関連付けられた対称鍵を使用して暗号化される(
図2のステップ1)。前述したように、BackNetサブネット・モデル220は、そのような秘密および暗号化によって保護される必要がなく、代わりにBackNetサブネット・モデル220の構成および重みが、プライバシー強化深層学習クラウド・サービスのプロバイダと共有され得る。しかし、一部の実施形態例では、BackNetサブネット・モデル220は、秘密に維持され、同じ対称鍵または別の暗号鍵もしくは暗号化方法を使用して暗号化されてもよい。示された例では、BackNetサブネット・モデル220は、性能上の制約のため、秘密ではなく、暗号化されず、または信頼できる実行環境(TEE)230内で実行されない。しかし、これらの性能上の制約が取り除かれるか、または緩和された場合、FrontNetサブネット・モデル210と同様の方法で、BackNetサブネット・モデル220のパラメータ・データが保護されることも可能である。通信中のBackNetサブネット・モデル220および保存されているBackNetサブネット・モデル220を保護するために、標準的な暗号化メカニズムおよびプロトコルが使用され得る。
【0038】
したがって、一部の実施形態例では、TEE230内で深層ニューラル・ネットワーク全体が暗号化されて実行され得る。示された実施形態例では、(1)TEE230のメモリ・サイズ制限、(2)TEE230でのコード実行の追加の性能オーバーヘッド、および(3)TEE230内に(最適な分割点を超えて)より多くの層を取り囲むことによる追加のプライバシーの恩恵がないことのため、深層ニューラル・ネットワーク(DNN)が分割される。さらに、実施形態例では、TEE230の外部でBackNetサブネット・モデル220を実行することによって、フレームワークは、AIアクセラレーテッド・ハードウェア(AI-accelerated hardware)(例えば、GPU)を活用して深層学習の性能を向上させることを可能にする。
【0039】
FrontNetサブネット・モデル210に加えて、エンド・ユーザは、クライアント・コンピューティング・デバイスで、対称鍵を使用して元の入力212も暗号化し、TEE230内で実行される暗号化されたFrontNetサブネット・モデル210によって処理するために、プライバシー強化深層学習クラウド・サービスのサーバ・コンピューティング・デバイスに送信するための暗号化された入力214を生成する(
図2のステップ1)。示された例では、
図2に示されている例示的な入力が、元の画像212であり、これはその後、対称鍵を使用して暗号化され、暗号化された画像214を生成し、この暗号化された画像214がプライバシー強化深層学習クラウド・サービスのサーバ・コンピューティング・システム(以下では、単に深層学習クラウド・サービスと呼ぶ)に実際に安全に送信されるように、プライバシー強化深層学習クラウド・サービスが画像分類サービスを提供するということが仮定される。
【0040】
エンド・ユーザは、クライアント・コンピューティング・デバイスを介して、暗号化されたFrontNetサブネット・モデル210をクラウド上の深層学習クラウド・サービスにアップロードする(
図2のステップ2)。エンド・ユーザは、深層学習クラウド・サービスを開始するために、暗号化されたFrontNetサブネット・モデル210を深層学習クラウド・サービスに1回だけ提供する必要がある。FrontNetサブネット・モデル210を提供した後に、深層学習クラウド・サービスが、FrontNetサブネット・モデル210をTEE230に読み込み、TEE230が、暗号化された入力を処理するために安全な方法で実行される。このようにして、エンド・ユーザは、深層学習クラウド・サービスによって処理するために、クライアント・コンピューティング・デバイスを介して暗号化された入力214を継続的にアップロードすることができ、例えば、画像分類用の複数の暗号化された画像をアップロードすることができる。
【0041】
クラウド側で、暗号化された入力214および暗号化されたFrontNetモデル210を受信した後に、プライバシー強化深層学習クラウド・サービスが、信頼できる実行環境(TEE)230をインスタンス化する。1つの実施形態例では、
図1に示されているように、TEE230は、
図1に示されている疑似コードの行17でコマンドINIT ENCLAVEを使用して開始されるIntel SGX enclaveであり、暗号化されたFrontNetサブネット・モデル210をenclave(TEE230)に読み込む(
図1の行18でのENCLAVE_LOAD_ENC_MODEL)(
図2のステップ3)。深層学習クラウド・サービスは、深層学習クラウド・サービスのAPI関数(例えば、この実施形態例では、画像分類API関数)を呼び出し(
図1の行19でのENCLAVE_INFERENCE_ENC_IMG)、暗号化された入力214を関数の引数としてenclave(TEE230)に安全にコピーする。
【0042】
エンド・ユーザは、クライアント・コンピューティング・デバイスおよびTEE230(例えば、SGX enclave)を介して、リモートの証明手順を実行し得る(
図2のステップ4)。TEE230(例えば、SGX enclave)は、エンド・ユーザに対して、標準的な証明プロトコルを使用して、信頼できるクラウド・サービス・プロバイダからの正規のコード/データを使用して信頼できるハードウェア・プラットフォーム上で実行しているということを、証明することができる。代替として、エンド・ユーザのクライアント・コンピューティング・デバイスとTEE230との間で、トランスポート層セキュリティ(TLS:Transport Layer Security)セッションが直接インスタンス化され得る。
【0043】
安全なトランスポート層セキュリティ(TLS)通信チャネルの作成後に、エンド・ユーザは、クライアント・コンピューティング・デバイスを介して、クラウド上で対称鍵をTEE230に直接プロビジョニングすることができる(
図1の行5でのENCLAVE_GET_KEYS)(
図2のステップ5)。TEE230内で、例えば、GCM認証タグをチェックすることによって、またはその他の認証/検証動作を実行することによって、FrontNetサブネット・モデル210および入力214の両方の完全性が検証され、エンド・ユーザからプロビジョニングされた対称鍵を使用して、入力214と共に(
図1の行10でのENCLAVE_DECRYPT)FrontNetサブネット・モデル210が暗号解読される(
図1の行6でのENCLAVE_DECRYPT)(
図2のステップ6)。
【0044】
深層学習クラウド・サービスのサーバ・コンピューティング・システムで、FrontNetサブネット・モデル210に基づいて深層ニューラル・ネットワーク235が構築され(
図1の行7でのENCLAVE_LOAD_WEIGHTS)、深層ニューラル・ネットワーク235に、暗号解読された入力(すなわち、元の入力212)が渡され(
図1の行11でのENCLAVE_NETWORK_INFERENCE)、それによって、FrontNetサブネット・モデル210によって暗号解読された入力212の処理からIR240を生成する。生成されたIR240は、TEE230の制御されたチャネルを介して、TEE230またはenclaveから安全にコピーされる。
【0045】
BackNetサブネット・モデル220に基づいて、別の深層ニューラル・ネットワーク250が構築される(
図1の行20でのLOAD_WEIGHTS)(
図2のステップ7)。IR240が、BackNetサブネット・モデル220に基づいて構築された深層ニューラル・ネットワーク250に入力され(
図2のステップ8)、BackNetサブネット・モデル220が、入力されたIR240を処理し(
図2のステップ8)、最終的な解析結果(例えば、最終的な画像分類結果)が生成される(
図1の行21でのNETWORK_INFERENCE)(
図2のステップ9)。一部の実施形態例では、最終的な結果は、N個の異なる可能性のあるクラスにわたる確率分布を表すN次元実数値ベクトルである。望ましい実装に基づいて、プライバシー強化深層学習クラウド・サービスは、対応する確率を有する上位k個のクラスを選択し、クライアント・コンピューティング・デバイスを介してエンド・ユーザに返し得る。
【0046】
このようにして、プライバシー強化深層学習クラウド・サービスまたはその他のAIに基づくクラウド・サービスとして実装され得るプライバシー強化深層学習システムは、深層ニューラル・ネットワーク・モデルの分割、暗号化、および信頼できる実行環境での分割されたモデルのFrontNetサブネット・モデルの実行を介して、ユーザ入力の機密情報開示を最小限に抑える。深層ニューラル・ネットワーク・モデルの分割は、層状構成のネットワーク構造を利用する。信頼できる実行環境は、ユーザ入力およびFrontNetサブネット・モデルの深層ニューラル・ネットワークの層の構成の両方の機密性を保護する。実施形態例のメカニズムは、意図的に、既存の最先端の入力再構築手法を無効にすることができ、それによって、敵対者が深層ニューラル・ネットワークを反転し、深層ニューラル・ネットワークへの入力を再構築するためのチャネルを取り除く。
【0047】
前述したように、実施形態例の特徴のうちの1つは、深層ニューラル・ネットワーク(DNN)をFrontNetサブネット・モデルおよびBackNetサブネット・モデルに分割することである。やはり、この分割は、望ましいレベルのプライバシー保護に関するエンド・ユーザの決定に基づいて、クライアント・コンピューティング・デバイスでエンド・ユーザによって実行される手動の分割であってよい。すなわち、信頼できる実行環境内のDNNの追加の層を取り囲むことによって、さらにプライバシー保護を提供できる。エンド・ユーザは、入力データを提供し、すべての層のすべての中間表現(IR)を生成することによって、DNNをテストし得る。次に、エンド・ユーザは、人間の知覚によってIRを検査し、DNNのどの中間層でIRが機密情報をもうこれ以上含まなくなるかを決定することができる。その後、この中間層は、入力層、および機密情報が存在しなくなる層を含むそれまでの層が、FrontNetサブネット・モデルに含まれ、出力層を含むDNNの残りの部分がBackNetサブネット・モデルに含まれるような、分割点として選択され得る。
【0048】
代替として、深層学習システム(例えば、深層学習システムの深層ニューラル・ネットワーク)の層を分割する最適な分割点を決定するために、プライバシー強化深層学習クラウド・サービスまたはその他のAIに基づくクラウド・サービスのプライバシー強化深層学習システムによって、自動分割ツールが提供され得る。自動分割ツールは、クラウド・サービスによって提供されてよく、クライアント・コンピューティング・デバイスでのローカルな実行のために、クライアント・コンピューティング・デバイスにダウンロード可能であってよい。このようにして、FrontNetサブネット・モデルおよびBackNetサブネット・モデルを識別するために、自動分割ツールによって、クライアント・コンピューティング・デバイスでエンド・ユーザの事前トレーニング済みモデルが処理され得る。次に、クライアント・コンピューティング・デバイスは、信頼できる実行環境内でのFrontNetサブネット・モデルのインスタンス化、および信頼できる実行環境外でのBackNetサブネット・モデルのインスタンス化のために、FrontNetサブネット・モデルを暗号化し、FrontNetサブネット・モデルおよびBackNetサブネット・モデルの両方をプライバシー強化深層学習クラウド・サービスに提供し得る。
【0049】
自動分割ツールは、包括的なセキュリティ解析を介して、深層ニューラル・ネットワーク(DNN)の最適な分割点を決定する問題に対処する。このセキュリティ解析は、2つの仮想敵対者A1およびA2を、プライバシー再構築攻撃フレームワーク(privacy reconstruction attack framework)内でシミュレートし、ここで、これらの敵対者は、信頼できる実行環境(TEE)からIRを取得した後に、元の未加工の入力xの内容を明らかにする傾向がある。両方の敵対者は、入力xの予備知識を持っていないと仮定され、すなわち、確率行列Pが均一な分布を保持し、
【数5】
であるが、これらの敵対者は、次のような異なる(弱いものから強いものまでの)攻撃戦略Aを持っている。
A1:この敵対者は、FrontNetサブネット・モデルから生成されたIRを見ることができる。戦略Aは、元の入力のほとんどの情報を暴露するIRを選択することである。情報公開は、DNNの異なる分割層でIRを評価することによって測定される。
A2:IRを見ることに加えて、このさらに高度な敵対者は、深層ニューラル・ネットワークのこれらの入力再構築手法をさらに習得することができる。したがって、この敵対者の戦略Aは、Φから逆関数Φ
-1を導出し、xティルド=Φ
-1(IR)を計算することである。再構築されたxティルドは、元の入力xの情報を漏洩する可能性があるが、実施形態例のプライバシー強化深層学習クラウド・サービスまたはその他のAIに基づくクラウド・サービスは、意図的に、そのような攻撃を無効にすることができる。
【0050】
IRがコンピュータ・メモリ内のみに存在することがあるとしても、敵対者A1は、TEEの外部(すなわち、BackNetサブネット・モデル内)にある隠れ層のIRデータを取り出すことができると仮定される。したがって、この敵対者が、IRを見ることによって、元の入力の内容を認識して推定することができるかどうかを調査することは、重要である。
【0051】
深層ニューラル・ネットワークでは、IRは、積み重ねられた特徴マップの形態で構造化される。画像処理の実装を仮定すると、自動分割ツールは、すべての特徴マップをピクセル空間に逆に投影し、IR画像として格納する。例えば、モデルの畳み込み層が64個のフィルタを含んでおり、出力が112×112×64のテンソルである場合、モデルの出力から64個のIR画像が(112の幅および112の高さで)生成され得る。
【0052】
この敵対者をシミュレートするための1つの方法は、被験者にすべてのIR画像を見せ、元の入力xの情報を暴露するIR画像を選択させることである。しかし、検査する必要のあるIR画像の量を考えると、この作業は人間にとって退屈で間違いを起こしやすく、xとIRとの間の距離を定量化することが困難でもある。代わりに、実施形態例の自動分割ツールは、被験者を、すべてのIR画像を自動的に評価して、各層でほとんどの入力情報を暴露するIR画像を識別する、別の畳み込みニューラル・ネットワークに置き換える。この方法は、IR画像が入力画像に類似する内容を維持する場合、そのIR画像が、同じ畳み込みネットワークを使用して類似するカテゴリに分類されるという洞察に基づく。自動分割ツールは、分類結果の類似性を測定することによって、特定のIR画像が元の入力に視覚的に類似しているかどうかを推定することができる。エンド・ユーザは、評価結果をさら活用して、異なるニューラル・ネットワーク・アーキテクチャの最適な分割点を決定することができる。
【0053】
図3は、一実施形態例に従って、自動分割ツールのニューラル・ネットワーク評価フレームワーク用の二重畳み込みネットワーク・アーキテクチャを示す例示的な図である。
図3に示されているように、入力x310は、IR
ii∈[1,n]を生成するIR生成畳み込みネットワーク(IRGenNet:IR generation convolutional network)320にサブミットされる。各IR
iは、層i(L
i)を通過した後に、複数の特徴マップを含む。特徴マップは、IR画像に投影され、IRGenNet320と同じネットワーク・アーキテクチャ/重みを共有するIR検証畳み込みネットワーク(IRValNet:IR validation convolutional network)330にサブミットされる。畳み込みネットワーク320および330の出力は、両方とも、クラス・スコアを含むN次元(Nはクラスの数)確率ベクトルである。
【0054】
一部の実施形態例では、分類結果の類似性を測定するために、カルバック・ライブラー(KL:Kullback-Leibler)発散が使用されるが、本発明の思想および範囲から逸脱することなく、他の類似性指標が使用され得る。KL発散では、各層iで、次のdist[x,IRi]を定量的に測定するために、入力xとの最小のKL発散DKLを有するIR画像が選択される。∀j∈[1,filternum(Li)]、
【0055】
【数6】
ここで、F
*(.,θ)は、IRGenNet320およびIRValNet330の両方によって共有される表現関数である。ニューラル・ネットワークごとに最適な分割点を決定するために、D
KL(F
*(x,θ)||μ)が計算され、ここでμ~U(0,N)(確率ベクトルの一様分布)であり、Nはクラスの数である。これは、A1がIRを取得する前にxの予備知識を持っていないということを表しており、xが同じ確率ですべてのクラスに分類されると見なしている。上記の方程式1に基づいて、
【数7】
が計算されてよく、δ
iが、ユーザによって指定されたε境界と比較され得る。例えば、ユーザがε=1を選択した場合、ε-プライバシーに違反するのを防ぐために、δ
i>ε=1の場合にのみ層iで分割するのが安全である。一様分布でのε=1との比較が、情報公開にとって非常に厳しいプライバシー境界であるということは、注目に値する。現実世界の状況では、エンド・ユーザは、プライバシー要件を満たすように、特定のε∈[0,1]境界を指定して、制約を緩和することができる。
【0056】
したがって、実施形態例の他のプライバシー強化の特徴に加えて、実施形態例は、ニューラル・ネットワーク評価フレームワークをさらに提供し、エンド・ユーザを支援するための自動分割ツールが、事前トレーニング済みモデルをFrontNetサブネット・モデルおよびBackNetサブネット・モデルに分割するための最適な分割点を決定する。ニューラル・ネットワーク評価フレームワークは、エンド・ユーザが異なるニューラル・ネットワーク・アーキテクチャの最適な分割層を決定するのを支援するために、プライバシーの損失を定量化する。
【0057】
上の説明から明らかなように、本発明は、深層学習システムへの入力データのプライバシーを改善するためのコンピュータ・ツールを提供する。したがって、実施形態例は、種々の多くの種類のデータ処理環境において利用され得る。実施形態例の特定の要素および機能の説明の背景を提供するために、以下では、
図4および
図5が、実施形態例の態様が実装され得る例示的な環境として提供される。
図4および
図5は単なる例であり、本発明の実施形態の態様が実装され得る環境に関して、どのような制限も主張することも、意味することも意図されていないということが、理解されるべきである。本発明の思想および範囲から逸脱することなく、示された環境に対して多くの変更が行われ得る。
【0058】
図4は、実施形態例の態様が実装され得る例示的な分散データ処理システムの図的表現を示している。分散データ処理システム400は、実装形態例の態様を実装できるコンピュータのネットワークを含んでよい。分散データ処理システム400は、分散データ処理システム400内で一緒に接続されている種々のデバイスとコンピュータとの間の通信リンクを提供するために使用される媒体である、少なくとも1つのネットワーク402を含む。ネットワーク402は、ワイヤ、無線通信リンク、衛星通信リンク、または光ファイバ・ケーブルなどの接続を含んでよい。
【0059】
図に示された例では、サーバ404A~404Cが、ストレージ・ユニット408と共にネットワーク402に接続されている。加えて、クライアント410および412も、ネットワーク402に接続されている。これらのクライアント410および412は、例えば、パーソナル・コンピュータ、またはネットワーク・コンピュータなどであってよい。図に示された例では、サーバ404A~404Cは、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを、クライアント410~412に提供する。クライアント410~412は、示されている例では、サーバ404Aおよび場合によっては他のサーバ・コンピューティング・デバイス404B~404Cのうちの1つまたは複数を含むクラウド・コンピューティング・システムのクライアントである。分散データ処理システム400は、図に示されていない追加のサーバ、クライアント、ならびにその他のコンピューティング・デバイス、データ・ストレージ・デバイス、および通信デバイスを含んでよい。
【0060】
図に示された例では、分散データ処理システム400は、相互に通信するための一連のプロトコル(送信制御プロトコル/インターネット・プロトコル(TCP/IP:Transmission Control Protocol/Internet Protocol))を使用する世界全体のネットワークとゲートウェイの集合を表す、ネットワーク402を含むインターネットである。インターネットの中心には、主要なノード間またはホスト・コンピュータ間を接続する高速データ通信ラインのバックボーンがあり、データおよびメッセージをルーティングする多数の民間のコンピュータ・システム、政府機関のコンピュータ・システム、教育機関のコンピュータ・システム、およびその他のコンピュータ・システムで構成されている。当然、分散データ処理システム400は、例えばインターネット、ローカル・エリア・ネットワーク(LAN)、または広域ネットワーク(WAN)などの、多数の各種ネットワークを含むように実装されてもよい。前述したように、
図4は、本発明の異なる実施形態に対するアーキテクチャの制限ではなく、一例となるよう意図されており、したがって、
図4に示されている特定の要素は、本発明の実施形態例が実装され得る環境に関して制限していると見なされるべきではない。
【0061】
図4に示されているように、コンピューティング・デバイスのうちの1つまたは複数(例えば、サーバ404A)は、深層学習クラウド・サービス400を実装するように具体的に構成されてよく、深層学習クラウド・サービス400は、一実施形態例に従って、プライバシー強化深層学習クラウド・サービス・フレームワーク420をさらに実装する。コンピューティング・デバイスの構成は、実施形態例に関して本明細書に記載された動作の性能を促進し、出力の生成を容易にするために、アプリケーション固有のハードウェア、またはファームウェアなどを提供することを含んでよい。コンピューティング・デバイスの構成は、コンピューティング・デバイスの1つまたは複数のハードウェア・プロセッサに、ソフトウェア・アプリケーションを実行させ、実施形態例に関して本明細書に記載された動作を実行して出力を生成するようにプロセッサを構成するために、1つまたは複数のストレージ・デバイスに格納され、コンピューティング・デバイス(サーバ404Aなど)のメモリに読み込まれるソフトウェア・アプリケーションを提供することを、追加または代替として含んでもよい。さらに、実施形態例の思想および範囲から逸脱することなく、アプリケーション固有のハードウェア、ファームウェア、またはハードウェア上で実行されるソフトウェア・アプリケーションなどの任意の組合せが使用され得る。
【0062】
これらの方法のうちの1つでコンピューティング・デバイスが構成された後に、コンピューティング・デバイスが、実施形態例のメカニズムを実装するように具体的に構成された特殊なコンピューティング・デバイスになり、汎用コンピューティング・デバイスではないということが、理解されるべきである。さらに、後述するように、実施形態例のメカニズムの実装は、信頼できる実行環境の実装および暗号解読された入力に対する信頼できる実行環境内でのDNNモデルのFrontNetサブネット・モデルの実行を提供することによって、深層学習クラウド・サービスを使用する場合に、コンピューティング・デバイスの機能を改善し、データおよびモデルのプライバシーの強化を促進する有用な具体的結果を提供する。
【0063】
図4に示されているように、サーバ404A~404Cのうちの1つまたは複数は、深層学習クラウド・サービス400およびプライバシー強化深層学習クラウド・サービス・フレームワーク420(以下では、「フレームワーク」420と呼ぶ)を実装するように構成される。
図4は単一のサーバ(すなわち、サーバ404A)に関連付けられている要素400および420を示しているが、フレームワーク420またはその一部および処理パイプライン405またはその一部を含む深層学習クラウド・サービス400のメカニズムが複数のサーバ・コンピューティング・デバイス404A~404Cにわたって分散され得るように、複数のサーバ(例えば、404A~404C)が、クラウド・コンピューティング・システムを一緒に構成してよく、フレームワーク420を実装する深層学習クラウド・サービス400を提供するように構成され得るということが、理解されるべきである。一部の実施形態例では、深層学習クラウド・サービス400、パイプライン405、およびフレームワーク420の複数のインスタンスが、クラウド・コンピューティング・システムの複数の異なるサーバ404A~404C上で提供され得る。深層学習クラウド・サービス400は、深層学習システムの任意の深層学習またはAIに基づく機能を提供してよく、以下では、その概要および例が示される。
【0064】
一部の実施形態例では、深層学習クラウド・サービス400は、認知計算システムまたは認知システムを実装し得る。概要として、認知システムは、特殊なコンピュータ・システム、またはコンピュータ・システムのセットであり、人間の認知機能をエミュレートするようにハードウェア・ロジックまたは(ソフトウェアが実行されるハードウェア・ロジックと組み合わせた)ソフトウェア・ロジックあるいはその両方を使用して構成される。これらの認知システムは、人間のような特徴を、考えを伝達することおよび操作することに適用し、デジタル計算の固有の強みと組み合わせた場合に、高い精度および柔軟性で大規模な問題を解くことができる。認知システムは、人間の思考過程に近づく1つまたは複数のコンピュータ実装認知動作を実行することに加えて、人間の専門知識および認知を拡張および拡大するために、より自然な方法で人間と機械が対話できるようにする。認知システムは、例えば自然言語処理(NLP:natural language processing)に基づくロジック、画像解析および分類ロジック、電子医療記録解析ロジックなどの人工知能ロジック、ならびに機械学習ロジックを含んでおり、特殊なハードウェア、ハードウェア上で実行されるソフトウェア、または特殊なハードウェアおよびハードウェア上で実行されるソフトウェアの任意の組合せとして提供され得る。認知システムのロジックは認知動作を実装し、認知動作の例としては、質問回答、コーパス内の内容の異なる部分内の関連する概念の識別、画像解析および分類動作、例えばインターネットのWebページ検索などの、インテリジェントな検索アルゴリズム、医療診断および治療推奨、ならびにその他の種類の推奨の生成(例えば、特定のユーザにとって興味のある項目、または可能性のある新しい連絡先の推奨など)が挙げられるが、これらに限定されない。
【0065】
IBM Watson(TM)は、そのような認知システムの一例であり、人間が読める言語を処理し、テキストの通過間の推定を、人間のように高い精度で、人間よりもはるかに高速かつ大量に識別することができる。一般に、そのような認知システムは、次の機能を実行することができる。複雑な人間の言語を操作し、理解する機能、大量の構造化データおよび非構造化データを取り込んで処理する機能、仮説を生成して評価する機能、関連する証拠のみに基づく応答を検討して評価する機能、状況に固有の助言、洞察、および指導を提供する機能、機械学習プロセスを通じた各反復および対話により、知識を改善し、学習する機能、影響を与える時点で、意思決定を可能にする機能(状況に即した指導)、作業に比例して規模を変更する機能、人間の専門知識および認知を拡張および拡大する機能、自然言語から、共鳴、人間のような属性、および特質を識別する機能、自然言語から、さまざまな言語固有の属性または不可知的属性を推定する機能、データ点(画像、テキスト、音声)からの高度な関連する想起(記憶および思い出すこと)の機能、経験に基づく人間の認知を模倣する状況認識によって予測し、感知する機能、ならびに自然言語および特定の証拠に基づいて質問に回答する機能。
【0066】
1つの実施形態例では、認知クラウド・サービス400として実装され得る認知システムが、1つまたは複数の処理パイプライン405を介して、クライアント・コンピューティング・デバイス410などのクライアント・コンピューティング・デバイスからの質問に回答するため、または要求を処理するためのメカニズムを提供する。単一のパイプライン405が
図4に示されているが、本発明がそのようなパイプラインに限定されず、複数の処理パイプラインが提供され得るということが、理解されるべきである。そのような実施形態では、処理パイプラインは、入力に対して異なる処理を適用し、ネットワーク・データ・ストレージ408などの種々のソースからの1つまたは複数の異なる情報のコーパスからの内容の異なる領域に対して動作するように別々に構成されてよく、異なる解析または推論アルゴリズム(アノテータとも呼ばれる)を使用して構成され得る、などとなる。パイプライン405は、望ましい実装に従って、自然言語で提示されるか、または構造化された質問/要求として提示される、質問/要求を処理し得る。
【0067】
パイプライン405は、自然言語で提示された特定の対象領域に関する質問に回答するか、あるいは自然言語で提示されるか、または構造化された要求/質問として提示され得る入力データに対して認知動作を実行するように要求を処理する、データ処理ハードウェア上で実行される人工知能アプリケーションである。パイプライン405は、ネットワークを経由した入力、電子文書またはその他のデータのコーパス、コンテンツ作成者からのデータ、1人または複数のコンテンツ・ユーザからの情報、およびその他の可能性のある入力のソースからのその他のそのような入力を含む、種々のソースからの入力を受信する。例えばデータ・ストレージ408などの、データ・ストレージ・デバイスは、データの1つまたは複数のコーパスを格納する。コンテンツ作成者は、パイプライン405と共にデータの1つまたは複数のコーパスの一部として使用するために、文書の内容を作成する。この文書は、認知システム(すなわち、認知クラウド・サービス400)において使用するための任意のファイル、テキスト、記事、またはデータのソースを含んでよい。例えば、パイプライン405は、領域または対象領域(例えば、金融の領域、医学の領域、法律の領域、画像解析の領域など)に関する知識体系にアクセスし、ここで、この知識体系(知識ベース)は、さまざまな構成(例えば、オントロジーなどの領域固有の情報の構造化されたリポジトリ、または領域に関連する非構造化データ、または領域に関する自然言語文書の集合)で整理され得る。
【0068】
動作中に、パイプライン405は、入力質問/要求を受信し、質問/要求を構文解析して質問/要求の主要な特徴を抽出し、抽出された特徴を使用して照会を組み立て、その後、それらの照会をデータのコーパスに適用する。データのコーパスへの照会の適用に基づいて、パイプライン405は、入力質問/要求に対する有益な応答を含む可能性のあるデータのコーパスの部分に関して、データのコーパス全体を調べることによって、一連の仮説または入力質問/要求に対する回答/結果の候補を生成する。パイプライン405は、入力質問/要求、およびさまざまな推論アルゴリズムを使用した照会の適用中に検出されたデータのコーパスの部分に対して、綿密な解析を実行する。適用される数百または数千もの推論アルゴリズムが存在することがあり、それらのアルゴリズムの各々は、異なる解析(例えば、比較、自然言語解析、字句解析、または画像解析など)を実行して、スコアを生成する。例えば、一部の推論アルゴリズムは、入力質問およびデータのコーパスの検出された部分の言語内の用語および同義語の一致を調べ得る。他の推論アルゴリズムは、言語内の時間的特徴または空間的特徴を調べてよいが、さらに他の推論アルゴリズムは、データのコーパスの部分のソースを評価して、その正確さを評価し得る。さらに、一部の推論アルゴリズムは、画像を、画像の性質を示す複数のクラスのうちの1つに分類するために、画像解析を実行し得る。
【0069】
さまざまな推論アルゴリズムから取得されたスコアは、その推論アルゴリズムが注目する特定の領域に基づいて、入力質問/要求によって可能性のある応答が推定される程度を示す。次に、得られた各スコアが、統計モデルに対して重み付けされる。この統計モデルは、パイプライン405のトレーニング期間中に、特定の領域に関して、2つの類似する入力間の推定の確立において推論アルゴリズムがどの程度適切に機能したかを捕捉する。この統計モデルは、可能性のある応答(すなわち、回答/結果の候補)が質問/要求によって推定される、証拠に関してパイプライン405が有している信頼度を集約するために、使用される。このプロセスは、パイプライン405が、他の候補より著しく強いとして浮上する回答/結果の候補を識別するまで、回答/結果の候補の各々に対して繰り返され、このようにして、入力質問/要求に対して最終的な回答/結果または回答/結果のランク付けされたセットを生成する。
【0070】
図4に示されているように、深層学習クラウド・サービス400およびそれに対応する1つまたは複数の処理パイプライン405は、プライバシー強化深層学習クラウド・サービス・フレームワーク420(または以下では、単にフレームワーク420)を実装する。フレームワーク420は、入力質問/要求に対して推論するため、または入力質問/要求に関連付けられた入力データを処理するため、あるいはその両方のための動作を実行するときに、処理パイプライン405の推論アルゴリズムのうちの1つまたは複数によって呼び出され得る。例えば、一部の実施形態例では、フレームワーク520は、例えば深層学習ニューラル・ネットワーク(DNN)モデルを使用して、入力データを複数の既定のクラスのうちの1つに分類することを支援するために、呼び出され得る。フレームワーク420によって生成された結果(例えば、入力データの分類を識別するための既定のクラスの各々に関連付けられた確率値を含むベクトル出力、または単に最終的な分類自体)が、他の深層学習動作(その例が上で示されている)の実行において使用するために、処理パイプライン405に返され得る。
【0071】
フレームワーク420は、セキュリティ・エンジン420と、暗号解読エンジン424を実装する信頼できる実行環境(TEE)426と、前述したようにニューラル・ネットワーク評価フレームワークを実装する自動分割ツール450とを含む。加えて、TEE426内で、入力データ440およびFrontNetサブネット・モデル432を提供するために、暗号化された入力データおよび暗号化されたFrontNetサブネット・モデルが、暗号解読エンジン424によって暗号解読される。BackNetサブネット・モデル434が、クライアント・コンピューティング・デバイス410によって、フレームワーク420内でインスタンス化するためにフレームワーク420に提供され得る。セキュリティ・エンジン422は、サーバ404Aとクライアント・コンピューティング・デバイス410との間のトランスポート層セキュリティ(TLS)接続またはその他の安全な通信接続を確立することなどによって、認証、証明、およびクライアント・コンピューティング・デバイス410とのセキュリティ・キーの交換を実行するためのロジックを提供する。
【0072】
動作中に、クライアント・コンピューティング・デバイス410のエンド・ユーザは、事前トレーニング済みDNNモデル430および入力データ440を深層学習クラウド・サービス400に提供することによって、深層学習クラウド・サービス400を利用して、入力データに対して深層学習動作(例えば、画像解析および画像分類)を実行したいと考える。実施形態例に従って、エンド・ユーザの入力データのプライバシーを強化するために、DNNモデル430がFrontNetサブネット・モデル432およびBackNetサブネット・モデル434に分割される。DNNモデル430の分割は、エンド・ユーザによって手動で実行されてよく、または深層学習クラウド・サービス400によって提供される自動分割ツール450を使用することなどによって、自動化された方法で実行され得る。すなわち、1つの実施形態例では、クライアント・コンピューティング・デバイス410は、サーバ404Aにログオンして深層学習クラウド・サービス400にアクセスし、適切な認証動作および証明動作、セキュリティ・キーの交換などを実行し得る。次に、クライアント・コンピューティング・デバイス410のエンド・ユーザは、ローカルなクライアント・コンピューティング・デバイス410上で実行して事前トレーニング済みDNNモデル430の最適な分割点を決定するために、自動分割ツール450のダウンロードを要求し得る。その後、DNNモデル430は、決定された最適な分割点(例えば、モデルが分割されるべき位置にあるDNNモデル430の特定の隠れ層または中間層)に基づいて、FrontNetサブネット・モデル432およびBackNetサブネット・モデル434に分割され得る。
【0073】
セキュリティ・エンジン422を介して交換されたセキュリティ・キー(例えば、対称鍵)に基づいて、クライアント・コンピューティング・デバイス410は、FrontNetサブネット・モデル432を暗号化し、暗号化されたFrontNetサブネット・モデル432および暗号化されていないBackNetサブネット・モデル434の両方を含むDNNモデル430を、サーバ404Aおよび深層学習クラウド・サービス400に提供する。深層学習クラウド・サービス400のフレームワーク420は、暗号化されたFrontNetサブネット・モデル432をTEE426に読み込み、TEE426内で、FrontNetサブネット・モデル432が暗号解読され、TEE426内で実行されるFrontNetサブネット・モデル432のDNN実装をインスタンス化するための基礎として使用される。BackNetサブネット・モデル434は、TEE426の外部のフレームワーク420において、BackNetサブネット・モデル434のDNN実装としてインスタンス化される。
【0074】
次に、クライアント・コンピューティング・デバイス410は、暗号化された入力データ(すなわち、交換されたセキュリティ・キーを使用して暗号化された入力データ440)を、処理するために深層学習クラウド・サービス400に送信し得る。処理パイプライン405を介した処理などの処理の一部として、深層学習クラウド・サービス400は、フレームワーク420を呼び出し、受信された暗号化済み入力データを処理し得る。暗号化済み入力データは、TEE426に読み込まれ、ここで、元の入力データ440を生成するために暗号解読エンジン424によって暗号解読される。入力データ440は、TEE426内で実行されるFrontNetサブネット・モデル432のDNNに入力され、このDNNが、BackNetサブネット・モデル434に出力される中間表現(IR)を生成する。次に、BackNetサブネット・モデル434のDNNが、FrontNetサブネット・モデル432のDNNから出力されたIRを処理して分類出力を生成し、この分類出力が、入力データに基づいて深層学習動作を実行することにおいて使用するために、深層学習クラウド・サービス400または処理パイプライン405あるいはその両方に返される。その後、深層学習動作の結果が、クライアント・コンピューティング・デバイス410に返され得る。このプロセスでは、入力データ440およびFrontNetサブネット・モデル432が、TEE426内のみで暗号解読され、TEE426の外部に公開されないため、入力データ440およびFrontNetサブネット・モデル432の両方のプライバシーが保護されるということが、理解されるべきである。
【0075】
前述したように、実施形態例のメカニズムは、信頼できる実行環境内で暗号解読された、暗号化入力データに対して信頼できる実行環境内のDNNモデルの一部を実行するための動作を実行するように具体的に構成されたコンピューティング・デバイスまたはデータ処理システムを利用する。これらのコンピューティング・デバイスまたはデータ処理システムは、本明細書に記載されたシステムまたはサブシステムあるいはその両方のうちの1つまたは複数を実装するように、ハードウェア構成、ソフトウェア構成、またはハードウェア構成とソフトウェア構成の組合せのいずれかを使用して具体的に構成された、種々のハードウェア要素を備え得る。
図5は、実施形態例の態様が実装され得る1つの例示的なデータ処理システムのブロック図である。データ処理システム500は、
図4のサーバ404などのコンピュータの一例であり、データ処理システム500において、本明細書に記載されたような実施形態例の動作、出力、および外部効果を実現するために、本発明の実施形態例のプロセスおよび態様を実装するコンピュータ使用可能なコードまたは命令が、配置されるか、または実行されるか、あるいはその両方が行われ得る。
【0076】
示されている例では、データ処理システム500は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH:north bridge and memory controller hub)502およびサウス・ブリッジおよび入出力(I/O)コントローラ・ハブ(SB/ICH:south bridge and input/output (I/O) controller hub)504を含むハブ・アーキテクチャを採用している。処理ユニット506、メイン・メモリ508、およびグラフィック・プロセッサ510が、NB/MCH502に接続されている。グラフィック・プロセッサ510は、アクセラレーテッド・グラフィックス・ポート(AGP:accelerated graphics port)を介してNB/MCH502に接続され得る。
【0077】
示されている例では、ローカル・エリア・ネットワーク(LAN:local area network)アダプタ512が、SB/ICH504に接続されている。オーディオ・アダプタ516、キーボードおよびマウス・アダプタ520、モデム522、読取り専用メモリ(ROM:read only memory)524、ハード・ディスク・ドライブ(HDD:harddisk drive)526、CD-ROMドライブ530、ユニバーサル・シリアル・バス(USB:universal serial bus)ポートおよびその他の通信ポート532、ならびにPCI/PCIeデバイス534が、バス538およびバス540を介してSB/ICH504に接続されている。PCI/PCIeデバイスは、例えば、ノートブック・コンピュータ用のイーサネット(R)・アダプタ、アドイン・カード、およびPCカードを含んでよい。PCIはカード・バス・コントローラを使用するが、PCIeはカード・バス・コントローラを使用しない。ROM524は、例えば、フラッシュ基本入出力システム(BIOS:basic input/output system)であってよい。
【0078】
HDD526およびCD-ROMドライブ530は、バス540を介してSB/ICH504に接続されている。HDD526およびCD-ROMドライブ530は、例えば、IDE(integrated drive electronics)またはシリアルATA(SATA:serial advanced technology attachment)インターフェイスを使用し得る。スーパーI/O(SIO:Super I/O)デバイス536が、SB/ICH504に接続され得る。
【0079】
オペレーティング・システムが、処理ユニット506上で実行される。オペレーティング・システムは、
図5のデータ処理システム500内の種々のコンポーネントを調整して制御する。クライアントとして、オペレーティング・システムは、Microsoft(R)Windows(R)10(R)などの市販のオペレーティング・システムであってよい。Java(R)(TM)プログラミング・システムなどのオブジェクト指向プログラミング・システムが、オペレーティング・システムと共に実行されてよく、データ処理システム500上で実行されているJava(R)(TM)プログラムまたはアプリケーションからのオペレーティング・システムに対する呼び出しを提供する。
【0080】
サーバとして、データ処理システム500は、例えば、Advanced Interactive Executive(AIX(R))オペレーティング・システムまたはLINUX(R)オペレーティング・システムを実行するIBM eServer(TM)System p(R)コンピュータ・システム、またはPower(TM)プロセッサに基づくコンピュータ・システムなどであってよい。データ処理システム500は、処理ユニット506内で複数のプロセッサを含む対称型マルチプロセッサ(SMP:symmetric multiprocessor)システムであってよい。代替として、シングル・プロセッサ・システムが採用され得る。
【0081】
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムの命令が、HDD526などのストレージ・デバイスに配置され、処理ユニット506によって実行するためにメイン・メモリ508に読み込まれ得る。本発明の実施形態例のプロセスは、コンピュータ使用可能なプログラム・コードを使用して、処理ユニット506によって実行されてよく、このプログラム・コードは、例えばメイン・メモリ508、ROM524などのメモリ内、または例えば1つまたは複数の周辺機器526および530内に、配置され得る。
【0082】
図5に示されているように、バス538またはバス540などのバス・システムは、1つまたは複数のバスから成ってよい。当然ながら、このバス・システムは、通信ファブリックまたは通信アーキテクチャに接続された異なるコンポーネントまたはデバイス間のデータの転送を提供する任意の種類の通信ファブリックまたは通信アーキテクチャを使用して、実装され得る。
図5のモデム522またはネットワーク・アダプタ512などの通信ユニットは、データの送受信に使用される1つまたは複数のデバイスを含んでよい。メモリは、例えば、メイン・メモリ508、ROM524、または
図5のNB/MCH502において見られるようなキャッシュであってよい。
【0083】
前述したように、一部の実施形態例では、実施形態例のメカニズムは、アプリケーション固有のハードウェア、またはファームウェアなど、処理ユニット506などの1つまたは複数のハードウェア・プロセッサによって実行するためにHDD526などのストレージ・デバイスに格納され、メイン・メモリ508などのメモリに読み込まれるアプリケーション・ソフトウェアなどとして、実装され得る。そのため、
図5に示されているコンピューティング・デバイスは、実施形態例のメカニズムを実装するように具体的に構成され、プライバシー強化深層学習クラウド・サービス・フレームワークおよび1つまたは複数の処理パイプラインを実装する深層学習クラウド・サービスに関して本明細書に記載された動作を実行し、出力を生成するように具体的に構成される。
【0084】
当業者は、
図4および
図5のハードウェアが実装に依って変わってよいということを、理解するであろう。フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブなどの、その他の内部ハードウェアまたは周辺機器が、
図4および
図5に示されているハードウェアに加えて、またはそれらのハードウェアの代わりに、使用され得る。また、実施形態例のプロセスは、本発明の思想および範囲から逸脱することなく、前述したSMPシステム以外のマルチプロセッサ・データ処理システムに適用され得る。
【0085】
さらに、データ処理システム500は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、タブレット・コンピュータ、ラップトップ・コンピュータ、電話もしくはその他の通信デバイス、またはパーソナル・デジタル・アシスタント(PDA:personal digital assistant)などを含む、複数の異なるデータ処理システムのうちのいずれかの形態を取り得る。一部の例では、データ処理システム500は、例えばオペレーティング・システム・ファイルまたはユーザによって生成されたデータあるいはその両方を格納するために、不揮発性メモリを提供するようにフラッシュ・メモリを使用して構成された、ポータブル・コンピューティング・デバイスであってよい。基本的に、データ処理システム500は、アーキテクチャの制限なしで、任意の既知のデータ処理システムまたは今後開発されるデータ処理システムであってよい。
【0086】
図6は、一実施形態例に従って、プライバシー強化深層学習クラウド・コンピューティング・サービスを構成して利用するための例示的な動作を概説するフローチャートである。
図6に示されているように、この動作は、深層学習クラウド・サービスのコンピューティング・システムとエンド・ユーザのクライアント・コンピューティング・デバイスとの間のTLSまたはその他の安全な通信接続などを介して、エンド・ユーザの認証、証明、およびセキュリティ・キーの交換を実行することによって開始する(ステップ610)。エンド・ユーザは、自分の事前トレーニング済みDNNモデルをFrontNetサブネット・モデルおよびBackNetサブネット・モデルに分割する(ステップ620)。前述したように、この分割は、手動で実行されてよく、または自動分割ツールの支援を受けて実行されてよく、この自動分割ツールは、例えば、深層学習クラウド・サービスによって、ローカルな実行のためのクライアント・コンピューティング・デバイスに提供され得る。
【0087】
交換されたセキュリティ・キーを使用してFrontNetサブネット・モデルが暗号化され、深層学習クラウド・サービス・フレームワークにアップロードされる(ステップ630)。深層学習クラウド・サービス・フレームワークは、暗号化されたFrontNetサブネット・モデルを信頼できる実行環境(TEE)に読み込み、FrontNetサブネット・モデルを暗号解読し、TEE内で実行されるDNNとしてインスタンス化する(ステップ640)。暗号化されていないBackNetサブネット・モデルが深層学習クラウド・サービス・フレームワークにアップロードされ、深層学習クラウド・サービス・フレームワークが、BackNetサブネット・モデルを、TEEの外部で実行されるDNNとしてインスタンス化する(ステップ650)。
【0088】
深層学習クラウド・サービス・フレームワーク上で現在実行されている事前トレーニング済みDNNによって処理される入力データが暗号化され、深層学習クラウド・サービス・フレームワークにアップロードされ(ステップ660)、深層学習クラウド・サービス・フレームワークで、入力データがTEEに読み込まれて暗号解読され、FrontNetサブネット・モデルのDNNへの入力として提供される(ステップ670)。FrontNetサブネット・モデルのDNNは、暗号解読された入力を処理して、中間表現(IR)を生成し(ステップ680)、この中間表現(IR)が、TEEの外部で実行されるBackNetサブネット・モデルのDNNに出力される(ステップ690)。BackNetサブネット・モデルのDNNは、入力データの処理の最終的な結果を生成して出力し、この結果を、追加の深層学習動作の実行のために深層学習クラウド・サービスに返す(ステップ695)。その後、この動作が終了する。
【0089】
このようにして、実施形態例は、信頼できる実行環境を提供することによって、エンド・ユーザの入力データの秘密を維持するプライバシー強化深層学習またはAIクラウド・サービス・フレームワークを提供し、この信頼できる実行環境内で、事前トレーニング済みDNNの一部が入力データに対して実行され、事前トレーニング済みDNNおよび入力データの両方が暗号化され、TEEの外部で、暗号化されない方法ではアクセスできない。本開示は、クラウド・コンピューティング・システムに実装されている本発明の実施形態の詳細な説明を含むが、本明細書において示された内容の実装がクラウド・コンピューティング環境に限定されないということが、理解されるべきである。むしろ、本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
【0090】
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含むことができる。
【0091】
クラウド・モデルの特徴は、次のとおりである。
(1)オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間、およびネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
(2)幅広いネットワーク・アクセス:クラウドの能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
(3)リソース・プール:プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。種々の物理的および仮想的リソースが、要求に従って動的に割当ておよび再割当てされる。場所に依存しないという感覚があり、その点において、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベルでは、場所(例えば、国、州、またはデータセンター)を指定できる場合がある。
(4)迅速な順応性:クラウドの能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
(5)測定されるサービス:クラウド・システムは、計測機能を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用量は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
【0092】
サービス・モデルは、次のとおりである。
(1)SaaS(Software as a Service):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能さえも含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
(2)PaaS(Platform as a Service):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
(3)IaaS(Infrastructure as a Service):利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、ここで、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーキング・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御できる。
【0093】
デプロイメント・モデルは、次のとおりである。
(1)プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。このクラウド・インフラストラクチャは、この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
(2)コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。このクラウド・インフラストラクチャは、これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
(3)パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
(4)ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したままだが互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0094】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0095】
ここで
図7を参照すると、例示的なクラウド・コンピューティング環境750が示されている。図示されているように、クラウド・コンピューティング環境750は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス(例えば、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)または携帯電話754A、デスクトップ・コンピュータ754B、ラップトップ・コンピュータ754C、または自動車コンピュータ・システム754N、あるいはその組合せなど)が通信できる1つまたは複数のクラウド・コンピューティング・ノード710を含む。ノード710は、互いに通信し得る。ノード710は、1つまたは複数のネットワーク内で、本明細書において前述されたようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組合せなどに、物理的または仮想的にグループ化され得る(図示されていない)。これによって、クラウド・コンピューティング環境750は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはSaaS、あるいはその組合せを提供できる。
図7に示されたコンピューティング・デバイス754A~Nの種類は、例示のみが意図されており、コンピューティング・ノード710およびクラウド・コンピューティング環境750は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続(例えば、Webブラウザを使用した接続)あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信できるということが理解される。
【0096】
ここで
図8を参照すると、クラウド・コンピューティング環境750(
図7)によって提供される機能的抽象レイヤのセットが示されている。
図8に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
(1)ハードウェアおよびソフトウェア・レイヤ860は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム861、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ862、サーバ863、ブレード・サーバ864、ストレージ・デバイス865、ならびにネットワークおよびネットワーキング・コンポーネント866が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア867およびデータベース・ソフトウェア868を含む。
(2)仮想化レイヤ870は、仮想サーバ871、仮想ストレージ872、仮想プライベート・ネットワークを含む仮想ネットワーク873、仮想アプリケーションおよびオペレーティング・システム874、ならびに仮想クライアント875などの仮想的実体を提供できる抽象レイヤを備える。
【0097】
一例を挙げると、管理レイヤ880は、以下で説明される機能を提供することができる。リソース・プロビジョニング881は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定882は、クラウド・コンピューティング環境内でリソースが利用された際のコスト追跡、およびこれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのID検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータル883は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理884は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割当てと管理を行う。サービス水準合意(SLA:Service Level Agreement)計画および実行885は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
【0098】
ワークロード・レイヤ890は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供され得るワークロードおよび機能の例としては、マッピングおよびナビゲーション891、ソフトウェア開発およびライフサイクル管理892、仮想クラスルーム教育の配信893、データ解析処理894、トランザクション処理895、および深層学習クラウド・コンピューティング・サービス処理896が挙げられる。深層学習クラウド・コンピューティング・サービス処理896は、説明された実施形態例のうちの1つまたは複数に関して前述したパイプラインおよびプライバシーが強化されたクラウド・コンピューティング・サービス・フレームワークを含んでよい。
【0099】
前述したように、実施形態例が、完全にハードウェアである実施形態、完全にソフトウェアである実施形態、またはハードウェアとソフトウェアの両方の要素を含む実施形態の形態を取ってよいということが、理解されるべきである。1つの実施形態例では、実施形態例のメカニズムは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、これらに限定されない、ソフトウェアまたはプログラム・コードにおいて実装される。
【0100】
プログラム・コードの格納または実行あるいはその両方を行うのに適したデータ処理システムは、例えばシステム・バスなどの通信バスを介して直接的または間接的にメモリ素子に結合された、少なくとも1つのプロセッサを含む。このメモリ素子は、プログラム・コードの実際の実行時に使用されるローカル・メモリと、バルク・ストレージと、実行時にバルク・ストレージからコードが取得されなければならない回数を減らすために少なくとも一部のプログラム・コードを一時的に格納するキャッシュ・メモリとを、含むことができる。このメモリは、ROM、PROM、EPROM、EEPROM、DRAM、SRAM、フラッシュ・メモリ、および半導体メモリなどを含むが、これらに限定されない、さまざまな種類であってよい。
【0101】
入出力デバイスまたはI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイスなどを含むが、これらに限定されない)は、直接的に、あるいは介在する有線もしくは無線I/Oインターフェイスもしくはコントローまたはその両方などを介して、のいずれかで、システムに結合され得る。I/Oデバイスは、従来のキーボード、ディスプレイ、およびポインティング・デバイスなど以外の、例えば、スマートフォン、タブレット・コンピュータ、タッチ・スクリーン・デバイス、および音声認識デバイスなどを含むが、これらに限定されない、有線または無線接続を介して結合された通信デバイスなどの、多くの異なる形態を取ってよい。任意の既知のI/Oデバイスまたは今後開発されるI/Oデバイスが、実施形態例の範囲に含まれるよう意図されている。
【0102】
ネットワーク・アダプタがシステムに結合され、介在するプライベート・ネットワークまたはパブリック・ネットワークを介して、データ処理システムを、他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに結合できるようにしてもよい。モデム、ケーブル・モデム、およびイーサネット(R)・カードは、有線通信に現在使用可能なネットワーク・アダプタのうちの、ごくわずかの種類にすぎない。802.11 a/b/g/n無線通信アダプタ、およびBluetooth無線アダプタなどを含むが、これらに限定されない、無線通信に基づくネットワーク・アダプタが利用されてもよい。任意の既知のネットワーク・アダプタまたは今後開発されるネットワーク・アダプタが、本発明の思想および範囲に含まれるよう意図されている。
【0103】
本発明の説明は、例示および説明の目的で提示されており、網羅的であるよう意図されておらず、開示された形態での発明に限定されない。記載された実施形態の範囲および思想を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかであろう。本発明の原理、実際的な適用を最も適切に説明するため、およびその他の当業者が、企図された特定の用途に適するようなさまざまな変更を伴う多様な実施形態に関して、本発明を理解できるようにするために、実施形態が選択されて説明された。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。