(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-28
(45)【発行日】2024-07-08
(54)【発明の名称】データ処理方法、装置、電子機器及びコンピュータプログラム
(51)【国際特許分類】
G06N 3/098 20230101AFI20240701BHJP
G09C 1/00 20060101ALI20240701BHJP
【FI】
G06N3/098
G09C1/00 650Z
(21)【出願番号】P 2023513949
(86)(22)【出願日】2021-10-21
(86)【国際出願番号】 CN2021125214
(87)【国際公開番号】W WO2022116725
(87)【国際公開日】2022-06-09
【審査請求日】2023-02-28
(31)【優先権主張番号】202011385627.5
(32)【優先日】2020-12-02
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チェン,ヨン
(72)【発明者】
【氏名】タオ,ヤンギュ
【審査官】円子 英紀
(56)【参考文献】
【文献】特開2019-144642(JP,A)
【文献】特開2019-215603(JP,A)
【文献】特開2017-044779(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
G06N 20/00-20/20
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
データ処理システムにおける第一装置が実行する、データを処理する方法であって、
前記データ処理システムは少なくとも3つの装置を含み、前記データ処理システムにおける装置はリング構造を用いて接続され、
前記方法は、
目標業務の第一サンプルデータを得るステップ;
前記第一サンプルデータに基づいて第一業務処理モデルを訓練し、前記第一業務処理モデルの第一モデルパラメータを得るステップ;
前記第一装置に接続される第二装置に前記第一モデルパラメータを送信し、前記第二装置に、第一融合パラメータを決定させ、かつ前記第一融合パラメータを他の第二装置に送信させるステップであって、前記第一融合パラメータは、前記第二装置により、前記第二装置が受信する前記第一モデルパラメータと、前記第二装置が決定する第二モデルパラメータとに基づいて得られるものであり、前記第二装置は前記データ処理システムにおける前記第一装置以外の装置である、ステップ;
第二融合パラメータを得るステップであって、前記第二融合パラメータは前記データ処理システムにおける前記少なくとも3つの装置が決定するモデルパラメータを含む、ステップ;及び
前記第二融合パラメータに基づいて前記第一業務処理モデルの目標モデルパラメータを決定するステップ
を含む、方法。
【請求項2】
請求項1に記載の方法であって、
前記第一モデルパラメータはN個のセグメントを含み、前記Nは1よりも大きい整数であり、
前記第一装置に接続される第二装置に前記第一モデルパラメータを送信することは、
前記第一装置に接続される前記第二装置に前記第一モデルパラメータにおける第一セグメントを送信し、前記第二装置に、第一融合セグメントを決定させ、かつ前記第一融合セグメントを他の第二装置に送信させるステップであって、前記第一融合セグメントは、前記第二装置により、前記第二装置が受信する前記第一セグメントと、前記第二装置が決定する第二モデルパラメータにおける第一セグメントとに基づいて得られるものである、ステップ
を含み、
前記第二融合パラメータを得るステップは、
第二融合セグメントに基づいて前記第二融合パラメータを得るステップであって、前記第二融合セグメントは前記データ処理システムにおける前記少なくとも3つの装置が決定するモデルパラメータにおける第一セグメントを含む、ステップ
を含み、
前記第二融合パラメータに基づいて前記第一業務処理モデルの目標モデルパラメータを決定するステップは、
前記第二融合セグメントに基づいて前記第一業務処理モデルの目標モデルパラメータにおける目標第一セグメントを決定するステップ;及び
前記目標第一セグメントに基づいて前記第一業務処理モデルの目標モデルパラメータを得るステップ
を含む、方法。
【請求項3】
請求項2に記載の方法であって、
前記目標第一セグメントに基づいて前記第一業務処理モデルの目標モデルパラメータを得るステップは、
前記目標モデルパラメータにおける目標第二セグメントであって、前記目標第二セグメントは前記目標モデルパラメータにおける前記目標第一セグメント以外のセグメントである、目標第二セグメントを受信し、前記目標第一セグメントと前記目標第二セグメントとを連結し、前記第一業務処理モデルの目標モデルパラメータを得るステップ;及び
前記目標第一セグメントを送信し、前記第一業務処理モデルの目標モデルパラメータを決定するステップであって、前記目標モデルパラメータは、前記第二装置が前記目標第一セグメントと前記目標第二セグメントとを連結することにより得られるものである、ステップ
のうちの何れか1つを含む、方法。
【請求項4】
請求項2に記載の方法であって、
前記第二装置が送信するモデルパラメータにおける第二セグメント又は第一融合第二セグメントを受信するステップ;
前記第二セグメント又は前記第一融合第二セグメントと、前記第一装置が決定する前記モデルパラメータにおける第二セグメントとを融合し、第二融合第二セグメントを得るステップ;及び
前記第二融合第二セグメントを他の第二装置に送信するステップ
をさらに含む、方法。
【請求項5】
請求項1に記載の方法であって、
前記データ処理システムは少なくとも2つの装置組を含み、各装置組は管理装置及び追従装置を含み、各装置組における装置はリング構造を用いて接続され、前記少なくとも2つの装置組の管理装置はリング構造を用いて接続され、
前記第一装置は目標装置組における管理装置であり、前記第二装置は前記目標装置組における追従装置であり、前記目標装置組は前記少なくとも2つの装置組のうちの何れか1つの装置組である、方法。
【請求項6】
請求項5に記載の方法であって、
前記第一装置に接続される第二装置に前記第一モデルパラメータを送信することは、
前記目標装置組における追従装置に前記第一モデルパラメータを送信し、前記追従装置に、第一融合パラメータを決定させ、かつ前記第一融合パラメータを他の追従装置に送信させるステップであって、前記第一融合パラメータは、前記追従装置により、前記追従装置が受信する前記第一モデルパラメータと、前記追従装置が決定する第二モデルパラメータとに基づいて得られるものである、ステップ
を含み、
前記第二融合パラメータを得るステップは、
第三融合パラメータを得るステップであって、前記第三融合パラメータは前記目標装置組が決定するモデルパラメータを含む、ステップ;
他の装置組における管理装置に前記第三融合パラメータを送信し、前記他の装置組における管理装置に、第四融合パラメータを決定させ、かつ前記第四融合パラメータを前記他の装置組における追従装置を送信させるステップであって、前記第四融合パラメータは、前記他の装置組における管理装置により、該管理装置が受信する前記第三融合パラメータと、該管理装置の所在する組の装置が決定する融合パラメータとに基づいて得られるものである、ステップ;及び
前記第二融合パラメータを得るステップであって、前記第二融合パラメータは前記データ処理システムにおける少なくとも2つの装置組が決定する融合パラメータを含む、ステップ
を含む、方法。
【請求項7】
請求項1に記載の方法であって、
前記第一装置に接続される第二装置に前記第一モデルパラメータを送信することは、
ランダムマスクを得るステップ;
前記ランダムマスクと前記第一モデルパラメータとを融合し、暗号化モデルパラメータを得るステップ;及び
前記第一装置に接続される第二装置に前記暗号化モデルパラメータを送信し、前記第二装置に、第一融合パラメータを決定させ、かつ前記第一融合パラメータを他の第二装置に送信させるステップであって、前記第一融合パラメータは、前記第二装置により、前記第二装置が受信する前記暗号化モデルパラメータと、前記第二装置が決定する第二モデルパラメータとに基づいて得られるものである、ステップ
を含み、
前記第二融合パラメータを得るステップは、
候補融合パラメータを受信するステップであって、前記候補融合パラメータは前記ランダムマスクと、前記データ処理システムにおける前記少なくとも3つの装置が決定するモデルパラメータとを含む、ステップ;及び
前記候補融合パラメータから前記ランダムマスクを除去し、前記第二融合パラメータを得るステップ
を含む、方法。
【請求項8】
請求項7に記載の方法であって、
前記ランダムマスクと前記第一モデルパラメータとを融合し、暗号化モデルパラメータを得るステップは、
前記第一モデルパラメータを丸めるステップ;
前記ランダムマスクと、丸められた後の前記第一モデルパラメータとの和を求めるステップ;及び
前記和に対して余数をとり、前記暗号化モデルパラメータを得るステップ
を含み、
前記第二装置に、第一融合パラメータを決定させ、かつ前記第一融合パラメータを他の第二装置に送信させることは、
前記第二装置に、前記第二装置が受信する暗号化モデルパラメータと、前記第二装置が決定しかつ丸めた後の第二モデルパラメータとの和を求めさせ、該和に対して余数を取らせて前記第一融合パラメータを取得させ、かつ前記第一融合パラメータを他の第二装置に送信させるステップ
を含む、方法。
【請求項9】
請求項7に記載の方法であって、
前記ランダムマスクと前記第一モデルパラメータとを融合し、暗号化モデルパラメータを得るステップは、
前記第一モデルパラメータを丸めるステップ;
丸められた後の前記第一モデルパラメータと、前記第一装置の重みとの第一乗積を得るステップ;
前記ランダムマスクと前記第一乗積との和を求めるステップ;及び
前記和に対して余数をとり、前記暗号化モデルパラメータを得るステップ
を含み、
前記第二装置に、第一融合パラメータを決定させ、かつ前記第一融合パラメータを他の第二装置に送信させることは、
前記第二装置に、前記第二装置が受信する暗号化モデルパラメータと、第二乗積との和を求めさせ、前記和に対して余数を取らせて前記第一融合パラメータを取得させ、かつ前記第一融合パラメータを他の第二装置に送信させるステップであって、前記第二乗積は前記第二装置が決定しかつ丸めた後の第二モデルパラメータと、前記第二装置の重みとの乗積である、ステップ
を含む、方法。
【請求項10】
請求項7に記載の方法であって、
前記ランダムマスクを得るステップは、
候補ランダムマスクを得るステップ;及び
前記候補ランダムマスクを丸め、前記ランダムマスクを得るステップ
を含む、方法。
【請求項11】
請求項1に記載の方法であって、
前記第二融合パラメータに基づいて前記第一業務処理モデルの目標モデルパラメータを決定するステップは、
前記第二融合パラメータと総重みとの商をとり、前記商を前記第一業務処理モデルの前記目標モデルパラメータとするステップであって、前記総重みは前記データ処理システムにおける前記少なくとも3つの装置の重みの和である、ステップ
を含む、方法。
【請求項12】
データ処理システムにおける第二装置が実行する、データを処理する方法であって、
前記データ処理システムは少なくとも3つの装置を含み、前記データ処理システムにおける装置はリング構造を用いて接続され、
前記方法は、
目標業務の第二サンプルデータを得るステップ;
前記第二サンプルデータに基づいて第二業務処理モデルを訓練し、前記第二業務処理モデルの第二モデルパラメータを得るステップ;
第一装置が決定する第一モデルパラメータを受信するステップであって、前記少なくとも3つの装置には前記第一装置が含まれる、ステップ;
前記第一モデルパラメータと、前記第二装置が決定する第二モデルパラメータとの融合を行い、第一融合パラメータを得るステップ;
前記第一融合パラメータを前記データ処理システムにおける他の装置に送信するステップ;及び
前記第二業務処理モデルの目標モデルパラメータを決定するステップ
を含む、方法。
【請求項13】
請求項12に記載の方法であって、
前記第二モデルパラメータはN個のセグメントを含み、前記Nは1よりも大きい整数であり、
前記第一装置が決定する第一モデルパラメータを受信するステップは、
前記第一装置が決定する第一モデルパラメータにおける第一セグメントを受信するステップ
を含み、
前記第二業務処理モデルの目標モデルパラメータを決定するステップは、
前記第一装置が決定する第一セグメントと、前記第二装置が決定する第二モデルパラメータにおける第一セグメントとの融合を行い、第一融合セグメントを得るステップ;
前記第一融合セグメントを前記データ処理システムにおける他の装置に送信するステップ;
第二融合セグメントを得るステップであって、前記第二融合セグメントは前記データ処理システムにおける前記少なくとも3つの装置が決定するモデルパラメータにおける第二セグメントを含む、ステップ;
前記第二融合セグメントに基づいて前記第二業務処理モデルの目標モデルパラメータにおける目標第二セグメントを決定するステップ;及び
前記目標第二セグメントに基づいて前記第二業務処理モデルの目標モデルパラメータを得るステップ
を含む、方法。
【請求項14】
データ処理システムであって、
前記データ処理システムは少なくとも3つの装置を含み、前記少なくとも3つの装置は第一装置及び少なくとも2つの第二装置を含み、前記データ処理システムにおける装置はリング構造を用いて接続され、
前記第一装置が、
目標業務の第一サンプルデータを取得し;
前記第一サンプルデータに基づいて第一業務処理モデルを訓練し、前記第一業務処理モデルの第一モデルパラメータを取得し;
前記第一装置に接続される第二装置に前記第一モデルパラメータを送信し、前記第二装置に、第一融合パラメータを決定させ、かつ前記第一融合パラメータを他の第二装置に送信させ、前記第一融合パラメータは、前記第二装置により、前記第二装置が受信する前記第一モデルパラメータと、前記第二装置が決定する第二モデルパラメータとに基づいて得られるものであり、前記第二装置は前記データ処理システムにおける前記第一装置以外の装置であり;
第二融合パラメータを取得し、前記
第二融合パラメータは前記データ処理システムにおける前記少なくとも3つの装置が決定するモデルパラメータを含み;及び
前記
第二融合パラメータに基づいて前記第一業務処理モデルの目標モデルパラメータを決定する
ように構成され、
前記少なくとも2つの第二装置のうちの任意の1つの第二装置が、
前記目標業務の第二サンプルデータを取得し;
前記第二サンプルデータに基づいて第二業務処理モデルを訓練し、前記第二業務処理モデルの第二モデルパラメータを取得し;
前記第一装置が決定する第一モデルパラメータを受信し;
前記第一モデルパラメータと、前記任意の1つの第二装置が決定する第二モデルパラメータとの融合を行い、第一融合パラメータを取得し;
前記第一融合パラメータを前記データ処理システムにおける他の装置に送信し;及び
前記第二業務処理モデルの目標モデルパラメータを決定する
ように構成される、データ処理システム。
【請求項15】
データ処理システムにおけるデータ処理装置であって、
前記データ処理システムは少なくとも3つの装置を含み、前記データ処理システムにおける装置はリング構造を用いて接続され、
前記データ処理装置は前記少なくとも3つの装置のうちの第一装置であり、
前記第一装置は取得モジュール、訓練モジュール、送信モジュール及び決定モジュールを含み、
前記取得モジュールは目標業務の第一サンプルデータを得るように構成され、
前記訓練モジュールは前記第一サンプルデータに基づいて第一業務処理モデルを訓練し、前記第一業務処理モデルの第一モデルパラメータを得るように構成され、
前記送信モジュールは前記第一装置に接続される第二装置に前記第一モデルパラメータを送信し、前記第二装置に、第一融合パラメータを決定させ、かつ前記第一融合パラメータを他の第二装置に送信させるように構成され、前記第一融合パラメータは、前記第二装置により、前記第二装置が受信する前記第一モデルパラメータと、前記第二装置が決定する第二モデルパラメータとに基づいて得られるものであり、前記第二装置は前記データ処理システムにおける前記第一装置以外の装置であ
り、
前記取得モジュールはさらに、第二融合パラメータを得るように構成され、前記第二融合パラメータは前記データ処理システムにおける前記少なくとも3つの装置が決定するモデルパラメータを含み、
前記決定モジュールは前記第二融合パラメータに基づいて前記第一業務処理モデルの目標モデルパラメータを決定するように構成される、データ処理装置。
【請求項16】
1つ又は複数の処理器と、1つ又は複数の記憶器とを含む電子機器であって、
前記1つ又は複数の記憶器には少なくとも1つのコンピュータプログラムが記憶されており、
前記1つ又は複数の処理器は前記少なくとも1つのコンピュータプログラムを実行することで、請求項1乃至11のうちの何れか1項に記載の方法、あるいは、請求項12又は13に記載の方法を実現するように構成される、電子機器。
【請求項17】
コンピュータに、請求項1乃至11のうちの何れか1項に記載の方法、あるいは、請求項12又は13に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2020年12月2日に中国専利局に出願した、出願番号が202011385627.5、発明の名称が「データ処理方法、装置、機器及び記憶媒体」である中国特許出願に基づく優先権を主張するものであり、その全内容を参照によりここに援用する。
【0002】
本出願は、人工知能の技術分野に関し、特に、データ処理方法、装置、電子機器及びコンピュータプログラムに関する。
【背景技術】
【0003】
コンピュータ技術の発展と人工知能(Artificial Intelligence、AI)技術の進歩に伴い、連合学習(フェデレーテッドラーニング(Federated Learning))がAIの分野で徐々に話題になっている。連合学習はマルチパーティ(複数の参加装置ともいう)コラボレーションを通じて機械学習モデルの訓練タスクを完了できる。
【0004】
今のところ、マルチパーティコラボレーションによる連合学習はカスタマーサービス-サーバーアーキテクチャを採用しており、連合学習システムには中央フェデレーションサーバーが含まれ、該連合学習システムにおける他のカスタマーサービス装置(参加装置ともいう)は何れも通信のために該中央フェデレーションサーバーに接続され、スター型トポロジーを形成する。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本出願は、データ処理方法、装置、電子機器及びコンピュータプログラムを提供することを課題とする。
【課題を解決するための手段】
【0006】
一側面によれば、データ処理システムにおける第一装置により実行されるデータ処理方法が提供され、前記データ処理システムは少なくとも3つの装置を含み、前記データ処理システムにおける装置はリング構造(ring architecture)を用いて接続され、前記方法は、
目標業務(target service)の第一サンプルデータを取得し;
前記第一サンプルデータに基づいて第一業務処理モデルを訓練し、前記第一業務処理モデルの第一モデルパラメータを取得し;
前記第一装置に接続される第二装置に前記第一モデルパラメータを送信し、前記第二装置が第一融合パラメータを決定し、かつ前記第一融合パラメータを他の第二装置に送信するようにさせ、前記第一融合パラメータは、前記第二装置が、その受信する前記第一モデルパラメータと、自身が決定する第二モデルパラメータとに基づいて得るものであり、前記第二装置は前記データ処理システムにおける前記第一装置以外の装置であり;
第二融合パラメータを取得し、前記第二融合パラメータは前記データ処理システムにおける前記少なくとも3つの装置が決定するモデルパラメータを含み;及び
前記第二融合パラメータに基づいて前記第一業務処理モデルの目標モデルパラメータを決定するステップを含む。
【0007】
一側面によれば、データ処理システムにおける第二装置により実行されるデータ処理方法が提供され、前記データ処理システムは少なくとも3つの装置を含み、前記データ処理システムにおける装置はリング構造を用いて接続され、前記方法は、
目標業務の第二サンプルデータを取得し;
前記第二サンプルデータに基づいて第二業務処理モデルを訓練し、前記第二業務処理モデルの第二モデルパラメータを取得し;
第一装置が決定する第一モデルパラメータを受信し、前記少なくとも3つの装置には前記第一装置が含まれ;
前記第一モデルパラメータと、第二装置自身が決定する第二モデルパラメータとの融合を行い、第一融合パラメータを取得し;
前記第一融合パラメータを前記データ処理システムにおける他の装置に送信し;及び
前記第二業務処理モデルの目標モデルパラメータを決定するステップを含む。
【0008】
一側面によれば、データ処理システムが提供され、前記データ処理システムは少なくとも3つの装置を含み、前記少なくとも3つの装置は第一装置及び少なくとも2つの第二装置を含み、前記第一装置は前記データ処理システムにおける装置のうちの何れか1つであり、前記データ処理システムにおける装置はリング構造を用いて接続され、
前記第一装置は、
目標業務の第一サンプルデータを取得し;
前記第一サンプルデータに基づいて第一業務処理モデルを訓練し、前記第一業務処理モデルの第一モデルパラメータを取得し;
前記第一装置に接続される第二装置に前記第一モデルパラメータを送信し、前記第二装置が第一融合パラメータを決定し、かつ前記第一融合パラメータを他の第二装置に送信するようにさせ、前記第一融合パラメータは、前記第二装置が、その受信する前記第一モデルパラメータと、自身が決定する第二モデルパラメータとに基づいて得るものであり、前記第二装置は前記データ処理システムにおける前記第一装置以外の装置であり;
第二融合モデルパラメータを取得し、前記第二融合モデルパラメータは前記データ処理システムにおける前記少なくとも3つの装置が決定するモデルパラメータを含み;及び
前記第二融合モデルパラメータに基づいて前記第一業務処理モデルの目標モデルパラメータを決定する
ために用いられ、
任意の1つの第二装置は、
前記目標業務の第二サンプルデータを取得し;
前記第二サンプルデータに基づいて第二業務処理モデルを訓練し、前記第二業務処理モデルの第二モデルパラメータを取得し;
前記第一装置が決定する第一モデルパラメータを受信し;
前記第一モデルパラメータと、第二装置自身が決定する第二モデルパラメータとの融合を行い、第一融合パラメータを取得し;
前記第一融合パラメータを前記データ処理システムにおける他の装置に送信し;及び
前記第二業務処理モデルの目標モデルパラメータを決定する
ために用いられる。
【0009】
一側面によれば、データ処理装置が提供され、前記装置は、
目標業務の第一サンプルデータを得るための取得モジュール;
前記第一サンプルデータに基づいて第一業務処理モデルを訓練し、前記第一業務処理モデルの第一モデルパラメータを得るための訓練モジュール;及び
前記第一装置に接続される第二装置に前記第一モデルパラメータを送信し、前記第二装置が第一融合パラメータを決定し、かつ前記第一融合パラメータを他の第二装置に送信するようにさせるための送信モジュールであって、前記第一融合パラメータは、前記第二装置が、その受信する前記第一モデルパラメータと、自身が決定する第二モデルパラメータとに基づいて得るものであり、前記第二装置は前記データ処理システムにおける前記第一装置以外の装置である、送信モジュールを含み、
前記取得モジュールはさらに、第二融合パラメータを得るために用いられ、前記第二融合パラメータは前記データ処理システムにおける前記少なくとも3つの装置が決定するモデルパラメータを含み、
前記装置はさらに、前記第二融合パラメータに基づいて前記第一業務処理モデルの目標モデルパラメータを決定するための決定モジュールを含む。
【0010】
一側面によれば、データ処理装置が提供され、前記装置は、
目標業務の第二サンプルデータを得るための取得モジュール;
前記第二サンプルデータに基づいて第二業務処理モデルを訓練し、前記第二業務処理モデルの第二モデルパラメータを得るための訓練モジュール;
第一装置が決定する第一モデルパラメータを受信するための受信モジュールであって、前記少なくとも3つの装置には前記第一装置が含まれる、受信モジュール;
前記第一モデルパラメータと、自身が決定する第二モデルパラメータとの融合を行い、第一融合パラメータを得るための融合モジュール;及び
前記第一融合パラメータを前記データ処理システムにおける他の装置に送信するための送信モジュールであって、前記データ処理システムにおける装置はリング構造を用いて接続される、送信モジュールを含み、
前記受信モジュールはさらに、前記第二業務処理モデルの目標モデルパラメータを決定するために用いられる。
【0011】
一側面によれば、電子機器が提供され、前記電子機器は1つ又は複数の処理器及び1つ又は複数の記憶器を含み、前記1つ又は複数の記憶器には少なくとも1つのコンピュータプログラムが記憶されており、前記少なくとも1つのコンピュータプログラムは前記1つ又は複数の処理器によってロードされ実行されることで、上述のデータ処理方法の各種の選択可能な実施形態を実現する。
【0012】
一側面によれば、コンピュータ可読記憶媒体が提供され、前記記憶媒体には少なくとも1つのコンピュータプログラムが記憶されており、前記少なくとも1つのコンピュータプログラムは処理器によってロードされ実行されることで、上述のデータ処理方法の各種の選択可能な実施形態を実現する。
【0013】
一側面によれば、コンピュータプログラムプロダクト又はコンピュータプログラムが提供され、前記コンピュータプログラムプロダクト又は前記コンピュータプログラムは1つ又は複数のコンピュータプログラムを含み、前記1つ又は複数のコンピュータプログラムはコンピュータ可読記憶媒体に記憶されている。電子機器の1つ又は複数の処理器はコンピュータ可読記憶媒体から前記1つ又は複数のコンピュータプログラムを読み取ることができ、前記1つ又は複数の処理器は前記1つ又は複数のコンピュータプログラムを実行することで、電子機器が上述の任意の1つの可能な実施形態に係るデータ処理方法を実行し得るようにさせる。
【図面の簡単な説明】
【0014】
本出願の実施例における技術案をより明確に説明するために、以下、実施例で説明するために使用する必要がある図面について簡単に紹介する。明らかのように、以下に説明される図面は本出願の幾つかの実施例に過ぎず、また、当業者は創造性のある労働をせずにこれらの図面に基づいて他の図面をさらに得ることができる。
【
図1】本出願の実施例により提供されるサンプル空間及び特徴空間を示す図である。
【
図2】本出願の実施例により提供されるデータ処理システムのブロック図である。
【
図3】本出願の実施例により提供されるデータ処理システムのブロック図である。
【
図4】本出願の実施例により提供されるデータ処理方法のフローチャートである。
【
図5】本出願の実施例により提供されるデータ処理方法のフローチャートである。
【
図6】本出願の実施例により提供されるデータ処理システムを示す図である。
【
図7】本出願の実施例により提供されるデータ処理方法のフローチャートである。
【
図8】本出願の実施例により提供されるデータ処理方法のフローチャートである。
【
図9】本出願の実施例により提供されるデータ処理方法のフローチャートである。
【
図10】本出願の実施例により提供される分散システム100がブロックチェーンシステムに適用される構造を示す図である。
【
図11】本出願の実施例により提供されるブロック構造(Block Structure)を示す図である。
【
図12】本出願の実施例により提供されるデータ処理装置の構成を示す図である。
【
図13】本出願の実施例により提供されるデータ処理装置の構成を示す図である。
【
図14】本出願の実施例により提供される電子機器の構成を示す図である。
【
図15】本出願の実施例により提供される端末のブロック図である。
【
図16】本出願の実施例により提供されるサーバーの構成を示す図である。
【発明を実施するための形態】
【0015】
本出願の目的、技術案及び利点をより明らかにするために、以下、図面と併せて本出願の実施形態について詳細に説明する。
【0016】
本出願では、“第一”、“第二”、“第三”などの用語は作用及び機能がほぼ同じである同じ項又は類似項を区別するために用いられ、理解すべきは、“第一”、“第二”、“第n”の間に論理的又は時間的な依存関係がなく、数量や実行順序についても限定しないということである。さらに理解すべきは、以下の説明において第一、第二などの用語を用いて各種の要素を説明するが、これらの要素はこれらの用語に限定されないということである。これらの用語は1つの要素ともう1つの要素とを区別するためだけのものである。例えば、第一装置、第二装置、第三装置などは装置を区別するためにのみ用いられる。また、例えば、第一サンプルデータ、第二サンプルデータ、第三サンプルデータなどの用語はサンプルデータを区別するためのものに過ぎない。様々な例の範囲から逸脱しない限り、第一装置は第二装置と称されても良く、また、同様に、第二装置は第一装置と称されても良い。第一装置及び第二装置はすべで装置であり、また、幾つかの場合、異なる個別装置であっても良い。
【0017】
また、本出願では、用語“少なくとも1つ”とは1つ又は複数を指し、用語“複数”とは2つ又は2つ以上を指し、例えば、複数の装置とは2つ又は2つ以上の装置を指し、“少なくとも2つ”とは2つ又は2つ以上を指し、“少なくとも3つ”とは3つ又は3つ以上を指す。
【0018】
なお、各種の例の説明に使用される用語は特定の例を説明するためだけのものであり、限定するためのものではない。また、各種の例の説明及び特許請求の範囲に使用されるように、単数形の“1つ(‘a’/‘an’)”及び“該”というような用語は、特段の説明がない限り、複数形の意味をも含む。
【0019】
さらに、ここで使用される用語“及び/又は”とは、関連する列挙項目のうちの1つ又は複数の項目の任意及び全部の可能な組み合わせを指す。用語“及び/又は”は、関連付けられる対象を説明する関連関係を表し、具体的には、3種類の関係が存在することを表し、例えば、A及び/又はBは、Aが単独で存在し、A及びBが同時に存在し、及びBが単独で存在するという3種類の場合を表すことができる。また、本明細書における文字“/”は通常、その前後の関連対象が“又は”の関係を持つことを意味する。
【0020】
さらに、本出願の各実施例では、各過程(プロセス)の順番号は実行の順序を意味せず、各過程の実行順序はその機能及び内的ロジックによって決定されるべきであり、本出願の実施例における実施プロセスについて限定するものではない。
【0021】
さらに、Aに基づいてBを決定するというような表現は、Aのみに基づいてBを決定するのではなく、A及び/又は他の情報に基づいてBを決定することもできることを意味する。
【0022】
さらに、用語“含む”(“includes”、“including”、“comprises”及び/又は“comprising”)は本明細書で使用されるときに、記載される特徴、整数、ステップ、操作、要素、及び/又は部品の存在を指定するが、1つ又は複数の他の特徴、整数、ステップ、操作、要素、部品、及び/又はそれらの組み合わせの存在又は追加を排除しない。
【0023】
さらに、用語“・・・場合”は、“・・・とき”(“when”又は“upon”)又は“・・・決定することに応じて”又は“・・・検出することに応じて”の意味であると解釈されても良い。同様に、文脈によれば、“・・・決定する場合”又は“[条件又はイベント]を検出する場合”というような表現は、“・・・決定するとき”又は“・・・決定することに応じて”又は“[条件又はイベント]を検出するとき”又は“[条件又はイベント]を検出することに応じて”の意味を指すと解釈されても良い。
【0024】
本出願の実施例により提供されるデータ処理方法は人工知能の技術を適用する。以下、人工知能について簡単に紹介する。
【0025】
人工知能(Artificial Intelligence、AI)は、デジタルコンピュータ又はデジタルコンピュータにより制御されるマシンを用いて、人の知能をシミュレーション、強化及び拡張し、環境を感知し、知識を獲得し、そして、知識を用いて最良の結果を得る理論、方法、技術及びアプリケーションシステムである。
【0026】
連合学習は次第に人工知能の基本技術として台頭しており、連合学習の設計目標はビッグデータ交換時の情報セキュリティを確保し、端末データ及び個人データのプライバシーを保護し、かつ法規制を遵守する前提で、複数の参加装置(マルチパーティ)又は複数のコンピューティングノードの間で高効率の機械学習を行うことにある。オプションとして、連合学習が使用し得る機械学習アルゴリズムはニューラルネットワークに限られず、ランダムフォレストなどの重要なアルゴリズムをも含み、連合学習は次世代の人工知能協調アルゴリズム及び協調ネットワークの基礎になると期待されている。
【0027】
ユーザのプライバシーの保護、データ使用のコンプライアンス、商業的利益の競争などを考慮すると、データの連携は多くの困難に直面する。そのため、理想のビッグデータは“データアイランド”になり、データ価値の創造や人工知能の発展を妨げるようになり得る。データ連携のジレンマを解決するために、連合学習(Federated Learning)は生まれた。以下、連合学習の概念について簡単に説明する。
【0028】
連合学習はフェデレーテッドラーニングとも呼ばれ、ユーザのプライバシー及びデータのセキュリティを保護する前提でデータの“利用可能だが表示されない”を実現でき、即ち、マルチパーティコラボレーションを通じて機械学習モデルの訓練タスクを完了でき、また、機械学習モデルによる推論サービスをも提供できる。
【0029】
連合学習は複数の参加装置からのマルチパーティデータソースを用いて機械学習モデルを訓練でき、また、補完的なマルチパーティデータソースを使用することで機械学習モデルのパフォーマンス、例えば、広告レコメンデーションモデルの正確率を向上させることができる。
【0030】
従来の機械学習方法とは異なり、連合学習は分散データを1つのデータセンターに集中させることなく、複数の分散データソースを利用して機械学習モデルと深層学習モデルをジョイント訓練できる。連合学習はデータ保護に関する法律や規制の要件を満足できるだけでなく、部門間、組織間、さらには業界間のデータ連携をも実現でき、そのため、“データアイランド”を打破するために新しい解決策を提供できるだけでなく、理論的研究から大規模な商用アプリケーションへと移行し始めている。
【0031】
データの異なる参加装置の間の分布状況に応じて、連合学習分は水平連合学習(Horizontal Federated Learning、HFL)、垂直連合学習(Vertical Federated Learning、VFL)及び連合転移学習(Federated Transfer Learning、FTL)に分けられる。
【0032】
そのうち、水平連合学習はサンプルに基づく連合学習とも呼ばれ、データ集合が同じ特徴空間を共有するが、サンプル空間が異なる場合に適用され、垂直連合学習は特徴に基づく連合学習とも呼ばれ、データ集合が同じサンプル空間を共有するが、特徴空間が異なる場合に適用され、また、連合転移学習は、データ集合がサンプル空間だけでなく特徴空間でも異なる場合に適用される。
【0033】
本出願の実施例により提供されるデータ処理方法は1種の水平連合学習方法である。以下、水平連合学習について詳しく説明する。
【0034】
2つの参加装置が水平連合学習を行うことを例とし、2つの参加装置をそれぞれ参加装置A及び参加装置Bと呼び、両者は1つ又は複数の機械学習モデルをジョイント訓練する。そのうち、参加装置A及び参加装置Bは同じ特徴空間及び異なるサンプル空間を共有し、即ち、2つの参加装置は異なるサンプルデータに対して特徴抽出を行うときに、同様の特徴表現方式(feature representation manner)を採用して特徴を表現できる。例えば、参加装置AがサンプルデータAを取得し、参加装置BがサンプルデータBを取得し、両者はそれぞれサンプルデータに対して特徴抽出を行うときに、何れも、形式が(X1,X2,X3)である特徴ベクトルを得ることができ、また、特徴ベクトルの次元及び各次元の意味も同じである。このようにして、膨大なサンプルデータについて、それらを複数の参加装置に割り当てて訓練してもらい、最後に複数の参加装置の訓練結果を統合することで、膨大なサンプルデータに基づいて訓練したモデルパラメータを得ることができる。
【0035】
図1を参照するに、水平連合学習が適用され得るシナリオは、連合学習の参加装置が有するデータ集合が同じ特徴空間及び異なるサンプル空間を有するものである。例えば、シナリオには3つの参加装置が含まれ、参加装置1がサンプルU1-U4を有し、参加装置2がサンプルU5-U10を有し、参加装置3がサンプルU11-U15を有する。各サンプルは何れも同じ特徴空間[F
1,F
2,…,F
L]を有し、そのうち、Lは3よりも大きい整数である。もちろん、これは1つの例に過ぎず、本出願の実施例では該特徴空間における特徴の数について限定しない。
【0036】
水平連合学習の中核思想は、各参加装置がローカルで自分のサンプルデータを用いて1つのモデルを訓練するようにさせ、その後、セキュリティモデルの融合(security model fusion)(例えば、セキュリティモデルのパラメータの平均(security model parameter averaging))によって1つのより良いグローバルモデルを得ることにある。安全に設計される水平連合学習のモデル訓練過程により、水平連合学習の任意の参加装置が他の参加装置の訓練データを得ることができず、かつ連合訓練されるモデルのパフォーマンスがすべてのデータを集中させることに基づいて訓練されたモデルのパフォーマンスに近似するように保証できる。
【0037】
関連技術では、連合学習システムがデータ処理を行うときに、通常、各参加装置はサンプルデータに基づいて業務処理モデルを訓練し、モデルパラメータを得た後に、モデルパラメータをすべて中央フェデレーションサーバーに送信し、そして、中央フェデレーションサーバーは各参加装置が決定したモデルパラメータを融合する。
【0038】
このようなカスタマーサービス-サーバーアーキテクチャ(即ち、スター型トポロジー)では、単点通信の輻輳(single-point communication congestion)が生じやすく、例えば、参加装置が同時に中央フェデレーションサーバーにそれらのモデルパラメータを送信するときに、中央フェデレーションサーバーはオーバーロード及び通信の輻輳が生じ、参加装置送信のモデルパラメータを受信できず、システム崩壊を引き起こす恐れがある。特に、業務処理モデルの規模が非常に大きいときに、このような現象はより深刻になる。また、スター型トポロジーでは、1つの参加装置と中央フェデレーションサーバーとの間に1つのみの通信リンクがあるため、一時的な通信リンク中断によって1つの参加装置がオフラインになり、連合学習システムから一時的に離れることで、連合学習プロセスが中断するようになる可能性が高い。よって、上述のようなデータ処理方法の安定性及びロバストネスはともに非常に悪い。
【0039】
図2及び
図3は本出願の実施例により提供されるデータ処理システムの実施環境を示す図である。本出願の実施例により提供されるデータ処理方法はデータ処理システム200に適用され、このようなデータ処理システム200は連合学習システム200と称されても良い。以下、データ処理システム200のシステムアーキテクチャについて詳しく説明する。
【0040】
該データ処理システムは少なくとも3つの装置を含み、該少なくとも3つの装置は第一装置及び少なくとも2つの第二装置を含み、該第一装置は該データ処理システムにおける任意の1つである。該データ処理システムにおける装置はリング構造を用いて接続され、そのうち、リング構造では、各装置が直列接続され、最後に1つの閉ループ(closed loop)を形成し、ネットワーク全体が送信する情報はこのループの中で伝送される。該データ処理システムにおける装置は他の2つの装置に接続され、1つのリング又は複数のリングを構成できる。
【0041】
該データ処理システムにおける装置は何れも連合学習過程に参加し、よって、各装置は参加装置と称され得る。なお、各参加装置間は有線又は無線通信方式で直接又は間接的に接続することができるが、本出願の実施例ではこれについて限定しない。
【0042】
各装置について、該装置は1つのコンピューティングデバイス、複数のコンピューティングデバイス、クラウドコンピューティングプラットフォーム又は仮想化センターのうちの少なくとも1つを含んでも良い。オプションとして、或る装置が連合学習で主要なコンピューティング作業を担当し、他の装置が連合学習で二次的なコンピューティング作業を担当し、あるいは、各装置間は分散コンピューティングアーキテクチャを採用して協調コンピューティングを行う。
【0043】
図2を参照するに、該データ処理システム200は少なくとも3つの装置201を含み、該少なくとも3つの装置201は
図2で参加装置1、参加装置2、参加装置3、…、参加装置Kを例とし、そのうち、Kは3よりも大きい整数である。複数の参加装置はリング構造(Ring Architecture)を採用し、各参加装置と他の参加装置との間にはすべて2つの通信リンクがあり、各参加装置は自分の隣接参加装置のみに接続され、1つのリング型トポロジーを形成する。該リング型トポロジーでは、水平連合学習の各参加装置はその直接的な隣接参加装置のみと通信を行う必要があり、かつ各2つの参加装置の間にはすべて2つの通信リンクがある。このようにして、そのうちの1つの通信リンクが一時的に中断したとしても、もう1つの通信リンクによりデータを伝送できるので、比較的良いリンク故障耐性機能(link failure tolerance function)を有する。
【0044】
図3を参照するに、該データ処理システム200は少なくとも3つの装置を含み、該データ処理システムは少なくとも2つの装置組を含む。即ち、該少なくとも3つの装置は複数の装置組に分けることができ、各装置組は少なくとも3つの装置を含み、各装置組はリング構造を採用でき、これにより、該データ処理システムは複数層のリング構造を形成できる。各装置組は管理装置及び追従装置(follower)を含み、各装置組における装置はリング構造を用いて接続され、即ち、各装置組における装置は1つのリングを構成でき、各装置は組内の少なくとも2つの装置に接続され、該少なくとも2つの装置組の管理装置はリング構造を用いて接続される。このような組分けは、データ処理システムにおける装置が比較的多いときにデプロイ(deploy(配置ともいう))されても良く、これにより、複数組の装置のデータ処理に対する並列性及び秩序性を向上させ、データ処理の効率を向上させることができる。
【0045】
例えば、参加装置の数が比較的に大きいときに、参加装置に対して組分けを行い、上述のような複数層のリング型トポロジー構造を構成できる。
図3では参加装置1、参加装置2、…、参加装置10のみを例として説明を行い、参加装置1、参加装置2及び参加装置3は1番目の装置組であり、参加装置4、参加装置5及び参加装置6は2番目の装置組であり、参加装置7、参加装置8、参加装置9及び参加装置10は3番目の装置組である。そのうち、参加装置3、参加装置6、参加装置10は3つの装置組(各組の参加装置)の管理装置(leader)であり、参加装置1及び参加装置2は参加装置3の追従装置(follower)である。
図3に示す例では、10個の水平連合学習参加装置があり、第一層には3つの組からなる3つのリングがあり、第二層には3つの組のleaderからなる1つのリングがある。第一層では、各リング内の各参加装置の計算が並列実行されても良く、各リングの計算も並列実行されても良い。第二層では、各リング内の各参加装置の計算が並列実行されても良い。各リング内の計算プロセスはすべて後述のステップで説明されるようなプロセスであっても良く、特に、後述のステップで説明されるような並列段分け(セグメント分け)計算モデルパラメータ加重平均(weighted averaging for parameters of a parallel segment calculation model)のプロセスであっても良い。
【0046】
なお、上述の
図2及び
図3における装置の数は例示に過ぎず、該データ処理システムに含まれる装置の数を限定しない。
【0047】
1つの例示的なシナリオにおいて、連合学習システムにはさらに第三の協力サーバーが含まれ、該協力サーバーは連合学習プラットホーム又は連合データ分析プラットホームを提供するために用いられ、該協力サーバーはパブリッククラウド又はプライベートクラウドの配置方式で外部へ連合学習、連合データ分析サービス、連合商用知能サービスなどのクラウドサービスを提供できる。例えば、該協力サーバーには連合データ分析タスクの機能モジュールが配置され、該機能モジュールによって、本出願の実施例により提供されるデータ処理方法を実現することで、連合データ分析タスクの安全性及び可用性を向上させることができる。
【0048】
オプションとして、上述の協力サーバーは独立した物理サーバー、又は複数の物理サーバーからなるサーバー群又は分散システム、又はクラウドサービス、クラウドデータベース、クラウドコンピューティング、クラウド関数、クラウドストレージ、ネットワークサービス、クラウド通信、ミドルウェアサービス、ドメイン名サービス、セキュリティサービス、コンテンツ配信ネットワーク(Content Delivery Network、CDN)、ビッグデータ、人工知能プラットホームなどの基本クラウドコンピューティングサービスを提供するクラウドサーバーであっても良い。
【0049】
オプションとして、上述のデータ処理システムにおける装置は端末であっても良く、該端末の類型はスマートフォン、タブレットコンピュータ、ラップトップコンピュータ又はデスクトップコンピュータのうちの少なくとも1つを含むが、これらに限られない。以下の実施例では、端末がスマートフォンであることを例として説明を行う。
【0050】
当業者が理解できるように、上述の装置の数は多かれ少なかれあり得る。例えば、上述の装置の数は1つのみ、数十又は数百、又はそれ以上であっても良い。本出願の実施例では装置の数や類型について限定しない。
【0051】
図2に示すように、各装置はメッセージ管理と通信モジュール、参加装置管理モジュール、プロセススケジューリングモジュール、モデル融合モジュール、暗号化と復号化モジュール、モデル訓練モジュールを含み得る。複数の装置間はメッセージ管理と通信モジュールによりデータ通信を行い、これにより、各自が決定するモデルパラメータを伝送し得る。各装置では、モデル訓練モジュールはローカルデータ及びユーザ定義モデルに基づいてモデル訓練を行うことができ、モデル訓練後、モデルcheckpoint(チェックポイント)を実行でき、そのうち、checkpointは1つのデータベースイベントであり、checkpointイベントはcheckpointプロセス(LGWR/CKPTプロセス)により開始され、checkpointイベントが発生すると、DBWR(Data Base Writer、データ書き込みプロセス)はダーティブロックをディスクに書き込むことができると同時に、データファイル及び制御ファイルのファイルヘッダーもcheckpoint情報を記憶するために更新できる。そのうち、ダーティブロックとはダーティデータのブロックを指し、ダーティデータ(Dirty Read)とは、ソースシステムにおけるデータが所定の範囲に存在せず、又は実際の業務にとって意味がなく、又はデータフォーマットが不正であり、及びソースシステムに不規範のコーディング及び曖昧な業務ロジックがあることを指す。
【0052】
該装置は訓練により自身のモデルパラメータを得た後に、暗号化と復号化モジュールにより該モデルパラメータに対して暗号化を行い、その後、モデル融合モジュールにより、自分が決定したモデルパラメータと他の装置が決定したモデルパラメータとを融合できる。なお、該他の装置が決定したモデルパラメータはメッセージ管理と通信モジュールにより伝送される。モデルパラメータの融合ではさらに、参加装置管理モジュールにより参加装置を管理でき、プロセススケジューリングモジュールによりモデルパラメータ融合プロセスをスケジューリングできる。例えば、どの装置がどのモデルパラメータの加重結合(weighted combination)プロセスを開始するか、どの装置がモデルパラメータの加重結合を担当するかなどを決定できる。
【0053】
図4は本出願の実施例により提供されるデータ処理方法のフローチャートである。該方法はデータ処理システムにおける第一装置により実行される。該データ処理システムは少なくとも3つの装置を含み、該データ処理システムにおける装置はリング構造を採用して接続される。該第一装置は端末又はサーバーであっても良いが、ここでは該第一装置が端末であることを例とする。該方法は以下のステップを含む。
【0054】
401:第一装置が目標業務の第一サンプルデータを取得する。
【0055】
本出願の実施例により提供されるデータ処理方法はサンプルデータに基づいて業務処理モデルを訓練することで、業務処理モデルの目標モデルパラメータを得るために用いられ、第一サンプルデータは第一装置に記憶されるサンプルデータである。該データ処理方法はデータ処理システムにより実現され、該データ処理システムは複数の装置を含み、第一装置は該データ処理システムに属する。該データ処理方法は該複数の装置によって協調的に完成されるので、該データ処理方法は1種の連合学習方法である。幾つかの実施例において、該複数の装置は複数の参加装置と称されても良い。
【0056】
402:第一装置が該第一サンプルデータに基づいて第一業務処理モデルを訓練し、該第一業務処理モデルの第一モデルパラメータを得る。
【0057】
本実施例では、第一装置は第一サンプルデータを取得し、ローカルで第一業務処理モデルに対してモデル訓練を行って該第一モデルパラメータを得る。幾つかの実施例において、該第一モデルパラメータは第一装置がローカルで訓練することで得られ、第一装置のローカルモデルパラメータ、又は、第一装置が決定するローカルモデルパラメータと呼ばれても良い。
【0058】
同様に、該データ処理システムの中の他の装置(即ち、第二装置)も第二サンプルデータを取得し、ローカルでモデルを訓練することで、第二モデルパラメータを決定できる。このようにして、該データ処理システムにおける各装置は自分のサンプルデータに基づいて訓練することでモデルパラメータを得ることができる。そして、データ処理システム中の複数の装置が決定したモデルパラメータを融合することにより、該業務処理モデルの目標モデルパラメータを取得できる。
【0059】
上述の
図2及び
図3に示すデータ処理システムにおいて既に示されているように、データ処理システムにおける装置はリング構造により接続され、1つ又は複数のリングを構成でき、該データ処理システム中の1つの装置が少なくとも2つの装置に接続され、各リングにおける装置がリング内の2つの装置に接続され、各装置は隣接参加装置と通信を行えば良い。このようにして、1つの装置と他の装置との間に少なくとも2つの通信リンクがあり、そのうちの1つの通信リンクが一時的に中断したとしても、該装置は他の通信リンクにより他の装置と通信を行うことができる。よって、該データ処理システムは或る通信リンクの一時的な中断によりデータ処理プロセスを中断することがなく、優れた安定性及びロバストネスを有する。
【0060】
403:第一装置が該第一装置に接続される第二装置に該第一モデルパラメータを送信し、該第二装置に、第一融合パラメータを決定させ、そして、該第一融合パラメータを他の第二装置に送信させ、該第一融合パラメータは、該第二装置が、その受信する該第一モデルパラメータと、自身が決定する第二モデルパラメータとに基づいて得るものであり、該第二装置は該データ処理システムにおける該第一装置以外の装置である。
【0061】
該第一装置及び第二装置はモデルパラメータを決定した後に、融合処理は、モデルパラメータをすべて同一の装置に送信して融合を行ってもらうのではなく、第一装置がその接続される第二装置への第一モデルパラメータの送信を開始し、第二装置が第一モデルパラメータを受信した後に、第一モデルパラメータと、自身が決定した第二モデルパラメータとの融合を行い、それから、引き続き次の第二装置に送信するのである。伝送過程では、各装置は何れも受信したモデルパラメータと、自身が決定したモデルパラメータとの融合を行った後に次の装置への伝送を行う。このようにして、装置間の伝送のデータ量が比較的小さいため、オーバーロードや通信の輻輳の問題を効果的に避け、データ処理の速度及び効率を効果的に上げ、データ処理の安定性を保証である。
【0062】
404:第一装置が第二融合パラメータを取得し、該第二融合パラメータは該データ処理システムにおける該少なくとも3つの装置が決定したモデルパラメータを含む。
【0063】
該データ処理システムにおいて第一装置に接続される1つの装置が、自身が決定したモデルパラメータと、受信した融合モデルパラメータとの融合を行った後に、第二融合パラメータを取得し、該第二融合パラメータはデータ処理システム中のすべての装置が決定したモデルパラメータを含む。よって、該第二融合パラメータを第一装置に返し、第一装置は第一業務処理モデルの目標モデルパラメータをさらに決定できる。幾つかの実施例において、該第二融合パラメータは該データ処理システムの中の該少なくとも3つの装置が決定したモデルパラメータを含むとは、該第二融合パラメータには該データ処理システムにおける該少なくとも3つの装置が決定したモデルパラメータが融合されていることを指す。
【0064】
405:第一装置が該第二融合パラメータに基づいて該第一業務処理モデルの目標モデルパラメータを決定する。
【0065】
本出願の実施例では、一方では、データ処理システムにおける装置はリング構造を使用して接続され、各装置は隣接参加装置と通信を行えば良く、このようにして、1つの装置と他の装置との間に2つの通信リンクがあり、そのうちの1つの通信リンクが一時的に中断したとしても、該装置は他の通信リンクにより他の装置と通信を行うことができるため、該データ処理システムは或る通信リンクの一時的な中断によりデータ処理プロセスを中断することがなく、良好な安定性及びロバストネスを有し、他方では。該データ処理システムがデータ処理を行うときに、各装置が決定したモデルパラメータは上述の通信リンクに従って順次伝送され、かつ伝送過程では各装置は受信したモデルパラメータと、自身が決定したモデルパラメータとの融合を行った後に次の装置への伝送を行い、このようにして、装置間の伝送のデータ量が比較的小さく、かつ1つの装置にモデルパラメータを集中送信する必要がないため、オーバーロード及び通信の輻輳の問題を効果的に避け、データ処理の速度及び効率を効果的に上げ、データ処理の安定性を保証できる。
【0066】
図5は本出願の実施例により提供されるデータ処理方法のフローチャートである。該方法はデータ処理システムにおける第二装置により実行される。該データ処理システムは少なくとも3つの装置を含み、該データ処理システムにおける装置はリング構造を採用して接続される。該第二装置は端末又はサーバーであっても良いが、ここでは該第二装置が端末であることを例とする。該方法は以下のステップを含む。
【0067】
501:第二装置が目標業務の第二サンプルデータを取得する。
【0068】
502:第二装置が該第二サンプルデータに基づいて第二業務処理モデルを訓練し、該第二業務処理モデルの第二モデルパラメータを得る。
【0069】
該ステップ501及びステップ502は上述のステップ401及びステップ402と同様であり、また、第二装置も自身の第二サンプルデータを得て第二業務処理モデルに対してモデル訓練を行うことで第二モデルパラメータを得ることができる。
【0070】
503:第二装置が第一装置の決定した第一モデルパラメータを受信する。
【0071】
そのうち、該少なくとも3つの装置には該第一装置が含まれる。
【0072】
該ステップ503は上述のステップ403に対応し、第二装置は上述のステップ403で第一装置が送信した第一モデルパラメータを受信する。
【0073】
504:第二装置が該第一モデルパラメータと、自身の決定した第二モデルパラメータとの融合を行って第一融合パラメータを取得する。
【0074】
第二装置は第一装置が決定した第一モデルパラメータを受信し、ローカルで訓練することで第二モデルパラメータをも得ているため、両者を融合した後に他の装置に送信できる。つまり、2つのモデルパラメータを直接送信するのではないので、第二装置と他の装置との間の伝送のデータ量を減少させ、オーバーロード及び通信の輻輳の問題を効果的に避け、データ処理の速度及び効率を効果的に向上させることができる。
【0075】
505:第二装置が該第一融合パラメータを該データ処理システム中の他の装置に送信する。
【0076】
同様に、他の装置は第二装置送信の第一融合パラメータを受信した後に、該第一融合パラメータと、自身が決定したモデルパラメータとに基づいて、新しい融合モデルパラメータを取得し、引き続き伝送できる。その後、データ処理システムの中のすべての装置のモデルパラメータを含む第二融合パラメータを得た後に、第一装置に返して第一業務処理モデルの目標モデルパラメータを決定してもらうことができる。
【0077】
506:第二装置が該第二業務処理モデルの目標モデルパラメータを決定する。
【0078】
該目標モデルパラメータは他の装置(例えば、第一装置)により決定された後に、データ処理システムにおける任意の装置に送信できる。該第二装置は該第二業務処理モデルの目標モデルパラメータを受信できる。
【0079】
本出願の実施例では、一方では、データ処理システムにおける装置はリング構造を用いて接続され、各装置は隣接参加装置と通信を行えば良く、このようにして、1つの装置と他の装置との間に2つの通信リンクがあり、そのうちの1つの通信リンクが一時的に中断したとしても、該装置は他の通信リンクにより他の装置と通信を行うことができるため、該データ処理システムは或る通信リンクの一時的な中断によりデータ処理プロセスを中断することがなく、非常に良い安定性及びロバストネスを有し、他方では、該データ処理システムがデータ処理を行うときに、各装置が決定したモデルパラメータは上述の通信リンクに従って順次伝送され、かつ伝送過程では、各装置がその受信したモデルパラメータと、自身が決定したモデルパラメータとの融合を行った後に次の装置への伝送を行い、このようにして、装置間の伝送のデータ量が比較的少なく、かつ1つの装置にモデルパラメータを集中送信する必要がないので、オーバーロード及び通信の輻輳の問題を効果的に回避でき、データ処理の速度及び効率を効果的に向上させ、データ処理の安定性を保証できる。
【0080】
図6は本出願の実施例により提供されるデータ処理システムを示す図である。
図6を参照するに、該データ処理システムは少なくとも3つの装置を含み、該少なくとも3つの装置は第一装置601及び少なくとも2つの第二装置602を含み、該第一装置は該データ処理システムにおける任意の1つの装置であり、第二装置は該データ処理システムにおける該第一装置以外の装置である。該データ処理システムにおける装置はリング構造を採用して接続され、1つの装置が他の2つの装置に接続される。該第一装置は方法の各実施例において第一装置が実行するデータ処理方法を実行するために用いられる。該第二装置は方法の各実施例において第二装置が実行するデータ処理方法を実行するために用いられる。具体的には上述の
図4、
図5及び
図7に示す方法の実施例を参照できる。
【0081】
図7は本出願の実施例により提供されるデータ処理方法のフローチャートである。
図7を参照するに、該方法はデータ処理システムに適用される。以下、該データ処理システムに含まれる複数の装置がデータ処理を協調的に完了する形態により、該データ処理方法について説明を行う。後述の実施例では、データ処理システムが4つの装置を含むことを例にとって説明を行う。第一装置に接続される装置は第二装置と称され、該第二装置以外の他の第二装置は第三装置及び第四装置と称される。なお、ここでは該データ処理システムが4つのみの装置を含むことを例にして説明を行うが、該データ処理システムはより多くの装置又はより少ない装置を含んでも良く、この場合、実行する方法のステップは何れも後述の実施例における装置が実行する方法のステップと同様である。
図7に示すように、該方法は以下のステップを含む。
【0082】
701:第一装置が目標業務の第一サンプルデータを取得する。
【0083】
本出願の実施例では、該データ処理システム中の各装置は該目標業務のサンプルデータを得て対応する業務処理モデルを訓練できる。水平連合学習では、各装置は自分のサンプルデータを得ることができ、サンプルデータを処理して得たサンプル特徴は同一の特徴空間にある。
【0084】
該目標業務は任意の1つの業務であっても良く、例えば、画像分類、音声識別などである。それ相応に、該業務処理モデルは任意の1つのモデルであっても良く、例えば、画像分類モデル、音声識別モデルなどである。幾つかの実施例において、該業務処理モデルは深層学習モデルであるが、本出願の実施例では深層学習モデルのモデル構造について限定しない。
【0085】
異なる目標業務について、サンプルデータが異なる可能性もある。例えば、画像分類業務では、サンプルデータがサンプル画像である。音声識別業務では、サンプルデータがサンプル音声である。
【0086】
幾つかの実施例において、該第一サンプルデータは該第一装置に記憶され、第一装置はローカルで記憶されるものから該第一サンプルデータを抽出できる。他の幾つかの実施例において、該第一サンプルデータはデータベースに記憶され、第一装置はデータベースから該第一サンプルデータを抽出できる。そのうち、該第一サンプルデータとは、第一装置に対応する複数のサンプルデータを指し、又は、第一装置に対応するサンプルデータ集合と呼ばれても良い。
【0087】
702:第一装置が該第一サンプルデータに基づいて第一業務処理モデルを訓練し、該第一業務処理モデルの第一モデルパラメータを得る。
【0088】
そのうち、第一業務処理モデルは第一装置に対応する業務処理モデルであり、又は、第一装置に配置される業務処理モデルといっても良い。
【0089】
第一装置は第一サンプルデータを得た後に、ローカルで第一業務処理モデルを訓練し、第一業務処理モデルの第一モデルパラメータを取得できる。ここではデータ処理システム中の各装置がモデル訓練により得たモデルパラメータをモデルパラメータと称し、これにより、該モデルパラメータが1つの装置モデルの訓練により得られた結果であることを表す。最後に、データ処理システムにおける装置が決定したモデルパラメータを統合して最終のモデルパラメータを得る必要があり、本出願の実施例では該最終のモデルパラメータを目標モデルパラメータと呼ぶ。
【0090】
幾つかの実施例において、該モデル訓練の過程は、第一装置が第一業務処理モデルにより第一サンプルデータに対して特徴抽出を行って第一サンプルデータの特徴を取得し、そして、特徴に対して該目標業務に対応する処理をさらに行って第一サンプルデータの予測結果を取得し、それから、第一サンプルデータにおける目標結果及び該予測結果に基づいて損失値を決定し、その後、損失値に基づいて第一業務処理モデルのモデルパラメータを調整し、このような処理を、訓練終了条件が満足されると、停止するという過程であり、そのうち、目標結果は第一サンプルデータのラベルである。
【0091】
該訓練終了条件は損失値が収斂していること、反復回数が目標回数に達していることなどであっても良いが、本出願の実施例ではこれについて限定しない。
【0092】
そのうち、第一装置はローカルで第一業務処理モデルに対して1つ又は複数のepochのモデル訓練を行うことができる。そのうち、1つのepochがサンプルデータにおける全部のサンプルを使用してモデルを1回訓練することに等しい。簡単にいうと、epochの値はサンプルデータ全体が使用される回数である。
【0093】
該第一装置は任意の訓練方法及び訓練フレームワーク、例えば、PyTorch、TensorFlow、Keras、Horovod、PyTorch-on-Angelなどを利用できる。そのうち、PyTorchはOpenSourceのPython機械学習ライブラリである。TensorFlowはデータフロープログラミング(dataflow programming)ベースの符号数学システムであり、様々な機械学習(machine learning)アルゴリズムのプログラミング実装に幅広く応用される。Tensorとはテンソルを指し、Flowとはフローを指す。KerasはPythonによるOpenSourceの人工ニューラルネットワークライブラリである。HorovodはUber(ウーバー)のOpenSourceの深層学習ツールである。PyTorch-on-AngelはAngelプラットホームで運営されるPyTorchプロジェクトである。Angelはコンピューティングプラットホームであり、Java及びScala言語を用いて開発され、機械学習向けの高パフォーマンス分散コンピューティングフレームワークである。なお、該第一装置、第二装置、第三装置及び第四装置は異なる訓練方法及び訓練フレームワークを選ぶことができ、即ち、該データ処理システムにおける各装置は自分の訓練方法及び訓練フレームワークを選択できる。なお、具体的に如何に選択するかは、関連技術者が実際のニーズや装置のソフトウェアとハードウェアの条件に応じて決定して良いが、本出願の実施例ではこれについて限定しない。
【0094】
703:第二装置が該目標業務の第二サンプルデータを得る。
【0095】
704:第二装置が該第二サンプルデータに基づいて第二業務処理モデルを訓練し、該第二業務処理モデルの第二モデルパラメータを得る。
【0096】
該ステップ703及びステップ704は上述のステップ701及びステップ702と同様であり、第二装置も自身の第二サンプルデータに基づいてモデル訓練を行い、第二モデルパラメータを得ることができる。該第二業務処理モデルは第二装置に対応する業務処理モデルであり、該第二業務処理モデルは第二装置に配置される業務処理モデルであり、該第二業務処理モデルは第一業務処理モデルと同じ構造の業務処理モデルであっても良く、第一業務処理モデルとは異なる構造の業務処理モデルであっても良いが、本出願の実施例ではこれについて限定しない。
【0097】
705:第三装置が該目標業務の第三サンプルデータを得る。
【0098】
706:第三装置が該第三サンプルデータに基づいて第三業務処理モデルを訓練し、該第三業務処理モデルの第三モデルパラメータを得る。
【0099】
該ステップ705及びステップ706は上述のステップ701及びステップ702と同様であり、第三装置も自身の第三サンプルデータに基づいてモデル訓練を行い、第三モデルパラメータを得ることができる。該第三業務処理モデルは第三装置に対応する業務処理モデルであり、該第三業務処理モデルは第三装置に配置される業務処理モデルであり、該第三業務処理モデルは第一業務処理モデルと同じ構造の業務処理モデルであっても良く、第一業務処理モデルとは異なる構造の業務処理モデルであっても良いが、本出願の実施例ではこれについて限定しない。
【0100】
707:第四装置が目標業務の第四サンプルデータを得る。
【0101】
708:第四装置が該第四サンプルデータに基づいて第四業務処理モデルを訓練し、該第四業務処理モデルの第四モデルパラメータを得る。
【0102】
該ステップ707及びステップ708は上述のステップ701及びステップ702と同様であり、第四装置も自身の第四サンプルデータに基づいてモデル訓練を行い、第四モデルパラメータを得ることができる。該第四業務処理モデルは第四装置に対応する業務処理モデルであり、該第四業務処理モデルは第四装置に配置される業務処理モデルであり、該第四業務処理モデルは第一業務処理モデルと同じ構造の業務処理モデルであって良く、第一業務処理モデルとは異なる構造の業務処理モデルであっても良いが、本出願の実施例ではこれについて限定しない。
【0103】
なお、上述のステップの順番号はステップ701、702、ステップ703、704、ステップ705、706、及びステップ707、708の実行順序について限定しない。データ処理システム中の各装置がサンプルデータに基づいてモデル訓練を行う過程は互い独立し、並列実行することができる。1つの装置がすべてのサンプルデータを収集して訓練を行うことに比べて、モデル訓練のステップを各装置に割り当てて各装置に並列処理してもらうことは、モデル訓練の速度及び効率を大幅に向上させ、装置のモデル訓練時の負担を減少させ、装置が高負荷になってシステムが崩壊するのを避けることができる。
【0104】
709:第一装置が該第一装置に接続される第二装置に該第一モデルパラメータを送信する。
【0105】
データ処理システムにおける各装置が訓練によりモデルパラメータを得た後に、複数の装置が決定したモデルパラメータを融合する必要がある。該第一装置はデータ処理システム中の任意の1つの装置であり、本実施例では、該第一装置がモデルパラメータ融合を開始するものであって、融合モデルパラメータを処理して目標モデルパラメータを得る装置であることを例にして説明を行う。幾つかの実施例において、他の装置を、モデルパラメータ融合を開始する装置として選択しても良く、また、他の装置を、融合モデルパラメータを処理して目標モデルパラメータを得る装置として選択しても良いが、本出願の実施例ではこれについて限定しない。
【0106】
本出願の実施例により提供される4つの装置について、該4つの装置の接続方式は
図8に示すとおりであっても良い。
図8を参照するに、該データ処理システムは第一装置801、第二装置802、第三装置803及び第四装置804を含む。該4つの装置の間はリング構造が採用され、第一装置801はそれぞれ第二装置802及び第四装置804に接続され、第二装置802はそれぞれ第三装置803及び第一装置801に接続され、第三装置803はそれぞれ第二装置802及び第四装置804に接続され、第四装置804はそれぞれ第三装置803及び第一装置801に接続される。該4つの装置は4つの参加装置と称されても良く、例えば、該4つの装置はそれぞれ参加装置1、参加装置2、参加装置3及び参加装置4と呼ばれても良い。
【0107】
第一装置は第一モデルパラメータを決定した後に、通信接続により、第一モデルパラメータを他の装置に送信できる。本実施例では第一装置に接続されるものが第二装置及び第四装置であり、ここでは第二装置のみに第一モデルパラメータを送信することを例にして説明を行うが、幾つかの実施例において、第一装置は第四装置に該第一モデルパラメータを送信しても良く、その後、第二装置は第三装置が決定した第二融合パラメータを第一装置に返す。
【0108】
幾つかの実施例において、データ処理システム中の各装置の間でデータの伝送が行われるときに、データは暗号化後に送信される。例えば、各装置はシークレットシェアリング(秘密分散)に基づく方法を採用してローカルでの訓練により得たモデルパラメータを保護でき、例えば、該シークレットシェアリングに基づく方法はランダムマスクを追加する方式で実現され得る。該ステップ709では第一装置はランダムマスクを取得し、該ランダムマスクと該第一モデルパラメータを融合して暗号化モデルパラメータを取得し、その後、該第一装置に接続される第二装置に該暗号化モデルパラメータを送信できる。該ランダムマスクと第一モデルパラメータとを融合した後に送信することにより、他の装置が送信された暗号化モデルパラメータを傍受したとしても、ランダムマスクが何かを知らないので、該第一装置が決定した第一モデルパラメータを推測できず、これにより、装置間のデータ伝送のセキュリティを保証できる。
【0109】
また、準同型暗号化(Homomorphic Encryption)の方式に基づくのではなく、ランダムマスクを追加することにより、暗号文のバイト数が平文のバイト数よりも何倍大きい(例えば、64倍大きい)ことは発生せず、即ち、暗号文の膨張の問題は生じることがないので、当然、大量の計算やデータ伝送を招くことはない。上述のランダムマスクの追加の方式により、通信オーバーヘッドを大幅に減少させ、単点通信の輻輳の問題及びリンク故障の問題をさらに避けることがでる。
【0110】
幾つかの実施例において、各装置が決定したモデルパラメータは浮動小数点数である可能性があり、シークレットシェアリングを採用するときに、各装置は決定したモデルパラメータを浮動小数点数から整数に変換し、そして、整数になった後のモデルパラメータに対して余数をとり、該余数を他の装置に送信でき、このようにして、データ伝送の安全性を強化できると同時に、伝送のデータ量を効果的に減少させ、データ処理の効率を大幅に向上させることができる。
【0111】
幾つかの実施例において、上述のランダムマスクの取得過程は、第一装置が候補ランダムマスクを取得し、その後、該候補ランダムマスクを丸める(round(整数をとる))ことで該ランダムマスクを得ることである。
【0112】
それ相応に、第一装置はランダムマスクを得た後に、さらに第一モデルパラメータに対して上述のように丸め、その後、ランダムマスクと、整数になった後の第一モデルパラメータとの融合を行うことができる。幾つかの実施例において、第一装置は該第一モデルパラメータを丸め、該ランダムマスクと、整数になった後の第一モデルパラメータとの和を求め、そして、和に対して余数をとることで該暗号化モデルパラメータを得ることができる。
【0113】
例えば、該ランダムマスクの取得過程は、
【0114】
【0115】
【数2】
は候補ランダムマスクであり、INT(x)はxを丸めることを表す。Pは1つの非常に大きい整数であり、候補ランダムマスクを整数に変換するために用いられ、整数Pの選択は浮動小数点数の精度の維持の程度を決定でき、Pが大きいほど、浮動小数点数の精度の維持の程度が高くなるが、本出願の実施例ではその値について限定しない。r
1はランダムマスクである。
【0116】
第一モデルパラメータについて、
【0117】
【数3】
により、浮動小数点数の第一モデルパラメータ
【0118】
【0119】
幾つかの実施例において、ランダムマスクと第一モデルパラメータとの和を求めるときに、該第一モデルパラメータに重みを与えることができ、このようにして、各装置は1つの重みに対応し、その後、各装置の重みに基づいて、データ処理システムの中の複数の装置が決定したモデルパラメータに対して加重結合を行うことで、暗号化モデルパラメータを得ることができる。
【0120】
例えば、第一装置は、
【0121】
【数5】
により、ランダムマスクと、整数になった後の第一モデルパラメータとの融合を行うことができる。そのうち、d
1は第一装置の重みである。Qは1つの非常に大きい素数であり、modはモジュロ関数である。幾つかの実施例において、
【0122】
【数6】
であり、ここで、d
1は整数である。d
1が浮動小数点数の場合、同様の方法を採用してd
1をも整数に変換できる。
【0123】
第一装置は融合により暗号化モデルパラメータを得た後に、該暗号化モデルパラメータを第二装置に送信し、第二装置はこれに基づいて、自身が決定した第二モデルパラメータとの融合を行うことができる。そのうち、該暗号化モデルパラメータは上述のように余数をとる処理により得られる余数である。
【0124】
710:第二装置が第一装置の決定した第一モデルパラメータを受信する。
【0125】
711:第二装置が該第一モデルパラメータと、自身の決定した第二モデルパラメータとの融合を行い、第一融合パラメータを取得する。
【0126】
第二装置は第一装置送信の第一モデルパラメータを受信した後に、それと、自身が決定した第二モデルパラメータとの融合を行うことができる。
【0127】
上述の第一装置が暗号化モデルパラメータを送信する実施例では、該第二装置は該暗号化モデルパラメータを受信した後に、第一融合パラメータを決定し、そして、該第一融合パラメータを他の第二装置に送信し、該第一融合パラメータは該第二装置が、その受信した該第一モデルパラメータと、自身が決定した第二モデルパラメータとに基づいて得たものである。このようにして、その後、装置の間の伝送のデータがすべて該ランダムマスクを含むので、データ処理システムにおけるすべての装置の間のデータ伝送の安全性を効果的に保証できる。
【0128】
該融合過程は上述のステップ709における融合過程と同様である。幾つかの実施例において、該第二装置は、その受信した暗号化モデルパラメータと、自身が決定しかつ丸めた第二モデルパラメータとの和を求め、和に対して余数をとって第一融合パラメータを取得し、そして、該第一融合パラメータを他の第二装置に送信する。
【0129】
例えば、第二装置は、その受信した
【0130】
【0131】
【数8】
との和を求め、そして、余数をとる処理を行うことで、
【0132】
【0133】
【数10】
は第一融合パラメータである。そのうち、d
2は第二装置の重みであり、w
2は第二装置が決定した第二モデルパラメータである。
【0134】
712:第二装置が該第一融合パラメータを第三装置に送信する。
【0135】
713:第三装置が第二装置送信の該第一融合パラメータを受信する。
【0136】
714:第三装置が第一融合パラメータ、及び自身が決定した第三モデルパラメータに基づいて融合を行い、第三融合パラメータを得る。
【0137】
該ステップ713及びステップ714は上述のステップ710及びステップ711と同様であるため、ここではその詳しい説明を省略する。例えば、第三装置は同様の融合ステップを行って第三融合パラメータ
【0138】
【0139】
715:第三装置が第三融合パラメータを第四装置に送信する。
【0140】
716:第四装置が第三装置送信の第三融合パラメータを受信する。
【0141】
717:第四装置が第三融合パラメータ、及び自身が決定した第四モデルパラメータに基づいて融合を行い、第二融合パラメータを得る。
【0142】
ステップ716及びステップ717は上述のステップ710及びステップ711と同様であるため、ここではその詳しい説明を省略する。例えば、第四装置は同様の融合ステップを行って第二融合パラメータ
【0143】
【数12】
を得ることができる。今のところ、第四装置は既にデータ処理システムにおけるすべての装置のモデルパラメータを融合しているので、融合により得た第二融合パラメータを第一装置に返すことができる。
【0144】
718:第四装置が第二融合パラメータを第一装置に送信する。
【0145】
719:第一装置が該第二融合パラメータを受信する。
【0146】
該ステップ719は第一装置が第二融合パラメータを得る過程である。上述のモデルパラメータをランダムマスクと融合して送信を行う実施例では、第四装置が融合により得るのは第二融合パラメータではなく、候補融合パラメータであっても良く、その中にはランダムマスクが含まれ、この場合、第一装置はさらに、該ランダムマスクを除去した後に第二融合パラメータを得る必要がある。そのうち、該第二融合パラメータは該データ処理システムにおける該少なくとも3つの装置が決定したモデルパラメータを含み、即ち、上述の第一装置、第二装置、第三装置及び第四装置が決定したモデルパラメータを含み、幾つかの実施例において、該第二融合パラメータは上述の第一装置、第二装置、第三装置及び第四装置が決定したモデルパラメータを融合している。
【0147】
幾つかの実施例において、第一装置は候補融合パラメータを受信し、該候補融合パラメータは該ランダムマスク、及び該データ処理システムにおける該少なくとも3つの装置が決定したモデルパラメータを含み、その後、第一装置は該候補融合パラメータから該ランダムマスクを除去して該第二融合パラメータを得る。例えば、第一装置は、
【0148】
【数13】
の計算を行うことができる。そのうち、r
1はランダムマスクである。
【0149】
720:第一装置が該第二融合パラメータに基づいて該第一業務処理モデルの目標モデルパラメータを決定する。
【0150】
第一装置は第二融合パラメータを得た後に、それを処理することで第一業務処理モデルの目標モデルパラメータを得ることができる。該第二融合パラメータは1種の融合結果であり、目標モデルパラメータを得ようとする場合、それを、個々の装置が決定したモデルパラメータに変換する必要がある。
【0151】
幾つかの実施例において、第一装置は該第二融合パラメータと総重みとの商を取得し、該商を該第一業務処理モデルの目標モデルパラメータとしても良く、該総重みは該データ処理システムの中の該少なくとも3つの装置の重みの和である。
【0152】
例えば、第一装置は、
【0153】
【0154】
【数15】
はすべての装置の重みの和である。整数をとる処理過程では、各モデルパラメータにPを乗算したので、平均を求めるときに、それを除去する必要があり、このようにして、4つの装置のモデルパラメータの加重結合結果を得ることができる。
【0155】
各装置の重みについて、任意の1つの装置の重みはサンプルデータの数であっても良く、他のパラメータ、例えば、データ品質指標、貢献度指標、奨励指標などであっても良いが、本出願の実施例ではこれについて限定しない。
【0156】
もちろん、上述のように、モデルパラメータに対して加重平均を行う方式で目標モデルパラメータが得られているが、他の実施例において、直接、モデルパラメータに対して平均を求めても良く、これは加重平均の1つの特殊なケースである。即ち、上述のd1=d2=d3=d4=1である。第一装置は(w1+w2+w3+w4)/4をモデルパラメータとして計算する。
【0157】
幾つかの実施例において、上述のモデルパラメータ及び目標モデルパラメータはN個のセグメントを含んでも良く、そのうち、該Nは1よりも大きい整数である。このようにして、各装置が1つの目標モデルパラメータの1つのセグメントについての計算を担当することにより、データ処理システムにおける複数の装置は目標モデルパラメータのセグメントに対して並列計算を行うことができ、計算ステップを複数の装置にさらに分割して並列処理を行うことでデータ処理の速度及び効率をより一層向上させることができる。セグメント分けについて、水平連合学習の参加装置(データ処理システムの装置)はモデルパラメータをN個のセグメントに分け、N個の参加装置を選択(elect)してこのN個のモデルセグメントの加重平均をそれぞれ計算することで、並列計算を行うことができる。つまり、セグメントの数は装置の数と同じであっても良く、装置の数とは異なっても良い。
【0158】
そのうち、1≦N≦Kであり、Kは水平連合学習参加装置の数である。セグメントの数が装置の数よりも小さくても良く、この場合、データ処理システムの中の一部の装置がセグメントについて計算を行い、幾つかの装置がセグメントについて計算を行う必要がない。
【0159】
幾つかの実施例において、モデルパラメータのセグメントの数をN>Kとして選択しても良く、即ち、セグメントの数が装置の数よりも大きくても良く、このようにして、各装置は複数のセグメントついての計算を担当し、複数回に分けて計算を行い、毎回、L個のモデルパラメータのセグメントの加重平均を計算でき、L≦Kである。
【0160】
セグメント分け並列処理方式の場合、上述のステップ709では、第一装置は該第一装置に接続される第二装置に該第一モデルパラメータにおける第一セグメントを送信し、そして、ステップ710では、第二装置は第一モデルパラメータにおける第一セグメントを受信できる。その後、ステップ711乃至ステップ712では、該第二装置は第一モデルパラメータにおける第一セグメントと、自身が決定した第二モデルパラメータにおける第一セグメントとに基づいて、第一融合セグメントを取得し、そして、第一融合セグメントを第三装置に送信できる。第三装置及び第四装置が実行するステップは同様である。第四装置は第二融合セグメントを決定した後に、該第二融合セグメントを第一装置に送信し、第一装置は第二融合パラメータを取得でき、該第二融合セグメントは該データ処理システム中の該少なくとも3つの装置が決定したモデルパラメータにおける第一セグメントを含む。最後のステップ720では、第一装置は該第二融合セグメントに基づいて該業務処理モデルの目標モデルパラメータにおける目標第一セグメントを決定し、そして、該目標第一セグメントに基づいて該業務処理モデルの目標モデルパラメータを得ることができる。
【0161】
もちろん、目標モデルパラメータを得るときに、該目標第一セグメント以外に、目標第二セグメントをさらに決定する必要がある。該目標第二セグメントがデータ処理システムにおける第一装置以外の装置により決定され、これにより、複数の装置がモデルのセグメントを並列決定することを実現できる。
【0162】
よって、第一装置はさらに、第二装置送信のモデルパラメータにおける第二セグメント又は第一融合第二セグメントを受信し、受信した該第二セグメント又は第一融合第二セグメントと、該第一装置が決定した該第一モデルパラメータにおける第二セグメントとの融合を行うことで、第二融合第二セグメントを取得し、そして、該第一装置が得た該第二融合第二セグメントを他の第二装置に送信できる。
【0163】
幾つかの実施例において、複数セグメントの融合ステップは第一装置により実行されても良く、データ処理システムにおける他の装置により実行されても良い。よって、該目標第一セグメントに基づいて該業務処理モデルの目標モデルパラメータを得るステップは次のような2つの方式を含み得る。
【0164】
方式1:第一装置が該目標モデルパラメータにおける目標第二セグメントを受信し、該目標第二セグメントは該目標モデルパラメータにおける該目標第一セグメント以外のセグメントであり、第一装置は該目標モデルパラメータにおける目標第一セグメントと目標第二セグメントとの連結(splice)を行うことで、該第一業務処理モデルの目標モデルパラメータを取得する。該方式1では、第一装置はすべての目標セグメントの融合を行って目標モデルパラメータを得ることを担当する。
【0165】
方式2:第一装置が該目標第一セグメントを送信し、第一装置は該第一業務処理モデルの目標モデルパラメータを受信し、該目標モデルパラメータは第二装置が該目標第一セグメントと目標第二セグメントとの連結を行うことで得たものであり、該目標第二セグメントは該目標モデルパラメータにおける該目標第一セグメント以外のセグメントである。該方式2では、第一装置以外の他の装置はすべての目標セグメントの融合を行って目標モデルパラメータを取得し、そして、目標モデルパラメータを該第一装置に同期させることを担当する。
【0166】
該セグメント分け並列処理方式では、上述のデータ処理方法は次の幾つかのステップを含んでも良い。例えば、
図9及び
図8に示すように、K=4個の参加装置がある場合、各参加装置はそのローカルモデルパラメータからなるベクトルを4つのセグメントに分け、該セグメント分け過程はベクトルを4つのセグメントに平均的に分けても良く、4つのセグメントに平均的に分けなくても良いが、本出願の実施例ではこれについて限定しない。例えば、モデルパラメータベクトルw
k=[w
k,1,w
k,2,w
k,3,w
k,4](k=1,2,3,4(kは参加装置の索引を表す))の場合、4つの参加装置がこの4つのセグメントの加重平均(即ち、連合モデルパラメータ平均)のそれぞれの計算を担当する。参加装置1はモデルパラメータのセグメント1の加重平均の計算プロセスを担当し、
図9に示すように、参加装置2はモデルパラメータのセグメント2の加重平均の計算プロセスを担当し、参加装置3はモデルパラメータのセグメント3の加重平均の計算プロセスを担当する。参加装置4はモデルパラメータのセグメント4の加重平均の計算プロセスを担当する。なお、ここでは参加装置1の加重平均の計算プロセスを例にして説明を行うが、他の参加装置も同様である。該プロセスは以下の5つのステップに分けられる。
【0167】
ステップ(1):参加装置1の暗号化と復号化モジュールがランダムマスク1を生成し、
【0168】
【数16】
と記し、他の参加装置の場合、その自身のランダムマスクを生成し、例えば、参加装置2はランダムマスク2、即ち、r
2,2を生成する。参加装置1のモデル融合モジュールがその有するパラメータセグメント1(即ち、参加装置1の第一モデルパラメータの第一セグメント)と、ランダムマスクとの和を計算し、即ち、(r
1,1+d
1w
1,1)modQの計算を行い、そして、その結果を参加装置2に送信する。(r
1,1+d
1w
1,1)modQは参加装置1が得た暗号化セグメント1である。そのうち、w
1,1とは参加装置1のパラメータセグメント1を指し、d
1は参加装置1が有する訓練サンプルの数又は他のパラメータ(例えば、データ品質指標、貢献度指標、奨励指標など)として選択されても良く、Qは1つの非常に大きい素数であり、例えば、2d
1w
1,1<Qである。
【0169】
ステップ(2):参加装置2はその受信した、参加装置1からの暗号化セグメント1と、自分のパラメータセグメント1との和を求め、即ち、(r1,1+d1w1,1+d2w2,1)modQの計算を行い、そして、その結果を参加装置3に送信する。(r1,1+d1w1,1+d2w2,1)modQは参加装置2が得た暗号化セグメント1である。そのうち、d2は参加装置2が有する訓練サンプルの数又は他のパラメータとして選択されても良い。
【0170】
ステップ(3):参加装置3はその受信した、参加装置2からの暗号化セグメント1と、自分のパラメータセグメント1との和を求め、即ち、(r1,1+d1w1,1+d2w2,1+d3w3,1)modQの計算を行い、そして、その結果を参加装置4に送信する。(r1,1+d1w1,1+d2w2,1+d3w3,1)modQは参加装置3が得た暗号化セグメント1である。そのうち、d3は参加装置3が有する訓練サンプルの数又は他のパラメータとして選択されても良い。
【0171】
ステップ(4):参加装置4はその受信した、参加装置3からの暗号化セグメント1と、自分のパラメータセグメント1の和を求め、即ち、(r1,1+d1w1,1+d2w2,1+d3w3,1+d1w4,1)modQの計算を行い、そして、その結果を参加装置1に送信する。(r1,1+d1w1,1+d2w2,1+d3w3,1+d1w4,1)modQは参加装置4が得た暗号化セグメント1である。そのうち、d4は参加装置4が有する訓練サンプルの数又は他のパラメータとして選択されても良い。
【0172】
ステップ(5):参加装置1はその受信した、参加装置4からの暗号化セグメント1から、自分が生成したランダムマスク1を減算し、即ち、(r1,1+d1w1,1+d2w2,1+d3w3,1+d4w4,1-r1,1)modQの計算を行うことで、パラメータセグメントの加重和、即ち、d1w1,1+d2w2,1+d3w3,1+d4w4,1を得ることができる。そして、参加装置1はモデルパラメータセグメント1の加重平均(d1w1,1+d2w2,1+d3w3,1+d4w4,1)/(Pd)を計算できる。これは平均セグメント1と呼ばれても良く、その後、パラメータセグメント1と称されても良いが、このときに得られたパラメータセグメント1は4つの装置のパラメータセグメント1の加重平均結果である。そのうち、d=(d1+d2+d3+d4)はすべての参加装置の総訓練サンプル数又は他のパラメータの和であっても良い。
【0173】
上述のステップでは、加算及び減算の演算はすべて整域の演算であり、モジュラス演算を含む必要があり、即ち、モデルパラメータ及びランダムマスクは丸められており、最後のステップ(5)の除算の演算は整数を整数で割る演算であり、その結果が浮動小数点数である。なお、以上の説明から分かるように、各参加装置がそれぞれ1つのモデルパラメータのセグメントの加重平均の計算を担当するので、参加装置間はモデルパラメータのセグメントの加重平均ステップを並列実行できる。
【0174】
幾つかの実施例において、
図3に示す組分けシナリオでは、該第一装置は目標装置組における管理装置であり、該第二装置は該目標装置組における追従装置である。例えば、
図3に示す2層リング構造のデータ処理システムでは10個の参加装置が含まれ、そのうち、1番目の装置組では参加装置3は管理装置であり、1番目の装置組における各参加装置はそれぞれパラメータセグメント1乃至パラメータセグメント3の加重結合を担当し、参加装置3は1番目の組の参加装置における各参加装置が得たパラメータセグメントを連結することで、該1番目の組の参加装置が得るモデルパラメータセグメント1乃至パラメータセグメント3の取得を担当し、即ち、
【0175】
【数17】
である。同様に、参加装置6は2番目の装置組における各参加装置の加重結合後のパラメータセグメント4乃至パラメータセグメント6の結合を担当し、即ち、
【0176】
【数18】
であり、参加装置10は3番目の装置組における各参加装置の加重結合後のパラメータセグメント7乃至セグメント10の結合を担当し、即ち、
【0177】
【数19】
である。そして、参加装置3、6、10はその得たパラメータセグメントをさらに加重結合することで、
【0178】
【0179】
【0180】
本出願の実施例では、一方では、データ処理システムにおける装置はリング構造を採用して接続され、各装置は隣接参加装置と通信を行えば良く、このようにして、1つの装置と他の装置との間に2つの通信リンクがあり、そのうちの1つの通信リンクが一時的に中断したとしても、該装置は他の通信リンクにより他の装置と通信を行うことができるため、該データ処理システムは或る通信リンクの一時的な中断によりデータ処理プロセスを中断することが無く、優れた安定性及びロバストネスを有し、他方では、該データ処理システムがデータ処理を行うときに、各装置が決定したモデルパラメータは上述の通信リンクに従って順次伝送され、かつ伝送過程では、各装置がその受信したモデルパラメータと、自身が決定したモデルパラメータとの融合を行った後に伝送を行い、このようにして、装置間の伝送のデータ量が比較的小さく、かつ1つの装置にモデルパラメータを集中送信する必要がないので、オーバーロード及び通信の輻輳の問題を効果的に避け、データ処理の速度及び効率を効果的に上げ、データ処理の安定性を保証できる。
【0181】
幾つかの実施例において、上述の
図4、
図5、
図7に示す実施例におけるデータ処理システムはブロックチェーンシステムであっても良く、データ処理システムにおける装置はブロックチェーンシステムにおけるノード装置であっても良い。
【0182】
以下、ブロックチェーンシステムについて簡単に紹介する。
【0183】
ブロックチェーンは分散データストレージ、ピアツーピア伝送、コンセンサスメカニズム、暗号化アルゴリズムなどのコンピュータ技術の新しいアプリケーションモデルである。ブロックチェーン(Blockchain)は本質上、1つのディセントラリゼーションのデータベースであり、暗号化方法により、関連付けられるように生成される一連のデータブロックであり、各データブロックには1バッチのネットワークトランザクションの情報が含まれ、それはその情報の有効性の検証(偽造防止)及び次のブロックの生成のために用いられる。ブロックチェーンはブロックチェーン底層(基盤)プラットホーム、プラットホームプロダクトサービス層及びアプリケーションサービス層を含み得る。
【0184】
本出願の実施例に係るシステムは、クライアント及び複数ノード(ネットワークにアクセスできる任意の形式の計算装置、例えば、サーバー、ユーザ端末など)がネットワーク通信の形で接続して形成する分散システムである。該分散システムはブロックチェーンシステムであっても良い。
図10を参照するに、
図10は本出願の実施例により提供される分散システム100がブロックチェーンシステムに適用される構造を示す図であり、該構造は複数ノード(ネットワークにアクセスできる任意の形式の計算装置、例えば、サーバー、ユーザ端末など)及びクライアントにより形成され、ノードの間はピアツーピア(P2P、Peer To Peer)ネットワークが形成され、P2Pプロトコルは伝送制御プロトコル(Transmission Control Protocol、TCP)上で実装されるアプリケーション層プロトコルである。分散システムでは、任意の装置、例えば、サーバーや端末などが加入してノードを成すことができ、ノードはハードウェア層、中間層、操作システム層及びアプリケーション層を含む。
【0185】
図10に示すブロックチェーンシステムにおける各ノードの機能を参照するに、かかる機能は次の幾つかの機能を含む。
【0186】
1)ルーティング:ノードが有する基本機能であり、ノード間の通信をサポートするために用いられる。
【0187】
ノードはルーティング機能以外に以下の機能をさらに有しても良い。
【0188】
2)アプリケーション:ブロックチェーンに配置され、実際の業務のニーズに応じて特定の業務を実現し、機能の実現に関するデータを記録して記録データを形成し、記録データにはタスクデータのソースを示すデジタル署名がキャリー(carry)され、記録データをブロックチェーンシステムにおける他のノードに送信し、他のノードが記録データのソース及び完全性について検証を行うときに記録データを一時的ブロックに追加するために用いられる。
【0189】
3)ブロックチェーン:生成の前後の時間順(時系列)に従って互いに接続される一連のブロック(Block)が含まれ、新しいブロックが一旦ブロックチェーンに追加されると、削除されることがなく、ブロックにはブロックチェーンシステムにおけるノードが提出した記録データが記録されている。
【0190】
図11を参照するに、
図11は本出願の実施例により提供されるブロック構造(Block Structure)を示す図であり、各ブロックは自ブロックにおけるトランザクション記録のハッシュ値(自ブロックのハッシュ値)、及び1つ前のブロックのハッシュ値を含み、各ブロックはハッシュ値によって接続されることでブロックチェーンを形成する。また、ブロックにはさらに、ブロック生成時のタイムスタンプなどの情報がさらに含まれても良い。ブロックチェーン(Blockchain)は本質上、1つのディセントラリゼーションのデータベースであり、暗号化方法により、関連付けられるように生成される一連のデータブロックであり、各データブロックには関連している情報が含まれており、それはその情報の有効性の検証(偽造防止)及び次のブロックの生成のために用いられる。
【0191】
本出願の実施例では、上述の第一装置、第二装置、第三装置及び第四装置は何れもブロックチェーンシステムの中のノード装置と見なされても良く、複数のノード装置はリング構造を採用して接続され、各ノード装置は目標業務のサンプルデータを取得し、サンプルデータに基づいて業務処理モデルを訓練することで業務処理モデルのモデルパラメータを得ることができる。モデルパラメータを得た後に、ノード装置は次に接続されたノード装置に自身が決定したモデルパラメータを送信し、次のノード装置はその受信したモデルパラメータと、自身が決定したモデルパラメータとの融合を行い、その後、次に接続されたノード装置に送信し、このような処理は、最後の1つのノード装置が最初に送信したノード装置に関連情報を返すまで行うことができる。該ノード装置は融合後のモデルパラメータに基づいて、最終の目標モデルパラメータを決定できる。該ノード装置は最終の目標モデルパラメータを決定した後に、該目標モデルパラメータに基づいてブロックを生成し、該ブロックをブロックチェーンシステムにおける他のノード装置にブロードキャストでき、ブロックチェーンシステムは該ブロックに対してコンセンサスをとり、コンセンサスを取ったときに、各ノード装置は該ブロックをブロックチェーンに追加でき、このようにして、各ノード装置は目標モデルパラメータの同期をとることができる。
【0192】
セグメント分け並列スキームでは、各ノード装置は自分が担当する目標セグメントを得た後に、1つのノード装置によって、それらを連結することで目標モデルパラメータを取得し、そして、ブロックを生成してチェーンにアップロードすることができる。また、各ノード装置は自分が担当する目標セグメントに基づいてブロックを生成してチェーンにアップロードすることもできる。
【0193】
幾つかの実施例において、ノード装置はさらに、自身が決定したモデルパラメータを得た後に、自身が決定したモデルパラメータに基づいてブロックを生成し、そして、コンセンサスを取ることで、ブロックをチェーンにアップロードすることができる。
【0194】
このようにして、ブロックを生成してチェーンにアップロードすることで最後に決定された目標モデルパラメータ又は中間データをチェーンにアップロードすることにより、ブロックチェーンシステムにおけるチェーン上のデータが改ざんされ得ないという特徴を利用することでデータの安全性、正確性及び完全性を確保でき、また、ブロックチェーンのコンセンサスメカニズムにより、単一ノード装置の計算の誤りを避け、データの正確性をも保証できる。
【0195】
なお、上述のすべての選択可能な技術案は任意の組み合わせで本出願の選択可能な実施例を形成できるが、ここでは網羅的な記載を省略する。
【0196】
図12は本出願の実施例により提供されるデータ処理装置の構成を示す図である。
図12に示すように、該装置は以下の機能モジュールを含む。
【0197】
取得モジュール1001:目標業務の第一サンプルデータを取得するために用いられる。
【0198】
訓練モジュール1002:該第一サンプルデータに基づいて第一業務処理モデルを訓練し、該第一業務処理モデルの第一モデルパラメータを得るために用いられる。
【0199】
送信モジュール1003:該第一装置に接続される第二装置に該第一モデルパラメータを送信し、該第二装置により第一融合パラメータを決定し、該第一融合パラメータを他の第二装置に送信し、該第一融合パラメータは該第二装置がその受信した該第一モデルパラメータと、自身が決定した第二モデルパラメータとに基づいて得たものであり、該第二装置は該データ処理システムにおける該第一装置以外の装置であり、該データ処理システムにおける装置はリング構造を用いて接続される。
【0200】
該取得モジュール1001はさらに、第二融合パラメータを取得するために用いられ、該第二融合パラメータは該データ処理システムにおける該少なくとも3つの装置が決定したモデルパラメータを含む。
【0201】
決定モジュール1004:該第二融合パラメータに基づいて該第一業務処理モデルの目標モデルパラメータを決定するために用いられる。
【0202】
幾つかの実施例において、該第一モデルパラメータはN個のセグメントを含む。そのうち、該Nは1よりも大きい整数である。
【0203】
該送信モジュール1003は該第一装置に接続される該第二装置に該第一モデルパラメータにおける第一セグメントを送信するために用いられ、該第二装置は第一融合セグメントを決定し、該第一融合セグメントを他の第二装置に送信し、該第一融合セグメントは該第二装置がその受信した該第一セグメントと、自身が決定した第二モデルパラメータにおける第一セグメントとに基づいて得たものである。
【0204】
該取得モジュール1001は第二融合セグメントに基づいて該第二融合パラメータを得るために用いられ、該第二融合セグメントは該データ処理システムにおける該少なくとも3つの装置が決定したモデルパラメータにおける第一セグメントを含む。
【0205】
該決定モジュール1004は、
該第二融合セグメントに基づいて該第一業務処理モデルの目標モデルパラメータにおける目標第一セグメントを決定し、
該目標第一セグメントに基づいて該第一業務処理モデルの目標モデルパラメータを得る
ということを行うために用いられる。
【0206】
幾つかの実施例において、該取得モジュール1001は、
該目標モデルパラメータにおける目標第二セグメントを受信し、該目標第二セグメントは該目標モデルパラメータにおける該目標第一セグメント以外のセグメントであり、該目標第一セグメントと該目標第二セグメントとの連結を行って該第一業務処理モデルの目標モデルパラメータを取得し;及び
該目標第一セグメントを送信し、該第一業務処理モデルの目標モデルパラメータを決定し、該目標モデルパラメータは該第二装置が該目標第一セグメントと該目標第二セグメントとを連結することで得たものである
ということのうちの何れか1つを行うために用いられる。
【0207】
幾つかの実施例において、該取得モジュール1001はさらに、該第二装置送信のモデルパラメータにおける第二段セグメント又は第一融合第二段セグメントを受信するために用いられる。
【0208】
該装置はさらに以下のものを含む。
【0209】
融合モジュール:該第二セグメント又は該第一融合第二セグメントと、該第一装置が決定した該モデルパラメータにおける第二段セグメントとの融合を行って第二融合第二セグメントを得るために用いられる。
【0210】
該送信モジュール1003はさらに、該第二融合第二セグメントを他の第二装置に送信するために用いられる。
【0211】
幾つかの実施例において、該データ処理システムは少なくとも2つの装置組を含み、各装置組は管理装置及び追従装置を含み、各装置組における装置はリング構造により接続される。該少なくとも2つの装置組の管理装置はリング構造を用いて接続される。該第一装置は目標装置組における管理装置である。該第二装置は該目標装置組における追従装置であり、該目標装置組は該少なくとも2つの装置組のうちの任意の1つの装置組である。
【0212】
幾つかの実施例において、該送信モジュール1003は該目標装置組における追従装置に該第一モデルパラメータを送信するために用いられ、該追従装置は第一融合パラメータを決定し、該第一融合パラメータを他の追従装置に送信し、該第一融合パラメータは該追従装置がその受信した該第一モデルパラメータと、自身が決定した第二モデルパラメータとに基づいて得たものである。
【0213】
該取得モジュール1001は、
第三融合パラメータを取得し、該第三融合パラメータは該目標装置組が決定したモデルパラメータを含み、
他の装置組における管理装置に該第三融合パラメータを送信し、該他の装置組における管理装置に第四融合パラメータを決定してもらい、そして、該第四融合パラメータを該他の装置組における追従装置に送信してもらい、該第四融合パラメータは該他の装置組における管理装置がその受信した該第三融合パラメータと、自身の所在する組の装置が決定した融合パラメータとに基づいて得たものであり、
該第二融合パラメータを取得し、該第二融合パラメータは該データ処理システムにおける少なくとも2つの装置組が決定した融合パラメータを含む
ということを行うために用いられる。
【0214】
幾つかの実施例において、該送信モジュール1003は、
ランダムマスクを取得し、
該ランダムマスクと該第一モデルパラメータとの融合を行って暗号化モデルパラメータを取得し、
該第一装置に接続される第二装置に該暗号化モデルパラメータを送信し、該第二装置に第一融合パラメータを決定してもらい、そして、該第一融合パラメータを他の第二装置に送信してもらい、該第一融合パラメータは該第二装置がその受信した該暗号化モデルパラメータと、自身が決定した第二モデルパラメータとに基づいて得たものである
ということを行うために用いられる。
【0215】
該取得モジュール1001は、
候補融合パラメータを受信し、該候補融合パラメータは該ランダムマスク、及び該データ処理システムにおける該少なくとも3つの装置が決定したモデルパラメータを含み、
該候補融合パラメータから該ランダムマスクを除去して該第二融合パラメータを得る
ということを行うために用いられる。
【0216】
幾つかの実施例において、該融合モジュールは、
該第一モデルパラメータを丸め、
該ランダムマスクと、丸められた後の該第一モデルパラメータとの和を求め、
該和に対して余数をとり、該暗号化モデルパラメータを得る
ということを行うために用いられる。
【0217】
該第二装置により第一融合パラメータを決定し、そして、該第一融合パラメータを他の第二装置に送信することは、該第二装置が、その受信した暗号化モデルパラメータと、自身が決定しかつ丸めた第二モデルパラメータとの和を求め、該和に対して余数をとって該第一融合パラメータを取得し、そして、該第一融合パラメータを他の第二装置に送信することを含む。
【0218】
幾つかの実施例において、該融合モジュールは、
該第一モデルパラメータを丸め、
丸められた後の該第一モデルパラメータと、該第一装置の重みとの第一乗積を計算し、
該ランダムマスクと、該第一乗積との和を求め、
該和に対して余数をとり、該暗号化モデルパラメータを取得し、
該第二装置が、その受信した暗号化モデルパラメータと第二乗積との和を求め、該和に対して余数をとり、該第一融合パラメータを取得し、そして、該第一融合パラメータを他の第二装置に送信し、該第二乗積は該第二装置自身が決定しかつ丸めた第二モデルパラメータと、該第二装置の重みとの乗積である
ということを行うために用いられる。
【0219】
幾つかの実施例において、該送信モジュール1003は、
候補ランダムマスクを取得し、
該候補ランダムマスクを丸めて該ランダムマスクを得る
ということを行うために用いられる。
【0220】
幾つかの実施例において、該決定モジュール1004は、該第二融合モデルパラメータと総重みとの商をとり、該商を該第一業務処理モデルの該目標モデルパラメータとするために用いられ、該総重みは該データ処理システムにおける該少なくとも3つの装置の重みの和である。
【0221】
本出願の実施例では、一方では、データ処理システムにおける装置はリング構造を採用して接続され、各装置は隣接参加装置と通信を行えば良く、このようにして、1つの装置と他の装置との間に2つの通信リンクがあり、そのうちの1つの通信リンクが一時的に中断したとしても、該装置は他の通信リンクにより他の装置と通信を行うことができるので、該データ処理システムは或る通信リンクの一時的な中断によりデータ処理プロセスを中断することが無く、非常に良い安定性及びロバストネスを有し、他方では、該データ処理システムがデータ処理を行うときに、各装置が決定したモデルパラメータは上述の通信リンクに従って順次伝送され、かつ伝送過程では、各装置はその受信したモデルパラメータと、自身が決定したモデルパラメータとの融合を行った後に伝送を行い、このようにして、装置間の伝送のデータ量が比較的小さく、かつ1つの装置にモデルパラメータを集中送信する必要がないので、オーバーロード及び通信の輻輳の問題を効果的に回避し、データ処理の速度及び効率を効果的に向上させ、データ処理の安定性を確保できる。
【0222】
なお、上述の実施例により提供されるデータ処理装置がデータ処理を行うときに、上述の各機能モジュールの分割を例にして説明を行ったが、実際の応用では、ニーズに応じて上述の機能を異なる機能モジュールに割り当てて完了してもらうことができ、即ち、データ処理装置の内部構成を異なる機能モジュールに分けて上述の全部又は一部の機能を完了してもらうことができる。また、上述の実施例により提供されるデータ処理装置はデータ処理方法の実施例と同じ構想に属し、その具体的な実現過程については方法の実施例を参照でき、ここではその詳しい説明を省略する。
【0223】
図13は本出願の実施例により提供されるデータ処理装置の構成を示す図である。
図13に示すように、該装置は次のようなものを含む。
【0224】
取得モジュール1101:目標業務の第二サンプルデータを取得するために用いられる。
【0225】
訓練モジュール1102:該第二サンプルデータに基づいて第二業務処理モデルを訓練することで、該第二業務処理モデルの第二モデルパラメータを得るために用いられる。
【0226】
受信モジュール1103:第一装置が決定する第一モデルパラメータを受信するために用いられ、該少なくとも3つの装置には該第一装置が含まれる。
【0227】
融合モジュール1104:該第一モデルパラメータと、自身が決定した第二モデルパラメータとの融合を行い、第一融合パラメータを取得するために用いられる。
【0228】
送信モジュール1105:該第一融合パラメータを該データ処理システムの中の他の装置に送信するために用いられ、該データ処理システムにおける装置はリング構造を採用して接続される。
【0229】
該受信モジュール1103はさらに、該第二業務処理モデルの目標モデルパラメータを決定するために用いられる。
【0230】
幾つかの実施例において、該第一モデルパラメータはN個のセグメントを含む。そのうち、該Nは1よりも大きい整数である。
【0231】
該受信モジュール1103は、該第一装置が決定した第一モデルパラメータにおける第一セグメントを受信するために用いられる。
【0232】
該受信モジュール1103はさらに、
該第一装置が決定した第一セグメントと、自身が決定した第二モデルパラメータにおける第一段セグメントとの融合を行って第一融合セグメントを取得し、
該第一融合セグメントを該データ処理システムの中の他の装置に送信し、
第二融合セグメントを取得し、該第二融合セグメントは該データ処理システムの中の該少なくとも3つの装置が決定したモデルパラメータにおける第二セグメントを含み、
該第二融合セグメントに基づいて、該第二業務処理モデルの目標モデルパラメータにおける目標第二セグメントを決定し、
該目標第二セグメントに基づいて、該第二業務処理モデルの目標モデルパラメータを得る
ということを行うために用いられる。
【0233】
本出願の実施例では、一方では、データ処理システムにおける装置はリング構造を用いて接続され、各装置は隣接参加装置と通信を行えば良く、このようにして、1つの装置と他の装置との間に2つの通信リンクがあり、そのうちの1つの通信リンクが一時的に中断したとしても、該装置は他の通信リンクにより他の装置と通信を行うことができるので、該データ処理システムは或る通信リンクの一時的な中断によりデータ処理プロセスを中断することがなく、優れた安定性及びロバストネスを有し、他方では、該データ処理システムがデータ処理を行うときに、各装置が決定したモデルパラメータは上述の通信リンクに従って順次伝送され、かつ伝送過程では、各装置はその受信したモデルパラメータと、自身が決定したモデルパラメータとの融合を行った後に伝送を行い、このようにして、装置間の伝送のデータ量が比較的少なく、かつ1つの装置にモデルパラメータを集中送信する必要がないので、オーバーロード及び通信の輻輳の問題を効果的に避け、データ処理の速度及び効率を効果的に上げ、データ処理の安定性を保証できる。
【0234】
なお、上述の実施例により提供されるデータ処理装置がデータ処理を行うときに、上述の各機能モジュールの分割を例にして説明を行ったが、実際の応用では、ニーズに応じて上述の機能を異なる機能モジュールに割り当てて完了してもらうことができ、即ち、データ処理装置の内部構成を異なる機能モジュールに分割して上述の全部又は一部の機能を完了してもらうことができる。また、上述の実施例により提供されるデータ処理装置はデータ処理方法の実施例と同じ構想に属し、その具体的な実現過程については方法の実施例を参照できるため、ここではその詳しい説明を省略する。
【0235】
図14は本出願の実施例により提供される電子機器の構成を示す図である。該電子機器1200は、配置やパフォーマンスが異なることによって大きく異なる場合があるが、1つ又は1つ以上の処理器(Central Processing Units、CPU)1201及び1つ又は1つ以上の記憶器1202を含んでも良く、そのうち、該記憶器1202には少なくとも1つのコンピュータプログラムが記憶されており、該少なくとも1つのコンピュータプログラムは該処理器1201によりロードされ実行されることで、上述の方法の各実施例により提供されるデータ処理方法を実現し得る。該電子機器はさらに、装置の機能を実現するための他の部品を含んでも良く、例えば、該電子機器はさらに、有線又は無線ネットワークインターフェースや入出力インターフェースなどの部品を、入出力を行うために含んでも良い。なお、本出願の実施例ではその詳しい説明を省略する。
【0236】
上述の方法の実施例における電子機器は端末として実現され得る。例えば、
図15は本出願の実施例により提供される端末のブロック図である。該端末1300は携帯型移動端末、例えば、スマートフォン、タブレットコンピュータ、ノートパソコン又はデスクトップコンピュータであっても良い。端末1300はさらに、ユーザ装置、携帯端末、ラップトップ端末、デスクトップ端末などと称されても良い。
【0237】
端末1300は通常、処理器1301及び記憶器1302を含む。
【0238】
処理器1301は1つ又は複数の処理コア、例えば、4コア処理器、8コア処理器などを含んでも良い。処理器1301はDSP(Digital Signal Processing)、FPGA(Field-Programmable Gate Array)及びPLA(Programmable Logic Array)のうちの少なくとも1つにより実現されても良い。幾つかの実施例において、処理器1301はさらに、AI(Artificial Intelligence)処理器を含んでも良く、該AI処理器は機械学習に関する計算操作(動作)を処理するために用いられる。
【0239】
記憶器1302は1つ又は複数のコンピュータ可読記憶媒体を含んでも良く、該コンピュータ可読記憶媒体は非一時的であっても良い。記憶器1302はさらに、高速ランダムアクセスメモリ、及び非揮発性メモリ、例えば、1つ又は複数の磁気ディスク記憶装置、フレッシュメモリを含んでも良く。幾つかの実施例において、記憶器1302における非一時的コンピュータ可読記憶媒体は少なくとも1つの命令を記憶するために用いられ、該少なくとも1つの命令は処理器1301により実行されることで、本出願の方法の実施例により提供されるデータ処理方法を実現するために用いられる。
【0240】
幾つかの実施例において、端末1300はさらに、周辺装置インターフェース1303及び少なくとも1つの周辺装置を選択可能に含んでも良い。処理器1301、記憶器1302及び周辺装置インターフェース1303の間はバス又は信号線により接続され得る。各周辺装置はバス、信号線又は回路板により周辺装置インターフェース1303に接続することができる。幾つかの実施例において、周辺装置はRF回路1304、表示スクリーン1305及び電源1306のうちの少なくとも1つを含み得る。
【0241】
周辺装置インターフェース1303はI/O(Input/Output)に関する少なくとも1つの周辺装置を処理器1301及び記憶器1302に接続するために用いられる。
【0242】
RF回路1304はRF(Radio Frequency)信号(電磁信号ともいう)を受信及び送信するために用いられる。RF回路1304は電磁信号により通信ネットワーク及び他の通信装置と通信を行うことができる。RF回路1304は電気信号を電磁信号に変換して送信し、又は、受信した電磁信号を電気信号に変換し得る。RF回路1304は少なくとも1つの無線通信プロトコルにより他の端末と通信を行うことができる。該無線通信プロトコルは、インターネット、メトロポリタンエリアネットワーク、イントラネット、様々な世代の移動通信ネットワーク(2G、3G、4G及び5G)、無線ローカルエリアネットワーク及び/又はWiFi(Wireless Fidelity)ネットワークを含むが、これらに限られない。幾つかの実施例において、RF回路1304はさらに、NFC(Near Field Communication)に関する回路を含んでも良いが、本出願ではこれについて限定しない。
【0243】
表示スクリーン1305はUI(User Interface、ユーザインターフェース)を表示するために用いられる。該UIはグラフィック、テキスト、アイコン、ビデオ及びそれらの任意の組み合わせを含んでも良い。表示スクリーン1305がタッチパネルであるときに、表示スクリーン1305はさらに、表示スクリーン1305の表面又は表面の上のタッチ信号を収集する能力を有する。該タッチ信号は制御信号として処理器1301に入力して処理してもらうことができる。
【0244】
電源1306は端末1300における各アセンブリに給電するために用いられる。電源1306は交流電源、直流電源、使い捨て電池又は再充電可能な電池であっても良い。電源1306が再充電可能な電池を含むときに、該再充電可能な電池は有線充電式電池又は無線充電式電池であっても良い。有線充電式電池は有線回線を介して充電される電池であり、無線充電式電池は無線コイルを介して充電される電池である。該再充電可能な電池はさらに、急速充電技術をサポートするために用いられ得る。
【0245】
幾つかの実施例において、端末1300はさらに、1つ又は複数のセンサー1307を含み得る。該1つ又は複数のセンサー1307は圧力センサー1308及び光学センサー1309を含むが、これらに限定されない。
【0246】
圧力センサー1308は端末1300のサイドフレーム及び/又は表示スクリーン1305の下層に配置され得る。圧力センサー1308は端末1300のサイドフレームに配置されるときに、ユーザの端末1300に対する把持信号を検出でき、処理器1301は圧力センサー1308が収集した把持信号に基づいて左右の手の認識又はショートカット操作の認識を行うことができる。圧力センサー1308が表示スクリーン1305の下層に配置されるときに、処理器1301はユーザの表示スクリーン1305に対する押圧操作により、UIインターフェース上の操作可能なコントロールへの制御を実現できる。操作可能なコントロールには、ボタンコントロール、スクロールバーコントロール、アイコンコントロール及びメニューコントロールのうちの少なくとも1つが含まれ得る。
【0247】
光学センサー1309は周辺光を取集するために用いられる。1つの実施例において、処理器1301は光学センサー1309が取集した周辺光の強度に基づいて表示スクリーン1305の表示輝度を制御できる。幾つかの実施例において、周辺光の強度が比較的高いときに、表示スクリーン1305の表示輝度を増加させ、周辺光の強度が比較的低いときに、表示スクリーン1305の表示輝度を減少させる。
【0248】
当業者が理解すべきは、
図15に示す構成は端末1300を限定するものではなく、図示よりも多くの又は少ないアセンブリを含み、幾つかのアセンブリを組み合わせて使用し、又は異なるアセンブリのレイアウトを採用しても良いということである。
【0249】
上述の方法の実施例における電子機器はサーバーとして実現され得る。例えば、
図16は本出願の実施例により提供されるサーバーの構成を示す図である。該サーバー1400は、配置やパフォーマンスが異なることによって大きく異なる場合があるが、1つ又は1つ以上の処理器(Central Processing Units、CPU)1401及び1つ又は1つ以上の記憶器1402を含んでも良く、そのうち、該記憶器1402には少なくとも1つのコンピュータプログラムが記憶されており、該少なくとも1つのコンピュータプログラムは該処理器1401によりロードされ実行されることで、上述の方法の各実施例により提供されるデータ処理方法を実現し得る。もちろん、該サーバーはさらに、有線又は無線ネットワークインターフェースや入出力インターフェースなどの部品を、入出力を行うために含んでも良く、該サーバーはさらに、装置の機能を実現するための他の部品を含んでも良いが、ここではその詳しい説明を省略する。
【0250】
例示的な実施例では、コンピュータ可読記憶媒体がさらに提供され、例えば、少なくとも1つのコンピュータプログラムを記憶している記憶器が含まれ、該少なくとも1つのコンピュータプログラムは処理器により実行されることで、上述の実施例におけるデータ処理方法を実現し得る。例えば、コンピュータ可読記憶媒体はROM(Read-Only Memory)、RAM(Random Access Memory)、CD-ROM(Compact Disc Read-Only Memory)、磁気テープ、フロッピーディスク、光データ記憶装置などであっても良い。
【0251】
例示的な実施例では、コンピュータプログラムプロダクト又はコンピュータプログラムがさらに提供され、該コンピュータプログラムプロダクト又は該コンピュータプログラムは1つ又は複数のプログラムコードを含み、該1つ又は複数のプログラムコードはコンピュータ可読記憶媒体に記憶されている。電子機器の1つ又は複数の処理器はコンピュータ可読記憶媒体から該1つ又は複数のプログラムコードを読み取ることができ、該1つ又は複数の処理器は該1つ又は複数のプログラムコードを実行することで、電子機器に上述のデータ処理方法を実行させることができる。
【0252】
また、当業者が理解すべきは、上述の実施例の全部又は一部のステップの実現はハードウェアにより完了でき、又は、プログラムが関連するハードウェアを指示することにより完了できるということである。該プログラムはコンピュータ可読記憶媒体に記憶することができ、該コンピュータ可読記憶媒体はROM、磁気ディスク、光ディスクなどであっても良い。
【0253】
以上、本出願の好ましい実施例を説明したが、本出願はこの実施例に限定されず、本出願の趣旨を離脱しない限り、本出願に対するあらゆる変更は本出願の技術的範囲に属する。