ネットワーク全体のための最初の国内連邦学習フレームワークに関する研究

序文

近年、個人情報の安全性が重視され、各国で公布​​されている法規制により、個人情報の安全性とプライバシーが確保されており、企業間や部署間でさえ、データアイランドの現象がある程度形成されています。社会効率を低下させます。上記のさまざまな要因の影響を受けて、特に2020年の初めに、連携学習が始まりました。中国のさまざまな業界でAIインフラストラクチャアルゴリズムコンポーネントの機会を得て、連携学習フレームワークも登場しました私たちの視野から。

次に、主に国内の連邦学習フレームワークをさまざまな方向から研究し、その後のアプリケーションのための技術的なオプションを提供します。

WeBank FATE

FATE(Federated AI Technology Enabler)は、WeBankのAI部門によって開始されたオープンソースプロジェクトであり、フェデレーションラーニングエコシステムに信頼性の高い安全なコンピューティングフレームワークを提供します。FATEプロジェクトは、Multi-Party Secure Computing(MPC)とHomomorphic Encryption(HE)テクノロジーを使用して、ロジスティック回帰、ツリーベースのアルゴリズム、ディープラーニング、移行学習など、さまざまなタイプの機械学習のセキュアコンピューティングをサポートする基盤となるセキュアコンピューティングプロトコルを構築します。 。

オープンソースアドレス:https : //github.com/FederatedAI/

アルゴリズムのサポート

FATEは現在、3つのタイプの連合学習アルゴリズムをサポートしています。水平連合学習、垂直連合学習、転移学習です。

Federatedmlモジュールには、多くの一般的な機械学習アルゴリズムのフェデレーション実装が含まれています。すべてのモジュールは、モジュールのスケーラビリティを強化するために、分離されたモジュラーアプローチを使用して開発されています。具体的には、主に以下を提供します。

  • 連邦統計:プライバシー交差計算、ユニオン計算、ピアソン係数などを含みます。

  • 連邦機能エンジニアリング:連邦サンプリング、連邦機能ビニング、連邦機能選択などを含みます。

  • 連携機械学習アルゴリズム:水平および垂直の連携LR、GBDT、DNN、転移学習など

  • モデル評価:2クラス、マルチクラス、回帰評価、統合および片側比較評価を提供します。

  • セキュリティプロトコル:より安全なマルチパーティインタラクティブコンピューティングのためのさまざまなセキュリティプロトコルを提供します。

詳細なアルゴリズムリスト:https : //github.com/FederatedAI/DOC-CHN/tree/master/Federatedml

運命全体のアーキテクチャ

Fateは主に、FateFlowとFederatedMLを主体とするオフライントレーニングプラットフォームと、FateServingを主体とするオンライン予測プラットフォームに分かれています。

img

オフライントレーニングプラットフォーム

建築

オフラインプラットフォームの全体的なアーキテクチャは次のとおりです。

img

オフライントレーニングプラットフォームのアーキテクチャは、上の図から明らかです。上の図は、主にインフラストラクチャレイヤー、コンピューティングストレージレイヤー、コアコンポーネントレイヤー、タスク実行レイヤー、タスクスケジューリングレイヤー、視覚化パネルレイヤー、クロスネットワークインタラクションレイヤーに分かれています。

  1. インフラストラクチャレイヤーでは、Fateは主にDockerの形式での展開をサポートします。バイナリもサポートしますが、Dockerを使用すると、物理環境の違いを減らして実装を容易にすることができます。さらに、FateはKubeFATEモードに対応しています。開発またはテストシナリオの場合は、 docker-composeデプロイ方法を使用します。このモードでは、Docker環境のみが必要です。本番環境または大規模なデプロイの場合、Kubernetesを使用してFATEシステムを管理することをお勧めします。

  2. コンピューティングストレージレイヤーでは、主に分散コンピューティングエンジンとしてEggRollとSparkが使用されます。私の知る限り、Sparkはv1.4の新機能の1つであるはずです。EggRollやSparkと比較すると、Sparkは比較的成熟しており、より多くのデータを持っています。Spark EggRollとの主な違いは、SparkがストレージにHDFSを使用することです。EggRollはストレージと計算をバインドします。つまり、データは送信しませんが、実行のためにデータが配置されている場所に計算ロジックを送信します。計算ロジックが小さいため、大規模なデータ移動は必要ありません。

  3. コアコンポーネントレイヤーは、主にデータの権限、データの相互作用、アルゴリズムの相関関係、モデルのトレーニング、評価、リリースに関連する実装を提供します。

  4. 上記のタスク実行レイヤーとスケジューリングレイヤーは、主に機能のこの部分を実現するFateFlowモジュールです。一般的な説明は、ユーザー向けのエンドツーエンドの連携学習パイプライン生産サービスを構築するための連携学習モデリングパイプラインスケジューリングおよびライフサイクル管理ツールです。パイプラインの状態管理と操作の調整されたスケジューリングを実現すると同時に、モデラーによる分析のためにタスクで生成されたデータ、モデル、インジケーター、ログなどを自動的に追跡します。

マニュアル

img

開発者はDSLを記述して独自のモデルトレーニング用のパイプラインを構築し、ジョブをタスクキューに送信します。次に、タスクスケジューラがキューからタスクをプルし、さまざまなコンピューティングノードをスケジュールしてパイプラインを実行します。

展開アーキテクチャ

以下は、v1.4マルチノードデプロイメントアーキテクチャの図です。マルチノード(主にゲストとホスト)のデプロイメントコンポーネントは主に次のとおりであることがわかります。

ソフトウェア製品 部品 説明
運命 fate_flow 共同学習タスクパイプライン管理モジュール、各パーティは1つのサービスのみを持つことができます
運命 運命板 共同学習プロセス視覚化モジュール、各当事者は1つのサービスのみを持つことができます
卵巻 clustermanager クラスターマネージャーはクラスターを管理し、各パーティは1つのサービスのみを持つことができます
卵巻 ノードマネージャー Node Managerは各マシンのリソースを管理します。各パーティは複数のサービスを持つことができますが、インストールできるサーバーは1つだけです。
卵巻 ロールサイト プロキシ+フェデレーションに相当する、サイト間またはパーティー間通信コンポーネント。各パーティーは1つのサービスのみを持つことができます。
mysql mysql データストレージ、clustermanager、fateflowの依存関係、各パーティに必要なサービスは1つだけ

img

オンライン予測プラットフォーム

建築

オンライン予測プラットフォームは、主にオフライントレーニングプラットフォームのトレーニングモデルをロードすることにより、オンライン予測機能を実現します。

オンライン予測プラットフォームは、主に次の3つのコンポーネントで構成されています。

  1. サービングサーバー:予測関数のコアモジュール。モデルに基づいて予測関数を実現するためのアルゴリズムコンポーネントを提供します。

  2. Serving-proxy:マルチパーティの相互作用、プロトコル変換、関数、一般的なゲストとホストがServing-proxyを介して通信するときにルーティング機能を提供します。

  3. Serving-admin:クラスター管理機能を提供し、視覚的な管理を実現します。

具体的な構造は次のとおりです。

img

マニュアル

img

  1. パッケージのデプロイ:FateウェアハウスからFate-Servingの関連モジュールをダウンロードして、ローカルでコンパイル、パッケージ化、実行します。現在、主にjavaに基づいて開発されており、java環境が必要です。

  2. モデルのプッシュ:Fate-Flowからモデルを取得し、Fate-Servingにロードします。

  3. モデルの初期化:Fate-Servingはモデルをローカルに読み込み、メモリに初期化します。

  4. 登録モデルインターフェイス:Serving-Serverは、モデルの情報をインターフェイス情報に変換し、主にGRPCプロトコルに基づいてレジストリに登録します。

  5. サービスの提供:呼び出し元は、レジストリからモデルのインターフェースアドレスをプルして、呼び出しを開始します。

展開アーキテクチャ

img

効率分析

以下の資料は、https://blog.csdn.net/hellompc/article/details/105705745からのものです。

LRアルゴリズムテスト

img

FATEが10W * 800サンプルをトレーニングすると(正規化後)、損失値の変動は小さいものの、最終的な結果が収束に達していないことがわかります。

ツリーアルゴリズムテスト

[外部リンク画像の転送に失敗しました。ソースサイトに盗難防止imgがある可能性があります]!チェーンメカ​​ニズム、ビルド(https://img-WIQlog.csdnimg.cn/img_convert/213faedbc259861c614b34106a6265cc.png#pic_centerhtps://img-log.csdnimg.cn /img_convert/23d13faedbc259861c14b3646a6264cc.png)]

関連インターフェース

タスクの一般的な概要:

img

タスクの詳細:

img

タスクステップの出力モデル/データビュー:

img

モデルのトレーニング結果を表示します。

img

具体操作

リファレンス:https : //blog.csdn.net/qq_28540443/article/details/104562797

福州FMPC

Fortune Multi-Party Secure Computing Platform(FMPC)はShanghai Fortune Technologyの製品であり、現在オープンソースではなく、主に経験やサービスの購入を通じて使用されています。

製品の公式Webサイトアドレス:https : //www.fudata.cn/

Fortune Technologyは、安全なコンピューティングのリーダーです。同社は、主要なセキュアコンピューティングテクノロジーと人工知能テクノロジーに基づいて、準拠データソースがビッグデータセキュリティモデリングのブリッジを構築するのを支援し、財務、政府関係、医療、マーケティングなどのビジネスシナリオを実装して、ビッグデータの商業的価値を解放します。安全なデータ価値循環プラットフォームを形成するためのアプリケーションシナリオ。接続、相互作用、ネットワーキングを通じて、安全なデータインターネットエコシステムを構築します。

上記の運命と比較して、FMPCは暗い馬です。ここでは、彼の4つの主要な製品モジュールについて簡単に説明します。

1)連携学習FMPC:
元のデータは公開されず、すべての関係者がローカルモデリングに参加します。機密データの循環はなく、中間の計算結果が交換されます。参加者は独自のモデルパラメーターのみを持ち、モデル
全体が保護されます。プライベート化されたデプロイメント、オープンAPIの迅速な開発、サポート主流の機械学習アルゴリズム、LR、DT、RF、Xgboost ...、モデリング速度が3倍高速、暗号文トレーニング精度エラー<1%

2)マルチパーティの安全なコンピューティング:
着陸アプリケーションのコンピューティングボリュームは11,000回以上/日です;マルチパーティデータセキュリティの相互作用をサポートします;ワンタイム多項式をサポートします;マルチパーティ属性統計分析をサポートします;マルチパーティ多次元データドリル分析をサポートします;民営化展開

3)非表示のクエリ:

100億以上のレコードをサポートし、第2レベルの応答時間、クエリ承認済み預金証明書、当事者Aのクエリ情報が漏洩しない、中間保存を回避するための暗号化トンネル、民営化された展開。

4)同盟ブロックチェーン:

アライアンスノード30 +、10,000 TPSの高性能拡張、1日あたり200,000回の契約呼び出し、電子預金証明書とスマートコントラクト、プライバシー保護プロトコル、高速展開シナリオ、オープンソース開発コミュニティ。

訪問アドレス:https : //www.unitedata.link/

チェック後、現在開いているチェーンは障害状態です。

次の資料は主に参照されます:https : //blog.csdn.net/hellompc/article/details/104822723

全体の構造

FMPCが現在開示している技術アーキテクチャは次のとおりです。

img

技術原理:

共有ユーザーグループを特定したら、そのデータを使用して機械学習モデルをトレーニングできます。線形回帰モデルを例にとると、トレーニングプロセスは次の5つのステップに分けることができます。

ステップ①:AとBはそれぞれの公開鍵を互いに配布して、トレーニングプロセス中に交換する必要があるデータを暗号化します。

ステップ②:AとBは個別にローカルトレーニングを実施し、機密情報なしで中間結果を生成します。

ステップ③:AとBは暗号化された形で相互作用して、勾配の中間結果を計算します。

ステップ④:AとBは暗号化された勾配値に基づいて計算され、Bはそのラベルデータに基づいて損失を計算し、合計勾配を計算します。

ステップ⑤:AとBは、新しく計算された勾配に従って、それぞれのモデルのパラメーターを更新します。

img

マニュアル

現在、関連する使用プロセスを見るために経験を申請する必要がありますが、現在オンラインで見つかっている関連情報によると、それは主に次のステップに分けられます:

img

展開アーキテクチャ

非公開

アルゴリズムのサポート

非公開

効率分析

実際のビジネスシナリオをシミュレートするために、このテスト用に次の2つのサンプルが準備されました。

サンプルA:20,000行のデータ、1つのインデックス列フィールド、26の特性フィールド

サンプルB:20,000行のデータ、1列のインデックス列フィールド、1列のターゲット値辞書、2つの特徴フィールド

FATE1.2 / FMPC製品の2つのセットを同時に同じ環境に展開し、実行中のタスクごとに個別に1つだけ実行します。取得される指標は次のとおりです。

img

結果分析

上記の2つの製品使用プロセスによると、両方の製品が安全モデリングの閉ループプロセスを実装して完了することがわかりますが、いくつかの側面にはまだ一定の違いがあります。

1)製品の観点:FATEは技術担当者向けであり、ユーザーは特定の開発能力とアルゴリズムスキルを必要とします; FMPCはビジネス担当者向けであり、明確なインターフェイスで操作できます。

2)機能的な健全性:FATEには、データのアップロード、モデルのトレーニング、モデルの評価、モデルの予測などの基本的なモデリング機能があり、FMPCはこれに基づいて機能分析と機能スクリーニング機能を追加します。

3)パフォーマンスの観点:FATEのsecureBoostはlrよりもトレーニング速度が速く、モデルの精度が高く、その実行時間は業界で許容範囲内です。FMPCと比較して、精度を維持するための「緩和反復法」の使用を開拓しました正確性と同時に、速度は約3倍に向上しました。これは、実際のビジネスの複数の反復と調整で明らかな利点があります。

関連インターフェース

データセットのアップロード:FMPCでファイルをアップロードするには、ローカルのcsv、url、DBデータベース、インターフェースメソッドの4つの方法があります。例としてcsvファイルを使用します。ページでアップロードするローカルファイルのパスをクリックし、ファイル関連の情報と設定を入力します権限:

img

データ仮想融合(不注意な送信メカニズムを使用した暗号化データの整列):

img

データ分析と機能選択:

img

モデリング管理:

img

予測インターフェース呼び出し:

img

バイドゥパドルFL

PaddleFLは、PaddlePaddleに基づくオープンソースの統合学習フレームワークです。研究者はPaddleFLを簡単に使用して、さまざまな連携学習アルゴリズムを複製および比較できます。PaddleFLを使用して大規模な分散クラスターに統合学習システムを簡単にデプロイできるため、開発者もpaddleFLのメリットを享受できます。PaddleFLは、コンピュータービジョン、自然言語処理、レコメンデーションアルゴリズム、その他の分野で多くの連合学習戦略とそのアプリケーションを提供します。さらに、PaddleFLは、統合学習環境でのマルチタスク学習や転移学習など、従来の機械学習トレーニング戦略のアプリケーションも提供します。PaddlePaddleの大規模分散トレーニングとトレーニングタスクのためのKubernetesの柔軟なスケジューリング機能を利用して、PaddleFLはフルスタックオープンソースソフトウェアに基づいて簡単にデプロイできます。

オープンソースアドレス:https : //github.com/PaddlePaddle/PaddleFL

著者は、ディープラーニングフレームワークであるPaddlePaddleにも非常に精通しており、1つまたは2つを使用しています。特にBaiduの情報データベースに裏打ちされた使いやすさとアルゴリズム効率の点で劣らず、PaddlePaddleによって提供される事前トレーニング済みモデルの精度も同様です。非常に高く、そのまま使用できます。

全体の構造

img

PaddleFLアルゴリズムは以下をサポートします:

A.統合学習戦略

縦断的連合学習:privcを使用したロジスティック回帰、ABY3を使用したニューラルネットワーク

水平方向の連携学習:連携平均、差分プライバシー、安全な集約

B.トレーニング戦略

マルチタスク学習

転移学習

能動的学習

PaddleFLは主に2つのソリューションを提供します:データ並列とMPC(PFM)での統合学習。

Data Parallelを通じて、各データパーティは、従来の水平方向の統合学習戦略(FedAvg、DPSGDなど)に基づいてモデルトレーニングを完了することができます。

さらに、PFMはマルチパーティセキュアコンピューティング(MPC)に基づく統合学習方式です。PFMはPaddleFLの重要な部分として、水平、垂直、およびフェデレーション移行学習などの複数のシナリオを含む、フェデレーション学習を適切にサポートできます。信頼性の高いセキュリティを提供するだけでなく、かなりのパフォーマンスも備えています。

マニュアル

Paddle FL MPCのセキュリティトレーニングおよび推論タスクは、ABY3などの効率的なマルチパーティコンピューティングプロトコルに基づいて実装されています

img

ABY3では、参加者は入力、計算、結果に分類できます。入力パーティは、データとモデルを暗号化してコンピューティングパーティに送信する責任を負うトレーニングデータとトレーニングモデルの所有者です。コンピューティングパーティはトレーニングの実行者であり、トレーニングタスクは特定のマルチパーティセキュアコンピューティングプロトコルに基づいて完了します。コンピューティングパーティは、データのプライバシーを確​​保するために、暗号化されたデータとモデルのみを取得できます。計算が完了すると結果が得られ、平文データが復元されます。各参加者は複数の役割を果たすことができ、たとえば、データ所有者はコンピューティングパーティーとしてトレーニングに参加することもできます。

PFMのトレーニングおよび推論プロセス全体は、主にデータ準備、トレーニング/推論、および結果分析の3つの部分で構成されます。

A.データの準備

プライベートデータの配置:PFMを使用すると、データ所有者(データパーティー)は、自分のデータを公開することなく、複数のパーティーで共有されているサンプルセットを見つけることができます。この関数は、トレーニング前に複数のデータパーティがデータを調整し、ユーザーのデータプライバシーを保護する必要があるため、垂直統合学習で非常に必要です。

データの暗号化と配布:PFMでは、データパーティーが秘密の共有[10]によってデータとモデルを暗号化し、直接送信またはデータベースストレージによってコンピューティングパーティーに送信します。各コンピューティングパーティはデータの一部のみを取得するため、コンピューティングパーティは実際のデータを復元できません。

B.トレーニング/推論

PFMの動作モードはPaddlePaddleと同じです。トレーニングの前に、ユーザーはMPCプロトコル、トレーニングモデル、トレーニング戦略を定義する必要があります。Paddle_fl.mpcは、暗号化されたデータを操作できる演算子を提供し、演算子のインスタンスは実行時にexecutorによって作成および実行されます。

C.結果の再構築

セキュリティトレーニングと推論作業が完了すると、モデル(または予測結果)がコンピューティングパーティによって暗号化された形式で出力されます。結果の当事者は、暗号化された結果を収集し、PFMのツールを使用してそれを復号化し、プレーンテキストの結果をユーザーに配信できます。

展開アーキテクチャ

パドルFLの展開は、Dockerまたはk8sに基づいています

全体的な展開アーキテクチャは次のとおりです。

img

PaddeFLでは、連合学習タスクと連合学習トレーニングを定義するために使用されるコンポーネントは次のとおりです。

A.コンパイル時間

FL-Strategy:ユーザーはFL-Strategyを使用して、Fed-Avgなどの連携学習戦略を定義できます。

ユーザー定義プログラム:PaddlePaddleのプログラムは、機械学習モデルの構造とマルチタスク学習などのトレーニング戦略を定義します。

Distributed-Config:連携学習では、システムは分散環境に配備されます。分散トレーニング構成は、分散トレーニングノード情報を定義します。

FL-Job-Generator:FL-Strategy、User-Defined Program、Distributed Training Configを指定すると、連携パラメーターのサーバー側とワーカー側のFL-JobがFL Job Generatorによって生成されます。FL-Jobsは、共同トレーニングのために組織およびフェデレーションパラメーターサーバーに送信されます。

B.ランタイム

FL-Server:クラウドまたはサードパーティのクラスターで実行される統合パラメーターサーバー。

FL-Worker:共同学習に参加しているすべての組織には、共同パラメーターサーバーと通信する1人以上の労働者がいます。

FL-Scheduler:トレーニングプロセス中にワーカーをスケジュールする役割を果たします。各更新サイクルの前に、トレーニングに参加できるワーカーを決定します。

アルゴリズムのサポート

縦断的連合学習:privcを使用したロジスティック回帰、ABY3を使用したニューラルネットワーク

水平方向の連携学習:連携平均、差分プライバシー、安全な集約

効率分析

データセット:

https://paddle-zwh.bj.bcebos.com/gru4rec_paddlefl_benchmark/gru4rec_benchmark.tar

データセット トレーニング方法 FL戦略 リコール@ 20
データセット全体 プライベートトレーニング 0.504
データセット全体 連携学習 FedAvg 0.504
データセット全体の1/4 プライベートトレーニング 0.286
データセット全体の1/4 プライベートトレーニング 0.277
データセット全体の1/4 プライベートトレーニング 0.269
データセット全体の1/4 プライベートトレーニング 0.282

関連インターフェース

インターフェースが提供されていません

Jingdong Nine Numbers Federation Learning 9NFL

ビジネスニーズに基づいて、JDが独自に開発した連邦学習プラットフォームである9NFL(9NFL)は、2020年初頭に正式に立ち上げられました。9NFLラーニングプラットフォーム(9NFL)は、Jingdong Business Promotion Divisionの9N機械学習プラットフォームに基づいて開発されています。9Nプラットフォームのオフライントレーニング、オフライン推定、オンライン推論、モデルリリース、その他の機能に基づいて、マルチタスククロスを追加しますドメインスケジューリング、クロスドメイン高性能ネットワーク、大規模サンプルマッチング、大規模クロスドメインジョイントトレーニング、モデル階層暗号化、その他の機能。プラットフォーム全体で数百億/ 100Tの超大規模サンプルマッチングと共同トレーニングをサポートできます。また、クロスドメインとクロスパブリックネットワークの複雑な環境では、可用性と災害耐性のための一連のメカニズムと戦略がシステム全体を保証するように設計されています。高スループット、高可用性、および高性能。

オープンソースアドレス:https : //github.com/jd-9n/9nfl

全体の構造

システム全体は4つの主要なモジュールに分かれています。

  • 全体的なスケジューリングおよび転送モジュール

     整体控制数据求交与训练的调度
     训练器的配对工作
     高效的流量转发
    
  • リソース管理およびスケジューリングモジュール

    使用k8s屏蔽底层资源差异
    使用k8s进行资源的动态调度
    
  • データ交差モジュール

    大规模多模态跨域数据整合
    异步分布式框架提升拼接效率
    
  • トレーナーモジュール

    分布式框架训练支持,提升系统的吞吐性能
    异常恢复、failover机制
    高效的网络传输协议设计
    

img

マニュアル

9NFLの主な使用プロセスは次のとおりです。

1.データの準備

2.データの交差

3.モデルトレーニング

展開アーキテクチャ

現時点では、オープンソースの度合いに応じて、9NFLは完全にオープンソースではなく、ドキュメントからは、Dockerモードのデプロイメントにも基づいています。

アルゴリズムのサポート

主にテンソルフローに基づいています。

効率分析

番号

関連インターフェース

インターフェースなし

総括する

フレームワークの成熟度に応じて、現在のオープンソースフレームワークのFateは比較的成熟しており、アルゴリズムとアーキテクチャは継続的に最適化されており、オープンソースコミュニティは成熟しています。現在の研究に関する限り、FMPCはビジネスの操作の容易さの点でFateよりも優れています。Fate、PaddleFL、および9NFLには現在操作インターフェイスがありません。Fateには完全な監視インターフェイスがありますが、FMPCはビジネスシナリオに適しています。着陸はまだわずかな利点があります。現在、連邦学習は絶えず発展しています。実装されているケースは多くありませんが、近い将来、すべての当事者の共同学習の取り組みにより、私たちは一緒に進歩し、連邦学習の真の実装を促進し、個人データのプライバシーを保護し、データを解決できるようになると思います島の問題。

参照

https://github.com/FederatedAI/

https://blog.csdn.net/hellompc/article/details/105705745

https://blog.csdn.net/qq_28540443/article/details/104562797

https://www.fudata.cn/

https://blog.csdn.net/hellompc/article/details/104822723

https://github.com/PaddlePaddle/PaddleFL

https://github.com/jd-9n/9nfl

おすすめ

転載: blog.csdn.net/qq_28540443/article/details/108718721