(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-06
(54)【発明の名称】ピアツーピアネットワークを使用する連合学習のためのシステムおよび方法
(51)【国際特許分類】
G06N 20/00 20190101AFI20240130BHJP
G06F 21/60 20130101ALI20240130BHJP
【FI】
G06N20/00
G06F21/60 320
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023546417
(86)(22)【出願日】2022-02-01
(85)【翻訳文提出日】2023-09-22
(86)【国際出願番号】 US2022070455
(87)【国際公開番号】W WO2022165535
(87)【国際公開日】2022-08-04
(31)【優先権主張番号】202111004346
(32)【優先日】2021-02-01
(33)【優先権主張国・地域又は機関】IN
(32)【優先日】2022-01-31
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】519022104
【氏名又は名称】ジェイピーモルガン・チェース・バンク,ナショナル・アソシエーション
【氏名又は名称原語表記】JPMorgan Chase Bank,N.A.
【住所又は居所原語表記】383 Madison Avenue,New York,NY 10179,United States of America
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100162846
【氏名又は名称】大牧 綾子
(72)【発明者】
【氏名】ベヘラ,モニク・ラジ
(72)【発明者】
【氏名】ウパディヤイ,スディール
(72)【発明者】
【氏名】オッター,ロブ
(72)【発明者】
【氏名】シェティ,スレシュ
(57)【要約】
ピアツーピアネットワークを使用する連合学習のためのシステムおよび方法が開示される。方法は、コンセンサスアルゴリズムを使用して、参加者ノードを、協力者ノードとして選出することと、協力者ノードが、公開/秘密鍵のペアを生成してブロードキャストすることと、参加者ノードが、協力者ノードとの各通信のために、公開/秘密鍵のペアを生成することと、参加者ノードのためのローカル機械学習モデルのパラメータおよびその公開鍵を含むメッセージを、協力者ノードの公開鍵を用いて暗号化してブロードキャストすることであって、協力者ノードが、暗号化されたメッセージを復号し、復号されたパラメータを用いて、集約された機械学習モデルを更新し、各々更新を含む更新メッセージを、各参加者ノードの公開鍵を用いて暗号化してブロードキャストすることと、参加者ノードが、自身の秘密鍵を用いて、複数のメッセージのうちの1つのメッセージを復号し、参加者ノードが、更新を用いて、ローカル機械学習モデルを更新することとを含み得る。
【選択図】
図2
【特許請求の範囲】
【請求項1】
ピアツーピアネットワークを使用する連合学習のための方法であって、
ピアツーピアネットワークにおける複数の参加者ノードによって、コンセンサスアルゴリズムを使用して、前記参加者ノードのうちの1つの参加者ノードを、協力者ノードとして選出するステップと、
前記協力者ノードによって、協力者ノード公開鍵および協力者ノード秘密鍵を生成するステップと、
前記協力者ノードによって、前記複数の参加者ノードに、前記協力者ノード公開鍵をブロードキャストするステップと、
各参加者ノードによって、参加者ノード公開鍵および参加者ノード秘密鍵を生成するステップであって、各参加者ノードは、前記協力者ノードとの各通信のために、新たな参加者ノード公開鍵および新たな参加者ノード秘密鍵を生成する、ステップと、
各参加者ノードによって、前記参加者ノードのためのローカル機械学習モデルのパラメータおよび前記参加者ノード公開鍵を含むメッセージを、前記協力者ノード公開鍵を用いて暗号化するステップと、
各参加者ノードによって、前記暗号化されたメッセージを前記ピアツーピアネットワーク上でブロードキャストするステップと、
前記協力者ノードによって、前記暗号化されたメッセージの各々を、前記協力者ノード秘密鍵を用いて復号するステップと、
前記協力者ノードによって、前記ローカル機械学習モデルのために、前記復号されたパラメータを用いて、集約された機械学習モデルを更新するステップと、
前記協力者ノードによって、各参加者ノードの公開鍵を用いて、前記集約された機械学習モデルからの更新を各々含む、複数の更新メッセージを暗号化するステップと、
前記協力者ノードによって、前記ピアツーピアネットワーク上で前記複数のメッセージをブロードキャストするステップと、
前記参加者ノードの各々によって、前記参加者ノードのための前記参加者ノード秘密鍵を用いて、前記複数のメッセージのうちの1つのメッセージを復号するステップと、
前記参加者ノードの各々によって、前記更新を用いて、前記参加者ノードのための前記ローカル機械学習モデルを更新するステップとを含む、方法。
【請求項2】
前記コンセンサスアルゴリズムは、Raftコンセンサスアルゴリズムである、請求項1に記載の方法。
【請求項3】
前記パラメータは、モデル交換、ローカル機械学習モデルの重み、および/または、前記ローカル機械学習モデルに関連する情報を含む、請求項1に記載の方法。
【請求項4】
前記パラメータは、クリアデータおよび/または合成データを含む、請求項1に記載の方法。
【請求項5】
前記協力者ノードは、前記復号されたパラメータを使用して、モデル集約を実行する、請求項1に記載の方法。
【請求項6】
前記協力者ノードは、前記復号されたパラメータを使用して、前記集約された機械学習モデルをトレーニングする、請求項1に記載の方法。
【請求項7】
前記参加者ノードは、限られた期間、前記協力者ノードである、請求項1に記載の方法。
【請求項8】
前記協力者ノードは、前記参加者ノードにハートビートをブロードキャストする、請求項1に記載の方法。
【請求項9】
前記参加者ノードは、前記協力者ノードが非アクティブであることに応答して、新たな協力者ノードを選出する、請求項1に記載の方法。
【請求項10】
各参加者ノードがローカル機械学習モデルに関連付けられる、複数の参加者ノードと、
前記複数の参加者ノードを接続するピアツーピアネットワークとを備え、
前記複数の参加者ノードは、コンセンサスアルゴリズムを使用して、前記複数の参加者ノードのうちの1つの参加者ノードを、協力者ノードとして選出し、
前記協力者ノードは、協力者ノード公開鍵および協力者ノード秘密鍵を生成し、
前記協力者ノードは、前記協力者ノード公開鍵を、前記複数の参加者ノードにブロードキャストし、
各参加者ノードは、参加者ノード公開鍵および参加者ノード秘密鍵を生成し、各参加者ノードは、前記協力者ノードとの各通信のために、新たな参加者ノード公開鍵および新たな参加者ノード秘密鍵を生成し、
各参加者ノードは、前記参加者ノードのためのローカル機械学習モデルのパラメータおよび前記参加者ノード公開鍵を含むメッセージを、前記協力者ノード公開鍵を用いて暗号化し、
各参加者ノードは、前記暗号化されたメッセージを、前記ピアツーピアネットワーク上でブロードキャストし、
前記協力者ノードは、前記暗号化されたメッセージの各々を、前記協力者ノード秘密鍵を用いて復号し、
前記協力者ノードは、前記ローカル機械学習モデルのために、集約された機械学習モデルを、前記復号されたパラメータを用いて更新し、
前記協力者ノードは、各々が、前記集約された機械学習モデルからの更新を含む複数の更新メッセージを、各参加者ノードの公開鍵を用いて暗号化し、
前記協力者ノードは、前記複数のメッセージを、前記ピアツーピアネットワーク上でブロードキャストし、
前記参加者ノードの各々は、前記複数のメッセージのうちの1つのメッセージを、前記参加者ノードのためのその参加者ノード秘密鍵を用いて復号し、
前記参加者ノードの各々は、前記更新を用いて、そのローカル機械学習モデルを更新する、システム。
【請求項11】
前記コンセンサスアルゴリズムは、Raftコンセンサスアルゴリズムである、請求項10に記載のシステム。
【請求項12】
前記パラメータは、モデル交換、ローカル機械学習モデルの重み、および/または、前記ローカル機械学習モデルに関連する情報を含む、請求項10に記載のシステム。
【請求項13】
前記パラメータは、クリアデータおよび/または合成データを含む、請求項10に記載のシステム。
【請求項14】
前記協力者ノードは、前記復号されたパラメータを使用して、モデル集約を実行する、請求項10に記載のシステム。
【請求項15】
前記協力者ノードは、前記復号されたパラメータを使用して、前記集約された機械学習モデルをトレーニングする、請求項10に記載のシステム。
【請求項16】
前記参加者ノードは、限られた期間、前記協力者ノードである、請求項10に記載のシステム。
【請求項17】
前記協力者ノードは、前記参加者ノードにハートビートをブロードキャストする、請求項10に記載のシステム。
【請求項18】
前記参加者ノードは、前記協力者ノードが非アクティブであることに応答して、新たな協力者ノードを選出する、請求項10に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]実施形態は、一般に、ピアツーピアネットワークを使用する連合学習のためのシステムおよび方法に関する。
【背景技術】
【0002】
[0002]分散コンピューティングの時代では、データおよび計算リソースの規模は、複数のシステムにわたる水平方向における作業負荷の分散によって処理されることが多い。分散コンピューティング、特に分散機械学習は、多くのエキサイティングな機会をもたらす。また、データプライバシおよびデータセキュリティが重要な分野でも新たな困難が生じる。機械学習のために、復元力(resilient)があり、可用性が高く、ロバストなエコシステムを設計することも同様に困難である。連合学習は、異種の機械が協調して参加できる分散環境で機械学習を実施するための基盤を築く。
【0003】
[0003]連合学習は、一般に、連合ネットワークにおける「集約ノード」および「参加者ノード」のセットを含む。現在利用可能な実施は、集約ノードと、様々な参加者ノードとの集中設計を有しており、通信のためのスタートポロジを形成する。参加者ノードは、自身のローカルモデル勾配(local model gradient)を、集約ノードに送信し、集約ノードは、受信したすべてのモデルを、単一のグローバルモデルにまとめる。この単一のグローバルモデルは、その後、すべての参加者ノードに送り返される。この設定では、参加者は、基礎となるデータをすべて知らなくても、共通の学習から恩恵を受ける。
【0004】
[0004]連合学習は、プライバシ、セキュリティ、および匿名性に配慮するが、集約ノードは、連合ネットワークにおける単一の障害点となる。これによって、望ましくない障害が発生した場合に、ダウンタイムのリスクが生じ、ネットワーク上の重要なプロセスの停止につながる可能性がある。
【発明の概要】
【課題を解決するための手段】
【0005】
[0005]ピアツーピアネットワークを使用する連合学習のためのシステムおよび方法が開示される。実施形態によれば、ピアツーピアネットワークを使用する連合学習のための方法は、(1)ピアツーピアネットワークにおける複数の参加者ノードによって、コンセンサスアルゴリズムを使用して、参加者ノードのうちの1つの参加者ノードを、協力者ノード(collaborator node)として選出することと、(2)協力者ノードによって、協力者ノード公開鍵および協力者ノード秘密鍵を生成することと、(3)協力者ノードによって、複数の参加者ノードに、協力者ノード公開鍵をブロードキャストすることと、(4)各参加者ノードによって、参加者ノード公開鍵および参加者ノード秘密鍵を生成することであって、各参加者ノードは、協力者ノードとの各通信のために、新たな参加者ノード公開鍵および新たな参加者ノード秘密鍵を生成する、生成することと、(5)各参加者ノードによって、参加者ノードのためのローカル機械学習モデルのパラメータおよび参加者ノード公開鍵を含むメッセージを、協力者ノード公開鍵を用いて暗号化することと、(6)各参加者ノードによって、暗号化されたメッセージをピアツーピアネットワーク上でブロードキャストすることと、(7)協力者ノードによって、暗号化されたメッセージの各々を、協力者ノード秘密鍵を用いて復号することと、(8)協力者ノードによって、ローカル機械学習モデルのために、復号されたパラメータを用いて、集約された機械学習モデルを更新することと、(9)協力者ノードによって、各参加者ノードの公開鍵を用いて、集約された機械学習モデルからの更新を各々含む、複数の更新メッセージを暗号化することと、(10)協力者ノードによって、ピアツーピアネットワーク上で複数のメッセージをブロードキャストすることと、(11)参加者ノードの各々によって、参加者ノードのための参加者ノード秘密鍵を用いて、複数のメッセージのうちの1つのメッセージを復号することと、(12)参加者ノードの各々によって、更新を用いて、参加者ノードのためのローカル機械学習モデルを更新することとを含み得る。
【0006】
[0006]1つの実施形態では、コンセンサスアルゴリズムは、Raftコンセンサスアルゴリズムであり得る。
[0007]1つの実施形態では、パラメータは、モデル交換、ローカル機械学習モデルの重み、および/または、ローカル機械学習モデルに関連する情報を含み得る。
【0007】
[0008]1つの実施形態では、パラメータは、クリアデータおよび/または合成データを含み得る。
[0009]1つの実施形態では、協力者ノードは、復号されたパラメータを使用して、モデル集約を実行し得る。
【0008】
[0010]1つの実施形態では、協力者ノードは、復号されたパラメータを使用して、集約された機械学習モデルをトレーニングし得る。
[0011]1つの実施形態では、参加者ノードは、限られた期間、協力者ノードである。
【0009】
[0012]1つの実施形態では、協力者ノードは、参加者ノードにハートビート(heartbeat)をブロードキャストし得る。
[0013]1つの実施形態では、参加者ノードは、協力者ノードが非アクティブであることに応答して、新たな協力者ノードを選出し得る。
【0010】
[0014]別の実施形態によれば、システムは、各参加者ノードがローカル機械学習モデルに関連付けられる、複数の参加者ノードと、複数の参加者ノードを接続するピアツーピアネットワークとを含み得る。複数の参加者ノードは、コンセンサスアルゴリズムを使用して、複数の参加者ノードのうちの1つの参加者ノードを、協力者ノードとして選出し得、協力者ノードは、協力者ノード公開鍵および協力者ノード秘密鍵を生成し得、協力者ノード公開鍵を、複数の参加者ノードにブロードキャストし得、各参加者ノードは、参加者ノード公開鍵および参加者ノード秘密鍵を生成し得、各参加者ノードは、協力者ノードとの各通信のために、新たな参加者ノード公開鍵および新たな参加者ノード秘密鍵を生成し、参加者ノードのためのローカル機械学習モデルのパラメータおよび参加者ノード公開鍵を含むメッセージを、協力者ノード公開鍵を用いて暗号化し得、暗号化されたメッセージを、ピアツーピアネットワーク上でブロードキャストし得、協力者ノードは、暗号化されたメッセージの各々を、協力者ノード秘密鍵を用いて復号し得、ローカル機械学習モデルのために、集約された機械学習モデルを、復号されたパラメータを用いて更新し得、各々が、集約された機械学習モデルからの更新を含む複数の更新メッセージを、各参加者ノードの公開鍵を用いて暗号化し得、複数のメッセージを、ピアツーピアネットワーク上でブロードキャストし得、参加者ノードの各々は、複数のメッセージのうちの1つのメッセージを、参加者ノードのためのその参加者ノード秘密鍵を用いて復号し得、更新を用いて、そのローカル機械学習モデルを更新し得る。
【0011】
[0015]1つの実施形態では、コンセンサスアルゴリズムは、Raftコンセンサスアルゴリズムである。
[0016]1つの実施形態では、パラメータは、モデル交換、ローカル機械学習モデルの重み、および/または、ローカル機械学習モデルに関連する情報を含み得る。
【0012】
[0017]1つの実施形態では、パラメータは、クリアデータおよび/または合成データを含み得る。
[0018]1つの実施形態では、協力者ノードは、復号されたパラメータを使用して、モデル集約を実行し得る。
【0013】
[0019]1つの実施形態では、協力者ノードは、復号されたパラメータを使用して、集約された機械学習モデルをトレーニングし得る。
[0020]1つの実施形態では、参加者ノードは、限られた期間、協力者ノードであり得る。
【0014】
[0021]1つの実施形態では、協力者ノードは、参加者ノードにハートビートをブロードキャストし得る。
[0022]1つの実施形態では、参加者ノードは、協力者ノードが非アクティブであることに応答して、新たな協力者ノードを選出し得る。
【0015】
[0023]本発明、その目的および利点をより完全に理解するために、添付の図面に関連して採用された以下の説明を参照する。
【図面の簡単な説明】
【0016】
【
図1】[0024]
図1は、実施形態による、ピアツーピアネットワークを使用する連合学習のためのシステムを示す図である。
【
図2】[0025]
図2は、実施形態による、ピアツーピアネットワークを使用する連合学習ための方法を示す図である。
【
図3】[0026]
図3は、実施形態による、ピアツーピアネットワークにおける参加者ノードの状態図である。
【発明を実施するための形態】
【0017】
[0027]実施形態は、モデル重みの分散オーケストレーションのために、ピアツーピアネットワークを使用する連合学習のためのシステムおよび方法を対象とする。
[0028]2020年11月20日に出願されたインド特許出願第202011050561号の開示は、その全体が参照により本明細書に組み込まれる。
【0018】
[0029]実施形態は、一般に、連合ネットワークにおける参加者ノード間のピアツーピア通信を使用する連合学習を用いた分散化によって、復元力があり、可用性の高い集約サービスを対象とする。すべての参加者ノードは、ネットワーク上で同等の機能を有し得、すべてが、相互に通信可能であり得る。任意の時点で、ネットワークは、参加者ノードのうち1つだけ「リーダ」(または協力者ノード)として機能する参加者ノードを有し得る一方、残りの参加者ノードは、「フォロワノード」として機能する。リーダノードが、使用できなくなったり、または応答しなくなったりした(例えば、クラッシュした)場合、ネットワークは、新たなリーダ選出を実行し、残りの参加者ノードの中から、リーダノードを選択する。これは、Raftコンセンサスアルゴリズムにしたがって選出を実行し、リーダを割り当て得る。
【0019】
[0030]リーダノードは、ネットワークのための一時的な集約部として機能する役割を担い得る。実施形態では、参加者ノード間で作業負荷を分散し、ネットワーク内のすべての参加者ノードに「リーダノード」の役割を引き受ける公平な機会を与えるために、所定の時間間隔が経過した後に、新たなリーダノードが選出され得る。
【0020】
[0031]
図1を参照すると、実施形態による、ピアツーピアネットワークを使用する連合学習のためのシステムが開示されている。システム100は、ピアツーピアネットワークに、複数の参加者ノード110(例えば、110
1,110
2,110
3,・・・110
N)を含むことができ、各参加者ノード110は、他の参加者ノード110の各々と直接通信し得る。各参加者ノード110は、ローカルモデル112(例えば、112
1,112
2,112
3,・・・112
N)を維持し得、参加者ノードのうちの1つの参加者ノード(例えば、参加者110
1)が、リーダノード(または協力者ノード)に選出され、連合ネットワークにおける参加者ノードのための集約モデル114を生成し得る。
【0021】
[0032]各ノードは、それぞれのノードの動作を制御し得るコンピュータプログラム、アプリケーション、スクリプトなど(図示せず)を実行し得る。
[0033]各参加者ノード110は、リーダノード(協力者ノード)、フォロワノード、または候補ノードとして参加し得る。参加者ノード110間の通信を容易にするために、システム100は、参加者ノード110間にピアツーピア通信を提供する。通信は、ネットワークのTCP層を使用して、リモートプロシージャコール(remote procedure call)を行うことによって容易化され得る。
【0022】
[0034]ネットワークは、ピアツーピアネットワークであるため、すべてのメッセージがネットワークにブロードキャストされる。暗号化されている場合は、メッセージのタイプに基づいて、有効な受信者のみがメッセージを読み取ることができる。メッセージが暗号化されていない場合、すべての受信者が、メッセージを読んで、必要なアクションを講じ得る。
【0023】
[0035]任意のピアツーピアネットワークにおいて、すべての参加者ノード110は、シームレスなTCPベースの通信のために開いているファイアウォールとともに、ネットワーク内に存在するすべての参加者ノード110を認識する必要がある。暗号化に関与するRSA公開鍵および秘密鍵は、リーダの一時的な性質により動的である。例えば、RSA鍵のペアは、参加者ノードのうちの1つの参加者ノードによって開始されるメッセージごとにローテーションされ得る。
【0024】
[0036]選出が完了した場合、リーダノードは、そのRSA公開鍵をネットワークにアナウンスし、参加者ノードがそれを使用して、ローカル機械学習モデルパラメータなどのメッセージをリーダノードに送信できるようにする。
【0025】
[0037]
図2を参照すると、1つの実施形態による、ピアツーピアネットワークを使用する連合学習の方法が開示されている。
[0038]ステップ205において、参加者ノードは、ピアツーピアネットワークにおいて、例えば、Raftコンセンサスアルゴリズムを使用して、参加者ノードのうちの1つの参加者ノードを、リーダノード、すなわち協力者ノードとして選出し得る。Raftコンセンサスアルゴリズムに基づく各参加者ノードの例示的な状態図が
図3に提供される。
【0026】
[0039]
図3は、実施形態による参加者ノードの状態図を示す。
図3は、ピアツーピアネットワークにおける各ノードの3つの状態を示す。状態1、ノードは、フォロワ、つまり参加者ノードである。状態2、ノードは、候補ノードである。状態3、ノードは、リーダ、つまり協力者ノードである。
【0027】
[0040]各ノードは、フォロワノードまたは参加者ノードになるように初期化され得る(状態1)。状態1から、フォロワノードは、リーダノードになるための選出を開始し、それによって、候補ノードになる(状態2)。状態2では、ノードが、リーダノードになり得る(状態3)か、リーダが選出されずに、別の選出のための候補ノードのままになり得る(状態2)か、または別のノードがリーダに選出され得、ノードが、フォロワ、すなわち参加者ノードになるように戻り得る(状態1)。状態3では、ノードが、より高い優先度を有するノードを識別するか、または辞退した場合、ノードは、フォロワ、すなわち参加者ノードになるように戻り得る(状態1)。
【0028】
[0041]ノードは、Raftコンセンサスアルゴリズムを使用し、リーダノードを選出し得る(状態3)。状態3は、一時的になるように設計される。障害がない場合、選出されたノードは、例えばネットワーク管理者によって定義され得る期間Tの間、リーダノードとして留まる。期間Tが経過した後、リーダノードは辞退して、フォロワノードになり(状態1)、間接的に選出を開始する。
【0029】
[0042]Raftコンセンサスアルゴリズムの例は、Ongaroらによる「In search of an understandable consensus algorithm」(わかりやすいコンセンサスアルゴリズムを求めて)、USENIX年次技術会議(USENIX ATC ’14)に関する2014USENIX会議の議事録、Gibson,GおよびZeldovich(編):305~329、に提供されており、その開示内容全体が、参照により組み込まれる。
【0030】
[0043]実施形態では、すべての参加者ノードは、リーダノードが適切に機能していることを保証するために、リーダノードからのハートビートを(例えば、5秒ごとに)期待し得る。ハートビートが失敗した場合、これは、リーダノードが何らかの理由で非アクティブであることを意味し、1つ以上のフォロワノードが、自身を候補ノードに昇格させる可能性がある(状態2)。公正な選出の後、候補ノードのうちの1つの候補ノードが、リーダノードとして選出され、他の候補ノードは、状態1に戻る。
【0031】
[0044]再び
図2を参照すると、ステップ210において、協力者ノードは、公開鍵と秘密鍵とのペアを生成し得、ステップ215において、その公開鍵を、ピアツーピアネットワークにおける他の参加者ノードと共有し得る。
【0032】
[0045]ステップ220において、参加者ノードは、ピアツーピアネットワークにおいて、自身の公開鍵および秘密鍵を生成し得、ステップ225において、各参加者ノードは、協力者ノードの公開鍵を用いてメッセージを暗号化し、協力者ノードに送信し得る。1つの実施形態では、参加者ノードは、各通信のために新たな公開鍵/秘密鍵のペアを生成することができ、これによって、協力者ノードが、特定のノードからの着信メッセージを識別することを阻止する。したがって、この動的なメッセージの暗号化-復号によって、メッセージフローの観点から、ピアツーピアネットワークにおける参加者ノードに匿名性を提供する。
【0033】
[0046]1つの実施形態では、メッセージは、ピアツーピアネットワークにおけるノード(すなわち、すべての参加者ノードおよびリーダノード)にブロードキャストされ得る。リーダノードは、自身の秘密鍵を用いてメッセージを復号できる唯一のノードである。
【0034】
[0047]1つの実施形態では、メッセージは、モデル交換、ローカル重み、ローカル機械学習モデル自体、クリアデータ、合成データなどに関連する情報など、ローカル機械学習モデルのためのパラメータを含み得る。
【0035】
[0048]1つの実施形態では、メッセージはさらに、参加者ノードの公開鍵を含み得る。したがって、各参加者ノードは、パラメータおよびその公開鍵を、協力者ノードの公開鍵を用いて暗号化し得る。
【0036】
[0049]ステップ230において、協力者ノードは、メッセージを受信し、自身の秘密鍵を使用してメッセージを復号し得る。
[0050]ステップ235において、協力者ノードは、モデル集約などの受信パラメータに対して演算を実行し、集約された機械学習モデルなどを作成または更新し得る。特に、協力者ノードは、演算におけるそのローカルモデルのパラメータおよび/または情報を含み得る。
【0037】
[0051]別の実施形態では、協力者ノードは、参加者ノードから受信したデータおよび自身のデータを用いて、集約された機械学習モデルをトレーニングし得る。
[0052]ステップ240において、協力者ノードは、各参加者ノードの公開鍵を用いてメッセージを暗号化し、ピアツーピアネットワーク上でメッセージをブロードキャストし得る。1つの実施形態では、メッセージは、集約された機械学習モデルに対する更新を含み得る。
【0038】
[0053]ステップ245において、各参加者ノードは、協力者ノードからのメッセージを復号し得、そのローカル機械学習モデルを更新するなど、メッセージの内容に対して必要なあらゆるアクションを実行し得る。参加者ノードは、協力者ノードからすべてのメッセージを受信するが、公開鍵を用いて、暗号化されたメッセージを復号のみできる。
【0039】
[0054]プロセスは、ローカル機械学習モデルが収束するなどの条件に達するまで継続し得る。
[0055]Behera,Monikらの開示(2021)「Federated Learning using Peer-to-peer Network for Decentralized Orchestration of Model Weights」(モデル重みの分散オーケストレーションのためのピアツーピアネットワークを使用した連合学習)、TechRxiv. Preprint(doi.org/10.36227/techrxiv.14267468.v1で入手可能)。
【0040】
[0056]以下、実施形態のシステムおよび方法の実施の一般的な態様が説明される。
[0057]システムまたはシステムの一部の実施形態は、例えば汎用コンピュータなどの「処理機械」の形態であり得る。本明細書で使用される「処理機械」という用語は、少なくとも1つのメモリを使用する少なくとも1つのプロセッサを含むと理解されるべきである。少なくとも1つのメモリは、命令のセットを格納する。命令は、処理機械の1つまたは複数のメモリに永久的にまたは一時的に格納することができる。プロセッサは、データを処理するために1つまたは複数のメモリに格納されている命令を実行する。命令のセットは、上述のタスクなどの特定の1つまたは複数のタスクを実行する様々な命令を含むことができる。特定のタスクを実行するためのそのような命令のセットは、プログラム、ソフトウェアプログラム、または単にソフトウェアとして特徴づけることができる。
【0041】
[0058]1つの実施形態では、処理機械は、専用プロセッサとすることができる。
[0059]1つの実施形態では、処理機械は、クラウドベースの処理機械、物理的処理機械、またはそれらの組合せであり得る。
【0042】
[0060]上記のように、処理機械は、データを処理するために1つまたは複数のメモリに格納されている命令を実行する。データのこの処理は、例えば、処理機械の1人または複数のユーザによるコマンドに応じる、前の処理に応じる、別の処理機械による要求および/または他の入力に応じることができる。
【0043】
[0061]上記のように、実施形態を実施するために使用される処理機械は、汎用コンピュータとすることができる。しかしながら、上述の処理機械は、多種多様な他の技術のうちの任意の技術を利用することもできる。多種多様な他の技術には、専用コンピュータ、例えば、マイクロコンピュータ、ミニコンピュータ、またはメインフレームを含むコンピュータシステム、プログラム式マイクロプロセッサ、マイクロコントローラ、周辺集積回路要素、CSIC(特定顧客向け集積回路)またはASIC(特定用途向け集積回路)もしくは他の集積回路、ロジック回路、デジタル信号プロセッサ、FPGA、PLD、PLA、またはPALなどのプログラマブルロジックデバイス、または本明細書に開示されるプロセスのステップを実施することができる他のデバイスもしくはデバイスの構成が含まれる。
【0044】
[0062]実施形態を実施するために使用される処理機械は、適切なオペレーティングシステムを利用し得る。
[0063]上述した実施形態の方法を実践するために、処理機械のプロセッサおよび/またはメモリが、物理的に同じ地理的場所に配置される必要がないことが理解される。すなわち、処理機械によって使用されるプロセッサおよびメモリの各々は、地理的に別個のロケーションに配置され、任意の適切な方法で通信するように接続されてもよい。加えて、プロセッサおよび/またはメモリの各々は、異なる物理的な機器で構成されてもよいことが理解される。したがって、プロセッサが1つのロケーションにおける単一の機器であること、およびメモリが別のロケーションにおける別の単一の機器であることは必要ではない。すなわち、プロセッサが2つの異なる物理的ロケーションにおける2つの機器であってもよいことが企図される。2つの別個の機器は、適切な方法で接続することができる。加えて、メモリは、2つ以上の物理的ロケーションにおけるメモリの2つ以上の部分を含むことができる。
【0045】
[0064]さらに説明すると、上述のような処理は、様々な構成要素および様々なメモリによって実行される。しかしながら、上述のように2つの別個の構成要素によって実行される処理は、さらなる実施形態によれば、単一の構成要素によって実行されうることが理解される。さらに、上述のように1つの別個の構成要素によって実行される処理は、2つの別個の構成要素によって実行されてもよい。
【0046】
[0065]同様に、上述のように2つの別個のメモリ部分によって実行されるメモリ記憶は、さらなる実施形態によれば、単一のメモリ部分によって実行されてもよい。さらに、上述のように1つの別個のメモリ部分によって実行されるメモリ記憶は、2つのメモリ部分によって実行されてもよい。
【0047】
[0066]さらに、様々なプロセッサおよび/またはメモリの間の通信を提供するために、ならびにプロセッサおよび/またはメモリが任意の他のエンティティと通信することを可能にするために、すなわち、例えば、さらなる命令を得るためにもしくはリモートメモリストアにアクセスし使用するために、様々な技術が使用されてもよい。そのような通信を提供するために使用されるそのような技術は、例えば、ネットワーク、インターネット、イントラネット、エクストラネット、LAN、イーサネット、セルタワーもしくは衛星を介した無線通信、または通信を提供する任意のクライアントサーバシステムを含むことができる。そのような通信技術は、例えば、TCP/IP、UDP、またはOSIなどの任意の適切なプロトコルを使用することができる。
【0048】
[0067]上述のように、命令のセットが、実施形態の処理で使用されてもよい。命令のセットは、プログラムまたはソフトウェアの形態のものであってもよい。ソフトウェアは、例えば、システムソフトウェアまたはアプリケーションソフトウェアの形態のものであってもよい。ソフトウェアはまた、例えば、別個のプログラムの集合、より大きいプログラム内のプログラムモジュール、またはプログラムモジュールの一部分の形態のものであってもよい。使用されるソフトウェアはまた、オブジェクト指向プログラミングの形態のモジュール式プログラミングを含むことができる。ソフトウェアは、処理されるデータをどう扱うかを処理機械に伝える。
【0049】
[0068]さらに、実施形態の実施態様および運用において使用される命令または命令のセットは、処理機械が命令を読み取ることができるような適切な形態のものでありうることが理解される。例えば、プログラムを形成する命令は、1つまたは複数のプロセッサが命令を読み取ることを可能にするために機械語またはオブジェクトコードに変換される適切なプログラミング言語の形態のものとすることができる。すなわち、特定のプログラミング言語におけるプログラミングコードまたはソースコードの書かれたラインは、コンパイラー、アセンブラー、またはインタープリターを使用して機械語に変換される。機械語は、例えば、特定のタイプの処理機械、すなわち、特定のタイプのコンピュータに特有である2値符号化機械命令である。コンピュータは機械語を理解する。
【0050】
[0069]任意の適切なプログラミング言語が、様々な実施形態に従って使用されてもよい。さらに、単一のタイプの命令または単一のプログラミング言語がシステムおよび方法の運用に関連して利用されることは必要ではない。むしろ、任意の数の異なるプログラミング言語が、必要および/または所望に応じて利用されてもよい。
【0051】
[0070]同様に、実施形態の実施において使用される命令および/またはデータは、所望されうるように、任意の圧縮または暗号化技法またはアルゴリズムを利用することができる。暗号化モジュールが、データを暗号化するために使用されてもよい。さらに、ファイルまたは他のデータが、例えば、適切な解読モジュールを使用して解読されてもよい。
【0052】
[0071]上述のように、本実施形態は、例証として、例えば、少なくとも1つのメモリを含むコンピュータまたはコンピュータシステムを含む処理機械の形態で具現化することができる。コンピュータオペレーティングシステムが上述の運用を実行することを可能にする命令のセット、すなわち、例えば、ソフトウェアが、所望に応じて、多種多様な1つまたは複数の媒体のうちの任意の媒体に含まれてもよいことを理解されたい。さらに、命令のセットによって処理されるデータはまた、多種多様な1つまたは複数の媒体のうちの任意の媒体に含まれてもよい。すなわち、実施形態で使用される命令のセットおよび/またはデータを保持するために利用される処理機械内の特定の媒体、すなわち、メモリは、例えば、様々な物理的形態または伝送媒体のうちの任意のものをとることができる。例証として、媒体は、紙、透明紙、コンパクトディスク、DVD、集積回路、ハードディスク、フロッピーディスク、光ディスク、磁気テープ、RAM、ROM、PROM、EPROM、ワイヤ、ケーブル、ファイバ、通信チャネル、衛星伝送、メモリカード、SIMカード、または他の遠隔伝送、ならびにプロセッサが読み取ることができる任意の他のデータの媒体またはソースの形態のものとすることができる。
【0053】
[0072]さらに、実施形態を実施する処理機械で使用される1つまたは複数のメモリは、所望に応じて、メモリが命令、データ、または他の情報を保持することを可能にする多種多様な形態のうちの任意の形態とすることができる。したがって、メモリは、データを保持するためのデータベースの形態のものであってもよい。データベースは、例えば、フラットファイル構成またはリレーショナルデータベース構成などの任意の所望のファイルの構成を使用することができる。
【0054】
[0073]システムおよび方法では、様々な「ユーザインターフェース」を利用し、ユーザが実施形態を実施するために使用される1つまたは複数の処理機械とインターフェースでき得る。本明細書で使用するとき、ユーザインターフェースは、ユーザが処理機械と対話することを可能にする、処理機械によって使用される任意のハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せを含む。ユーザインターフェースは、例えば、ダイアログスクリーンの形態のものであってもよい。ユーザインターフェースは、マウス、タッチスクリーン、キーボード、キーパッド、音声リーダ、音声認識器、ダイアログスクリーン、メニューボックス、リスト、チェックボックス、トグルスイッチ、プッシュボタン、または、任意の他のデバイスであって、任意の他のデバイスが命令のセットを処理するおよび/または処理機械に情報を提供するときに、処理機械の運用に関する情報をユーザが受け取ることを可能にする、任意の他のデバイスのうちの任意のものをさらに含むことができる。したがって、ユーザインターフェースは、ユーザと処理機械との間の通信を提供する任意のデバイスである。ユーザインターフェースを通してユーザによって処理機械に提供される情報は、例えば、コマンド、データの選択、または何らかの他の入力の形態のものであってもよい。
【0055】
[0074]上述で論じたように、ユーザインターフェースは、命令のセットを実行する処理機械によって利用され、その結果、処理機械は、ユーザのためにデータを処理する。ユーザインターフェースは、一般に、情報を伝達するかまたはユーザからの情報を受け取るためにユーザと対話するための処理機械によって使用される。しかしながら、システムおよび方法のいくつかの実施形態によれば、人間のユーザが処理機械によって使用されるユーザインターフェースと実際に対話することは必要でないことが理解されるべきである。むしろ、ユーザインターフェースは、人間のユーザではなく別の処理機械と対話する、すなわち、情報を伝達し情報を受け取ることができることも企図される。したがって、他の処理機械は、ユーザと見なされてもよい。さらに、システムおよび方法で利用されるユーザインターフェースは、別の1つまたは複数の処理機械と部分的に対話するとともに、人間のユーザとも部分的に対話することができることが企図される。
【0056】
[0075]実施形態が広範囲の実用性および用途を受け入れることができることが当業者によって容易に理解されるであろう。本明細書に記載されたもの以外の本発明の多くの実施形態および適応形態、ならびに多くの変形形態、修正形態、および等価形態が、趣旨または範囲から逸脱することなく、前述の説明から明らかになるか、またはそれによって合理的に示唆されるであろう。
【0057】
[0076]したがって、実施形態が、例示的な実施形態に関連してここで詳細に記載されたが、本開示は、単なる本発明の例証および例示であり、本発明の実施可能な程度の開示を提供するために行われていることを理解されたい。したがって、前述の開示は、本発明を限定する、または別の方法で任意の他のそのような実施形態、適応形態、変形形態、修正形態、もしくは等価形態を排除すると解釈されるように意図されていない。
【国際調査報告】