微衆連邦学習FATE単機版開発ノート

10174 ワード

微衆FATE 1.0スタンドアロン版学習ノート
微衆FATEプロジェクトアドレス:https://github.com/FederatedAI/FATE
一、FATEインストール(スタンドアロン版)
FATE        docker           ,     docker    ,           :

1.依存環境:要求:jdk 1.8+、Python3.6、python virtualenv、redis-5.0.2**具体的なインストール方法はこのブログを参照してください.https://blog.csdn.net/weixin_44002829/article/details/976198262.インストール前の注意事項:(1)3309、8080ポートは使用できません.サービスの開始:
##     (              )
FATE $ git clone https://github.com/FederatedAI/FATE.git

##    ,  docker   
FATE $ cd FATE/standalone-deploy
FATE $ sh build_standalone_docker.sh

#        
FATE $ CONTAINER_ID=`docker ps -aqf "name=fate_python"`
FATE $ docker exec -t -i ${CONTAINER_ID} bash
FATE $ sh ./federatedml/test/run_test.sh

ここで最後のステップは、すべてのテストユニットがテストに成功した場合、インストールに成功したことを示すテストを実行するためです.
二、運行及び快速テスト
FATEは、学習者が迅速にテストできるケースquickを提供しています.run.py,このケースでは縦LRの実行がデフォルトで実行され,具体的なテスト方法は以下の通りである.FATEのdocker環境で、サンプルフォルダ:cd./に切り替えます.examples/federatedml-1.0-examples/2.クイックテスト(1)Train:直接quick_を実行run.py: python quick_run.py(2)Predict:quick_を編集するrun.pyスクリプト、TASKパラメータを「predict」に変更してquick_run.pyを再実行
三、FATEの具体的なモデリング:
1.train
Step1. uploadデータ
(1)load_の準備fileのプロファイル(2)実行コード:
python ${your_install_path}/fate_flow/fate_flow_client.py -f upload -c dsl_test/upload_data.json

注意:計算に参加する各当事者は、このステップを実行する必要があります.
Step2. モデリング作業の開始
(1)dsl_の準備configとruntime_configプロファイル、table_を確認するにはname、namespaceフィールド、upload_data confの一貫性保持(2)実行コード:
python ${your_install_path}/fate_flow/fate_flow_client.py -f submitJob -d dsl_test/test_homolr_job_dsl.json -c dsl_test/${your_component_conf_json}

Step3. ログの表示
ログ表示パス:${your_install_path}/logs/{your jobid}
2.Predict
Step1. 上記train手順を実行
(1)トレーニングステップの配置モジュールに「need_deploy」フィールドを追加する.FederatedmSampleとEvaluationを除き、すべてのモジュールがTrueをデフォルト値に設定し、予測フェーズで実行されません.「need_deploy」フィールドがTrueの場合、このモジュールは「fit」プロセスを実行する必要があり、fittedのモデルは予測フェーズで配置する必要があります(2)これらのモデルを「need_deploy」に設定するだけでなく、モデル出力を持つように構成する必要がありますが、Intersectモジュールを除きます.このようにしてこそ、fate−flowは、訓練後のモデルを格納し、inferenceフェーズで使用できるようにすることができる.(3)トレーニングモデルを取得するモデル_idとmodel_version.これを行うには2つの方法があります.a.ジョブをコミットすると、「model_id」および「model_version」b.を含むモデル情報が出力されます.これらのコマンドを実行すると、モデル情報を含むjsonファイルが${job_config_output_path}/model_にダウンロードされます.info.json、このjsonファイルで「model_id」と「model_version」${job_config_output_path}/model_info.json、このjsonファイルで「model_id」と「model_version」python${your_fate_install_path}/fate_flow/fate_flow_client.py -f job_config -j ${jobid} -r guest -p ${guest_partyid} -o ${job_config_output_path}
Step2. 予測プロファイルの定義
  • initiator:発起人initiatorの役割と参加者IDを指定し、トレーニングプロセスと同じである必要があります.
  • job_parameters: work_mode:cluster or standalone、訓練過程と同じであるべきです.model_id\model_version:Step 1で説明したモデルインジケータ(model indicator).job_type:作業タイプ.この場合、「predict」であるべきです.
      “ ./test_predict_conf.json”            。
    
  • role:すべてのロールのすべてのpartyIDは、トレーニングプロセスと同じであることを示します.
  • role_parameters:各ロールにパラメータを設定します.この場合、「eval_data」(予測するデータを意味する)は、GuestとHostの両方に
  • を記入する必要があります.
    Step3. 予測の開始
    python ${your_fate_install_path}/fate_flow/fate_flow_client.py -f submit_job -c ${predict_config}
    

    Step4. 実行ステータスの表示
    [法一]FATE_boardで見るとurlはhttp://f a t e b o a r d i p:{fate_board_ip}:fateb oardi p:{fate_board_port}/index.html#/details?job_id=KaTeX parse error: Expected 'EOF', got '&' at position 9: {job_id}&̲role=guest&part…{guest_partyid}[法二]FATE_がインストールされていない場合board、運転状態はfate_を通過できますflowは、次のコマンドを実行してjobのステータスをクエリーします.
    python ${your_fate_install_path}/fate_flow/fate_flow_client.py -f query_job -j {job_id} -r guest
    

    Step5. 予測結果のダウンロード
    予測タスクが完了すると、FATE-boardに最初の100の予測結果レコードが表示されます.次のコマンドを使用して、すべての結果をダウンロードすることもできます.
    python ${your_fate_install_path}/fate_flow/fate_flow_client.py -f component_output_data -j ${job_id} -p ${party_id} -r ${role} -cpn ${component_name} -o ${predict_result_output_dir}
    

    四、Fate_flow情報の表示
    1.各コンポーネントの出力データの表示
    cd {your_fate_path}/fate_flow
    python fate_flow_client.py -f component_output_data -j $jobid -p $party_id -r $role -cpn $component_name -o $output_dir
    

    2.各コンポーネントの出力モデルを表示する
    python fate_flow_client.py -f component_output_model -j $jobid -p $party_id -r $role -cpn $component_name
    

    3.taskのログを取得する
    python fate_flow_client.py -f job_log -j $jobid -o $output_dir
    

    4.どうやってstop job?
    python fate_flow_client.py -f stop_job -j $jobid
    

    5.jobの現在のステータスをどのようにクエリーしますか?
    python fate_flow_client.py -f query_job -j $jobid -p party_id -r role
    

    6.jobのruntimeをどのように獲得するかconfプロファイル?
    python fate_flow_client.py -f job_config -j $jobid -p party_id -r role -o $output_dir
    

    7.前にアップロードしたテーブルをどのようにダウンロードしますか?
    python fate_flow_client.py -f download -n table_namespace -t table_name -w work_mode -o save_file