(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022177828
(43)【公開日】2022-12-01
(54)【発明の名称】情報漏洩を低減した連合学習の方法、装置およびコンピュータプログラム(分割された動的シャッフルモデル更新を伴う連合学習)
(51)【国際特許分類】
G09C 1/00 20060101AFI20221124BHJP
【FI】
G09C1/00 650Z
【審査請求】未請求
【請求項の数】25
【出願形態】OL
(21)【出願番号】P 2022080952
(22)【出願日】2022-05-17
(31)【優先権主張番号】17/323,099
(32)【優先日】2021-05-18
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】グ ジョングシュ
(72)【発明者】
【氏名】ラダクリシュナン ジャヤラムカラパラヤム
(72)【発明者】
【氏名】バーマ アシシュ
(72)【発明者】
【氏名】バルデス エンリキロ
(72)【発明者】
【氏名】チェン パウ-チェン
(72)【発明者】
【氏名】ジャムジョーム ハニ タラル
(72)【発明者】
【氏名】エホルト ケビン
(57)【要約】 (修正有)
【課題】情報漏洩を低減した連合学習の方法、装置及びコンピュータプログラムを提供する。
【解決手段】方法は、モデル更新を中心的に集約する代わりに、集約関数を複数の独立した機能的に等価な実行エンティティに分散化し、夫々が信頼できる実行環境(TEE)内で実行する。TEEは、機密性及びリモート証明できる連合集約を可能にする。各集約装置エンティティは、ランタイムインメモリ暗号化をサポートする暗号化された仮想機械内で動作する。各当事者は、トレーニングに参加する前に、TEEをリモートで認証する。複数の分散型集約装置を使用して、当事者はそれぞれのモデル更新をモデルパラメータ単位で分割でき、単一の重みを特定の集約装置エンティティにマッピングできる。当事者は、各集約装置実行エンティティにディスパッチされる情報をさらに難読化するため、トレーニングイテレーションごとに断片的なモデル更新を動的にシャッフルできる。
【選択図】
図6
【特許請求の範囲】
【請求項1】
情報漏洩を低減した連合学習の方法であって、参加当事者によって提供されるモデル更新が融合される方法であって、
マッパに従ってローカルモデルを分割して、分割のセットを生成する段階であって、前記マッパは、前記ローカルモデルの要素を、一緒になって集約装置を構成する独立した集約装置実行エンティティのセットにマッピングする段階と、
前記分割のそれぞれの中の1つまたは複数の要素に並べ替え操作を適用して、シャッフルされた分割を生成する段階と、
前記シャッフルされた分割を、前記モデル更新として、前記集約装置実行エンティティのセットに転送する段階と、
前記集約装置実行エンティティのセットから融合されたモデル更新を受信すると、融合されたローカルモデルを回復する段階と
を備える、方法。
【請求項2】
前記融合されたローカルモデルを回復する段階が、前記融合されたモデル更新における1つまたは複数の要素の順序を調整して、前記ローカルモデルにおける前記分割の元の位置に対応する逆シャッフルされた分割を生成する段階と、前記マッパに従って前記逆シャッフルされた分割をマージする段階とを有する、請求項1に記載の方法。
【請求項3】
前記並べ替え操作を動的に繰り返す段階をさらに備える、請求項1または2に記載の方法。
【請求項4】
前記並べ替え操作をトレーニングイテレーションごとに繰り返す、請求項3に記載の方法。
【請求項5】
前記並べ替え操作は、前記参加当事者によって相互に合意された秘密に基づいて行われ、前記マッパは、前記参加当事者の全員によって共有される、請求項1または2に記載の方法。
【請求項6】
前記要素は、モデルパラメータおよびモデル勾配のうちの1つである、請求項1または2に記載の方法。
【請求項7】
前記並べ替え操作を適用することで、単一のモデルパラメータのみを調整する、請求項1または2に記載の方法。
【請求項8】
ハードウェアプロセッサと、
前記ハードウェアプロセッサによって実行されて、情報漏洩を低減した連合学習を提供するコンピュータプログラム命令を保持するコンピュータメモリであって、参加当事者によって提供されるモデル更新が融合され、前記コンピュータプログラム命令は、
マッパに従ってローカルモデルを分割して分割のセットを生成し、前記マッパは、前記ローカルモデルの要素を、一緒になって集約装置を構成する独立した集約装置実行エンティティのセットにマッピングする段階と、
前記分割のそれぞれの中の1つまたは複数の要素に並べ替え操作を適用し、シャッフルされた分割を生成する段階と、
前記シャッフルされた分割を、前記モデル更新として、前記集約装置実行エンティティのセットに転送する段階と、
前記集約装置実行エンティティのセットから融合されたモデル更新を受信すると、融合されたローカルモデルを回復する段階と
を実行するように構成される、コンピュータメモリと
を備える、装置。
【請求項9】
前記融合されたローカルモデルを回復するように構成された前記コンピュータプログラム命令は、前記融合されたモデル更新における1つまたは複数の要素の順序を調整して、前記ローカルモデルにおける前記分割の元の位置に対応する逆シャッフルされた分割を生成することと、前記マッパに従って前記逆シャッフルされた分割をマージすることとをさらに行うように構成されたコンピュータプログラム命令を有する、請求項8に記載の装置。
【請求項10】
前記コンピュータプログラム命令は、前記並べ替え操作を動的に繰り返す、請求項8または9に記載の装置。
【請求項11】
前記並べ替え操作をトレーニングイテレーションごとに繰り返す、請求項10に記載の装置。
【請求項12】
前記並べ替え操作は、前記参加当事者によって相互に合意された秘密に基づいて行われ、前記マッパは、前記参加当事者の全員によって共有される、請求項8または9に記載の装置。
【請求項13】
前記要素は、モデルパラメータおよびモデル勾配のうちの1つである、請求項8または9に記載の装置。
【請求項14】
前記並べ替え操作を適用するように構成されたコンピュータプログラム命令は、単一のモデルパラメータのみを調整する、請求項8または9に記載の装置。
【請求項15】
情報漏洩を低減した連合学習を提供するためのデータ処理システムにおいて使用するためのコンピュータプログラムであって、参加当事者によって提供されるモデル更新が融合され、前記コンピュータプログラムは、前記データ処理システムに、
マッパに従ってローカルモデルを分割して分割のセットを生成する手順であって、前記マッパは、前記ローカルモデルの要素を、一緒になって集約装置を構成する独立した集約装置実行エンティティのセットにマッピングする、手順と、
前記分割のそれぞれの中の1つまたは複数の要素に並べ替え操作を適用して、シャッフルされた分割を生成する手順と、
前記シャッフルされた分割を、前記モデル更新として、前記集約装置実行エンティティのセットに転送する手順と、
前記集約装置実行エンティティのセットから融合されたモデル更新を受信すると、融合されたローカルモデルを回復する手順と
を実行させるためのコンピュータプログラム。
【請求項16】
前記融合されたローカルモデルを回復する手順は、前記融合されたモデル更新における1つまたは複数の要素の順序を調整して、前記ローカルモデルにおける前記分割の元の位置に対応する逆シャッフルされた分割を生成する手順と、前記マッパに従って前記逆シャッフルされた分割をマージする手順とをさらに有する、請求項15に記載のコンピュータプログラム。
【請求項17】
前記データ処理システムに、前記並べ替え操作を動的に繰り返す手順をさらに実行させる、請求項15または16に記載のコンピュータプログラム。
【請求項18】
前記データ処理システムに、前記並べ替え操作をトレーニングイテレーションごとに繰り返す手順をさらに実行させる、請求項17に記載のコンピュータプログラム。
【請求項19】
前記並べ替え操作は、前記参加当事者によって相互に合意された秘密に基づいて行われ、前記マッパは、前記参加当事者の全員によって共有される、請求項15または16に記載のコンピュータプログラム。
【請求項20】
前記要素は、モデルパラメータおよびモデル勾配のうちの1つである、請求項15または16に記載のコンピュータプログラム。
【請求項21】
前記並べ替え操作を適用する手順は、単一のモデルパラメータのみを調整する手順を含む、請求項15または16に記載のコンピュータプログラム。
【請求項22】
情報漏洩に対して安全な連合学習方法であって、
集約装置を独立した集約装置実行エンティティのセットに分割する段階と、
当事者に関連付けられたローカルコンピューティングエンティティにおいて、前記当事者が、連合学習に参加する当事者のセットの1つであり、前記参加する当事者によって生成されたモデル更新が、集約装置において融合され、
マッパに従ってローカルモデルを分割して、分割のセットを生成する段階であって、前記マッパは、前記ローカルモデルの要素を、一緒になって集約装置を構成する独立した集約装置実行エンティティのセットにマッピングする段階と、
前記分割のそれぞれの中の1つまたは複数の要素に並べ替え操作を適用して、シャッフルされた分割を生成する段階と、
前記シャッフルされた分割を、前記当事者に関連付けられるモデル更新として、前記集約装置実行エンティティのセットに転送する段階と
を備える、方法。
【請求項23】
前記ローカルコンピューティングエンティティにおいて、
前記集約装置実行エンティティのセットから、
融合されたモデル更新のセットを受信する段階と、
融合されたローカルモデルを回復する段階と
をさらに備える、請求項22に記載の方法。
【請求項24】
前記融合されたローカルモデルは、前記融合されたモデル更新における1つまたは複数の要素の順序を調整して、前記ローカルモデルにおける前記分割の元の位置に対応する逆シャッフルされた分割を生成する段階と、前記マッパに従って前記逆シャッフルされた分割をマージする段階とによって回復される、請求項23に記載の方法。
【請求項25】
各トレーニングイテレーションで前記並べ替え操作を繰り返す段階をさらに備える、請求項22から24のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、分散機械学習のための技術に関する。
【背景技術】
【0002】
[関連技術背景]
連合学習(FL:Federated Learning)は、複数の当事者が共同で機械学習(ML:machine learning)モデルを構築することができる、協調トレーニングの仕組みを提供する。連合学習では、すべてのトレーニングデータを中央トレーニングサーバ(またはデータセンタ)にプールする代わりに、各当事者は信頼され保護されたドメイン/インフラストラクチャ内にプライベートデータを保持することができるようになる。各当事者は、ローカルモデルをトレーニングし、モデルの更新または勾配を定期的に中央集約サーバにアップロードするのみである。この集約装置は、モデル更新を融合し、モデル同期のためにすべての当事者に集約されたモデルをブロードキャストバックする。連合学習によるトレーニング設定は、トレーニングデータのプライバシを保護する上でユニークな利点がある。特に、相互に不信/競合するトレーニング当事者、および法律または規制でデータの共有が禁止されている機密データ(例えば、健康および金融データ)の保有者にとっては、魅力的である。
【0003】
連合学習では、FL通信で交換されるモデル更新は、生のトレーニングデータよりも情報が少ないという誤解があった。このため、モデル更新を共有することが「プライバシ保護」につながると考えられてきた。しかしながら、モデル更新は、ローカルトレーニングデータから直接に導出されるものである。明示的に識別可能でない可能性があるが、トレーニングデータ情報は依然としてモデル更新の表現に隠されている。最近の研究では、連合学習が約束するプライバシに疑問を投げかけている。特に、この研究は、honest-but-curious中央集約サーバを想定した場合、敵対者がモデル更新を利用して個人属性を推測したり、トレーニングデータを再構築したりすることが確実に可能であることを実証している。
【発明の概要】
【発明が解決しようとする課題】
【0004】
これらの問題に対処する既存の技術は、モデル更新に統計ノイズを加えることによる差分プライベート集約と、安全なマルチ当事者計算(SMC:Secure Multi-Party Computation)プロトコルまたは準同型暗号化(HE:Homomorphic Encryption)などの暗号プリミティブを使用することである。どちらの技術にもいくつかの欠点がある。前者はトレーニングされたモデルの精度を著しく低下させることが多く、注意深くハイパーパラメータを調整する必要があり、後者は計算量が多い。また、当事者はお互いを信頼していないため、中央集約装置は信頼できない第三者(クラウド)コンピューティングインフラ上で動作することが多く、攻撃時に単一障害点となる可能性がある。
【0005】
したがって、この脅威モデルに対処する強化された連合学習フレームワークを提供する必要性が残されている。
【課題を解決するための手段】
【0006】
本開示によれば、プライバシ漏洩およびデータ再構成攻撃から防御するためのニューラルネットワークトレーニングのための連合学習システムおよび方法が説明される。本明細書のアプローチは、いくつかの態様、すなわち、信頼できる集約、モデル分割を伴う分散型集約、および動的並べ替えを備える多層防御戦略を活用することによって、情報漏洩に対する強化された保護を提供する。
【0007】
本明細書で使用する信頼できる集約とは、信頼できないサーバ上で隔離された機密実行を促進するために、ランタイムメモリの暗号化およびリモート証明を提供する信頼できる実行環境(TEE)を使用するという概念である。分散型集約とは、中央集約装置を複数の独立した機能的に等価な実行エンティティに分割し、次に、このようなエンティティのそれぞれを暗号化された仮想機械内で実行させるという概念である。複数の分散型集約装置により、当事者はモデル更新をモデルパラメータ単位で分解し、各単一の重みを特定の集約装置にマッピングさせる自由を得ることができる。したがって、好ましくは、各集約装置は、モデル更新の部分的な表示しか持たず、モデルアーキテクチャに気づかないことである。モデル更新を分散させることにより単一の集約装置を分割することで、このアプローチは、例えば特定のTEEを標的とする安全攻撃において、集約装置が単一障害点となることを防ぐことができる。さらに、ユーザは複数の集約装置を異なる地理的位置の物理サーバに展開し、他のマイクロプロセッサ上の多様なTEEを使用できる可能性がある。仮に集約装置の一部が侵害されたとしても、敵対者はモデル全体の更新情報をつなぎ合わせることはできない。
【0008】
一例示的な実装では、すべての集約装置実行エンティティは、ランタイムメモリの暗号化を伴う暗号化仮想機械(EVM:encrypted virtual machine)内で動作する。トレーニングに参加する前に、連合学習の各当事者は、ハードウェアが本物であることをリモートで認証し、モデル更新を交換するためのエンドツーエンドの安全な経路を確立する。
【0009】
追加の態様によれば、上述のように、追加の防御戦略は、本明細書では動的並べ替えと呼ばれる。動的並べ替えは、連合確率最急降下法(FedSGD:Federated Stochastic Gradient Descent)および連合平均法(FedAvg:Federated Averaging)などの連合学習融合アルゴリズムの算術的演算が、モデル更新に渡って双対的であるという概念を活用する。したがって、モデル更新を分割し、(内部的に)シャッフルすることは、融合結果に影響を与えない。本開示のこの態様によれば、当事者は、各集約装置実行エンティティにディスパッチされる情報をさらに難読化するために、各トレーニングイテレーションにおいて断片的なモデル更新を動的にシャッフルする能力を提供される。この戦略により、すべての分散型集約装置が侵害されたとしても、敵対者はトレーニングデータを再構築するためのモデル更新の正しい順序を解読することができないことが保証される。動的並べ替えは、モデル更新の当事者側変換が決定論的且つ可逆的で、当事者間で同一である場合に有効である。
【0010】
上記は、本主題のより適切な特徴のいくつかを概説したものである。これらの特徴は、単に例示的なものであると解釈されるべきである。開示された主題を異なる方式で適用することによって、または説明されるように主題を修正することによって、多くの他の有益な結果を達成することができる。
【図面の簡単な説明】
【0011】
主題およびその利点のより完全な理解のために、ここで、添付図面と併せて取られる以下の説明を参照されたい。
【0012】
【
図1】例示的な実施形態の例示的な態様が実装され得る分散データ処理環境の例示的なブロック図である。
【
図2】例示的な実施形態の例示的な態様が実装され得るデータ処理システムの例示的なブロック図である。
【
図3】本開示による安全な分散機械学習フレームワークの融合サーバが実装され得るクラウドコンピューティング環境を示す図である。
【
図4】集約サーバとデータ所有者/学習エージェントのセットを含む分散学習フレームワークを示す図である。
【
図5】本明細書において信頼できる集約と呼ばれる、第1安全技術を示す図である。
【
図6】本開示の信頼できる分散型連合学習を実装するシステムアーキテクチャを示す図である。
【
図7】モデル分割および動的並べ替え方式の代表的な実装を示す図である。
【発明を実施するための形態】
【0013】
ここで図面を参照し、特に
図1~
図2を参照し、本開示の例示的な実施形態が実装され得るデータ処理環境の例示的な図が提供される。
図1~
図2は、例示的なものに過ぎず、開示された主題の態様または実施形態が実装され得る環境に関して、いかなる限定も主張または示唆することを意図するものではないことが理解されるべきである。本発明の趣旨および範囲から逸脱することなく、示された環境に対して多くの修正がなされ得る。
【0014】
ここで図面を参照すると、
図1は、例示的な実施形態の態様が実装され得る例示的な分散データ処理システムの絵画的表現を示している。分散データ処理システム100は、例示的な実施形態の態様が実装され得るコンピュータのネットワークを含んでもよい。分散データ処理システム100は、分散データ処理システム100内で一緒に接続された様々なデバイスおよびコンピュータ間の通信リンクを提供するために使用される媒体である、少なくとも1つのネットワーク102を含む。ネットワーク102は、ワイヤ、無線通信リンクまたは光ファイバケーブルなどの接続を含んでよい。
【0015】
図示された例において、サーバ104およびサーバ106は、記憶ユニット108と共にネットワーク102に接続されている。さらに、クライアント110、112および114もネットワーク102に接続されている。これらのクライアント110、112および114は、例えば、パーソナルコンピュータ、ネットワークコンピュータなどである。図示された例において、サーバ104は、クライアント110、112および114に、ブートファイル、動作システムイメージ、アプリケーションなどのデータを提供する。図示された例において、クライアント110、112および114は、サーバ104に対して、クライアントである。分散データ処理システム100は、追加のサーバ、クライアント、および他の図示されていないデバイスを含んでよい。
【0016】
図示された例において、分散データ処理システム100は、ネットワーク102が、互いに通信するためにプロトコルの伝送制御プロトコル/インターネットプロトコル(TCP/IP:Transmission Control Protocol/Internet Protocol)スイートを使用するネットワークとゲートウェイの世界的なコレクションを表すインターネットである。インターネットの中心は、主要なノード(ホストコンピュータ)間の高速データ通信回線のバックボーンで、データおよびメッセージをルーティングする何千もの商業、政府、教育および他のコンピュータシステムで構成されている。もちろん、分散データ処理システム100は、例えば、イントラネット、ローカルエリアネットワーク(LAN:Local Area Network)、ワイドエリアネットワーク(WAN:Wide Area Network)など、複数の異なるタイプのネットワークを含むように実装してよい。上述のように、
図1は、開示された主題の異なる実施形態に対するアーキテクチャ上の限定ではなく、例として意図されており、したがって、
図1に示された特定の要素は、本発明の例示的な実施形態が実装され得る環境に関して限定的であると考えられるべきではない。
【0017】
ここで
図2を参照すると、例示的な実施形態の態様が実装され得る例示的なデータ処理システムのブロック図が示されている。データ処理システム200は、
図1のクライアント110などのコンピュータの一例であり、本開示の例示的な実施形態のための処理を実装するコンピュータ使用可能なコードまたは命令が配置され得る。
【0018】
ここで
図2を参照すると、例示的な実施形態が実装され得るデータ処理システムのブロック図が示されている。データ処理システム200は、
図1におけるサーバ104またはクライアント110などのコンピュータの一例であり、その中に、例示的な実施形態に係る処理を実装するコンピュータで使用可能なプログラムコードまたは命令が配置され得る。この例示的な例において、データ処理システム200は、プロセッサユニット204、メモリ206、永続的ストレージ208、通信ユニット210、入/出力(I/O)ユニット212、およびディスプレイ214の間の通信を提供する通信ファブリック202を含む。
【0019】
プロセッサユニット204は、メモリ206にロードされ得るソフトウェアのための命令を実行する役割を果たす。プロセッサユニット204は、特定の実装に依存する、1つまたは複数のプロセッサのセットであってよく、マルチプロセッサコアであってもよい。さらに、プロセッサユニット204は、メインプロセッサがシングルチップ上のセカンダリプロセッサと共に存在する1つまたは複数のヘテロジニアスプロセッサシステムを使用して実装され得る。別の例示的な例として、プロセッサユニット204は、同じタイプの複数のプロセッサを含む対称型マルチプロセッサ(SMP)システムであってもよい。
【0020】
メモリ206および永続的ストレージ208は、記憶デバイスの例である。記憶デバイスは、一時的ベース、もしくは永続的ベース、またはその組み合わせのいずれに情報を格納することができるハードウェアの任意の一部である。これらの例において、メモリ206は、例えば、ランダムアクセスメモリ、もしくは任意の他の適切な揮発性または不揮発性記憶デバイスであってよい。永続的ストレージ208は、特定の実装に依存する様々な形態を取ってよい。例えば、永続的ストレージ208は、1つまたは複数のコンポーネントまたはデバイスを含んでよい。例えば、永続的ストレージ208は、ハードドライブ、フラッシュメモリ、書き換え可能な光学ディスク、書き換え可能な磁気テープ、または上記のいくつかの組み合わせであってもよい。永続的ストレージ208に使用された媒体は、取り外し可能であってもよい。例えば、取り外し可能なハードドライブは、永続的ストレージ208のために使用されてよい。
【0021】
これらの例において、通信ユニット210は、他のデータ処理システムまたはデータ処理デバイスとの通信を提供する。これらの例において、通信ユニット210はネットワークインタフェースカードである。通信ユニット210は、物理および無線通信リンクのいずれかまたは両方を使用することで通信を提供してよい。
【0022】
入/出力ユニット212は、データ処理システム200に接続され得る他のデバイスとの間に、データを入力および出力することができる。例えば、入/出力ユニット212は、キーボードおよびマウスによってユーザ入力のための接続を提供してよい。さらに、入/出力ユニット212は、プリンタに出力を送信してよい。ディスプレイ214は、ユーザへの情報を表示するためのメカニズムを提供してよい。
【0023】
オペレーティングシステムおよびアプリケーションまたはプログラムに対する命令は、永続的ストレージ208に配置される。これらの命令は、プロセッサユニット204による実行のためにメモリ206にロードされてよい。異なる実施形態のプロセスは、メモリ206などのメモリに配置され得るコンピュータ実装命令を用いるプロセッサユニット204によって実行されてよい。これらの命令は、プロセッサユニット204内のプロセッサによって読み取られて実行されてよいプログラムコード、コンピュータで使用可能なプログラムコードまたはコンピュータ可読プログラムコードと称されている。異なる実施形態に係るプログラムコードは、メモリ206または永続的ストレージ208など、異なる物理または有形のコンピュータ可読媒体で具現化されてよい。
【0024】
プログラムコード216は、選択的に取り外し可能であり、プロセッサユニット204による実行のためにデータ処理システム200にロードまたは転送され得るコンピュータ可読媒体218上に関数形式で配置されている。これらの例において、プログラムコード216およびコンピュータ可読媒体218は、コンピュータプログラム製品220を形成する。一例において、コンピュータ可読媒体218は、例えば、永続的ストレージ208の一部であるハードドライブなどの記憶デバイス上に転送するために永続的ストレージ208の一部であるドライブまたは他のデバイスに挿入または配置される光または磁気ディスクなどの有形形態であってもよい。有形形態では、コンピュータ可読媒体218はまた、データ処理システム200に接続されるハードドライブ、サムドライブ、またはフラッシュメモリなどの永続的ストレージの形態を取ることができる。コンピュータ可読媒体218の有形形態は、コンピュータ記録可能な記録媒体とも称される。いくつかの実施例では、コンピュータ記録可能媒体218は、取り外し可能でない場合がある。
【0025】
代替的に、プログラムコード216は、通信ユニット210への通信リンク、もしくは入/出力ユニット212への接続、またはその組み合わせによってコンピュータ可読媒体218からデータ処理システム200へ転送されてよい。通信リンク、もしくは接続、またはその組み合わせは、例示的な例において物理的または無線的であってよい。コンピュータ可読媒体は、プログラムコードを含む通信リンクまたは無線伝送などの無形媒体の形態を取ってもよい。データ処理システム200について例示された異なるコンポーネントは、異なる実施形態が実装され得る方法に対するアーキテクチャ上の限定を提供することを意図していない。異なる例示的な実施形態は、データ処理システム200について例示されたものに加えて、またはそれに代えて、コンポーネントを含むデータ処理システムにおいて実装され得る。
図2に示された他のコンポーネントは、示される例示的な例から変化させることができる。一例として、データ処理システム200における記憶デバイスは、データを格納し得る任意のハードウェア装置であってよい。メモリ206、永続的ストレージ208およびコンピュータ可読媒体218は、有形形態である記憶デバイスの例である。
【0026】
別の例において、バスシステムは、通信ファブリック202を実装するように使用されてよく、システムバスまたは入/出力バスなどの1つまたは複数のバスを含んでよい。もちろん、バスシステムは、バスシステムに結合された異なるコンポーネントまたはデバイス間のデータ転送を提供する任意の適切なタイプのアーキテクチャを使用して実装してよい。追加的に、通信ユニットは、モデムまたはネットワークアダプタなどのデータを送信および受信するように使用される1つまたは複数のデバイスを含んでよい。さらに、メモリは、例えば、通信ファブリック202に存在し得るインタフェースおよびメモリコントローラハブに見られるようなメモリ206またはキャッシュであってもよい。
【0027】
本発明の動作を実行するコンピュータプログラムコードは、1つまたは複数のプログラミング言語の任意の組み合わせに書き込まれてよい。上記プログラミング言語は、Java(登録商標)、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語と、「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語とを含む。プログラムコードは、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、スタンドアロンのソフトウェアパッケージとして、ユーザのコンピュータ上で部分的かつリモートコンピュータ上で部分的に、または、リモートコンピュータもしくはサーバ上で全体的に実行し得る。後者のシナリオでは、リモートコンピュータが、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよいし、その接続が、(例えば、インターネットサービスプロバイダを使用してインターネットを介して)外部コンピュータに対して行われてもよい。
【0028】
当業者であれば、
図1~
図2のハードウェアは、実装に応じて変化し得ることを認識するであろう。
図1~
図2に示されたハードウェアに加えて、またはそれに代えて、フラッシュメモリ、同等の不揮発性メモリ、または光ディスクドライブなどの他の内部ハードウェアまたは周辺デバイスが使用されてもよい。また、例示的な実施形態の処理は、開示された主題の趣旨および範囲から逸脱することなく、先に述べたSMPシステム以外のマルチプロセッサデータ処理システムに適用することが可能である。
【0029】
これから分かるように、本明細書に記載された技術は、
図1に示されるような標準的なクライアント-サーバパラダイム内で連携して動作してもよく、クライアント機械は、1つまたは複数の機械のセットで実行されるインターネットアクセス可能なウェブベースポータルと通信する。エンドユーザは、ポータルにアクセスし、ポータルとインタラクトすることができるインターネット接続可能なデバイス(例えば、デスクトップコンピュータ、ノートブックコンピュータ、インターネット対応モバイルデバイスなど)を操作する。通常、各クライアントまたはサーバ機械は、ハードウェアおよびソフトウェアを含む
図2に示されるようなデータ処理システムであり、これらのエンティティは、インターネット、イントラネット、エクストラネット、プライベートネットワーク、または任意の他の通信媒体もしくはリンクなどのネットワークを介して互いに通信する。データ処理システムは、通常、1つまたは複数のプロセッサ、オペレーティングシステム、1つまたは複数のアプリケーション、および1つまたは複数のユーティリティを含む。データ処理システム上のアプリケーションは、HTTP、SOAP、XML、WSDL、UDDI、WSFLなどのサポートを含むがこれらに限定されない、ウェブサービスのネイティブサポートを提供する。SOAP、WSDL、UDDI、WSFLに関する情報は、これらの標準の開発および保守を担当するワールドワイドウェブコンソーシアム(W3C:World Wide Web Consortium)から入手可能である。HTTPおよびXMLに関する詳細な情報は、インターネットエンジニアリングタスクフォース(IETF:Internet Engineering Task Force)から入手可能である。これらの標準を熟知していることが前提になる。
【0030】
データ処理システム上のアプリケーションは、非標準プロトコルのネイティブサポート、またはTCP/IPネットワーク上で作業するように開発されたプライベートプロトコルを使用することができる。
【0031】
[クラウドコンピューティングモデル]
上述したように、本開示の分散機械学習技術は、好ましくは、クラウドコンピューティング環境に配置されるコンピューティング要素を活用する。そのため、クラウドコンピューティングに関する背景を以下に補足する。
【0032】
クラウドコンピューティングは、最小限の管理労力、またはサービスのプロバイダとの対話で迅速に提供され解放され得る構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械およびサービス)の共有されたプールに対する簡便なオンデマンドネットワークアクセスを可能にするサービス提供のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含んでよく、これらはすべて、Peter MellおよびTim Granceによる「The NIST Definition of Cloud Computing」(2011年9月)でより詳細に説明および定義されている。
【0033】
具体的には、以下のようなものが代表的な特徴として挙げられる。
【0034】
オンデマンドセルフサービス:クラウド消費者は、サービスのプロバイダによる人的やり取りを必要とせず、必要なときに自動的に、サーバタイムおよびネットワークストレージなどの計算機能を一方的にセットアップし得る。
【0035】
ブロードネットワークアクセス機能は、異なる機種環境のシンクライアントまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的な機構によってネットワークおよびアクセスを介して利用可能である。
【0036】
リソースプーリング:プロバイダのコンピューティングリソースは、要求に従って動的に割り当ておよび再割り当てされる異なる物理的および仮想リソースでマルチテナントモデルを使用する複数の消費者にサービスするようにプールされる。概して消費者は提供されるリソースの厳密な位置についての制御または知識を有しないが、より高い抽象化レベル(例えば、国、州、またはデータセンタ)で位置を指定可能であり得るという点で、位置独立性の意味がある。
【0037】
速やかな弾性:機能は、いくつかの場合には自動で、素早くスケーリングアウトするように、速やかにおよび弾性的に提供され得、素早くスケーリングインするように、速やかに解放され得る。消費者にとっては、プロビジョニングに利用可能な各能力は、無制限であるように思えることが多く、いつでも必要なだけ購入できる。
【0038】
測定されたサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザアカウント)に適切な、あるレベルの抽象化で測定能力を活用することにより、自動的にリソース使用を制御および最適化する。リソース使用量は、監視、制御、および報告され得、これにより、利用されるサービスのプロバイダおよび消費者の両方に対して透明性が提供される。
【0039】
サービスモデルは通常、以下の通りである。
【0040】
サービスとしてのソフトウェア(Software as a Service:SaaS):消費者に提供される能力は、クラウドインフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。このアプリケーションは、様々なクライアントデバイスから、ウェブブラウザなどのシンクライアントインタフェース(例えば、ウェブベースの電子メール)を通じてアクセス可能である。限定的なユーザ固有のアプリケーション構成設定を想定される例外として、消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージ、またはさらには個々のアプリケーション機能を含む基礎となるクラウドインフラストラクチャを管理も制御もしない。
【0041】
サービスとしてのプラットフォーム(PaaS):消費者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成される、消費者が作成または取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、またはストレージを含む基礎のクラウドインフラストラクチャを管理または制御しないが、展開されたアプリケーション、および、場合によっては、環境構成をホストするアプリケーションに対する制御を有する。
【0042】
インフラストラクチャアズアサービス(IaaS):消費者に提供される能力は、消費者が任意のソフトウェアを展開および実行することが可能な、処理、ストレージ、ネットワーク、および他の基礎的なコンピューティングリソースを提供することであり、ソフトウェアにはオペレーティングシステムおよびアプリケーションを含み得る。消費者は、基礎のクラウドインフラストラクチャを管理または制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーション、および、場合によっては、選択したネットワーキングコンポーネント(例えばホストファイアウォール)の限定された制御に対する制御を有する。
【0043】
展開モデルは通常、以下の通りである。
【0044】
プライベートクラウド:クラウドインフラストラクチャは組織(organization)に関してのみ動作する。プライベートクラウドは、当該組織または第3当事者によって管理されてよく、オンプレミスに存在しても、オフプレミスに存在してもよい。
【0045】
コミュニティクラウド:クラウドインフラストラクチャは、いくつかの組織によって共有され、共有される関連性(例えば、使命、安全要件、ポリシ、およびコンプライアンス検討)を有する特定のコミュニティをサポートする。コミュニティクラウドは、それらの組織または第3当事者によって管理されてよく、オンプレミスまたはオフプレミスで存在してよい。
【0046】
パブリッククラウド:クラウドインフラストラクチャが、一般公衆または大規模な産業グループに利用可能になされ、クラウドサービスを売る組織によって所有される。
【0047】
ハイブリッドクラウド:クラウドインフラストラクチャは、独自のエンティティを保つが、データおよびアプリケーションのポータビリティ(例えば、クラウド間のロードバランシングのためのクラウドバースティング)を可能とする、標準化されたかまたは自己所有の技術によって共に結び付けられている、2またはそれ以上のクラウド(プライベート、コミュニティ、または公衆)の複合である。
【0048】
クラウドコンピューティング環境は、ステートレス、低結合、モジュール性、および、セマンティック相互運用性に対する重点を指向したサービスである。クラウドコンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。代表的なクラウドコンピューティングノードは、上記
図2に示されている。具体的には、クラウドコンピューティングノードにおいては多数の他の汎用または特殊目的のコンピューティングシステム環境または構成で運用されているコンピュータシステム/サーバが存在する。コンピュータシステム/サーバとの使用に適した周知のコンピューティングシステム、環境、もしくは構成、またはその組み合わせの例としては、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能消費者向け電子機器、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、および上記のシステムまたはデバイスのいずれかを含む分散クラウドコンピューティング環境、および同様のものがあるが、これに限られるわけではない。コンピュータシステム/サーバは、プログラムモジュールなどのコンピュータシステム実行可能命令がコンピュータシステムによって実行されるという一般的な文脈で説明される場合がある。概して、プログラムモジュールは、特定のタスクを実行するか、特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含んでよい。コンピュータシステム/サーバは、通信ネットワークを介して連結されるリモート処理デバイスによってタスクが実行される分散型クラウドコンピューティング環境においても実施され得る。分散クラウドコンピューティング環境では、メモリ記憶デバイスを含むローカルコンピュータシステム記憶媒体およびリモートコンピュータシステム記憶媒体の両方にプログラムモジュールが配置されてよい。
【0049】
通常のクラウドコンピューティング環境において、且つ
図3に示されたように、関数抽象化層のセットが提供される。これらの関数抽象化層は、ハードウェア層、ソフトウェア層、仮想化層、管理層およびワークロード層を含む。
【0050】
ハードウェアおよびソフトウェア層300は、ハードウェアおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例としては、IBM(登録商標)zSeries(登録商標)システムなどのメインフレーム、IBM pSeries(登録商標)システムなどの RISC (Reduced Instruction Set Computer) アーキテクチャベースのサーバ、IBM xSeries(登録商標)システム、IBM BladeCenter(登録商標)システム、記憶デバイス、ネットワークおよびネットワーキングコンポーネントが挙げられまる。ソフトウェアコンポーネントの例には、ネットワークアプリケーションサーバソフトウェア、一例ではIBM WebSphere(登録商標)アプリケーションサーバソフトウェアと、データベースソフトウェア、一例ではIBM DB2(登録商標)データベースソフトウェアとが挙げられまる。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere、およびDB2は、世界中の多くの法域で登録されているインターナショナル・ビジネス・機械ズ・コーポレーションの商標である。)
仮想化層302は、以下の例の仮想エンティティがそこから提供され得る抽象化層を提供する:仮想サーバ、仮想ストレージ、仮想プライベートネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティングシステム、ならびに仮想クライアント。
【0051】
管理層304は、様々な管理機能を提供する。例えば、リソースプロビジョニングは、コンピューティングリソース、および、クラウドコンピューティング環境内でタスクを実行するために利用される他のリソースの動的調達を提供する。計測および価格設定は、クラウドコンピューティング環境内でリソースが利用されるごとのコスト管理、及びこれらのリソースの消費に対して消費者への請求または組織への請求を提供する。一例において、これらのリソースは、アプリケーションソフトウェアライセンスを含んでもよい。安全は、クラウド消費者およびタスクについてのアイデンティティ検証、ならびに、データおよび他のリソースについての保護を提供する。ユーザポータルは、消費者およびシステム管理者のためのクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理は、必要なサービスレベルを満たすためのクラウドコンピューティングリソース割り当ておよび管理を提供する。サービスレベルアグリーメント(SLA)の計画および履行は、SLAに従って将来の要件が予測されるクラウドコンピューティングリソースの事前配置および調達を提供する。
【0052】
ワークロード層306は、クラウドコンピューティング環境が利用され得る機能を提供する。この層から提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想クラスルーム教育配信、データ分析処理、トランザクション処理、企業特有の機能をプライベートクラウドでの実現、および、本開示による分散機械学習308を含む。
【0053】
したがって、代表的なクラウドコンピューティング環境は、フロントエンドアイデンティティマネージャ、ビジネスサポートサービス(BSS)機能コンポーネント、運用サポートサービス(OSS)機能コンポーネント、およびコンピュートクラウドコンポーネントを含む高レベルの機能コンポーネントのセットを有する。アイデンティティマネージャは、アイデンティティ管理を提供するために要求クライアントとのインタフェースを担当し、このコンポーネントは、ニューヨーク州アーモンクのIBMコーポレーションから入手できるTivoli Federated Identity Manager(TFIM)など、1つまたは複数の既知のシステムで実装してよい。適切な状況では、TFIMは,他のクラウドコンポーネントへの連合シングルサインオン(F-SSO)を提供するために使用されてよい。ビジネスサポートサービス部門は、課金サポートなど特定の管理機能を提供している。運用サポートサービスコンポーネントは、仮想機械(VM)インスタンスなど、他のクラウドコンポーネントのプロビジョニングおよび管理を提供するために使用されている。仮想機械は、ハードウェア機械を模倣するが、ソフトウェアにインストールされるオペレーティングシステムまたはアプリケーション環境である。クラウドコンポーネントは、主な計算リソースを表し、典型的には、クラウド経由でアクセス可能になっている対象アプリケーションを実行するために使用される複数の仮想機械インスタンスである。1つまたは複数のデータベースは、ディレクトリ、ログおよび他の工作データを格納するために使用されている。これらのコンポーネント(フロントエンドアイデンティティマネージャを含む)はすべて、クラウド「内」に配置されるが、これは要件とならない。代替的な実施形態において、アイデンティティマネージャは、クラウドの外部で運用されてもよい。サービスプロバイダもクラウドの外部で運用されてよい。
【0054】
いくつかのクラウドは、非伝統的なIPネットワークに基づく。したがって、例えば、クラウドは、MACアドレスのハッシュを使用する特別な単層IPルーティングを有する2層CLOSベースのネットワークに基づくことができる。本明細書で説明する技術は、このような非伝統的なクラウドで使用してよい。
【0055】
一般化すると、クラウドコンピューティングインフラは、ネットワークを介して接続されたホスト機械(例えば、サーバまたは同様の物理機械コンピューティングデバイス)および1つまたは複数の管理サーバからなる仮想機械ホスティング環境を提供する。典型的には、物理サーバはそれぞれ、VMware ESX/ESXiなどの仮想化技術を使用して1つまたは複数の仮想機械を動的に提供するように適合されている。複数のVMを1台のホスト機械に配置し、ホスト機械のCPUやメモリおよび他のリソースを共有することで、組織のデータセンターの利用率を高めることができる。他のタスクのうち、管理サーバは、インフラを監視し、必要に応じて仮想機械をホスト間で移動させるなど、VMの配置を自動的に操作するなどのタスクを行う。
【0056】
非限定的な実装例において、代表的なプラットフォーム技術としては、VMware vSphere 4.1 Update 1および5.0を搭載したIBM System x(登録商標)サーバが挙げられるが、これに限定されていない。
【0057】
[連合学習および脅威モデル]
分散機械学習の既知のアプローチが
図4に示されている。本システムは、融合(集約)サーバ400と、本明細書において学習エージェントと呼ばれる場合もあるデータ所有者またはエージェント402の数Nを備える。この実施形態では、各学習エージェントは、典型的にはラベル付きサンプルからなるローカルデータセットd
_iにアクセスし、同じ機械学習またはニューラルネットワークモデルをトレーニングすることを望んでいる。各エージェントは、保護したい独自のデータセットを持っており、他のエージェントまたは集約サーバと共有することはできない。典型的な動作では、分散学習処理は以下のように行われることがある。ステップ(1)において、各エージェント402は、集約サーバ400に連絡して、トレーニング用のハイパーパラメータを取得する。機械学習において、ハイパーパラメータとは、学習処理開始前に値が設定されるパラメータであり、それに対して、他のパラメータの値はトレーニングによって導出される。各エージェント402は、同タイプのニューラルネットワークをトレーニングする。代表的な例において、エージェントに関連付けられるモデルは次に、いくつかのパラメータからなるパラメータベクトルA=[p
1...p
k]によって特徴づけられる。エージェントiに与えられたパラメータベクトルであるA
iを有する複数のエージェントがシステム内に存在する。ステップ(2)において、i番目のエージェントは、そのローカルデータセットd
_iでモデルをトレーニングし、このようなトレーニングは通常、全体のトレーニングデータの小さなサブセットであるミニバッチを取ることによって行われ、そうすることにおいて、i番目のエージェントはそのパラメータベクトルA
iを計算する。ステップ(3)において、各エージェント402は、得られたパラメータを集約サーバ400に送り、集約サーバ400はその後、ベクトルの各パラメータを(典型的には、平均または加重平均を計算することによって)融合する。平均は、異なるエージェントに対して異なる優先度(重みm)を使用してもよく、例えば、エージェントiが重みm
iを得る場合、集約サーバによって計算される平均パラメータベクトルは以下の数式で表される。
【数1】
ステップ(4)において、集約サーバ400は、平均パラメータベクトルをエージェント402に戻して公表する。その後、学習が完了したとみなされるまで、ステップ(2)~ステップ(3)をイテレーション所定の回数だけ繰り返す。
【0058】
上記の示された処理により、少なくとも加法的な損失関数、すなわち指標損失関数(クロスエントロピ損失、ノルムベース損失、バイナリクロスエントロピなど)については、すべてのデータを1箇所で収集してモデルのトレーニングに使用した場合と同じモデルが作成されることが示された。しかしながら、このアプローチでは、モデルを集約サーバに公開してしまうという課題がある。このサーバは通常、クラウドホスティングサービスであり、データ所有者/エージェントそのものがクラウド内に配置されていないかもしれない場合は信頼できない可能性がある。以下で説明されるように、本開示の多層安全技術はこの問題に対処する。
【0059】
その背景には、トレーニングデータを当事者全員から集め、トレーニングのための中央サーバにプールするという、集中型トレーニングのプライバシリスクおよび制約に対処する、連合学習が出現する重要な原動力の必要性があった。FLでは、トレーニングデータは各参加者のローカルデバイスに分散されたように維持されている。参加者(または当事者)は、モデルアーキテクチャに合意し、ローカルトレーニングパイプラインを維持しなければならない。中央サーバに生のトレーニングデータを提供する代わりに、
図4に示すように、各当事者はそのプライベートなトレーニングデータでローカルモデルをトレーニングし、モデル更新を中央サーバにアップロードする。通常、集約装置は、当事者の管理、トレーニングタスクの調整、モデル更新のマージも担当する。集約されたモデルの更新は、各トレーニングイテレーション後にローカルモデルを(典型的には)同期させるために当事者にディスパッチされる。
【0060】
以下、連合学習分散設定におけるDNNのトレーニングについて、さらに追加の背景の説明を提供する。θをモデルパラメータ、Lを損失関数と示す。各当事者は独自のトレーニングデータ/ラベルペア(x
i,y
i)を持つ。各当事者はデータバッチの勾配∇
θL
θ(x
i,y
i)を集約装置に共有することを選択することができる。集約装置はすべての当事者の勾配和を計算し、当事者のモデルパラメータをローカルに同期させる。
【数2】
この融合アルゴリズムはFedSGDと呼ばれる。代替的には、当事者はローカルでいくつかのエポックのトレーニングを行い、モデルパラメータ:
【数3】
を集約装置にアップロードすることも可能である。集約装置はモデルパラメータの加重平均
【数4】
を計算でき、n
iは当事者iのトレーニングデータサイズ、nはすべてのn
iの総和である。そして、集約装置は集約されたモデルパラメータを当事者に送り返し、同期をとる。このモデル平均化融合アルゴリズムがFedAvgと呼ばれる。FedAvgおよびFedSGDは、1回のFL学習ラウンドで1バッチのデータのみをトレーニングし、モデルパラメータを同期させる場合、勾配は2つの連続したモデルパラメータのアップロードの差から計算できるため等価である。FedAvgは、当事者が更新を同期する前に複数のSGDイテレーションをバッチすることができるので、より多くのデータを注入するとモデルパラメータが不明瞭になるため、プライバシ攻撃が成功するのはより困難であろう。
【0061】
FedSGDおよびFedAvgの両方のアルゴリズムは、双対的な和と平均化オペレーションのみに関与する。簡単に言うと、モデルをアレイで表現した場合、これらの融合アルゴリズムでは、当事者をまたいだ座標的な融合を実行する。すなわち、当事者P1のモデルM1のインデックスiのパラメータと当事者P2のモデルM2の同じインデックスiのパラメータを足すまたは平均する。ここで、当事者間のインデックスiのパラメータは、他のインデックスのパラメータを知らなくても融合することができる。このように、モデル更新全体を複数のピースに分割し、複数のサーバに展開し、同じ融合アルゴリズムを独立して実行することができる。さらに、すべての当事者が同じ並べ替えを行う限り、集約前にパラメータまたは勾配をシャッフルすることも可能である。FLプライバシ攻撃では、モデル更新の完全性およびデータの順序が、トレーニングデータを再構築するための最適化手順にとって極めて重要である。どちらかが欠けていると、再構築の失敗につながってしまう。後述するように、本明細書における技術では、当事者がローカル側で分割と並べ替えを逆転できることが要求されるだけであり、そのような制限はない。
【0062】
一般的に、連合学習は、クロスデバイスおよびクロスサイロシナリオの両方で使用され得る。一般的にクロスデバイスのFLトレーニングでは、多数のモバイルデバイスまたはInternet of Thing(IoT)デバイスをクライアントとして使用する。クライアントの信頼性は極めて低い。デバイスは頻繁に加入して脱出する可能性があり、電池で駆動することが多いため、エネルギー拘束がある。しかしながら、クロスサイロのFLトレーニングには、通常、インセンティブを共有して一緒に協働でモデルを学習する一定の数の組織が関わる。信頼できるローカルトレーニング施設を提供できる。そのため、集約装置は当事者の状態を維持し、固有IDで当事者に対処することができる。クロスサイロトレーニングでは、データ機密性に厳しい要件があり、よりデータプライバシに焦点を当てる。また、以下からも分かるように、本明細書において、本アプローチはFLクロスサイロトレーニングの問題点に対処するものであるが、クロスデバイスの領域にも適用できる。
【0063】
本明細書の脅威モデルは、honest-but-curious集約サーバを想定している。FLトレーニングプロセスに関わるすべての当事者は良性的であるが、トレーニングデータを互いに共有する傾向がないものと仮定する。敵対者は、当事者からアップロードされたモデル更新を検査しようとする。彼らの目的は、FLトレーニングに参加する当事者のトレーニングデータを再構築することである。この脅威モデルは、FLプライバシ攻撃におけるものと同じである。さらに、FLに関与する当事者は、システムオンチップ(SoC)ハードウェアおよびモデル集約ワークロードを保持するEVMを信頼していると仮定する。
【0064】
[システム設計]
以下、本開示の連合学習フレームワークの代表的な設計を詳述し、このアプローチがFLプライバシ攻撃の情報漏洩経路をいかに効果的に軽減するかを説明する。上述のように、このフレームワークは、好ましくは、(1)信頼できる集約、(2)分散型集約、および(3)動的並べ替え、を含む多層安全アプローチを活用することである。第1集約技術は、好ましくはランタイムメモリの暗号化を備えたリモート証明できる暗号化仮想機械(例えば、AMD(登録商標)SEV EVM)を介して、機密性と信頼性の高い集約を可能にする。本例示的な実施形態で使用する安全暗号化された仮想化(SEV:Secure Encrypted Virtualization)は、AMDが2016年に発表した計算技術である。これはパブリッククラウド環境において、安全に敏感なワークロードを保護することを目的としている。SEVはAMD安全メモリ暗号化(SME)に依存してランタイムメモリの暗号化を可能にする。AMD仮想化(AMD-V)アーキテクチャと組み合わせることで、SEVはゲストVMとハイパーバイザとの間で暗号化分離を強制することができる。したがって、SEVは、より高い権限を持つシステム管理者、例えば、ハイパーバイザレベルの管理者が、暗号化された仮想機械のドメイン内のデータにアクセスすることを防止することができる。SEVが有効な場合、SEVハードウェアはVMのすべてのコードおよびデータにアドレス空間識別子(ASID)を付け、このASIDはVM暗号化鍵(VEK:VM Encryption Key)と呼ばれる個別のエフェメラル高度暗号化標準(AES)鍵と関連付けられる。鍵の管理は、AMD SoCに内蔵された32ビットARM Cortex-A5マイクロコントローラであるAMD SPが行っている。ランタイムメモリの暗号化は、オンダイメモリコントローラを介して実行される。各メモリコントローラはAESエンジンを搭載し、メインメモリへの書き込み時またはSoCへの読み込み時にデータを暗号化/復号化する。メモリページの暗号化に関する制御は、ページテーブルを介して行われる。物理アドレスビット47、通称Cビットは、メモリページが暗号化されているかどうかをマークするために使用される。他のTEEと同様に、SEVはハードウェアプラットフォームの証明およびトビーが起動したゲストVMの認証のためのリモート証明メカニズムも提供する。プラットフォームの信頼性は、AMDおよびプラットフォーム所有者によって署名されたアイデンティティ鍵によって証明される。ゲストVM所有者は、任意の秘密をプロビジョニングする前に、SEV対応ハードウェアの信頼性とUEFIファームウェアの測定の両方を検証し、暗号化された仮想機械の起動を支援する。
【0065】
図5は、この一般的な機密集約の概念を示す。
図3に関して上述したクラウド実行環境のような、その一例が500で示される隔離した独立した信頼できる実行環境がクラウドに存在すると仮定する。TEE500のようなTEEにより、ユーザはCPUパッケージを信頼して第3当事者クラウドサーバに計算をアウトソースすることができる。代表的なTEE技術としては、例えば、Intel(登録商標)SGX(Software Guard Extensions)/TDX(Trust Domain Extensions)、AMD(登録商標)SEV(前述)、IBM(登録商標)PEF(Protected Execution Facility)、ARM TrustZoneなどが挙げられる。TEEは、大量のプライバシセンシティブなトレーニングデータ、複数の配布当事者、およびより厳しいデータ保護が規制されることに関与する可能性がある共同ML計算にとって、特に魅力的である。ここで、そして、説明されるように、TEE500は、連合学習を促進する他のそのような実行エンティティから集約装置実行エンティティを隔離するための信用できる仲介として機能する。
【0066】
図5に示すように、TEE500は、パッキングおよび展開のために、オペレーティングシステムベースのコンテナメカニズム(例えば、Kata Containerなどのオープンソースコンテナ)と関連付けられ、隔離した仮想機械を実行する。具体的には、TEE500は、(SEVなどの)ランタイムメモリの暗号化506によってサポートされる暗号化仮想機械(EVM)504内で集約装置502を実行する。TEE内部で集約装置を実行することで、メモリ破壊攻撃を軽減する。集約装置502は、
図4に示された単一の集約装置を一緒に構成する分散型集約装置のセットのうちの1つである。集約装置502などの各集約装置は、EVM504内で実行され、EVMメモリは、個別のエフェメラル仮想機器暗号化鍵(VEK)によって保護される。このように、モデル集約計算の機密性も、システム管理者などの不正ユーザ、およびホストサーバ上で動作するハイパーバイザまたはOSなどの特権ソフトウェアから保護される。以下で説明されるように、連合学習の当事者508はそれぞれ、トレーニングに参加する前に純正SEVハードウェア/ファームウェアをリモートで認証し、モデル更新を交換するためのエンドツーエンドの安全な経路を確立する。具体的には、証明サーバ505によって促進されるリモート証明は、集約装置のハードウェア認証およびロードタイム完全性チェックを提供するために使用される。また、示されたように、各当事者508は、データおよび独自の機械学習(ML)インフラストラクチャ510を有し、典型的には、属性(例えば、モデル勾配)を交換することによって協力する。
【0067】
以上を背景として、以下では、本開示の連合学習フレームワークの代表的な展開例について、より詳細に説明する。
【0068】
図6は、連合学習フレームワークに対する代表的な展開例を示す。この例では、連合学習に参加する当事者600(当事者番号1~4)は4つあり、集約メカニズムは3つの集約装置実行エンティティ602(集約装置番号1~3)に分散される。各集約装置実行エンティティ602は、TEE604内で実行されるので、3つのTEE(TEE番号1~3)が存在する。従来の連合学習と同様に、本明細書におけるアプローチでは、各当事者600は、トレーニングに参加するために集約装置602に登録する必要がある。各当事者は、登録前に、リモート証明などにより、TEEプラットフォームを検証する必要がある。まず、1つの集約装置実行エンティティが、すべての当事者に通知してトレーニングプロセスを開始する。トレーニングフェーズでは、集約装置はすべての当事者とトレーニングイテレーションを何度も行う。各トレーニングイテレーションにおいて、各当事者はまず集約装置から最新のモデル更新をダウンロードしてローカルモデルを同期させ、次にローカルトレーニングデータを使って新しいモデル更新を生成し、集約装置にアップロードする。集約装置は、すべての当事者からのモデル更新をマージし、集約バージョンをすべての当事者にディスパッチし戻す。グローバルトレーニングは、予め定められたトレーニング基準が満たされた場合、例えば、FLトレーニングが指定されたトレーニングイテレーション回数に達したとき、または、モデル精度要件がローカルに満たされた場合にFLトレーニングを終了することを当事者が決定できるに終了する。従来のFLとは異なり、この展開では、
図4に示すような単一の中央集約装置ではなく、TEE604内で実行される複数の集約装置602が関与している。このシステムにおいて、集約装置602は、トレーニング同期化のために互いに通信する必要がある。さらに、これから説明するように、集約装置のワークロードおよびプロビジョニング秘密の証明を担当する証明サーバ606も展開される。
【0069】
[信頼できる集約]
前述したように、当事者と集約装置との間で交換されるモデル更新には、プライベートなトレーニングデータのリバースエンジニアリングのための必須情報が含まれている可能性がある。以下の技術を使用することにより、敵対者が送信中および使用中のモデル更新を傍受および検査する経路を排除している。この設計において、好ましくは、SEV(ただし、これに限定されない)などのメカニズムを介して、FL集約のための暗号化分離は強制される。
図5で述べたように、集約装置はEVM内で実行され、各EVMのメモリは個別のエフェメラルVEKで保護される。
図6に示す実施形態において、集約装置602と当事者600との間の信頼の確立は、2つの段階に分けられる。
【0070】
段階I:信頼できる集約装置の起動
まず、SEV EVMは、集約装置が内部で動作する状態で安全に起動する。EVMの信頼を確立するように、(1)プラットフォームが必要な安全特性を提供する認証安全保障(例えばAMD SEV対応)ハードウェアであり、(2)EVMを起動するための統一された拡張可能なファームウェアイメージ(UEFI:Unified Extensible Firmware Image)が改ざんされていないこと、を証明する証明が提供される。リモート証明が完了すると、秘密が、好ましくは信頼できる集約装置のユニークな識別子として、EVMに提供される。秘密はEVMの暗号化された物理メモリに導入され、後述の段階IIで集約装置認証に使用される。
図6において、ステップ(1)は、リモート証明を促進する証明サーバ606を示す。この目的のために、EVM所有者は、サービスプロバイダ(例えば、AMD(登録商標)SP)に、例えば、プラットフォームDiffie-Hellman公開鍵(PDH)からルート(例えば、AMDルート鍵(ARK))に至る証明書チェーンを転送するように命令する。この証明書チェーンは、ルート証明書によって検証することができる。さらに、証明書チェーンと共に、UEFIイメージのダイジェスト、SEV APIバージョン、VM展開ポリシも証明レポートに含まれることが好ましい。
【0071】
証明レポートは、ハードウェアプラットフォームを認証するための証明書チェーンを検証するために、ルート証明書を備える証明サーバ606に送信される。その後、証明サーバ606は、起動ブロブおよびゲスト所有者Diffie-Hellman公開鍵(GODH:Guest Owner Diffie-Hellman Public Key)証明書を生成する。これらは、Diffie-Hellman鍵交換(DHKE:Diffie-Hellman Key Exchange)を介してトランスポート暗号化鍵(TEK)とトランスポート完全性鍵(TIK)を交渉し、EVMを起動するために集約サーバ606に送り返される。UEFIの測定は、起動時にEVMを一時停止することで、SPから取得することができる。この測定は、UEFIブートプロセスの完全性を証明するために、証明サーバ606に送信される。その後にのみ、証明サーバ606は、好ましくはECDSA prime251v1鍵を含むパッケージ化された秘密を生成する。ハイパーバイザ(図示せず)は、この秘密を信頼できる集約装置のユニーク識別子としてEVMの物理メモリ空間に導入し、起動処理を継続する。この秘密の導入手順は、好ましくは第1世代SEVリモート証明プロトコルのようなリモート証明プロトコルに従う。他のリモート証明プロトコル、例えば次に来るSEV-SNPを実装することで、起動処理の完全性をさらに増強してよい。
【0072】
段階II:集約装置認証
FLに参加する当事者は、ランタイムメモリ暗号化保護を備えた信頼できる集約装置とインタラクトしていることを確認する必要がある。集約装置認証を有効にするために、そして上述したように、段階Iにおいて、証明サーバ606は、EVM展開中に秘密としてECDSA秘密鍵を提供する。この鍵は、課題要求に署名するために使用され、したがって、正当な集約装置を識別するために役割を果たす。
図6のステップ(2)において、FLに参加する前に、当事者は、まず、チャレンジリクエストプロトコルに関与することによって、集約装置を証明する。この目的のために、当事者600は、ランダムに生成されたノンスを集約装置602に送信する。集約装置602は、対応するECDSA秘密鍵を用いてノンスにデジタル署名し、その後、署名されたノンスを要求当事者に返す。当事者は、ノンスが対応するECDSA公開鍵で署名されていることを検証する。検証が成功した場合、当事者600は、次に、FLに参加するために集約装置602に登録することを進める。さらに、好ましくは、モデルパラメータを更新するための集約装置間および集約装置と当事者間の通信を保護するために、安全経路が提供される。安全経路は、当事者と集約装置との間の相互認証をサポートするために、トランスポート層セキュリティ(TLS)を使用して実装され得る。このように、交換されたすべてのモデル更新は、使用中と送信中の両方で保護される。
【0073】
[モデル分割を伴う分散型集約]
信頼できる集約が可能になることは大きな利点であるが、TEEが全能であって将来的に安全脆弱性が明らかにならないという保証はないため、それだけでは十分でない可能性がある。そのため、第2安全層であるモデル分割を伴う分散型集約では、TEEがデータ漏洩で侵害された場合でも、敵対者が依然としてモデル更新からトレーニングデータを再構築できないように、システムの耐障害性を高めている。次に、本開示のこの態様を、
図6に示す代表的な実施態様に関して、再度、詳述する。
【0074】
先に説明したように、各集約装置602はEVM内で動作し、モデル更新の一部のみを担当する。
図6では、3つの集約装置が確立されており、前述したように、各参加当事者は、すべての集約装置に対してそれぞれ認証および登録する。この例では、以下のように分散型集約が有効になっている。
【0075】
[集約装置間トレーニング同期化]
集約装置間の通信経路は、例えばステップ(3)のトレーニング同期化のために維持される。集約装置602のうちの任意の1つは、トレーニングイテレーションを開始することができ、デフォルトでイニシエータノードとなる。他のすべての集約装置は、フォロワノードとなり、イニシエータからのコマンドを待機する。各トレーニングイテレーションにおいて、イニシエータは、まず、ローカルトレーニングを開始し、融合のためのモデル更新を取得するために、すべての当事者に問い合わせる。その後、イニシエータはすべてのフォロワノードに対して、対応するモデル更新を取得し、それらを一緒に集約し、集約された更新を当事者に分散し戻すように通知する。
【0076】
分散型集約では、集約ポイントでモデル情報を不正に取得するためのコストが増加する。集約装置はもはやモデルのアーキテクチャ情報を維持せず、数字のベクトルしか見ていない。さらに、モデル更新の非常に小さな一部が欠落しても、データ再構成攻撃を完全に効果的でないようにレンダリングすることができる。したがって、この保護方式では、モデル更新の完全なセットを取得するために、TEEで保護されたすべての集約装置の妥協が必要となる。
【0077】
TEEで保護されたすべての集約装置の妥協は非常に困難であるが、以下では、情報漏洩または他の妥協から連合学習をさらに保護するために実装することができる、第3安全層、動的並べ替えについて説明する。
【0078】
[動的並べ替え]
この目的のために、さらに当事者から集約装置へ転送する情報を難読化するために、好ましくは、トレーニングイテレーション(または他の定義された期間)ごとに、分割されたモデル更新をシャッフルする動的並べ替え方式が展開される。上述のように、動的並べ替え方式は、モデル更新におけるパラメータの順序は、融合アルゴリズムには無関係であるが、FLプライバシ攻撃で用いられるデータ再構成アルゴリズムには極めて重要であるという見通しに基づいている。このデータ順序が難読化されているため、敵対者がモデル更新をすべて取得したとしても、再構成されたトレーニングデータを生成することは実行不可能である。
【0079】
[ランダム化されたモデル分割]
【0080】
モデル分割と動的並べ替えは、
図7に示され、そこに示されている3つの集約装置に関する。特に、集約装置702(集約装置1~3)は、
図6における集約装置602に相当する。トレーニング開始前に、トレーニングするDNNモデルごとに集約装置マッパ710(データ構造)がランダムに生成される。各集約装置のモデルパラメータの割合は当事者が選択するが、これはデフォルトに設定することもできる。また、ローカル当事者は、マッパ710に合意する必要があり、したがって、このマッパ710は、FLトレーニングに参加するすべての当事者によって共有される。
図7において、第1当事者は、トレーニングされたローカルモデル712を有する。
図7に示すように、そしてマッパ710を使用して、ローカルモデル712のkパラメータは、示されるように3つの集約装置、すなわち、集約装置{1-3}にマッピングされ、示された陰影およびクロスハッチングは、モデル内の各パラメータのための集約装置の属性を表している。また、図示するように、モデル更新を分解し、異なる集約装置に対して再配置し(
図6のステップ(4))、シャッフルされた分割を生成する。 その後、シャッフルされた分割は、それぞれの集約装置にアップロードされ、融合が行われ、集約された分割が生成される。当事者は、異なる集約装置から集約されたモデル更新を受け取った後、正しい順序に集約されたモデル更新を逆シャッフルする。その後、同じマッパ710が再びクエリされ、モデルの更新をローカルモデル内の元の位置にマージする(
図6のステップ(5))。
図7では、1つのローカルモデル(トレーニング後、マージされたもの)のみが示されているが、各当事者は、それぞれこのようなローカルモデルの構成を持っている。
【0081】
好ましくは、この動的並べ替え方式は、トレーニングイテレーションごとに分割されたモデルの更新をシャッフルする。各並べ替えは、すべての当事者の間で合意された秘密(例えば、信頼できる仲介者介して広められる)と、動的に生成されたトレーニングイテレーションIDでシードをまかれる。したがって、並べ替えはトレーニングイテレーションごとに変化するが、すべての当事者間で同じであることが望ましい。別の言い方をすれば、本明細書におけるアプローチは、好ましくは、決定論的な並べ替えで、各トレーニングイテレーションでモデル更新を動的にシャッフルする。集約装置(すなわち、集約装置実行エンティティ)はモデル更新をマージし、当事者は集約されたモデル更新の順序を回復することを担当する。このアプローチでは、アップロードされたモデルパラメータの順序を動的にシャッフルすることで、データ漏洩攻撃を軽減している。このように、本アプローチは、連合学習においてローカルトレーニングデータのプライバシ保護をより効率的に行うことができるなどの利点がある。
【0082】
したがって、この態様によれば、好ましくは、当事者が生成するモデル更新全体を複数の部分(分割)に分割し、分割を、同じ融合アルゴリズムが独立して実行される複数のサーバ(集約実行エンティティ)に展開する。さらに、すべての当事者が同じ並べ替えを行う限り、パラメータまたは勾配(より一般的には要素)は、集約前にローカルにシャッフル(すなわち並べ替え)されることもある。当事者は、ローカル側で分割と並べ替えを逆にできることが要求されるのみである。ローカルモデル更新分割および並べ替えは、例えば、各トレーニングイテレーションで、または他の定義された周期で、定期的に実行することができ、代替案では、更新分割および並べ替えは非同期に起こる。
【0083】
ローカルモデル全体の分割への分割、および各分割内の1つまたは複数の要素の並べ替えは、モデリングイテレーションごとに起こる。すべての分割は、同じ分割を適用するか、または何も適用しないかのいずれかである。さらに、分割もしくは分割戦略、またはその組み合わせは、集中型集約装置(集約エンティティの数が1に等しい場合)に適用することができる。そのような場合、分割はないが、モデル更新における重みの並べ替えはある。
【0084】
一般化すると、上述したような動的並べ替え方式は、連合学習における集約的な難読化を促進する。連合学習の当事者(より一般的には、連合学習に関与する複数のシステムのうちの第1システム)は、融合するために更新ベクトル(より一般的には、更新)を送信する必要があると判断する。その後、難読化アルゴリズムを適用して更新ベクトルを難読化し、難読化された更新ベクトルを生成する。この目的のために、各当事者が共有する秘密を使用することができ、連合学習の各当事者は同じ共有秘密を使用して難読化アルゴリズムをローカルに適用する。
図7で例によって説明したように、好ましい難読化アルゴリズムは、難読化された更新ベクトルを生成するために、更新ベクトルの要素の順序を交換する。本明細書で使用されるように、要素の順序を交換することの概念は、シャッフルまたは並べ替えと同義である。次に、難読化された更新ベクトルは、各集約装置実行エンティティ(機械学習モデルの作成に複数のこのような実行エンティティが使用される場合)に送信される。この更新は、トレーニングイテレーションごとに、要素の順序を変えて行うことができる。更新ベクトル要素の順序をシャッフルすることが難読化のための好ましい技術であるが、他の難読化アルゴリズムが使用されることもある。
【0085】
本明細書に記載された技術は、大きな利点を提供する。当業者であれば理解できるように、このアプローチは、オーバヘッドを低く維持し、多くの異なる深層学習モデルおよびフレームワークをサポートしながら、逆エンジニアリング攻撃から連合学習における集約を安全に保護するものである。さらに、本明細書における技術は、交換されたモデルパラメータを分解するために、複数の構造的且つランダム化されたモデル分割メカニズムを提供する。このように、一部の集約装置が妥協したとしても、敵対者によりトレーニングデータ情報の再構築を依然として防止することができる。さらに、本明細書の技術は、学習参加者が信頼できるハードウェアプラットフォームを認証し、連合学習の対象となっているワークロードを証明することを可能にし、したがって、機密データがエンドツーエンドの暗号保護なしに露出され、送信されないことをさらに確認する。本明細書における技術は、従来のFLトレーニングと比較して、最終的なモデル精度および収束率に影響を与えるものではない。同時に、このアプローチでは、FLプライバシ攻撃の実施に重要な、非本質的な当事者と集約装置との間の情報露出を著しく抑制することができる。
【0086】
上述したように、本明細書におけるアプローチは、連合学習融合アルゴリズムのユニークな演算特性を利用し、潜在的な情報漏洩経路を軽減するためのアーキテクチャおよびプロトコル拡張を提供する。説明された連合学習システムは、好ましくは、3層の安全戦略、すなわち、機密性と信頼性の高い集約、分散型モデル分割、およびモデル更新の動的並べ替えを利用することである。これらの安全保障戦略を実装した連合学習システムは、トレーニングデータ再構成攻撃に対して免疫がある。
【0087】
さらに、3つの技術を併用することが望ましいが、これは必須ではない。したがって、本開示の技術を実装する連合学習フレームワークは、以下の技術および戦略のうちの1つまたは複数から利益を得ることができる。第1戦略は、機密扱いの計算技術を活用することで、信頼性の高い、リモート証明できるモデル集約を可能にすることである。第2戦略は、単一の集約装置を複数の独立実行エンティティに分散させることである。好ましくは、それぞれがモデル更新の断片的な表示のみを持ち、モデルアーキテクチャに気づかないことである。第3戦略は、各トレーニングイテレーションにおける分割モデル更新のランダム化された且つ動的並べ替えのサポートを提供し、データ再構成アルゴリズムが実行不可能になるようにすることである。3層の安全戦略をすべて実装することで、上述のように、システムは最先端の連合学習プライバシ攻撃を無効化し、実世界展開において低いパフォーマンスオーバーヘッドを示す。
【0088】
さらなる利点はまだある。1つは、分散学習アプローチでは補助入力を生成する必要がなく、トレーニング参加者は連合学習プロセスにおいて難読化されたモデルパラメータの一部のみを共有することである。信頼された実行環境は、送信時および集約時のモデル更新データの機密性を保護する。さらに、本アプローチは、悪意のある、または侵害された集約サーバが、連合学習参加者のトレーニングデータを再構築することを防ぐ。このアプローチでは、(i)honest-but-curious集約装置と、(ii)悪意のある、あるいは妥協した集約装置の両方が、モデル更新からプライベートなトレーニングデータを再構築することを防止する。また、異なるFLタスクに対して同じアプローチを利用することで、ベースラインと同レベルのトレーニングパフォーマンス性能を得ることができるという利点もある。
【0089】
上記の技術は、説明した方式で分散可能な任意の機械学習アルゴリズムまたは計算を使用して実装してよい。
【0090】
この主題は、全体または一部がas-a-serviceで実装されてよい。一般化すると、連合学習機能のための信頼できる分散型集約は、独立した機能として提供されてもよく、他のMLベースの製品およびサービスからの機能を活用してもよい。例えば、本明細書の安全技術は、IBMの連合学習のためのフレームワーク(FFL:Framework for Federated Learning)などの既知の提供物および解決手段を活用して、説明した信頼できる集約、モデル分割を伴う分散型マルチ集約、および動的モデル更新の並べ替えをサポートしてよい。好ましくは、集約装置アプリケーションは、その展開を促進するためにコンテナ化されるが、これは必須条件ではない。Kata Containerは、軽量VM内に集約装置コンテナを展開するために利用されてよい。したがって、これまで説明したように、好ましくは、各集約装置コンテナは、SEV保護されたEVM(または同等のもの)で実行される。TEE安全機能を提供するために、そしてこの例示的であるが非限定的な実施形態では、ファームウェアSEV APIを実行するAMD EPYC 7642(Rome)マイクロプロセッサが使用されている。
【0091】
上述した機能の全部または一部は、独立アプローチ、例えば、ハードウェアプロセッサによって実行されるソフトウェアベースの機能として実装されてもよく、管理されるサービスとして(SOAP/XMLインタフェースを介したウェブサービスとしてを含む)利用可能であってもよい。本明細書に記載された特定のハードウェアおよびソフトウェアの実装の詳細は、単に例示を目的としたものであり、記載された主題の範囲を限定するものではない。
【0092】
より一般的には、開示された主題の文脈内のコンピューティングデバイスはそれぞれ、ハードウェアおよびソフトウェアからなるデータ処理システム(
図2に示すような)であり、これらのエンティティは、インターネット、イントラネット、エクストラネット、プライベートネットワーク、または任意の他の通信媒体もしくはリンクなどのネットワークを介して互いに通信する。データ処理システム上のアプリケーションは、HTTP、FTP、SMTP、SOAP、XML、WSDL、UDDI、WSFLなどのサポートを含むがこれに限定されない、Webおよびその他の既知のサービスおよびプロトコルのネイティブサポートを提供する。SOAP、WSDL、UDDI、WSFLに関する情報は、これらの標準の開発および保守を行うWorld Wide Web Consortium(W3C)から入手可能、HTTP、FTP、SMTP、XMLに関する詳細な情報はインターネットエンジニアリングタスクフォース(IETF:Internet Engineering Task Force)から入手可能である。これらの既知の標準およびプロトコルに熟知していることが前提になる。
【0093】
本明細書で説明する方式は、単純なn層アーキテクチャ、安全システム、ウェブポータル、連合システムを含む様々なサーバサイドアーキテクチャで、またはそれらと連携して実装してよい。また、前述のように、本明細書の技術は、
図3に関連して説明したような疎結合のサーバ(「クラウド」ベースを含む)環境において実施してよい。
【0094】
さらに一般的には、本明細書に記載された主題は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェアおよびソフトウェア要素の両方を含む一実施形態の形態をとることができる。好ましい実施形態では、機能はソフトウェアで実装され、これにはファームウェア、常駐ソフトウェア、マイクロコードなどが含まれるが、これらに限定されない。さらに、上述のように、アイデンティティコンテキストベースアクセス制御機能は、コンピュータまたは任意の命令実行システムによって、またはそれに関連して使用するためのプログラムコードを提供するコンピュータ使用可能またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形態をとることができる。説明の目的のために、コンピュータ使用可能またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって、またはそれらに関連して使用するためのプログラムを含むまたは格納することができる任意の装置であり得る。媒体は、電子式、磁気式、光学式、電磁式、赤外線式、または半導体システム(または装置、デバイス)であることができる。コンピュータ可読媒体の例としては、半導体またはソリッドステートメモリ、磁気テープ、取り外し可能コンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、硬質磁気ディスク、光学ディスクが挙げられる。現在の光学ディスクの例には、コンパクトディスク-リードオンリメモリ(CD-ROM :Compact Disk-Read Only Memory)、コンパクトディスク-読み出し/書き込み(CD-R/W:Compact Disk-Read/Write)、DVDなどが挙げられる。コンピュータ可読媒体は有形のものである。
【0095】
コンピュータプログラム製品は、説明した機能の1つまたは複数を実現するためのプログラム命令(またはプログラムコード)を有する製品であってよい。それらの命令またはコードは、リモートデータ処理システムからネットワークを介してダウンロードされた後、データ処理システム内のコンピュータ可読記憶媒体に格納されてよい。または、それらの命令またはコードは、サーバデータ処理システム内のコンピュータ可読記憶媒体に格納され、リモートシステム内のコンピュータ可読記憶媒体で使用するために、ネットワークを介してリモートデータ処理システムにダウンロードされるように適合されてよい。
【0096】
代表的な実施形態では、融合サーバと各エージェントは、特別な目的のコンピュータ、好ましくは1つまたは複数のプロセッサによって実行されるソフトウェアで実装される。ソフトウェアは、1つまたは複数のプロセッサに関連付けられる1つまたは複数のデータストアまたはメモリに保持され、ソフトウェアは、1つまたは複数のコンピュータプログラムとして実装されてよい。この特定用途ハードウェアおよびソフトウェアはまとめて、上記の機能を構成している。
【0097】
上記は、本発明の特定の実施形態によって実行される操作の特定の順序を説明しているが、代替的な実施形態は、動作を異なる順序で実行し、特定の動作を組み合わせ、特定の動作を重複させるなどしてもよいので、かかる順序は例示的であることが理解されるべきである。本明細書における所定の実施形態への言及は、記載された実施形態が特定の特徴、構造、または特性を含み得ることを示すが、すべての実施形態が必ずしも特定の特徴、構造、または特性を含むとは限らない。
【0098】
最後に、システムの所定のコンポーネントを個別に説明したが、当業者であれば、所定の命令、プログラムシーケンス、コード部分等において、機能の一部を組み合わせ、または共有することができることを理解されるべきである。
【0099】
本明細書の技術は、別の技術または技術分野、例えば、機械学習システム、安全インシデントおよびイベント管理(SIEM)システム、他の安全システム、ならびに自動化ベースのサイバー安全分析に対する改善を提供するものである。
【0100】
主題を説明した上で、我々が主張することは以下の通りである。