(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】連合学習方法、装置、機器及び媒体
(51)【国際特許分類】
G06N 20/00 20190101AFI20240918BHJP
G06F 9/50 20060101ALI20240918BHJP
G06N 3/098 20230101ALI20240918BHJP
【FI】
G06N20/00
G06F9/50 150Z
G06N3/098
【外国語出願】
(21)【出願番号】P 2023036909
(22)【出願日】2023-03-09
【審査請求日】2023-03-09
(31)【優先権主張番号】202210234461.X
(32)【優先日】2022-03-10
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュヨンボー プオン
(72)【発明者】
【氏名】ジーウエン ジョウ
【審査官】児玉 崇晶
(56)【参考文献】
【文献】特開2021-144401(JP,A)
【文献】国際公開第2021/191750(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06F 9/50
G06N 3/098
(57)【特許請求の範囲】
【請求項1】
コンピュータが実行する連合学習方法であって、
目標参加側の連合学習タスクに関連するデータを受信することと、
前記連合学習タスクを実行可能な
第1コンピューティング機器のコンピューティングリソースを決定することと、
前記データと前記コンピューティングリソースが予め設定された条件を満たすと決定することに応答し、前記連合学習タスクを実行するための第1デプロイメントプランを生成することと、を含み、
前記目標参加側は前記連合学習タスクを実行するための第1コンピューティング機器を少なくとも含み、前記第1デプロイメントプランは前記第1コンピューティング機器で第1ワークノードと第2ワークノードを少なくとも生成するように指示
し、
前記第1デプロイメントプランを適用すると決定することに応答し、前記第1デプロイメントプランに基づいて前記第1コンピューティング機器で第1ワークノードと第2ワークノードを少なくとも生成することと、
前記データをブロック化し、前記第1ワークノードに対応するデータブロックと前記第2ワークノードに対応するデータブロックを得ることと、
前記第1ワークノードと前記第2ワークノードのそれぞれに対応するデータブロックのサイズに基づいて、前記第1ワークノードと前記第2ワークノードにコンピューティングリソースを割り当てることと、
前記連合学習タスクを並列して実行するよう前記第1ワークノードと前記第2ワークノードに指示することと、をさらに含む、連合学習方法。
【請求項2】
前記第1デプロイメントプランを生成することは、
複数の候補ノード数を決定することと、
前記複数の候補ノード数のうちの各候補ノード数に対して、該候補ノード数のワークノードが前記連合学習タスクを協調して実行する予定処理時間を計算することと、
前記複数の候補ノード数のうちの各候補ノード数と該候補ノード数に対応する予定処理時間を第1デプロイメントプランとして決定することと、を含み、
前記複数の候補ノード数のうちの各候補ノード数は前記第1コンピューティング機器で該候補ノード数のワークノードを生成するように指示し、該候補ノード数のワークノードのうちの各ワークノードは前記コンピューティングリソースのうちの一部のコンピューティングリソースを使用して前記データのうちの一部のデータに基づいて連合学習タスクを実行できる請求項1に記載の
連合学習方法。
【請求項3】
前記コンピューティングリソースはメモリリソースを含み、前記第1ワークノードと前記第2ワークノードのそれぞれに対応するデータブロックのサイズに基づいて、前記第1ワークノードと前記第2ワークノードにコンピューティングリソースを割り当てることは、
前記第1ワークノードと前記第2ワークノードのそれぞれに対応するデータブロックのサイズと、前記連合学習タスクに使用される連合学習アルゴリズムのメモリ膨張率に基づいて、前記第1ワークノードに割り当てられるメモリリソースのサイズと、前記第2ワークノードに割り当てられるメモリリソースのサイズを決定することを含み、
前記メモリ膨張率は、前記連合学習タスクの実行時に、前記連合学習アルゴリズムでトレーニングされた連合学習モデルが占有するメモリサイズと前記連合学習モデルの生データサイズの比を示す請求項
1に記載の
連合学習方法。
【請求項4】
前記連合学習タスクの実行時に前記コンピューティングリソースを拡張する指示を受信したことに応答し、拡張したコンピューティングリソースに基づいて、前記連合学習タスクの実行を継続するための第2デプロイメントプランを生成し、前記第2デプロイメントプランは前記第1コンピューティング機器で第3ワークノードと第4ワークノードを少なくとも生成するように指示することと、
前記第2デプロイメントプランを適用すると決定することに応答し、前記第1ワークノードと前記第2ワークノードを停止させ、前記第2デプロイメントプランに基づいて前記第1コンピューティング機器で第3ワークノードと第4ワークノードを少なくとも生成することと、
前記連合学習タスクの実行を継続するよう前記第3ワークノードと前記第4ワークノードに指示することと、をさらに含む請求項
1に記載の
連合学習方法。
【請求項5】
前記データは複数のサンプルのそれぞれの複数の特徴データを含み、前記連合学習タスクは垂直連合学習タスクであり、前記データをブロック化することは、
前記データに含まれる複数の特徴に基づいて前記データをブロック化し、前記第1ワークノードに対応する第1データブロックと、前記第2ワークノードに対応する第2データブロックを得ることを含み、
前記第1データブロックは前記複数のサンプルの第1部分特徴データを含み、前記第2データブロックは前記複数のサンプルの第2部分特徴データを含む請求項
1に記載の
連合学習方法。
【請求項6】
前記連合学習タスクは垂直連合学習タスクであり、前記第1デプロイメントプランはさらに、前記第1コンピューティング機器でパラメータノードを生成するように指示し、
前記連合学習タスクを実行することは、
前記複数のサンプルのそれぞれのタグデータを含んだ他の参加側から前記複数のサンプルに対応する暗号化勾配データである第1パラメータを受信し、前記第1パラメータを前記第1ワークノードと前記第2ワークノードに送信するよう前記パラメータノードに指示することと、
それぞれ対応するコンピューティングリソースを利用し、前記第1パラメータと対応するデータブロックに基づいて第2パラメータを計算し、前記第2パラメータを前記パラメータノードに送信するよう前記第1ワークノードと前記第2ワークノードに指示することと、
前記第1ワークノードと前記第2ワークノードからそれぞれ受信した第2パラメータを集約し、集約後の第2パラメータを前記他の参加側に送信するよう前記パラメータノードに指示することと、
前記他の参加側から目標特徴の分割点情報を受信し、前記分割点情報を前記目標特徴に対応するワークノードに送信するよう前記パラメータノードに指示することと、
前記分割点情報と該ワークノードに対応するデータブロックに基づいて分割特徴値を決定し、前記分割特徴値を前記パラメータノードに送信するよう該ワークノードに指示することと、
前記分割特徴値に基づいて前記複数のサンプルに対する分割結果を決定するよう前記パラメータノードに指示することと、
前記分割結果を前記他の参加側に送信するよう前記パラメータノードに指示することと、を含み、
前記第2パラメータは対応するデータブロックに含まれる前記複数のサンプルのそれぞれの一部の特徴データのソート結果と前記暗号化勾配データに基づいて決定される暗号化分割利得である請求項
5に記載の
連合学習方法。
【請求項7】
前記データは複数のサンプルのそれぞれの複数の特徴データを含み、前記連合学習タスクは水平連合学習タスクであり、前記データをブロック化することは、
前記データに含まれる複数のサンプルに基づいて前記データをブロック化し、前記第1ワークノードに対応する第3データブロックと前記第2ワークノードに対応する第4データブロックを得ることを含み、前記第3データブロックは前記複数のサンプルのうちの第1部分サンプルの複数の特徴データを含み、前記第4データブロックは前記複数のサンプルのうちの第2部分サンプルの複数の特徴データを含む請求項
1に記載の
連合学習方法。
【請求項8】
前記連合学習タスクを実行することは、
対応するデータブロックをストリーム読み取るよう前記第1ワークノードと前記第2ワークノードに指示することをさらに含む請求項
7に記載の
連合学習方法。
【請求項9】
前記予め設定された条件は、前記第1コンピューティング機器が前記コンピューティングリソースから単一のワークノードに割り当てる最大コンピューティングリソースのサイズが前記データのサイズよりも小さいことを指示する請求項1に記載の
連合学習方法。
【請求項10】
前記第1ワークノードと前記第2ワークノードは前記第1コンピューティング機器で実行する2つのプロセスである請求項1に記載の
連合学習方法。
【請求項11】
連合学習装置であって、
目標参加側の連合学習タスクに関連するデータを受信するように構成される受信ユニットと、
前記連合学習タスクを実行可能な
第1コンピューティング機器のコンピューティングリソースを決定するように構成される決定ユニットと、
前記データと前記コンピューティングリソースが予め設定された条件を満たすと決定することに応答し、前記連合学習タスクを実行するための第1デプロイメントプランを生成するように構成される第1生成ユニットと、を含
み、
前記目標参加側は前記連合学習タスクを実行するための第1コンピューティング機器を少なくとも含み、前記第1デプロイメントプランは前記第1コンピューティング機器で第1ワークノードと第2ワークノードを少なくとも生成するように指示し、
前記第1デプロイメントプランを適用すると決定することに応答し、前記第1デプロイメントプランに基づいて前記第1コンピューティング機器で第1ワークノードと第2ワークノードを少なくとも生成するように構成される第2生成ユニットと、
前記データをブロック化し、前記第1ワークノードに対応するデータブロックと前記第2ワークノードに対応するデータブロックを得るように構成されるデータブロック化ユニットと、
前記第1ワークノードと前記第2ワークノードのそれぞれに対応するデータブロックのサイズに基づいて、前記第1ワークノードと前記第2ワークノードにコンピューティングリソースを割り当てるように構成されるコンピューティングリソース割り当てユニットと、
前記連合学習タスクを並列して実行するよう前記第1ワークノードと前記第2ワークノードに指示するように構成される第1実行ユニットと、をさらに含む、連合学習装置。
【請求項12】
前記第1生成ユニットは、
複数の候補ノード数を決定するように構成される第1決定サブユニットと、
前記複数の候補ノード数のうちの各候補ノード数に対して、該候補ノード数のワークノードが前記連合学習タスクを協調して実行する予定処理時間を計算するように構成されるコンピューティングサブユニットと、
前記複数の候補ノード数のうちの各候補ノード数と該候補ノード数に対応する予定処理時間を第1デプロイメントプランとして決定するように構成される第2決定サブユニットと、を含み、
前記複数の候補ノード数のうちの各候補ノード数は前記第1コンピューティング機器で該候補ノード数のワークノードを生成するように指示し、該候補ノード数のワークノードのうちの各ワークノードは前記コンピューティングリソースのうちの一部のコンピューティングリソースを使用して前記データのうちの一部のデータに基づいて連合学習タスクを実行できる請求項11に記載の
連合学習装置。
【請求項13】
前記コンピューティングリソースはメモリリソースを含み、前記コンピューティングリソース割り当てユニットはさらに、
前記第1ワークノードと前記第2ワークノードのそれぞれに対応するデータブロックのサイズと、前記連合学習タスクに使用される連合学習アルゴリズムのメモリ膨張率に基づいて、前記第1ワークノードに割り当てられるメモリリソースのサイズと、前記第2ワークノードに割り当てられるメモリリソースのサイズを決定するように構成され、
前記メモリ膨張率は、前記連合学習タスクの実行時に、前記連合学習アルゴリズムでトレーニングされた連合学習モデルが占有するメモリサイズと前記連合学習モデルの生データサイズの比を示す請求項1
1に記載の
連合学習装置。
【請求項14】
前記連合学習タスクの実行時に前記コンピューティングリソースを拡張する指示を受信したことに応答し、拡張したコンピューティングリソースに基づいて、前記連合学習タスクの実行を継続するための第2デプロイメントプランを生成し、前記第2デプロイメントプランは前記第1コンピューティング機器で第3ワークノードと第4ワークノードを少なくとも生成するように指示するように構成される第3生成ユニットと、
前記第2デプロイメントプランを適用すると決定することに応答し、前記第1ワークノードと前記第2ワークノードを停止させ、前記第2デプロイメントプランに基づいて前記第1コンピューティング機器で第3ワークノードと第4ワークノードを少なくとも生成するように構成される第4生成ユニットと、
前記連合学習タスクの実行を継続するよう前記第3ワークノードと前記第4ワークノードに指示するように構成される第2実行ユニットと、をさらに含む請求項1
1に記載の
連合学習装置。
【請求項15】
前記データは複数のサンプルのそれぞれの複数の特徴データを含み、前記連合学習タスクは垂直連合学習タスクであり、前記データブロック化ユニットはさらに、
前記データに含まれる複数の特徴に基づいて前記データをブロック化し、前記第1ワークノードに対応する第1データブロックと、前記第2ワークノードに対応する第2データブロックを得るように構成され、
前記第1データブロックは前記複数のサンプルの第1部分特徴データを含み、前記第2データブロックは前記複数のサンプルの第2部分特徴データを含む請求項1
1に記載の
連合学習装置。
【請求項16】
前記連合学習タスクは垂直連合学習タスクであり、前記第1デプロイメントプランはさらに、前記第1コンピューティング機器でパラメータノードを生成するように指示し、
前記第1実行ユニットはさらに、
前記複数のサンプルのそれぞれのタグデータを含んだ他の参加側から前記複数のサンプルに対応する暗号化勾配データである第1パラメータを受信し、前記第1パラメータを前記第1ワークノードと前記第2ワークノードに送信するよう前記パラメータノードに指示し、
それぞれ対応するコンピューティングリソースを利用し、前記第1パラメータと対応するデータブロックに基づいて第2パラメータを計算し、前記第2パラメータを前記パラメータノードに送信するよう前記第1ワークノードと前記第2ワークノードに指示し、
前記第1ワークノードと前記第2ワークノードからそれぞれ受信した第2パラメータを集約し、集約後の第2パラメータを前記他の参加側に送信するよう前記パラメータノードに指示し、
前記他の参加側から目標特徴の分割点情報を受信し、前記分割点情報を前記目標特徴に対応するワークノードに送信するよう前記パラメータノードに指示し、
前記分割点情報と該ワークノードに対応するデータブロックに基づいて分割特徴値を決定し、前記分割特徴値を前記パラメータノードに送信するよう該ワークノードに指示し、
前記分割特徴値に基づいて前記複数のサンプルに対する分割結果を決定するよう前記パラメータノードに指示し、
前記分割結果を前記他の参加側に送信するよう前記パラメータノードに指示するように構成され、
前記第2パラメータは対応するデータブロックに含まれる前記複数のサンプルのそれぞれの一部の特徴データのソート結果と前記暗号化勾配データに基づいて決定される暗号化分割利得である請求項1
5に記載の
連合学習装置。
【請求項17】
前記データは複数のサンプルのそれぞれの複数の特徴データを含み、前記連合学習タスクは水平連合学習タスクであり、前記データブロック化ユニットはさらに、
前記データに含まれる複数のサンプルに基づいて前記データをブロック化し、前記第1ワークノードに対応する第3データブロックと前記第2ワークノードに対応する第4データブロックを得るように構成され、
前記第3データブロックは前記複数のサンプルのうちの第1部分サンプルの複数の特徴データを含み、前記第4データブロックは前記複数のサンプルのうちの第2部分サンプルの複数の特徴データを含む請求項1
1に記載の
連合学習装置。
【請求項18】
前記第1実行ユニットはさらに、
対応するデータブロックをストリーム読み取るよう前記第1ワークノードと前記第2ワークノードに指示するように構成される請求項1
7に記載の
連合学習装置。
【請求項19】
前記予め設定された条件は、前記第1コンピューティング機器が前記コンピューティングリソースから単一のワークノードに割り当てる最大コンピューティングリソースのサイズが前記データのサイズよりも小さいことを指示する請求項1
1に記載の
連合学習装置。
【請求項20】
前記第1ワークノードと前記第2ワークノードは前記第1コンピューティング機器で実行する2つのプロセスである請求項1
1に記載の
連合学習装置。
【請求項21】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信可能に接続されたメモリと、を含み、
前記メモリは、前記少なくとも1つのプロセッサにより実行可能な命令を記憶しており、前記命令は前記少なくとも1つのプロセッサにより実行されて、前記少なくとも1つのプロセッサが請求項1~1
0のいずれか1項に記載の
連合学習方法を実行できるようにする電子機器。
【請求項22】
請求項1~1
0のいずれか1項に記載の
連合学習方法をコンピュータに実行させるためのコンピュータ命令が記憶された非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項23】
コンピュータに、請求項1~1
0のいずれか1項に記載の
連合学習方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、人工知能の分野に関し、具体的には、機械学習及び連合学習の分野に関し、特に連合学習方法、連合学習装置、電子機器、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム製品に関する。
【背景技術】
【0002】
人工知能はコンピュータを人間のある思考過程及びインテリジェント行為(例えば学習、推論、思考、計画など)をシミュレーションする学科を研究することであり、ハードウェアレベルの技術もソフトウェアレベルの技術もある。人工知能ハードウェア技術は一般的にセンサ、専用人工知能チップ、クラウドコンピューティング、分散記憶、ビッグデータ処理などの技術を含む。人工知能ソフトウェア技術は主にコンピュータ視覚技術、音声認識技術、自然言語処理技術及び機械学習/深さ学習、ビッグデータ処理技術、知識グラフ技術などのを含む。
【0003】
連合学習は新興の人工知能基盤技術であり、その最初の設計目的は、ビッグデータ交換中の情報セキュリティを確保し、端末データと個人データのプライバシーを保護し、法的コンプライアンスを確保する前提で、マルチ参加側またはマルチコンピューティングノード間で機械学習又は深層学習を実施することである。現在、連合学習は現在のデータ科学分野の研究の焦点の1つとなっているが、連合学習アルゴリズムは一般的に暗号学の技術によってデータのセキュリティを確保し、これはアルゴリズムの効率を大幅に低下させる。
【0004】
この部分に記載される方法は、必ずしも以前に想定された方法または採用された方法ではない。特に明記されない限り、この部分に記載されるいずれかの方法がこの部分に含まれているため従来の技術とみなされるものと仮定すべきではない。同様に、特に明記されない限り、この部分で言及された問題は、いかなる従来の技術においても公認されていると見なされるべきではない。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示は、連合学習方法、連合学習装置、電子機器、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム製品を提供する。
【課題を解決するための手段】
【0006】
本開示の一態様によれば、目標参加側の連合学習タスクに関連するデータを受信することと、連合学習タスクを実行可能な第1コンピューティング機器のコンピューティングリソースを決定することと、データとコンピューティングリソースが予め設定された条件を満たすと決定することに応答し、連合学習タスクを実行するための第1デプロイメントプランを生成することと、を含む連合学習方法を提供し、目標参加側は連合学習タスクを実行するための第1コンピューティング機器を少なくとも含み、第1デプロイメントプランは第1コンピューティング機器で第1ワークノードと第2ワークノードを少なくとも生成するように指示する。
【0007】
本開示の別の態様によれば、目標参加側の連合学習タスクに関連するデータを受信するように構成される受信ユニットと、連合学習タスクを実行可能な第1コンピューティング機器のコンピューティングリソースを決定するように構成される決定ユニットと、データとコンピューティングリソースが予め設定された条件を満たすと決定することに応答し、連合学習タスクを実行するための第1デプロイメントプランを生成するように構成される第1生成ユニットと、を含む連合学習装置を提供し、目標参加側は連合学習タスクを実行するための第1コンピューティング機器を少なくとも含み、第1デプロイメントプランは第1コンピューティング機器で第1ワークノードと第2ワークノードを少なくとも生成するように指示する。
【0008】
本開示の別の態様によれば、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに通信可能に接続されたメモリとを含み、メモリは、少なくとも1つのプロセッサにより実行可能な命令を記憶しており、これらの命令は少なくとも1つのプロセッサにより実行されて、少なくとも1つのプロセッサが上記方法を実行できるようにする電子機器を提供する。
【0009】
本開示の別の態様によれば、上記方法をコンピュータに実行させるためのコンピュータ命令が記憶された非一時的なコンピュータ読み取り可能な記憶媒体を提供する。
【0010】
本開示の別の態様によれば、プロセッサにより実行されると、上記方法を実現するコンピュータプログラムを含むコンピュータプログラム製品を提供する。
【発明の効果】
【0011】
本開示の1つまたは複数の実施例によれば、目標参加側のデータ及び目標参加側のコンピューティング機器のコンピューティングリソースが予め設定された条件を満たす場合に同一のコンピューティング機器で複数のワークノードを実行するデプロイメントプランを生成することにより、コンピューティング機器が該コンピューティング機器における全部又は大部分のコンピューティングリソースを単一のコンピューティングノードに割り当てることができないことによるコンピューティングリソースの利用率が低いという問題を解決し、それにより単一のコンピューティング機器のコンピューティングリソースを効率的且つ十分に利用して大量のデータに対して水平又は垂直連合モデリングを行い、連合学習の効率を向上させる。
【0012】
理解できるように、本部分で説明される内容は、本開示の実施例のキーとなる又は重要な特徴を認識することを意図しておらず、本開示の範囲を限定することも意図していない。本開示の他の特徴は、以下の明細書によって容易に理解される。
【図面の簡単な説明】
【0013】
図面は実施例を例示的に示し、明細書の一部を構成し、明細書の記載とともに実施例の例示的な実施形態を説明することに用いられる。示される実施例は例示の目的にのみを使用しされ、特許請求の範囲を限定するものではない。すべての図面において、同じ図面の符号は、類似するが、必ずしも同じではない要素を示す。
【
図1】本開示の実施例に係る本明細書に記載の各種の方法を実施できる例示的なシステムの模式図を示す。
【
図2】本開示の例示的な実施例に係る連合学習方法のフローチャートを示す。
【
図3】本開示の例示的な実施例に係るを生成する第1デプロイメントプランのフローチャートを示す。
【
図4】本開示の例示的な実施例に係る連合学習方法のフローチャートを示す。
【
図5】本開示の例示的な実施例に係る垂直連合学習タスクのフローチャートを示す。
【
図6】本開示の例示的な実施例に係る連合学習装置の構造ブロック図を示す。
【
図7】本開示の例示的な実施例に係る第1生成ユニットの構造ブロック図を示す。
【
図8】本開示の例示的な実施例に係る連合学習装置の構造ブロック図を示す。
【
図9】本開示の実施例を実現するために使用できる例示的な電子機器の構造ブロック図を示す。
【発明を実施するための形態】
【0014】
以下、図面を参照しつつ本開示の例示的な実施例を説明するが、以下の説明には、理解を容易にするために本開示の実施例の様々な詳細が含まれるが、このような詳細は単に例示的なものとみなされるべきである。したがって、当業者にとって自明なように、本開示の範囲から逸脱することなく、ここで記載された実施例に様々な変更及び修正が可能である。同様に、以下の説明では、周知の機能及び構造については、明確化及び簡明化のために説明を省略する。
【0015】
本開示では、特に明記しない限り、「第1」、「第2」などの用語を用いて様々な要素を説明する場合、これらの要素の位置関係、タイミング関係又は重要性関係を限定することを意図するものではなく、このような用語は、1つの素子と別の素子とを区別するためのものに過ぎない。いくつかの例では、第1の要素と第2の要素は、該要素の同じインスタンスを指すことができ、いくつかの場合では、コンテキストの説明に基づいて、それらは、異なるインスタンスを指すこともできる。
【0016】
本開示では、様々な例の説明において使用される用語は、特定の例を説明するためのものに過ぎず、限定することを意図するものではない。コンテキストにおいて特に明記しない限り、要素の数が特に限定されていない場合、該要素は、1つであってもよいし、複数であってもよい。また、本開示で使用される「及び/又は」という用語は、示される項目のいずれか1つ及び全ての可能な組み合わせ形態をカバーする。
【0017】
関連技術では、従来の連合学習タスクの多くはの単一のノードで実行し、大量のデータの業務シーンにおいて実行できない。一部の連合学習フレームは分散式思想の助けを借りて複数のコンピューティングノードで実行するが、一部の連合学習アルゴリズムは原理的に並列コンピューティングをサポートしないため、これらの連合学習フレームに良好に適用することができず、それによりアルゴリズム効率の向上が目立たなく又は大規模なデータセットを処理できない。
【0018】
上記の問題を解決するために、本開示は、目標参加側のデータ及び目標参加側のコンピューティング機器のコンピューティングリソースが予め設定された条件を満たす場合に同一のコンピューティング機器で複数のワークノードを実行するデプロイメントプランを生成することにより、コンピューティング機器が該コンピューティング機器における全部又は大部分のコンピューティングリソースを単一のコンピューティングノードに割り当てることができないことによるコンピューティングリソースの利用率が低いという問題を解決し、それにより単一のコンピューティング機器のコンピューティングリソースを効率的且つ十分に利用して大量のデータに対して水平又は垂直連合モデリングを行い、連合学習の効率を向上させる。
【0019】
以下、添付の図面を参照しつつ本開示の実施例を詳細に説明する。
【0020】
図1は、本開示の実施例に係る本明細書に記載の各種の方法及び装置を実施できる例示的なシステム100の模式図を示す。
図1に示すように、該システム100は、1つ又は複数のクライアント機器101、102、103、104、105及び106と、サーバ120と、1つ又は複数のクライアント機器をサーバ120に結合する1つ又は複数の通信ネットワーク110とを含む。クライアント機器101、102、103、104、105、及び106は、1つ又は複数のアプリケーションを実行するように構成されてもよい。
【0021】
本開示の実施例では、サーバ120は、実行すると、連合学習方法の1つ又は複数のサービス又はソフトウェアアプリケーションを実行させることができる。
【0022】
いくつかの実施例では、サーバ120は、非仮想環境と仮想環境を含みうる他のサービス又はソフトウェアアプリケーションを提供してもよい。いくつかの実施例では、このようなサービスはwebに基づくサービス又はクラウドサービスとして提供することができ、たとえば、ソフトウェア即ちサービス(SaaS)インターネットでクライアント機器101、102、103、104、105及び/又は106のユーザーに提供する。
【0023】
図1Aに示す構成では、サーバ120は、サーバ120によって実行される機能の1つ又は複数を実現するコンポーネントを含むことができる。これらのコンポーネントは、1つ又は複数のプロセッサによって実行可能なソフトウェアコンポーネント、ハードウェアコンポーネント又はこれらの組み合わせを含むことができる。クライアント機器101、102、103、104、105及び/又は106を操作するユーザーは、1つ又は複数のクライアントアプリケーションを順次用いてサーバ120とインタラクションすることによって、これらのコンポーネントにより提供されたサービスを利用できる。なお、様々なシステム構成が可能であり、システム100と異なってもよい。したがって、
図1Aは本明細書に記載の各種方法を実施するためのシステムの一例であり、限定するものではない。
【0024】
ユーザーは、クライアント機器101、102、103、104、105及び/又は106を用いて情報処理を行うことができる。クライアント機器は、クライアント機器のユーザーとクライアント機器とのインタラクションを可能にするインターフェースを提供でき、例えば、ユーザーはクライアントを利用して、様々な入力機器を介して連合学習タスクに関連する命令をサーバに入力できる。クライアント機器はまた、該インターフェースを介してユーザーに情報を出力することもでき、例えば、クライアントは、連合学習タスクの実行結果と、トレーニング済みの連合学習モデルを利用してサンプルを予測した結果をユーザーに出力できる。
図1には、6種類のライアント機器だけが示されているが、当業者にとって自明なように、本開示は任意の数のクライアント機器をサポートできる。
【0025】
クライアント機器101、102、103、104、105及び/又は106は、各種のタイプのコンピュータ機器、たとえば、サービスロボット、セルフサービス端末、携帯型手持ち機器、汎用コンピュータ(たとえば、パーソナルコンピュータやラップトップコンピュータ)、ワークステーションコンピュータ、ウェアラブル機器、スマートスクリーン機器、セルフサービス端末機器、サービスロボット、ゲームシステム、シンクライアント、各種のメッセージング機器、センサ又は他の感知機器などを含みうる。これらのコンピュータ機器は、各種のタイプ及びバージョンのソフトウェアアプリケーション及びオペレーティングシステム、たとえばMICROSOFT Windows、APPLE iOS、UNIX(登録商標)ライクなオペレーティングシステム、Linux(登録商標)又はLinux(登録商標)ライクなオペレーティングシステム(たとえばGOOGLE Chrome OS)を実行したり、又は各種の移動オペレーティングシステム、たとえばMICROSOFT Windows Mobile OS、iOS、Windows Phone、Androidを含んだりすることができる。携帯型手持ち機器は、セルラー電話、スマートフォン、タブレットコンピュータ、パーソナル・デジタル・アシスタント(PDA)などを含むことができる。ウェアラブル機器はヘッドマウントディスプレイ(スマートグラスなど)及び他の機器を含むことができる。ゲームシステムは各種の手持ち式ゲーム機器、インターネットをサポートするゲーム機器などを含む。クライアント機器は、様々なアプリケーション、たとえばInternetに関連する各種のアプリケーション、通信アプリケーション(たとえば電子メールアプリケーション)、ショートメッセージサービス(SMS)アプリケーションを実行し、かつ各種の通信プロトコルを用いることができる。
【0026】
ネットワーク110は、当業者にとって周知の任意のタイプのネットワークであってもよく、利用可能な様々なプロトコルのいずれか(TCP/IP、SNA、IPXなどを含むが、これらに限定されない)を用いてデータ通信をサポートすることができる。一例として、1つ又は複数のネットワーク110は、ローカルエリアネットワーク(LAN)、イーサネットに基づくネットワーク、トークンリング、ワイドエリアネットワーク(WAN)、インターネット、仮想ネットワーク、仮想プライベートネットワーク(VPN)、イントラネット、エクストラネット、公衆電話交換網(PSTN)、赤外線ネットワーク、無線ネットワーク(たとえば、ブルートゥース(登録商標)、WIFI)、及び/又は、これら及び/又は他のネットワークの任意の組み合わせであってもよい。
【0027】
サーバ120は、1つ又は複数の汎用コンピュータ、専用サーバコンピュータ(たとえば、PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ)、ブレードサーバ、メインフレームコンピュータ、サーバクラスタ、又は任意の他の適切な配置及び/又は組み合わせを含むことができる。サーバ120は、仮想オペレーティングシステムを実行する1つ又は複数の仮想マシン、又は仮想化を伴う他のコンピューティングアーキテクチャ(たとえば、サーバの仮想記憶機器をメンテナンスするために仮想化され得る論理記憶機器の1つ又は複数の柔軟なプール)を含むことができる。様々な実施例では、サーバ120は、以下に記載の機能を提供する1つ又は複数のサービス又はソフトウェアアプリケーションを実行することができる。
【0028】
サーバ120のコンピューティングユニットは、上記のいずれかのオペレーティングシステムと、商業的に利用可能ないずれかのサーバオペレーティングシステムとを含む1つ又は複数のオペレーティングシステムを実行することができる。サーバ120は、HTTPサーバ、FTPサーバ、CGIサーバ、JAVA(登録商標)サーバ、データベースサーバなどを含む、様々な追加のサーバアプリケーション及び/又は中間層アプリケーションのうちのいずれかを実行してもよい。
【0029】
いくつかの実施形態では、サーバ120は、クライアント機器101、102、103、104、105、及び106のユーザーから受信したデータフィード及び/又はイベント更新を分析・マージするように、1つ又は複数のアプリケーションを含むことができる。サーバ120は、クライアント機器101、102、103、104、105、及び106の1つ又は複数の表示機器を介してデータフィード及び/又はリアルタイムイベントを表示するように、1つ又は複数のアプリケーションを含むこともできる。
【0030】
いくつかの実施形態では、サーバ120は、分散型システムのサーバであってもよく、ブロックチェーンを組み込んだサーバであってもよい。サーバ120は、クラウドサーバ、又は人工知能技術を備えたスマートクラウドコンピューティングサーバ又はスマートクラウドホストであってもよい。クラウドサーバは、クラウドコンピューティングサービスシステムにおけるホスト製品の1つであり、従来の物理ホストと仮想専用サーバ(VPS、Virtual Private Server)サービスに存在する、管理が困難で、ビジネスの拡張性が低いという欠点を解決するようにする。
【0031】
システム100はまた、1つ又は複数のデータベース130を含むことができる。いくつかの実施例では、これらのデータベースは、データ及び他の情報を記憶することに用いられ得る。たとえば、データベース130のうちの1つ又は複数は、オーディオファイル及びビデオファイルのような情報を記憶することに用いられ得る。データベース130は、様々な場所に配置され得る。たとえば、サーバ120によってを使用しされるデータリポジトリは、サーバ120に対してローカルであってもよく、サーバ120から離れるとともに、ネットワークベース又は専用の接続を介してサーバ120と通信してもよい。データベース130は、様々なタイプであってもよい。いくつかの実施例では、サーバ120によってを使用しされるデータリポジトリは、リレーショナルデータベースなどのデータベースであってもよい。これらのデータベースの1つ又は複数は、命令に応答して、データベース及びデータベースからのデータを記憶、更新、及び検索できる。
【0032】
いくつかの実施例では、データベース130のうちの1つ又は複数は、アプリケーションによってを使用しされることによってアプリケーションのデータを記憶することもできる。アプリケーションによってを使用しされるデータベースは、キー値リポジトリ、オブジェクトリポジトリ、又はファイルシステムによってサポートされる通常のリポジトリなど、異なる種類のデータベースであってもよい。
【0033】
図1のシステム100は、本開示に記載の各種の方法及び装置を適用できるように、各種の方式で構成・操作することができる。
【0034】
本開示の一態様によれば、連合学習方法を提供する。
図2に示すように、該方法は、目標参加側の連合学習タスクに関連するデータを受信するステップS201と、連合学習タスクを実行可能な第1コンピューティング機器のコンピューティングリソースを決定するステップS202と、データとコンピューティングリソースが予め設定された条件を満たすと決定することに応答し、連合学習タスクを実行するための第1デプロイメントプランを生成するステップS203と、を含み、目標参加側は連合学習タスクを実行するための第1コンピューティング機器を少なくとも含み、第1デプロイメントプランは第1コンピューティング機器で第1ワークノードと第2ワークノードを少なくとも生成するように指示する。
【0035】
これにより、目標参加側のデータ及び目標参加側のコンピューティング機器のコンピューティングリソースが予め設定された条件を満たす場合に同一のコンピューティング機器で複数のワークノードを実行するデプロイメントプランを生成することにより、コンピューティング機器が該コンピューティング機器における全部又は大部分のコンピューティングリソースを単一のコンピューティングノードに割り当てることができないことによるコンピューティングリソースの利用率が低いという問題を解決し、それにより単一のコンピューティング機器のコンピューティングリソースを効率的且つ十分に利用して大量のデータに対して水平又は垂直連合モデリングを行い、連合学習の効率を向上させる。
【0036】
いくつかの実施例では、本開示の方法は、水平連合学習における任意の参加側及び垂直連合学習における特徴データを有する参加側を含んだ連合学習の参加側に適用するようにしてもよい。
【0037】
いくつかの実施例では、目標参加側の連合学習タスクに関連するデータを受信するステップS201は、連合学習タスクを実行する複数の参加側がそれぞれ所有するデータに対してアラインメントを行い、各参加側の実際に連合トレーニングに使用されるデータを取得することを含んでもよい。
【0038】
実際に連合モデリングに参加する業務シーンにおいて、参加側のデータフォーマット及びデータタイプは様々であり、そのため連合学習プラットフォームはこれらのマルチソースデータをサポートする必要があり、下位データの差異をシールドし、上位モデリングプロセスを透明化する。いくつかの実施例では、連合学習プラットフォームにおいてファイルアップロードとテーブル作成ステートメントによりデータテーブル、データベース、Hadoop分散ファイルシステム(HDFS)、クラウドストレージ及びオンライン入力などのタイプのソースデータにアクセスすることができ、これらのデータソースをSQLエンジンにより汎用データインタフェースDataFrameを生成することができる。DataFrameは一般的なjava(登録商標)オブジェクトであり、該オブジェクトは生データファイルを記憶しないが、データの変換プロセスを記録し、様々なtansform及びaction演算子をサポートする。DataFrameの変換はtansform演算子によって完了され、action演算子をトリガされたときにのみ、tansform演算子が実行され、遅延実行メカニズムに属する。このような方式により、データが占有する記憶スペースを低減し、記憶リソースの利用率を向上させることができる。また、DataFrameは、データのストリーム読み取りや列読み取りにも対応できる。理解できるように、データを受信する時に先にこれらのデータを読み取ることなく、データに関連する情報(例えば、行数、列数)を取得するようにしてよく、さらにデータ情報に基づいてデータをブロック化し、ワークノードを用いてデータを処理する必要がある時にワークノードデータの対応する部分によって読み取るようにしてもよい。
【0039】
いくつかの実施例では、目標参加側は複数のコンピューティング機器を含んでもよく、各コンピューティング機器に割り当てられたデータと、連合学習タスクを実行可能な該コンピューティング機器のコンピューティングリソースに基づいて、該コンピューティング機器に該ノードで複数のワークノードを配置するデプロイメントプランを生成するか否かを判断することができる。
【0040】
いくつかの実施例では、第1コンピューティング機器の連合学習タスクに使用されるコンピューティングリソースはプロセッサリソース、メモリリソース、及び帯域幅リソースのうちの少なくとも1つを含んでもよい。
【0041】
いくつかの実施例によれば、予め設定された条件は、第1コンピューティング機器がコンピューティングリソースから単一のワークノードに割り当てる最大コンピューティングリソースのサイズがデータサイズより小さいことを指示するようにしてもよい。すなわち、第1コンピューティング機器がコンピューティングリソースから単一のワークノードに割り当て可能な最大コンピューティングリソースのサイズが連合学習タスクを行うためのデータ量のサイズより小さいと決定した場合、第1コンピューティング機器で少なくとも2つのワークノードのデプロイメントプランを生成することができ、それにより第1コンピューティング機器のコンピューティングリソースの利用率を向上させることができる。単一のコンピューティング機器に1つのコンピューティングノードしか存在せず、連合学習タスクのためのデータ量が多い場合、コンピューティング機器は、そのコンピューティングノードに十分なコンピューティングリソースを割り当てることができない。1つの例示的な実施例では、連合学習タスクのためのデータは200GBのメモリリソースを占有する必要があるが、コンピューティング機器は単一のコンピューティングノードにこのようなメモリリソースを割り当てることができない。10個のワークノードを生成することにより、コンピューティング機器が各ワークノードに20GBのメモリリソースを割り当てることができ、それによりコンピューティング機器のコンピューティングリソースを大いに活用する。また、1つのコンピューティング機器に複数のワークノードを配置することは、複数のコンピューティング機器に複数のワークノードを配置することによる通信オーバーヘッドを回避することもできる。理解できるように、さらに他の方式で予め設定された条件を設定することができ、例えば、データサイズとコンピューティングリソースのサイズとの比は予め設定された閾値より大きく、ここでは限定しない。
【0042】
いくつかの実施例では、同時に実行するワークノードの数は並列度と呼ばれてもよい。
【0043】
いくつかの実施例によれば、第1ワークノードと第2ワークノードは第1コンピューティング機器で実行する2つのプロセスであることにより、同一のコンピューティング機器で目標参加側に対する連合学習タスクを並列して実行することを実現する。連合学習タスクの処理効率をさらに向上させるように、これらのワークノードにさらに複数のスレッドが含まれてもよい。
【0044】
いくつかの実施例によれば、
図3に示すように、データとコンピューティングリソースが予め設定された条件を満たすと決定することに応答し、連合学習タスクを実行するための第1デプロイメントプランを生成するステップS203は、複数の候補ノード数を決定するステップS301と、複数の候補ノード数のうちの各候補ノード数に対して、該候補ノード数のワークノードが連合学習タスクを協調して実行する予定処理時間を計算するステップS302と、複数の候補ノード数のうちの各候補ノード数と該候補ノード数に対応する予定処理時間を第1デプロイメントプランとして決定するステップS303と、を含んでもよく、複数の候補ノード数のうちの各候補ノード数は第1コンピューティング機器で該候補ノード数のワークノードを生成するように指示し、該候補ノード数のワークノードのうちの各ワークノードはコンピューティングリソースのうちの一部のコンピューティングリソースを使用してデータのうちの一部のデータに基づいて連合学習タスクを実行できる。
【0045】
これにより、複数の候補ノード数を決定し、これらの候補ノード数のワークノードが現在のコンピューティングリソース、データ量、選択された連合学習アルゴリズム等の配置で連合学習タスクを実行する予定処理時間を決定することにより、複数のワークノードデプロイメントプラン及び各デプロイメントプランに対応する予定処理時間を得ることができ、さらに第1コンピューティング機器又は目標参加側のユーザがこれらのプランから最適なプランを決定して、該プランを適用して連合学習タスクを実行することができ、それによりコンピューティングリソースの効率的な利用を実現する。連合学習タスクの処理速度を向上させる。
【0046】
いくつかの実施例では、最適な状況での予定処理時間を得るように、コンピューティングリソース及びデータを候補ノード数のワークノードの各ワークノードに均等に分配すると仮定するようにしてもよい。これらのワークノードが使用したコンピューティングリソース及び処理したデータ、パラメータ、モデルはいずれも独立することができるため、並列して実行することができ、それにより連合学習タスクを協調して実行することを実現する。
【0047】
いくつかの実施例によれば、各候補ノード数に対応するメモリリソースの使用状況を計算する時、使用された連合学習アルゴリズムのメモリ膨張率を考慮する必要がある。メモリ膨張率とは、連合学習タスクの実行時に、連合学習アルゴリズムのモデルが占有するメモリサイズと、連合学習アルゴリズムのモデルを格納するのに必要なスペースのサイズである。いくつかの実施例では、メモリ膨張率は連合学習アルゴリズム及び対応するモデルのデータ量に関連し、そのため、選択された連合学習アルゴリズム及び対応するモデルのデータ量に基づいて対応するメモリ膨張率を計算する必要があり、メモリ膨張率に基づいて候補ノード数のノードがそれぞれ必要なメモリリソースのサイズを計算し、さらに該候補ノード数に対応する連合学習タスクの実行に必要なメモリリソースのサイズを得る。これにより、目標参加側の連合学習に使用されるコンピューティングリソースがこれらの候補ノード数をサポートするか否かを判断することができる。
【0048】
いくつかの実施例では、ユーザが目標参加側の一部のコンピューティングリソースのみを使用して連合学習タスクを実行しようとする場合、予め記憶された複数のコンピューティングリソースのサイズ、複数の連合学習アルゴリズム、及び複数の並列度の組み合わせに対応する複数の予定処理時間に基づき、連合学習タスクを実行するためのコンピューティングリソースのサイズ及び並列度(すなわち、同時に実行するワークノードの数)を決定することができる。これにより、異なる複数のデプロイメントプランおける予定処理時間を予め記憶し、対応するユーザに送信することにより、ユーザが連合学習タスクの実行に使用しようとするコンピューティングリソースのサイズと並列度を選択することに役たち、それにより、より柔軟な方式を提供して目標参加側のコンピューティングリソースを大いに活用する。
【0049】
いくつかの実施例では、単一のコンピューティング機器のコンピューティングリソースが連合学習タスクを処理するには不十分である場合、複数のワークノードを複数のコンピューティング機器に配置するようにしてもよいが、本開示の方法により、これらのコンピューティング機器における一部のコンピューティング機器で複数のワークノードを実行して該コンピューティング機器のコンピューティングリソース利用率を向上させることができる。
【0050】
いくつかの実施例によれば、
図4に示すように、連合学習方法は、第1デプロイメントプランを適用すると決定することに応答し、第1デプロイメントプランに基づいて第1コンピューティング機器で第1ワークノードと第2ワークノードを少なくとも生成するステップS404と、データをブロック化し、第1ワークノードに対応するデータブロックと第2ワークノードに対応するデータブロックを得るステップS405と、第1ワークノードと第2ワークノードのそれぞれに対応するデータブロックのサイズに基づいて、第1ワークノードと第2ワークノードにコンピューティングリソースを割り当てるステップS406と、連合学習タスクを並列して実行するよう第1ワークノードと第2ワークノードに指示するステップS407と、をさらに含んでもよい。
図4のステップS401~ステップS403の操作は
図2のステップS201~ステップS203の操作と類似し、ここでは説明を省略する。
【0051】
これにより、第1デプロイメントプランを適用した後、第1コンピューティング機器で2つのワークノードを少なくとも生成し、データをブロック化し各ワークノードによって処理されたデータブロックを得て、さらにそれぞれに対応するデータブロックのサイズに基づいて各ワークノードにコンピューティングリソースを割り当て、対応するコンピューティングリソースを利用して連合学習タスクを実行するようこれらのワークノードに指示するようにしてもよく、これにより目標参加側で連合学習タスクに対する並列処理を実現し、連合学習タスクの実行効率を向上させる。
【0052】
いくつかの実施例では、第1デプロイメントプランを適用すると決定することは、例えばユーザにより決定されてもよく、第1コンピューティング機器により決定されてもよい。1つの例示的な実施例では、第1コンピューティング機器は、複数の第1デプロイメントプランのうち予定処理時間が最も少ない第1デプロイメントプランを決定し、該第1デプロイメントプランを適用するようにしてもよい。
【0053】
いくつかの実施例によれば、第1デプロイメントプランはさらに第1コンピューティング機器でパラメータノードを生成するように指示するようにしてもよい。生成されたパラメータノードはデータ分割、パラメータ配信、自分側の結果集約を行うために使用することができ、生成されたワークノードは対応するデータを読み取ってパラメータコンピューティングと更新を行うために使用することができる。このようなノードの設定方法により、目標参加側に対する連合学習タスクを効率的に並列して実行することができる。いくつかの実施例では、ステップS405はパラメータノードによって実行されるようにしてもよい。いくつかの実施例では、パラメータノードは、第1ワークノード、第2ワークノードと共同で第1コンピューティング機器で実行するようにしてもよい。
【0054】
いくつかの実施例によれば、目標参加側の連合学習タスクに使用されるデータは複数のサンプルのそれぞれの複数の特徴データを含んでもよい。連合学習タスクが垂直連合学習タスクである場合、データをブロック化するステップS405は、データに含まれる複数の特徴に基づいてデータをブロック化し、第1ワークノードに対応する第1データブロックと、第2ワークノードに対応する第2データブロックを得ることを含み、第1データブロックは複数サンプルの第1部分特徴データを含み、第2データブロックは複数サンプルの第2部分特徴データを含む。
【0055】
いくつかの実施例では、垂直連合学習タスクにおいて、各参加側は全てのサンプルの一部の特徴データ又はタグデータを有する。垂直連合学習アルゴリズムは全体的に並列コンピューティングをサポートしないが、特徴データを有する各参加側の内部に特徴データを特徴(すなわち、列)で複数のデータブロックに分け、対応するデータブロックを処理するよう各ワークノードに指示し、さらに処理結果(例えば、暗号化勾配の和)を集約するようパラメータノードに指示し、目標参加側の連合学習アルゴリズムのモデルをトレーニングする効率を向上させる。パラメータノードとワークノードが垂直連合学習タスクを実行する具体的なステップについては後述する。
【0056】
いくつかの実施例では、第1部分特徴データ及び第2部分特徴データはいずれもデータにおける全てのサンプルの一部の特徴の特徴データであり、重複しなくてもよい。したがって、第1ワークノード及び第2ワークノードはいずれも受信した暗号化勾配データに基づき、割り当てられたコンピューティングリソース及び対応するデータブロックを用いて暗号化勾配データを処理し、暗号化分割利得を得ることができる。また、後述するように、暗号化分割利得を対応するパラメータノードに送信して集計及び集約を行うことができる。
【0057】
いくつかの実施例によれば、連合学習タスクが水平連合学習タスクである場合、データをブロック化するステップS405は、データに含まれる複数のサンプルに基づいてデータをブロック化し、第1ワークノードに対応する第3データブロックと、第2ワークノードに対応する第4データブロックを得ることを含み、第3データブロックは複数のサンプルのうちの第1部分サンプルの複数の特徴データを含み、第4データブロックは複数のサンプルのうちの第2部分サンプルの複数の特徴データを含む。
【0058】
いくつかの実施例では、水平連合学習タスクにおいて、各参加側は一部のサンプルの全ての特徴データ及びタグデータを有し、したがって、これらの参加側同士に連合学習タスクを並列して実行することができる。参加側の内部にサンプル(すなわち、行)に応じて複数のデータブロックに分けられ、対応するデータブロックを処理するよう各ワークノードに指示し、さらに処理結果を(例えば、勾配又は更新後のモデルパラメータ)集約するようパラメータノードに指示し、連合学習アルゴリズムのモデルをトレーニングする効率を向上させる。パラメータノードとワークノードが水平連合学習タスクを実行する具体的なステップについては後述する。
【0059】
いくつかの実施例によれば、第1部分サンプルと第2部分サンプルはいずれもデータにおける一部のサンプルであり、重複しなくてもよい。したがって、第1ワークノードと第2ワークノードはいずれも、割り当てられたコンピューティングリソースを利用して対応するデータブロックを処理し、勾配パラメータを得て又はトレーニングされたモデルを直接得ることができる。さらに、後述するように、勾配パラメータ又はトレーニングされたモデルを対応するパラメータノードに送信して集計及び集約を行うことができる。
【0060】
いくつかの実施例によれば、コンピューティングリソースはメモリリソースを含んでもよい。第1ワークノードと第2ワークノードにコンピューティングリソースを割り当てるステップS406は、第1ワークノードと第2ワークノードのそれぞれに対応するデータブロックのサイズと、連合学習タスクに使用される連合学習アルゴリズムのメモリ膨張率に基づいて、第1ワークノードに割り当てられるメモリリソースのサイズと、第2ワークノードに割り当てられるメモリリソースのサイズを決定することを含んでもよく、メモリ膨張率は、連合学習タスクの実行時に、連合学習アルゴリズムでトレーニングされた連合学習モデルが占有するメモリサイズと連合学習モデルの生データサイズの比を示す。このような方式により、各ワークノードが正常で効率的にワークを行うことを確保し、メモリリソースを大いに活用することができる。理解できるように、アルゴリズムの特性及びデータブロックのサイズ等の情報に基づいてワークノードに他のコンピューティングリソースを割り当てることができ、ここでは説明を省略する。
【0061】
いくつかの実施例では、目標参加側は特徴データを含み、他の参加側はタグデータのみを含む。
図5に示すように、連合学習タスクが垂直連合学習タスクである場合、連合学習タスクを実行する完全なフローは、目標参加側と他の参加側はサンプルのアラインメントを行うステップS501と、目標参加側のパラメータノードはデータを列で分割するステップS502と、目標参加側のパラメータノードは分割後の列名を目標参加側の各ワークノードに送信し、各ノードは列名に応じてデータを読み取るステップS503と、他の参加側は勾配データを算出し暗号化するステップS504と、他の参加側は暗号化された勾配データを目標参加側のパラメータノードに送信するステップS505と、目標参加側のパラメータノードは暗号化された勾配データを各ワークノードに送信するステップS506と、目標参加側の各ワークノードは該ノードの特徴データに対応する複数の暗号化分割利得を計算するステップS507と、目標参加側のパラメータノードは各ワークノードの複数の暗号化分割利得を集約するステップS508と、目標参加側のパラメータノードは集約後の複数の暗号化分割利得を他の参加側に送信するステップS509と、他の参加側は特徴データを含んだ全ての参加側から返信された暗号化分割利得を復号化し、復号化された分割利得に従って目標特徴と、分割閾値を含み得る分割点情報を決定するステップS510と、他の参加側は、目標特徴及び分割点情報を目標特徴の特徴データを含んだ参加側に送信する(説明の便宜上、目標参加側は目標特徴の特徴データを含んだ参加側であると仮定する)ステップS511と、目標参加側のパラメータノードは目標特徴の特徴データを含んだワークノードから対応する分割特徴値を取得するステップS512と、目標参加側のパラメータノードは分割特徴値に基づいて複数のサンプルに対する分割結果を決定するステップS513と、目標参加側のパラメータノードは分割結果を他の参加側に送信するステップS514と、他の参加側は該分割結果を記録してモデルを更新するステップS515と、を含んでもよい。上記ステップS504~ステップS514は予め設定された終了条件を満たすまで繰り返し実行することができる。上記方式により、複数のワークノードを利用して目標参加側に実行する垂直連合学習タスクを並列処理することができ、これにより垂直連合学習の効率を向上させる。
【0062】
いくつかの実施例では、
図5において実行される連合学習タスクに使用される連合学習アルゴリズムはXGBooStアルゴリズムであってもよい。タグデータを含んだ他の参加側は、1次勾配データ(Gradient)と2次勾配データ(Hessian)を計算し、同型暗号化アルゴリズムを用いて暗号化された1次勾配データと2次勾配データを目標参加側に送信するようにしてもよい。目標参加側のワークノードはデータブロックにおける各特徴に対し、全てのサンプルの該特徴の特徴データをソートし、複数の候補分割点を得る。ワークノードは暗号化勾配データに基づいて各候補分割点の暗号化分割利得を計算するようにしてもよく、パラメータノードはこれらの暗号化分割利得を集計した後、タグデータを含んだ他の参加側に送信する。他の参加側は全ての参加側の全ての特徴の全ての候補分割点の全ての暗号化分割利得を復号化し、そのうちから分割利得が最大である目標特徴及び分割点情報を決定し、これらの情報を目標特徴の特徴データを含んだ参加側に送信する。該参加側のパラメータノードは、対応するワークノードから分割点情報に対応する特徴値を取得し、該特徴値と複数のサンプルの該特徴の特徴データに基づいて分割結果を決定し、さらに該分割結果を他の参加側に同期し、今回の反復を完了する。理解できるように、上記フローは垂直連合学習タスクのための他の連合学習アルゴリズムに適用することができ、ここでは限定しない。
【0063】
いくつかの実施例では、連合学習タスクが水平連合学習タスクである場合、目標参加側と他の参加側はいずれも複数のサンプルのうちの一部のサンプルのそれぞれの全ての特徴データとタグデータを含んでもよい。この時、ワークノード同士は完全に連合学習アルゴリズムのモデルを並列して更新し、パラメータノードを利用してこれらのモデルを融合することができ、目標参加側と他の参加側は、他の参加側のモデルパラメータを利用して自分側のモデルパラメータを更新するように、それぞれの連合学習アルゴリズムのモデルを並列して更新し、暗号化されたモデルパラメータを互いに送信することもできる。
【0064】
いくつかの実施例によれば、連合学習タスクが水平連合学習タスクである場合、連合学習タスクを実行するステップS407はさらに、対応するデータブロックをストリーム読み取るよう第1ワークノードと第2ワークノードに指示することをを含んでもよい。これにより、ストリーム読み取りの方式により、ワークノードは毎回の反復時に一部のサンプルのデータを一括して読み取ることができ、それにより複数回の反復によりデータ量がコンピューティングリソースのサイズをはるかに超えるデータをトレーニングすることを実現することができる。
【0065】
いくつかの実施例によれば、
図4に示すように、連合学習方法は、連合学習タスクの実行時にコンピューティングリソースを拡張する指示を受信したことに応答し、拡張したコンピューティングリソースに基づいて、連合学習タスクの実行を継続するための第2デプロイメントプランを生成するステップS408と、第2デプロイメントプランを適用すると決定することに応答し、第1ワークノードと第2ワークノードを停止させ、第2デプロイメントプランに基づいて第1コンピューティング機器で第3ワークノードと第4ワークノードを少なくとも生成するステップS409と、連合学習タスクの実行を継続するよう第3ワークノードと第4ワークノードに指示するステップS410と、をさらに含み、第2デプロイメントプランは第1コンピューティング機器で第3ワークノードと第4ワークノードを少なくとも生成するように指示する。
【0066】
いくつかの実施例では、連合学習タスクの実行中に、データ量の増加に伴い、参加側のサーバのコンピューティングリソースが不足であるので、複数の並列コンピューティングタスクを起動又は効率的に実行できないという問題に遭遇する可能性がある。コンピューティングリソースを柔軟に拡張し、拡張したコンピューティングリソースに基づいて第2デプロイメントプランを生成し、さらに第2デプロイメントプランを適用すると決定した後に拡張したコンピューティングリソースに対応する新たなワークノードを生成し、連合学習タスクを実行し続けるようこれらの新たなワークノードに指示することで、連合学習タスクを効率的に完了できることを確保する。
【0067】
いくつかの実施例では、より多くのコンピューティング機器を拡張する方式によりコンピューティングリソースを拡張し、このようにして拡張したコンピューティング機器に基づいて各コンピューティング機器にデータを再割り当て、これらのコンピューティング機器において本開示の方法でデータを並列処理するようにしてもよい。
【0068】
本開示の別の態様によれば、連合学習装置を提供する。
図6に示すように、連合学習装置600は、目標参加側の連合学習タスクに関連するデータを受信するように構成される受信ユニット601と、第1コンピューティング機器の連合学習タスクを実行可能なコンピューティングリソースを決定するように構成される決定ユニット602と、データとコンピューティングリソースが予め設定された条件を満たすと決定することに応答し、連合学習タスクを実行するための第1デプロイメントプランを生成するように構成される第1生成ユニット603と、を含み、目標参加側は連合学習タスクを実行するための第1コンピューティング機器を少なくとも含み、第1デプロイメントプランは第1コンピューティング機器で第1ワークノードと第2ワークノードを少なくとも生成するように指示する。
【0069】
理解できるように、連合学習装置600におけるユニット601~ユニット603の操作及び効果は
図2のステップS201~ステップS203の操作及び効果と類似し、ここでは説明を省略する。
【0070】
いくつかの実施例によれば、予め設定された条件は、第1コンピューティング機器がコンピューティングリソースから単一のワークノードに割り当てる最大コンピューティングリソースのサイズがデータのサイズよりも小さいことを指示するようにしてもよい。
【0071】
いくつかの実施例によれば、第1ワークノードと第2ワークノードは第1コンピューティング機器で実行する2つのプロセスであってもよい。
【0072】
いくつかの実施例によれば、
図7に示すように、第1生成ユニット700は、複数の候補ノード数を決定するように構成される第1決定サブユニット701と、複数の候補ノード数のうちの各候補ノード数に対して、該候補ノード数のワークノードが連合学習タスクを協調して実行する予定処理時間を計算するように構成されるコンピューティングサブユニット702と、複数の候補ノード数のうちの各候補ノード数と該候補ノード数に対応する予定処理時間を第1デプロイメントプランとして決定するように構成される第2決定サブユニット703と、を含んでもよく、複数の候補ノード数のうちの各候補ノード数は第1コンピューティング機器で該候補ノード数のワークノードを生成するように指示する。該候補ノード数のワークノードのうちの各ワークノードはコンピューティングリソースのうちの一部のコンピューティングリソースを使用してデータのうちの一部のデータに基づいて連合学習タスクを実行できる。
【0073】
いくつかの実施例によれば、
図8に示すように、連合学習装置800は、第1デプロイメントプランを適用すると決定することに応答し、第1デプロイメントプランに基づいて第1コンピューティング機器で第1ワークノードと第2ワークノードを少なくとも生成するように構成される第2生成ユニット804と、データをブロック化し、第1ワークノードに対応するデータブロックと第2ワークノードに対応するデータブロックを得るように構成されるデータブロック化ユニット805と、第1ワークノードと第2ワークノードのそれぞれに対応するデータブロックのサイズに基づいて、第1ワークノードと第2ワークノードにコンピューティングリソースを割り当てるように構成されるコンピューティングリソース割り当てユニット806と、連合学習タスクを並列して実行するよう第1ワークノードと第2ワークノードに指示するように構成される第1実行ユニット807と、をさらに含んでもよく、連合学習装置800の各ユニット801~803の操作及び効果は、連合学習装置600の各ユニット601~603の操作及び効果と類似し、ここでは説明を省略する。
【0074】
いくつかの実施例によれば、データは複数のサンプルのそれぞれの複数の特徴データを含んでもよい。連合学習タスクが垂直連合学習タスクである場合、データブロック化ユニットはさらに、データに含まれる複数の特徴に基づいてデータをブロック化し、前記第1ワークノードに対応する第1データブロックと、前記第2ワークノードに対応する第2データブロックを得るように構成され、第1データブロックは複数のサンプルの第1部分特徴データを含み、第2データブロックは複数のサンプルの第2部分特徴データを含む。
【0075】
いくつかの実施例によれば、連合学習タスクが水平連合学習タスクである場合、データブロック化ユニットはさらに、データに含まれる複数のサンプルに基づいてデータをブロック化し、第1ワークノードに対応する第3データブロックと第2ワークノードに対応する第4データブロックを得るように構成され、第3データブロックは複数のサンプルのうちの第1部分サンプルの複数の特徴データを含んでもよく、第4データブロックは複数のサンプルのうちの第2部分サンプルの複数の特徴データを含む。
【0076】
いくつかの実施例によれば、コンピューティングリソースはメモリリソースを含んでもよい。コンピューティングリソース割り当てユニットはさらに、第1ワークノードと第2ワークノードのそれぞれに対応するデータブロックのサイズと、連合学習タスクに使用される連合学習アルゴリズムのメモリ膨張率に基づいて、第1ワークノードに割り当てられるメモリリソースのサイズと、第2ワークノードに割り当てられるメモリリソースのサイズを決定するように構成されてもよく、メモリ膨張率は、連合学習タスクの実行時に、連合学習アルゴリズムでトレーニングされた連合学習モデルが占有するメモリサイズと連合学習モデルの生データサイズの比を示す。
【0077】
いくつかの実施例によれば、連合学習タスクは垂直連合学習タスクであってもよい。第1デプロイメントプランはさらに、第1コンピューティング機器でパラメータノードを生成するように指示するようにしてもよい。第1実行ユニットはさらに、複数のサンプルのそれぞれのタグデータを含んだ他の参加側から複数のサンプルに対応する暗号化勾配データである第1パラメータを受信し、第1パラメータを第1ワークノードと第2ワークノードに送信するようにパラメータノードに指示し、それぞれ対応するコンピューティングリソースを利用し、第1パラメータと対応するデータブロックに基づいて第2パラメータを計算し、第2パラメータをパラメータノードに送信するよう第1ワークノードと第2ワークノードに指示し、第1ワークノードと第2ワークノードからそれぞれ受信した第2パラメータを集約し、集約後の第2パラメータを他の参加側に送信するようパラメータノードに指示し、他の参加側から目標特徴の分割点情報を受信し、分割点情報を目標特徴に対応するワークノードに送信するようパラメータノードに指示し、分割点情報と該ワークノードに対応するデータブロックに基づいて分割特徴値を決定し、分割特徴値をパラメータノードに送信するよう該ワークノードに指示し、分割特徴値に基づいて複数のサンプルに対する分割結果を決定するようパラメータノードに指示し、分割結果を他の参加側に送信するようパラメータノードに指示するように構成されてもよく、第2パラメータは、対応するデータブロックに含まれる複数のサンプルのそれぞれの一部の特徴データのソート結果と暗号化勾配データに基づいて決定される暗号化分割利得である。
【0078】
いくつかの実施例によれば、連合学習タスクは水平連合学習タスクであってもよい。第1実行ユニットはさらに、対応するデータブロックをストリーム読み取るよう第1ワークノードと第2ワークノードに指示するように構成されてもよい。
【0079】
いくつかの実施例によれば、
図8に示すように、連合学習装置800は、連合学習タスクの実行時にコンピューティングリソースを拡張する指示を受信したことに応答し、拡張したコンピューティングリソースに基づいて、連合学習タスクの実行を継続するための第2デプロイメントプランを生成するように構成される第3生成ユニット808と、第2デプロイメントプランを適用すると決定することに応答し、第1ワークノードと第2ワークノードを停止させ、第2デプロイメントプランに基づいて第2コンピューティング機器で第3ワークノードと第4ワークノードを少なくとも生成するように構成される第4生成ユニット809と、連合学習タスクの実行を継続するよう第3ワークノードと第4ワークノードに指示するように構成される第2実行ユニットS810と、をさらに含んでもよく、第2デプロイメントプランは第1コンピューティング機器で第3ワークノードと第4ワークノードを少なくとも生成するように指示する。
【0080】
本開示の技術的解決手段では、係るユーザー個人情報の収集、記憶、使用、加工、伝送、提供及び開示などの処理は、いずれも関連する法規則の規定に適合し、かつ公序良俗に反するものではない。
【0081】
本開示の実施例によれば、さらに電子機器、読み取り可能な記憶媒体及びコンピュータプログラム製品を提供する。
【0082】
図9を参照して、本開示のサーバ又はクライアントとしてを使用し可能な電子機器900の構造ブロック図を説明し、これは、本開示の各態様に適用できるハードウェア機器の例である。電子機器は、例えば、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピュータ、及びその他の適切なコンピュータなど、様々な形式のデジタル電子のコンピュータ機器を示すことを意図している。電子機器は、例えば、パーソナルデジタル処理、セルラー電話、スマートフォン、ウェアラブル機器、及びその他の類似の計算装置など、様々な形式の移動装置を示してもよい。本明細書に示されている部材、それらの接続と関係、及びそれらの機能は単なる例であるが、本明細書に説明及び/又は要求される本開示の実現を限定することを意図しない。
【0083】
図9に示すように、機器900は、読み取り専用メモリ(ROM)902に記憶されたコンピュータプログラム又は記憶ユニット908からランダムアクセスメモリ(RAM)903にロードされたコンピュータプログラムに従って、様々な適切な実行及び処理を実行することができるコンピューティングユニット901を含む。RAM903には、機器900の実行に必要な様々なプログラム及びデータが記憶されてもよい。コンピューティングユニット901、ROM902及びRAM903は、バス904を介して互いに接続されている。入力/出力(I/O)インターフェース905もバス904に接続されている。
【0084】
機器900の複数の部材はI/Oインターフェース905に接続され、入力ユニット906、出力ユニット907、記憶ユニット908及び通信ユニット909を含む。入力ユニット906は機器900に情報を入力しうる任意のタイプの機器であってもよく、入力ユニット906は、入力したデジタル又は文字情報を受信したり、電子機器のユーザー設定及び/又は機能制御に関連するキー信号入力を発生させることができ、そして、マウス、キーボード、タッチスクリーン、トラックパッド、トラックボール、ジョイスティック、マイク、及び/又はリモコンを含むが、これらに限定されない。出力ユニット907は、情報を表示できる任意のタイプの機器であってもよく、そして、ディスプレイ、スピーカー、ビデオ/オーディオ出力端末、振動器及び/又はプリンタを含むが、これらに限定されない。記憶ユニット908は、磁気ディスク、光ディスクを含むが、これらに限定されない。通信ユニット909は、機器900が例えばインターネットのコンピュータネットワーク及び/又は各種の電信ネットワークを介して他の機器と情報/データを交換することを可能とし、そして、モデム、ネットワークカード、赤外線通信機器、無線通信トランシーバ及び/又はチップセット、例えば、ブルートゥース(登録商標)機器、802.11機器、WiFi機器、WiMax機器、セルラー通信機器及び/又は類似のものを含むが、これらに限定されない。
【0085】
コンピューティングユニット901は、処理能力及び計算能力を有する様々な汎用及び/又は専用の処理コンポーネントであってもよい。コンピューティングユニット901のいくつかの例には、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、様々な専用の人工知能(AI)計算チップ、機械学習インターネットアルゴリズムを実行する様々なコンピューティングユニット、デジタル信号プロセッサ(DSP)、及び任意の適切なプロセッサ、コントローラ、マイクロコントローラなどが含まれるが、これらに限定されない。コンピューティングユニット901は、上記した様々な方法及び処理、例えば、連合学習方法を実行する。例えば、いくつかの実施例では、連合学習方法は、記憶ユニット908などの機械読み取り可能な媒体に物理的に含まれるコンピュータソフトウェアプログラムとして実現されてもよい。いくつかの実施例では、コンピュータプログラムの一部又は全部を、ROM 902及び/又は通信ユニット909を介して機器900にロード及び/又はインストールすることができる。コンピュータプログラムがRAM903にロードされ、コンピューティングユニット901によって実行されると、上記した連合学習方法の1つ以上のステップを実行することができる。オプションとして、別の実施例では、コンピューティングユニット901は、他の任意の適切な方式で(例えば、ファームウェアによって)連合学習方法を実行するように構成されてもよい。
【0086】
本明細書に記載のシステム及び技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップシステム(SOC)、ロードプログラマブルロジック機器(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせにおいて実現することができる。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムにおいて実施され、この1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラム可能なプロセッサを含むプログラム可能なシステムで実行及び/又は解釈され得、このプログラム可能なプロセッサは専用又は汎用のプログラム可能なプロセッサであってもよく、ストレージシステム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、データ及び命令をこのストレージシステム、この少なくとも1つの入力装置、及びこの少なくとも1つの出力装置に送信することができる。
【0087】
本開示の方法を実施するためのプログラムコードは1つ又は複数のプログラミング言語の任意の組み合わせでプログラミングすることができる。これらのプログラムコードは汎用コンピュータ、専用コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサ又はコントローラに提供することができ、それによりプログラムコードはプロセッサ又はコントローラにより実行されると、フローチャート及び/又はブロック図に規定された機能/実行が実施される。プログラムコードは機械に完全に実行されてもよく、部分的に機械で実行されてもよく、独立したソフトウェアパッケージとして一部が機械で実行されかつ一部が遠隔機械で実行されるか、又は完全に遠隔機械又はサーバで実行されてもよい。
【0088】
本開示の文脈において、機械読み取り可能な媒体はプログラムを含む又は記憶した有形媒体であってもよく、このプログラムは、命令実行システム、装置又は機器によりを使用しされるか、又はそれらと組み合わせてを使用しされてもよい。機械読み取り可能な媒体は、機械読み取り可能な信号媒体又は機械読み取り可能な記憶媒体であってもよい。機械読み取り可能な媒体は、電子的、磁気的、光学的、電磁的、赤外線、又は半導体のシステム、装置又は機器、又は以上の任意の組み合わせを含むことができるが、これらに限られない。機械読み取り可能な記憶媒体のより具体的な例は、1つ又は複数のワイヤによる電気接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可読み取り専用メモリ(EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリ(CD~ROM)、光記憶機器、磁気記憶機器、又は上記の任意の適切な組み合わせを含む。
【0089】
ユーザーと対話できるように、ここで記載されるシステム及び技術をコンピュータに実施することができ、このコンピュータは、ユーザーに情報を表示するための表示装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニター)、ユーザーが入力をコンピュータに提供するすることが可能であるキーボード及びポインティング装置(例えば、マウスやトラックボール)を有する。他の種類の装置も、ユーザーとの対話を提供することができ、例えば、ユーザーに提供するフィードバックは、任意の形式の感覚フィードバック(例えば、視覚的フィードバック、聴覚的フィードバック、又は触覚的フィードバック)であってもよく、そして、ユーザーからの入力は、任意の形式(音響入力、音声入力、又は触覚入力を含む)で受信できる。
【0090】
ここで記載されるシステム及び技術は、バックエンドコンポーネントを含むコンピューティングシステム(例えば、データサーバとして)、又はミドルウェアコンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンドコンポーネントを含むコンピューティングシステム(例えば、グラフィカルユーザーインターフェース又はWEBブラウザーを備えたユーザーコンピュータが挙げられ、ユーザーはこのグラフィカルユーザーインターフェース又はこのWEBブラウザーを介してここで記載されるシステム及び技術の実施形態と対話できる)、又はこのようなバックエンドコンポーネント、ミドルウェアコンポーネント、又はフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムにおいて実施できる。システムのコンポーネントは、任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)を介して相互に接続できる。通信ネットワークの例には、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、及びインターネットが含まれる。
【0091】
コンピュータシステムには、クライアントとサーバを含むことができる。クライアントとサーバは通常、互いに遠く離れており、通信ネットワークを介して対話する。クライアントとサーバの関係は、対応するコンピュータで実行され、互いにクライアント~サーバの関係を持つコンピュータプログラムによってを生成するされる。サーバはクラウドサーバであってもよく、クラウドコンピューティングサーバ又はクラウドホストとも呼ばれ、従来の物理ホストとVPSサービス(「Virtual Private Server」、或いは「VPS」と略称)に存在する、管理の難易度が大きく、トラフィックの拡張性が弱いという欠陥を解決するための、クラウドコンピューティングサービスシステムのうちの1つのホスト製品である。サーバは分散型システムのサーバであってもよいし、あるいはブロックチェーンと組み合わせたサーバであってもよい。
【0092】
なお、上記の様々な形式のプロセスを用いて、ステップを改めて並べ替えたり、追加したり、削除したりすることができる。例えば、本開示に記載の各ステップは、本開示で開示された技術案の所望の結果が達成できる限り、並列して実施しても、順次実施しても、異なる順次で実施してもよく、本明細書ではそれについて限定しない。
【0093】
なお、図面を参照して本開示の実施例又は例を説明したが、上記の方法、システム及び機器は例示的な実施例又は例に過ぎず、本発明の範囲はこれらの実施例又は例により限定されず、授権された特許請求の範囲及びその同等の範囲により限定される。実施例又は例における各種の要素は、省略されたり、他の同等の要素に置き換えたりすることができる。さらに、本開示に記載のものと異なる順番に従って各ステップを実行してもよい。さらに、各種の方式で実施例又は例の各種の要素を組み合わせることができる。重要なことは、技術の発展に伴い、ここで記載される多くの要素は本開示以降に現れる同等の要素により置き換えることができる。