From 02ba157c30219032cc4459dc3013cfbbdc36d29c Mon Sep 17 00:00:00 2001 From: chesterxgchen Date: Wed, 4 Jan 2023 22:27:02 -0800 Subject: [PATCH] add mlflow_sender and examples formatting and unit tests fix 2, update tb_receiver.py to ignore events from mlflow 3. add notebook for interactive examples git basic code working with documentation update README.md --- examples/README.md | 14 +- examples/experiment-tracking/README.md | 117 +++ .../experiment_tracking.ipynb | 904 ++++++++++++++++++ .../experiment_tracking.jpg | Bin 0 -> 87042 bytes .../hello-pt-mlflow}/custom/pt_constants.py | 0 .../hello-pt-mlflow/custom/pt_learner.py | 268 ++++++ .../hello-pt-mlflow}/custom/simple_network.py | 0 .../hello-pt-mlflow}/custom/test_custom.py | 0 .../app/config/config_fed_client.json | 45 + .../app/config/config_fed_server.json | 104 ++ .../hello-mlflow-mix}/meta.json | 2 +- .../app/config/config_fed_client.json | 45 + .../app/config/config_fed_server.json | 7 +- .../hello-pt-mlflow/hello-mlflow/meta.json | 10 + .../hello-pt-tb/README.md | 2 +- .../hello-pt-tb}/custom/pt_constants.py | 0 .../hello-pt-tb}/custom/pt_learner.py | 0 .../hello-pt-tb}/custom/simple_network.py | 0 .../hello-pt-tb}/custom/test_custom.py | 0 .../app/config/config_fed_client.json | 6 +- .../app/config/config_fed_server.json | 101 ++ .../hello-pt-tb/hello-tb-mix/meta.json | 10 + .../app/config/config_fed_client.json | 6 +- .../app/config/config_fed_server.json | 0 .../hello-pt-tb/hello-tb}/meta.json | 2 +- .../app/config/config_fed_client.json | 45 + .../app/config/config_fed_server.json | 97 ++ .../hello-pt-wandb/app/custom/pt_constants.py | 22 + .../hello-pt-wandb}/app/custom/pt_learner.py | 9 +- .../app/custom/simple_network.py | 38 + .../hello-pt-wandb/app/custom/test_custom.py | 108 +++ .../hello-pt-wandb/meta.json | 10 + examples/experiment-tracking/mlflow_1.png | Bin 0 -> 128012 bytes examples/experiment-tracking/mlflow_2.png | Bin 0 -> 125846 bytes examples/experiment-tracking/tb.png | Bin 0 -> 122718 bytes examples/experiment-tracking/wandb_1.png | Bin 0 -> 269972 bytes examples/hello-pt-tb-mlflow/README.md | 18 - .../experiment_tracking.ipynb | 640 ------------- nvflare/apis/analytix.py | 123 ++- nvflare/app_common/pt/tb_receiver.py | 14 +- nvflare/app_common/tracking/log_writer.py | 38 + nvflare/app_common/tracking/tracker_types.py | 32 +- nvflare/app_common/widgets/streaming.py | 38 +- .../app_opt/tracking/{wnb => }/__init__.py | 0 .../tracking/mlflow/mlflow_receiver.py | 11 +- .../app_opt/tracking/mlflow/mlflow_writer.py | 81 ++ nvflare/app_opt/tracking/tb/__init__.py | 13 + nvflare/app_opt/tracking/tb/tb_writer.py | 85 ++ nvflare/app_opt/tracking/wandb/__init__.py | 13 + .../app_opt/tracking/wandb/wandb_receiver.py | 130 +++ .../app_opt/tracking/wandb/wandb_writer.py | 39 + .../private/fed/server/job_meta_validator.py | 2 +- nvflare/widgets/info_collector.py | 2 + tests/unit_test/apis/analytix_test.py | 32 +- .../app_common/widgets/streaming_test.py | 4 +- 55 files changed, 2484 insertions(+), 803 deletions(-) create mode 100644 examples/experiment-tracking/README.md create mode 100644 examples/experiment-tracking/experiment_tracking.ipynb create mode 100644 examples/experiment-tracking/experiment_tracking.jpg rename examples/{hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/app => experiment-tracking/hello-pt-mlflow}/custom/pt_constants.py (100%) create mode 100644 examples/experiment-tracking/hello-pt-mlflow/custom/pt_learner.py rename examples/{hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/app => experiment-tracking/hello-pt-mlflow}/custom/simple_network.py (100%) rename examples/{hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/app => experiment-tracking/hello-pt-mlflow}/custom/test_custom.py (100%) create mode 100644 examples/experiment-tracking/hello-pt-mlflow/hello-mlflow-mix/app/config/config_fed_client.json create mode 100644 examples/experiment-tracking/hello-pt-mlflow/hello-mlflow-mix/app/config/config_fed_server.json rename examples/{hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1 => experiment-tracking/hello-pt-mlflow/hello-mlflow-mix}/meta.json (73%) create mode 100644 examples/experiment-tracking/hello-pt-mlflow/hello-mlflow/app/config/config_fed_client.json rename examples/{hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1 => experiment-tracking/hello-pt-mlflow/hello-mlflow}/app/config/config_fed_server.json (93%) create mode 100644 examples/experiment-tracking/hello-pt-mlflow/hello-mlflow/meta.json rename examples/{ => experiment-tracking}/hello-pt-tb/README.md (97%) rename examples/{hello-pt-tb/app => experiment-tracking/hello-pt-tb}/custom/pt_constants.py (100%) rename examples/{hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/app => experiment-tracking/hello-pt-tb}/custom/pt_learner.py (100%) rename examples/{hello-pt-tb/app => experiment-tracking/hello-pt-tb}/custom/simple_network.py (100%) rename examples/{hello-pt-tb/app => experiment-tracking/hello-pt-tb}/custom/test_custom.py (100%) rename examples/{hello-pt-tb => experiment-tracking/hello-pt-tb/hello-tb-mix}/app/config/config_fed_client.json (85%) create mode 100644 examples/experiment-tracking/hello-pt-tb/hello-tb-mix/app/config/config_fed_server.json create mode 100644 examples/experiment-tracking/hello-pt-tb/hello-tb-mix/meta.json rename examples/{hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1 => experiment-tracking/hello-pt-tb/hello-tb}/app/config/config_fed_client.json (85%) rename examples/{hello-pt-tb => experiment-tracking/hello-pt-tb/hello-tb}/app/config/config_fed_server.json (100%) rename examples/{hello-pt-tb => experiment-tracking/hello-pt-tb/hello-tb}/meta.json (80%) create mode 100644 examples/experiment-tracking/hello-pt-wandb/app/config/config_fed_client.json create mode 100644 examples/experiment-tracking/hello-pt-wandb/app/config/config_fed_server.json create mode 100644 examples/experiment-tracking/hello-pt-wandb/app/custom/pt_constants.py rename examples/{hello-pt-tb => experiment-tracking/hello-pt-wandb}/app/custom/pt_learner.py (96%) create mode 100644 examples/experiment-tracking/hello-pt-wandb/app/custom/simple_network.py create mode 100644 examples/experiment-tracking/hello-pt-wandb/app/custom/test_custom.py create mode 100644 examples/experiment-tracking/hello-pt-wandb/meta.json create mode 100644 examples/experiment-tracking/mlflow_1.png create mode 100644 examples/experiment-tracking/mlflow_2.png create mode 100644 examples/experiment-tracking/tb.png create mode 100644 examples/experiment-tracking/wandb_1.png delete mode 100644 examples/hello-pt-tb-mlflow/README.md delete mode 100644 examples/hello-pt-tb-mlflow/experiment_tracking.ipynb create mode 100644 nvflare/app_common/tracking/log_writer.py rename nvflare/app_opt/tracking/{wnb => }/__init__.py (100%) create mode 100644 nvflare/app_opt/tracking/mlflow/mlflow_writer.py create mode 100644 nvflare/app_opt/tracking/tb/__init__.py create mode 100644 nvflare/app_opt/tracking/tb/tb_writer.py create mode 100644 nvflare/app_opt/tracking/wandb/__init__.py create mode 100644 nvflare/app_opt/tracking/wandb/wandb_receiver.py create mode 100644 nvflare/app_opt/tracking/wandb/wandb_writer.py diff --git a/examples/README.md b/examples/README.md index bccb78272b..06e0046801 100644 --- a/examples/README.md +++ b/examples/README.md @@ -19,11 +19,21 @@ To get started with these examples, please follow the [Quickstart](https://nvfla ### 1.2 Deep Learning * [Hello PyTorch](./hello-pt/README.md) * Example using [NVIDIA FLARE](https://nvflare.readthedocs.io/en/main/index.html) an image classifier using [FedAvg]([FedAvg](https://arxiv.org/abs/1602.05629)) and [PyTorch](https://pytorch.org/) as the deep learning training framework. -* [Hello PyTorch with TensorBoard](./hello-pt-tb/README.md) - * Example building upon [Hello PyTorch](./hello-pt/README.md) showcasing the [TensorBoard](https://tensorflow.org/tensorboard) streaming capability from the clients to the server. * [Hello TensorFlow](./hello-tf2/README.md) * Example of using [NVIDIA FLARE](https://nvflare.readthedocs.io/en/main/index.html) an image classifier using [FedAvg]([FedAvg](https://arxiv.org/abs/1602.05629)) and [TensorFlow](https://tensorflow.org/) as the deep learning training framework. +## 2. Federated ML Experiment Tracking +* [Machine Learning Experiment Tracking via different tools](experiment-tracking/README.md) + + All examples, building upon [Hello PyTorch](./hello-pt/README.md) streaming capability from the clients to the server. + + * [Hello PyTorch with TensorBoard](experiment-tracking/hello-pt-tb) + * showcasing the [TensorBoard](https://tensorflow.org/tensorboard) support + * [Hello PyTorch with MLFlow](experiment-tracking/hello-pt-mflow) + * showcasing the [MLFlow](https://mlflow.org/) support + * [Hello PyTorch with Weights & Biases](experiment-tracking/hello-pt-wandb) + * showcasing the [WandB](https://wandb.ai) support + ## 2. FL algorithms * [Federated Learning with CIFAR-10](./cifar10/README.md) * [Simulated Federated Learning with CIFAR-10](./cifar10/cifar10-sim/README.md) diff --git a/examples/experiment-tracking/README.md b/examples/experiment-tracking/README.md new file mode 100644 index 0000000000..041683a37d --- /dev/null +++ b/examples/experiment-tracking/README.md @@ -0,0 +1,117 @@ +# Experimental Tracking + +## Tools, Sender and Receivers + +Through several example, we will show how to track and visualize experiments in real time, compare results +by leverage several experiment tracking tools. +* Tensorboard +* MLFlow +* Weights and Biases + * **Note**: user needs to signup at Weights and Biases to access service, NVFLARE will not provide the access + +During Federated Learning phase, user can choose and API syntax that they are used to, +such as APIs from one of above tools, the NVFLARE has developed component that mimic these tool's APIs. +These components are called experiment tracking LogWriters. All clients experiment logs are streamed over FL server, +where the actual experiment logs are recorded. The components that receive these logs are called Receivers. +The receiver component will leverage the experiment tracking tool and record the logs during the experiment run. + +In normal setting, we would have pairs of sender and receivers, such as +* TBWriter <-> TBReceiver +* MLFlowWriter <-> MLFlowReceiver +* WandBWriter <-> WandBReceiver + +We could also mix-match for any pairs. This allows one write the ML code using one API, +but be able to switch different experiment tracking tool(s), as matter of facts, one can use many receivers for the +same log data send from one sender. + +![Experiment Tracking writers and Receivers](experiment_tracking.jpg) + +## Experiment logs streaming + +On the client side, When writer write the metrics, instead of writing to files, it actually generates NVFLARE events +of type `analytix_log_stats`. The `ConvertToFedEvent` widget will turn the local event `analytix_log_stats` into a +fed event `fed.analytix_log_stats`, which will be delivered to the server side. + +On the server side, the `Receiver` is configured to process `fed.analytix_log_stats` events, +which writes received log data into appropriate end points. + +## Support custom experiment tracking tools + +There are many different experiment tracking tools, you might want to write a different writer and/or receiver for your needs. + +There are three things to consider develop a custom experiment tracking tool. + +**Data Type** + +Currently, we choose to support metrics, params, and text data type. If you require other data type, may sure you add +the AnalyticsDataType + +**Writer** + +implement LogWriter Interface to specify the API syntax + +**Receiver** + +Implement AnalyticsReceiver Interface, and determine how to represent different sites' log. In all three implementations +(Tensorboard, MLFlow, WandB), each site's log is represented as one run. Depending on the individual tool, the implementation +can be different. For example, Both Tensorboard and MLFLow, we simple create different runs for each client and map to the +site-name. In WandB implementation, we have to leverage multiprocess and let each run in different process. + +## Examples Overview + +We illustrate how to leverage different writers and receivers via different examples. +All examples will leverage the example hello-pt. + +[hello-pt-tb](hello-pt-tb) +* The first example shows how to use Tensorboard Tracking Tool ( both sender and receiver) +* The second example shows how to use Tensorboard Sender only, while the receivers are MLFlow +![tb](tb.png) + +[hello-pt-tb](hello-pt-mlflow) +* The first example shows how to use MLFlow Tracking Tool ( both sender and receiver) +* The second example shows how to use MLFlow Sender only, while the receivers are Tensorboard + +![mlflow_1](mlflow_2.png) +![mlflow_1](mlflow_1.png) + +[hello-pt-wandb](hello-pt-wandb) +* The example shows how to use Weights & Biases Tracking Tool ( both sender and receiver) + + +![wandb_1](wandb_1.png) + +## Setup for all examples + +Example of using [NVIDIA FLARE](https://nvflare.readthedocs.io/en/main/index.html) to train an image classifier using federated averaging ([FedAvg]([FedAvg](https://arxiv.org/abs/1602.05629))) and [PyTorch](https://pytorch.org/) as the deep learning training framework. This example also highlights the TensorBoard streaming capability from the clients to the server. + +> **_NOTE:_** This example uses the [CIFAR-10](https://www.cs.toronto.edu/~kriz/cifar.html) dataset and will load its data within the trainer code. + +### 1. Prepare venv. + +``` +python -m venv ~/nvflare-hello + +source ~/nvflare-hello/bin/activate +``` + + +### 2. Install NVIDIA FLARE + +Follow the [Installation](https://nvflare.readthedocs.io/en/main/quickstart.html) instructions. + +### 3. Install Jupyter Notebook + +``` +pip install notebook +``` + +### 4. Examples in Notebook + +For detailed examples explaination, please check the notebook + +``` +jupyter notebook experiment_tracking.ipynb +``` + + + diff --git a/examples/experiment-tracking/experiment_tracking.ipynb b/examples/experiment-tracking/experiment_tracking.ipynb new file mode 100644 index 0000000000..c9de64392d --- /dev/null +++ b/examples/experiment-tracking/experiment_tracking.ipynb @@ -0,0 +1,904 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e129ede5", + "metadata": {}, + "source": [ + "# Federated Experiment Tracking" + ] + }, + { + "cell_type": "markdown", + "id": "9bf7e391", + "metadata": {}, + "source": [ + "We like to demo federated experiment tracking via different tools in the following examples\n" + ] + }, + { + "cell_type": "markdown", + "id": "18ec76f4", + "metadata": {}, + "source": [ + "\n", + "Example of using [NVIDIA FLARE](https://nvflare.readthedocs.io/en/main/index.html) to train an image classifier using federated averaging ([FedAvg]([FedAvg](https://arxiv.org/abs/1602.05629))) and [PyTorch](https://pytorch.org/) as the deep learning training framework. \n", + "\n", + "This example also highlights the streaming capability from the clients to the server with MLFLow \n", + "\n", + "> **_NOTE:_** This example uses the [CIFAR-10](https://www.cs.toronto.edu/~kriz/cifar.html) dataset and will load its data within the trainer code.\n" + ] + }, + { + "cell_type": "markdown", + "id": "b4be1fd6", + "metadata": {}, + "source": [ + "## 0. Prerequisits\n" + ] + }, + { + "cell_type": "markdown", + "id": "b38e06c1", + "metadata": {}, + "source": [ + "Assume you have completed the followings: \n", + "* create and activate the venv\n", + "* installed NVFLARE, if not, ollow the [Installation](https://nvflare.readthedocs.io/en/main/getting_started.html#installation) instructions.\n", + "\n", + "* git clone the code NVFLARE repository \n" + ] + }, + { + "cell_type": "markdown", + "id": "58a2d6b0", + "metadata": {}, + "source": [ + "## Tensorboard" + ] + }, + { + "cell_type": "markdown", + "id": "04895127", + "metadata": {}, + "source": [ + "We have two jobs under hello-pt-tb\n", + "* hello-tb\n", + "* hello-tb-mix\n", + "\n", + "hello-tb -- demonstrates the TBWriter and TBAnalyticsReceiver \n", + "hello-tb-mix -- demonstrate the same code in previous job (hello-tb), can be displayed in MLFlow and WandB in addition to Tensorboard, by adding MLFLow and WandB Receiver. \n", + "\n", + "Since these two jobs have the same custom code, the only difference is the configurations, we move the custom shared directory to allow both jobs using the same code. By doing this, you need to specify the PYTHONPATH to include this custom directory. \n", + "\n", + "**_note_** if you don't have ```tree``` installed, you can change the beflow command to ``` ls -al hello-pt-tb/*```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "429181a0", + "metadata": {}, + "outputs": [], + "source": [ + "%%bash \n", + "tree hello-pt-tb" + ] + }, + { + "cell_type": "markdown", + "id": "927c34be", + "metadata": {}, + "source": [ + "### Experiment Tracking with Tensorboard" + ] + }, + { + "cell_type": "markdown", + "id": "d56e4870", + "metadata": {}, + "source": [ + "Go to terminal and install additional requirements\n", + "\n", + "```\n", + "pip3 install torch torchvision tensorboard\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "f6a2c76a", + "metadata": {}, + "source": [ + "#### Configurations" + ] + }, + { + "cell_type": "markdown", + "id": "bbca0050", + "metadata": {}, + "source": [ + "**Client Config**\n", + "```\n", + " \"components\": [\n", + " {\n", + " \"id\": \"pt_learner\",\n", + " \"path\": \"pt_learner.PTLearner\",\n", + " \"args\": {\n", + " \"lr\": 0.01,\n", + " \"epochs\": 5,\n", + " \"analytic_sender_id\": \"log_writer\"\n", + " }\n", + " },\n", + " {\n", + " \"id\": \"log_writer\",\n", + " \"path\": \"nvflare.app_opt.tracking.tb.tb_writer.TBWriter\",\n", + " \"args\": {\"event_type\": \"analytix_log_stats\"}\n", + " },\n", + " {\n", + " \"id\": \"event_to_fed\",\n", + " \"name\": \"ConvertToFedEvent\",\n", + " \"args\": {\"events_to_convert\": [\"analytix_log_stats\"], \"fed_event_prefix\": \"fed.\"}\n", + " }\n", + " ]\n", + " ```\n", + " Note PTLearner requires \"analytic_sender_id\", this os the LogWriter Component id, for backward compatibility reason, we did not change the argument name, so existing code doesn't need to change the configurable. \n", + " \n", + " **Server Config**\n", + " \n", + " ```\n", + " \"components\": [\n", + " \n", + " ... ...\n", + " \n", + " {\n", + " \"id\": \"tb_analytics_receiver\",\n", + " \"name\": \"TBAnalyticsReceiver\",\n", + " \"args\": {\"events\": [\"fed.analytix_log_stats\"]}\n", + " }\n", + " ],\n", + " \n", + " ```\n", + " \n", + " On the server side, we registered TBAnalyticsReceiver\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "fb33f760", + "metadata": {}, + "source": [ + "#### Run the experiment\n", + "\n", + "first change directory to examples/experiment_tracking\n", + "\n", + "``` \n", + "cd example/experiment_tracking\n", + "\n", + "```\n", + "then, use nvflare simulator to run the hello-examples" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e2b5579b", + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "PYTHONPATH=$PYTHONPATH:$(pwd)/hello-pt-tb/custom\n", + "nvflare simulator -w /tmp/nvflare/ -n 2 -t 2 hello-pt-tb/hello-tb" + ] + }, + { + "cell_type": "markdown", + "id": "dbeeb5d2", + "metadata": {}, + "source": [ + "#### View Results\n", + "\n", + "**Tensorboard View**\n", + "\n", + "from terminal: \n", + "```\n", + "tensorboard --logdir=/tmp/nvflare/simulate_job/tb_events\n", + "TensorFlow installation not found - running with reduced feature set.\n", + "\n", + "NOTE: Using experimental fast data loading logic. To disable, pass\n", + " \"--load_fast=false\" and report issues on GitHub. More details:\n", + " https://github.com/tensorflow/tensorboard/issues/4784\n", + "\n", + "Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all\n", + "TensorBoard 2.11.0 at http://localhost:6007/ (Press CTRL+C to quit)\n", + "\n", + "```\n", + "then open broser with http://localhost:6007/ URL\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9672a3de", + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "\n", + "tensorboard --logdir=/tmp/nvflare/simulate_job/tb_events" + ] + }, + { + "cell_type": "markdown", + "id": "abdb4714", + "metadata": {}, + "source": [ + "## Tensorboard with different receivers\n", + "\n", + "Let's assume we would like to use MLFLow or Weights & Biases except we don't want to re-rewrite the code in order to capture the metrics. With NVFLARE, this is really easy, All you need to do is add two the needed receiver. You can add both MLFlow and Weights & Biases receivers if you like. \n", + "\n", + "In the following example hello-tb-mix, we just do that. \n", + "\n", + "There is no change in the custom code and client configuration. However, we did replace the TBAnalyticReceiver with MLFLow Receiver and WandB Receiver on the server configuration \n", + "\n", + "**Server Config**\n", + "\n", + "Details of the configurations will be explained in MLFlow example. Here we only to demonstrate you can use them without code changes\n", + "\n", + "\n", + "**_MLflow Recevier_**\n", + "\n", + "```\n", + "\n", + " {\n", + " \"id\": \"mlflow_receiver\",\n", + " \"path\": \"nvflare.app_opt.tracking.mlflow.mlflow_receiver.MLFlowReceiver\",\n", + " \"args\": {\n", + " \"kwargs\": {\n", + " \"experiment_name\": \"hello-pt-experiments\"\n", + " },\n", + " \"artifact_location\": \"artifacts\"\n", + " }\n", + " },\n", + "``` \n", + "\n", + "You can also add WandB receiver if you have Weights and Biases Account. \n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d94e9e52", + "metadata": {}, + "outputs": [], + "source": [ + "%%bash \n", + "\n", + "pip3 install mlflow" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b32a7438", + "metadata": {}, + "outputs": [], + "source": [ + "%%bash \n", + "# keep track of original python to avoid mixup in different examples\n", + "ORIGIN_PATH=$PYTHONPATH\n", + "echo $ORIGIN_PATH" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "52fefe37", + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "%%bash\n", + "PYTHONPATH=$ORIGIN_PATH:$( pwd )/hello-pt-tb/custom \n", + "echo $PYTHONPATH\n", + "nvflare simulator -w /tmp/nvflare/ -n 2 -t 2 hello-pt-tb/hello-tb-mix" + ] + }, + { + "cell_type": "markdown", + "id": "0ba6b081", + "metadata": {}, + "source": [ + "The result for MLFlow experiment run can be found in \n", + "\n", + "```\n", + "/tmp/nvflare/mlruns\n", + "```\n", + "\n", + "How to view the result, we will leave to the MLFLow examples to discuss\n" + ] + }, + { + "cell_type": "markdown", + "id": "7faa6d7c", + "metadata": {}, + "source": [ + "## MLFLOW \n", + "\n", + "We have two jobs under hello-pt-mlflow\n", + "* hello-mlflow\n", + "* hello-mlflow-mix\n", + "\n", + "hello-mlflow -- demonstrates the MLFlowWriter and MLFLowReceiver \n", + "hello-mlflow-mix -- demonstrate the same code in hello-mlflow, can be displayed in Tensorboard and WandB in addition to MLFlow, by adding Tensorboard and WandB Receiver. \n", + "\n", + "Since these two jobs have the same custom code, the only difference is the configurations, we move the custom shared directory to allow both jobs using the same code. By doing this, you need to specify the PYTHONPATH to include this custom directory. \n", + "\n", + "**_note_** if you don't have ```tree``` installed, you can change the beflow command to ``` ls -al hello-pt-mlflow/*```\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11af95cb", + "metadata": {}, + "outputs": [], + "source": [ + "%%bash \n", + "tree hello-pt-mlflow" + ] + }, + { + "cell_type": "markdown", + "id": "d16f62d5", + "metadata": {}, + "source": [ + "### Experiment Tracking with MLFlow\n", + "\n", + "First Install requirements, skip this step if you have already installed the requirement.\n", + "```\n", + "pip3 install mlflow\n", + "```\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "85b2a1d7", + "metadata": {}, + "outputs": [], + "source": [ + "%%bash \n", + "\n", + "pip3 install mlflow" + ] + }, + { + "cell_type": "markdown", + "id": "f1631ba2", + "metadata": {}, + "source": [ + "### Configuration\n", + "\n", + "**Client Config**\n", + "\n", + "```\n", + " \"components\": [\n", + " {\n", + " \"id\": \"pt_learner\",\n", + " \"path\": \"pt_learner.PTLearner\",\n", + " \"args\": {\n", + " \"lr\": 0.01,\n", + " \"epochs\": 5,\n", + " \"analytic_sender_id\": \"mlflow_writer\"\n", + " }\n", + " },\n", + " {\n", + " \"id\": \"mlflow_writer\",\n", + " \"path\": \"nvflare.app_opt.tracking.mlflow.mlflow_writer.MLFlowWriter\",\n", + " \"args\": {\"event_type\": \"analytix_log_stats\"}\n", + " },\n", + " {\n", + " \"id\": \"event_to_fed\",\n", + " \"name\": \"ConvertToFedEvent\",\n", + " \"args\": {\"events_to_convert\": [\"analytix_log_stats\"], \"fed_event_prefix\": \"fed.\"}\n", + " }\n", + " ]\n", + "```\n", + "\n", + "to use MLflow API syntax, we need to register with MLFlowSender\n", + "\n", + "\n", + "**Server Config**\n", + "\n", + " in addition to the other normal configuration for training, we need to add the following component to handle\n", + " the streamed events. \n", + " \n", + " If the MLfLow tracking server is used, we need to specify the tracking URL, \n", + " If the MLflow tracking server is not user, we don't need to specify tracking URL in the argument. \n", + " \n", + " **with tracking server**\n", + " \n", + "``` \n", + " {\n", + " \"id\": \"mlflow_receiver\",\n", + " \"path\": \"nvflare.app_opt.tracking.mlflow.mlflow_receiver.MLFlowReceiver\",\n", + " \"args\": {\n", + " \"kwargs\": {\"experiment_name\": \"hello-pt-experiments\"},\n", + " \"artifact_location\": \"artifacts\",\n", + " \"tracking_uri\" : \"http://:5000\"\n", + " }\n", + " }\n", + "``` \n", + " **without tracking server**\n", + "``` \n", + " \n", + " {\n", + " \"id\": \"mlflow_receiver\",\n", + " \"path\": \"nvflare.app_opt.tracking.mlflow.mlflow_receiver.MLFlowReceiver\",\n", + " \"args\": {\n", + " \"kwargs\": {\"experiment_name\": \"hello-pt-experiments\"},\n", + " \"artifact_location\": \"artifacts\",\n", + " }\n", + " }\n", + "```\n", + "\n", + "\n", + "You can set the experiment name in the configuration. You can setup the relative artifacts location ( no need to precreate it). The artifact location is only used for log text. it is not used for parameters and metrics\n", + "\n", + "\n", + "**experiment logging code changes**\n", + "\n", + "Different from Tensorboard SummaryWriter API syntax, where add_scalar() or add_scalars() were used, there we the MLFLow Writer follows the MLFlow API with log_params(), log_metrics() \n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "8284b4a2", + "metadata": {}, + "source": [ + "#### MLFlow Tracking Server\n", + " \n", + "MLFLow Tracking Server can be setup and deployed separately. For example, in Azure ML Workspace, the MLFlow tracking server is already setup, all one needs is to find out the tracking URL\n", + " \n", + "In this example, we will setup a simple tracking server with SQLite database: \n", + "\n", + "```\n", + "mlflow server --backend-store-uri=sqlite:///mlrunsdb15.db --host localhost --port 5000\n", + "\n", + "```\n", + "the user then can go to http://localhost:5000 to monitoring the experiments during job run\n", + " \n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "6fe3165d", + "metadata": {}, + "source": [ + "#### Run the experiment\n", + "\n", + "Use nvflare simulator to run the hello-mlflow. Recall that we have move the custom code in the a shared location, we need to set PYTHONPATH so the simulator can find it. \n", + "\n", + "First cd to `examples/experiment_tracking` directory\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c8f08cef", + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "\n", + "PYTHONPATH=$ORIGIN_PATH:$( pwd )/hello-pt-mlflow/custom \n", + "echo $PYTHONPATH\n", + "\n", + "nvflare simulator -w /tmp/nvflare/ -n 2 -t 2 hello-pt-mlflow/hello-mlflow" + ] + }, + { + "cell_type": "markdown", + "id": "9e1b9f60", + "metadata": {}, + "source": [ + "#### Runing experiments without tracking server and tracking URL\n", + "\n", + "if we don't specify tracking URL and no tracking server. \n", + "\n", + "\n", + "```\n", + "\n", + " {\n", + " \"id\": \"mlflow_receiver\",\n", + " \"path\": \"nvflare.app_opt.tracking.mlflow.mlflow_receiver.MLFlowReceiver\",\n", + " \"args\": {\n", + " \"kwargs\": {\"experiment_name\": \"hello-pt-experiments\"},\n", + " \"artifact_location\": \"artifacts\",\n", + " }\n", + " }\n", + "```\n", + "we can simply run the experiments as before. Meanwhile, we can track the progress by the following command\n", + "(notice our workspace is point to /tmp/nvflare) \n", + "\n", + "\n", + "**mlflow ui --backend-store-uri=/tmp/nvflare/mlrun**\n", + "\n", + "\n", + "run above from terminal ( it doesn't work running from Notebook)\n", + "```\n", + " mlflow ui --backend-store-uri=/tmp/nvflare/mlruns\n", + " \n", + "[2023-01-05 15:30:38 -0800] [71735] [INFO] Starting gunicorn 20.1.0\n", + "[2023-01-05 15:30:38 -0800] [71735] [INFO] Listening at: http://127.0.0.1:5000 (71735)\n", + "[2023-01-05 15:30:38 -0800] [71735] [INFO] Using worker: sync\n", + "[2023-01-05 15:30:38 -0800] [71737] [INFO] Booting worker with pid: 71737\n", + "[2023-01-05 15:30:38 -0800] [71738] [INFO] Booting worker with pid: 71738\n", + "[2023-01-05 15:30:38 -0800] [71739] [INFO] Booting worker with pid: 71739\n", + "[2023-01-05 15:30:38 -0800] [71740] [INFO] Booting worker with pid: 71740\n", + "\n", + "```\n", + "\n", + "then user should open http://127.0.0.1:5000 via browser check the results\n" + ] + }, + { + "cell_type": "markdown", + "id": "d8dc31ce", + "metadata": {}, + "source": [ + "#### View Result\n", + "\n", + "* No Tracking Server\n", + "\n", + " From terminal: \n", + "\n", + "```\n", + "mlflow ui --backend-store-uri=/tmp/nvflare/mlruns\n", + "```\n", + "\n", + "Then, look at the URL in browser http://localhost:5000/\n", + "\n", + "* With Tracking Server\n", + "\n", + " look at the URL in browser http://localhost:5000/\n" + ] + }, + { + "cell_type": "markdown", + "id": "1ffc9481", + "metadata": {}, + "source": [ + "### MLFlow with different receivers\n", + "\n", + "Similar to hello-tb-mix job, let's assume we would like to use Tensorboard or Weights & Biases except we don't want to re-rewrite the code in order to capture the metrics. We will need to do is add two the needed receiver. You can add both Tensorboard and Weights & Biases receivers if you like.\n", + "\n", + "There is no change in the custom code and client configuration. However, we did replace the MLReceiver with TBAnalyticsReceiver and WandB Receiver on the server configuration\n", + "\n", + "**Server Config**\n", + "\n", + "Details of the configurations will be explained in Tensorboard example. Here we only to demonstrate you can use them without code changes\n", + "\n", + "Tensorboard Recevier\n", + "\n", + "```\n", + " {\n", + " \"id\": \"tb_analytics_receiver\",\n", + " \"name\": \"TBAnalyticsReceiver\",\n", + " \"args\": {\"events\": [\"fed.analytix_log_stats\"]}\n", + " },\n", + " \n", + "```\n", + "you can also add WandB if you have Weights& Biases account. \n", + " \n", + "Before we run the job, we will need to install the additional requirements ( skip if you have done it)\n", + "\n", + "```\n", + "pip3 install torch torchvision tensorboard \n", + "\n", + "```\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5a9c7440", + "metadata": {}, + "outputs": [], + "source": [ + "%%bash \n", + "\n", + "pip3 install torch torchvision tensorboard\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c22f695d", + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "\n", + "PYTHONPATH=$ORIGIN_PATH:$( pwd )/hello-pt-mlflow/custom \n", + "echo $PYTHONPATH\n", + "\n", + "nvflare simulator -w /tmp/nvflare/ -n 2 -t 2 hello-pt-mlflow/hello-mlflow-mix" + ] + }, + { + "cell_type": "markdown", + "id": "36936541", + "metadata": {}, + "source": [ + "Then you view result via Tensorboard and WandB \n" + ] + }, + { + "cell_type": "markdown", + "id": "bb9aec11", + "metadata": {}, + "source": [ + "## Weights and Biases\n", + "\n", + "hello-wandb -- demonstrates the WandBWriter and WandBReceiver, but similar to earlier example, you add additional receiver for Tensorboard Receiver or MLFLowReceiver\n", + "\n", + "**_Note_** Weights and Biases (W&B or WandB) requires registratio on their website. Its free for individual personal and open source use. But not not free for commercial or team use. \n", + "\n", + "**Assuming you have the account at W&B and already logins. You can follow the examples**\n", + "\n", + "First install the wandb \n", + "\n", + "```\n", + "pip3 install wandb\n", + "```\n" + ] + }, + { + "cell_type": "markdown", + "id": "03cd1cc8", + "metadata": {}, + "source": [ + "### Experiments with W&B\n", + "\n", + "This example, we should WandB Writer and Receiver to track experiments. We can also use mixed receivers such as Tensorboard Receiver and MLFLow Reciever. But the process is the same and there is no need to repeat.\n", + "\n", + "**Client Config**\n", + "\n", + "```\n", + " \"components\": [\n", + " {\n", + " \"id\": \"pt_learner\",\n", + " \"path\": \"pt_learner.PTLearner\",\n", + " \"args\": {\n", + " \"lr\": 0.01,\n", + " \"epochs\": 5,\n", + " \"analytic_sender_id\": \"log_writer\"\n", + " }\n", + " },\n", + " {\n", + " \"id\": \"log_writer\",\n", + " \"path\": \"nvflare.app_opt.tracking.wandb.wandb_writer.WandBWriter\",\n", + " \"args\": {\"event_type\": \"analytix_log_stats\"}\n", + " },\n", + " {\n", + " \"id\": \"event_to_fed\",\n", + " \"name\": \"ConvertToFedEvent\",\n", + " \"args\": {\"events_to_convert\": [\"analytix_log_stats\"], \"fed_event_prefix\": \"fed.\"}\n", + " }\n", + " ]\n", + "```\n", + "\n", + "Here we use W&B log() API syntax, using WandBWriter. \n", + "\n", + "\n", + "\n", + "**Server Config**\n", + " \n", + "WandB Receiver\n", + "\n", + "```\n", + " {\n", + " \"id\": \"wandb_receiver\",\n", + " \"path\": \"integration.wandb.wandb_receiver.WandBReceiver\",\n", + " \"args\": {\n", + " \"mode\": \"offline\",\n", + " \"config\": {\n", + " \"architecture\": \"CNN\",\n", + " \"dataset_id\": \"CIFAR10\",\n", + " \"momentum\": 0.9,\n", + " \"optimizer\": \"SGD\",\n", + " \"learning rate\": 0.01,\n", + " \"epochs\": 5\n", + " },\n", + "\n", + " \"kwargs\" : {\n", + " \"project\": \"hello-pt-wandb\",\n", + " \"notes\": \"tweak baseline\",\n", + " \"tags\": [\"baseline\", \"paper1\"],\n", + " \"group\": \"FL Experiment-1\",\n", + " \"job_type\": \"train-validate\"\n", + " }\n", + " }\n", + " }\n", + "``` \n", + "\n", + "In Weights and Biases, you can specify the init() project anr run related information specified in **kwargs**\" argument. the key of the argument must much the WandB init() API. Here you can add project, notes, tags etc. \n", + "\n", + "You can also set the configuration parameters related to the experiments (whatever you think its important)\n", + "\n", + "\n", + "The **\"mode\"** can be either: **\"online\"**, **\"offline\"** or **\"disabled\"** ( test only). \n", + "\n", + "If the mode is set to be online, the metrics will directly send to Weights & Biases hosted website, assuming you have the open the account and logged in. \n", + "\n", + "If the mode is set to be offline, the metrics will be written to the file and sync to the W&B Website. \n", + "\n", + "Now before run the job-mix example, we need to install additional requirements for mlflow and WandB, then run the job. ( skip this step if you already have them installed) \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "054df762", + "metadata": {}, + "outputs": [], + "source": [ + "%%bash \n", + "pip3 install wandb" + ] + }, + { + "cell_type": "markdown", + "id": "a70cb537", + "metadata": {}, + "source": [ + "Change the directory to ```example/experiment_tracking``` directory. Now run the example via simulator\n", + "\n", + "Make sure the PYTHONPATH doesn contains other the same classes from previous example: \n", + "\n", + "```\n", + "PYTHONPATH=ORIGIN_PATH\n", + "```\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d111a15c", + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "PYTHONPATH=ORIGIN_PATH" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e9059ace", + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "\n", + "nvflare simulator -w /tmp/nvflare/ -n 2 -t 2 hello-pt-wandb\n" + ] + }, + { + "cell_type": "markdown", + "id": "b6d00295", + "metadata": {}, + "source": [ + "When finish success in the **offline** mode, you will seen something like this\n", + "```\n", + "wandb: Waiting for W&B process to finish... (success).\n", + "wandb: Waiting for W&B process to finish... (success).\n", + "wandb: \n", + "wandb: Run history:\n", + "wandb: train_loss █▆▆▆▄▄▃▅▄▄▄▆▅▃▄▄▄▃▄▃▄▄▄▄▃▃▂▄▂▂▃▄▂▄▁▁▃▂▂▃\n", + "wandb: validation_accuracy ▁\n", + "wandb: \n", + "wandb: Run summary:\n", + "wandb: train_loss 0.5315\n", + "wandb: validation_accuracy 0.4926\n", + "wandb: \n", + "wandb: \n", + "wandb: Run history:\n", + "wandb: train_loss █▇▆▅▄▅▅▄▅▅▃▄▅▅▂▅▃▃▃▃▄▃▃▄▃▃▁▃▄▃▄▃▄▂▂▁▁▃▂▂\n", + "wandb: validation_accuracy ▁\n", + "wandb: \n", + "wandb: Run summary:\n", + "wandb: train_loss 0.90587\n", + "wandb: validation_accuracy 0.4888\n", + "wandb: \n", + "wandb: You can sync this run to the cloud by running:\n", + "wandb: wandb sync /tmp/nvflare/wandb/offline-run-20230108_214713-3m98v39x\n", + "wandb: You can sync this run to the cloud by running:\n", + "wandb: wandb sync /tmp/nvflare/wandb/offline-run-20230108_214713-tfyfivqt\n", + "wandb: Find logs at: ./wandb/offline-run-20230108_214713-tfyfivqt/logs\n", + "wandb: Find logs at: ./wandb/offline-run-20230108_214713-3m98v39x/logs\n", + "```\n", + "\n", + "You can follow the command to sync result to W&B with \n", + "\n", + "```\n", + "wandb sync \n", + "```\n", + "then you can login to the W&B website to view the result\n" + ] + }, + { + "cell_type": "markdown", + "id": "534d7879", + "metadata": {}, + "source": [ + "#### Trouble shoorting\n", + "\n", + "Since the WandB run for each client is implemented as multiprocess, when you interrupt the job or job failed, not all the process are cleanly shutdown. make sure you check if there are still process running before you make the next run. \n", + "\n", + "One way to check is simply check nvflare simular process is running or not. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "46a9f2cb", + "metadata": {}, + "outputs": [], + "source": [ + "%%bash \n", + "ps -eaf | grep nvflare " + ] + }, + { + "cell_type": "markdown", + "id": "c6e9e4a4", + "metadata": {}, + "source": [ + "kill the remain jobs. In some cases, we found it helpful by simply remove the WandB out directory to clean up from previous run. For example\n", + "\n", + "```\n", + "rm /tmp/nvflare/wandb\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3574be5b", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/experiment-tracking/experiment_tracking.jpg b/examples/experiment-tracking/experiment_tracking.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2a52d1bbd2276c5a62bb3bf3ba5b3ee348ad9d51 GIT binary patch literal 87042 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 oXwc8R;luNV$ Shareable: + params = {} + params.update({"learning_rate": self.lr, "momentum": 0.8, "loss": "CrossEntropyLoss"}) + self.writer.log_params(params) + self.writer.set_tags({"local training client": fl_ctx.get_identity_name()}) + + # Get model weights + try: + dxo = from_shareable(data) + except: + self.log_error(fl_ctx, "Unable to extract dxo from shareable.") + return make_reply(ReturnCode.BAD_TASK_DATA) + + # Ensure data kind is weights. + if not dxo.data_kind == DataKind.WEIGHTS: + self.log_error(fl_ctx, f"data_kind expected WEIGHTS but got {dxo.data_kind} instead.") + return make_reply(ReturnCode.BAD_TASK_DATA) + + # Convert weights to tensor. Run training + torch_weights = {k: torch.as_tensor(v) for k, v in dxo.data.items()} + # Set the model weights + self.model.load_state_dict(state_dict=torch_weights) + self.local_train(fl_ctx, abort_signal) + + # Check the abort_signal after training. + # local_train returns early if abort_signal is triggered. + if abort_signal.triggered: + return make_reply(ReturnCode.TASK_ABORTED) + + # Save the local model after training. + self.save_local_model(fl_ctx) + + # Get the new state dict and send as weights + new_weights = self.model.state_dict() + new_weights = {k: v.cpu().numpy() for k, v in new_weights.items()} + + outgoing_dxo = DXO( + data_kind=DataKind.WEIGHTS, data=new_weights, meta={MetaKey.NUM_STEPS_CURRENT_ROUND: self.n_iterations} + ) + return outgoing_dxo.to_shareable() + + def local_train(self, fl_ctx, abort_signal): + # Basic training + for epoch in range(self.epochs): + self.model.train() + running_loss = 0.0 + for i, batch in enumerate(self.train_loader): + if abort_signal.triggered: + return + + images, labels = batch[0].to(self.device), batch[1].to(self.device) + self.optimizer.zero_grad() + + predictions = self.model(images) + cost = self.loss(predictions, labels) + cost.backward() + self.optimizer.step() + + running_loss += cost.cpu().detach().numpy() / images.size()[0] + if i % 3000 == 0: + self.log_info( + fl_ctx, f"Epoch: {epoch}/{self.epochs}, Iteration: {i}, " f"Loss: {running_loss/3000}" + ) + running_loss = 0.0 + self.writer.log_text(f"last running_loss reset at '{len(self.train_loader) * epoch + i}' step", "running_loss_reset.txt") + + # Stream training loss at each step + current_step = len(self.train_loader) * epoch + i + self.writer.log_metrics({"train_loss": cost.item(), "running_loss": running_loss}, current_step) + + # Stream validation accuracy at the end of each epoch + metric = self.local_validate(abort_signal) + self.writer.log_metric("validation_accuracy", metric, epoch) + + def get_model_for_validation(self, model_name: str, fl_ctx: FLContext) -> Shareable: + run_dir = fl_ctx.get_engine().get_workspace().get_run_dir(fl_ctx.get_job_id()) + models_dir = os.path.join(run_dir, PTConstants.PTModelsDir) + if not os.path.exists(models_dir): + return None + model_path = os.path.join(models_dir, PTConstants.PTLocalModelName) + + self.persistence_manager = PTModelPersistenceFormatManager( + data=torch.load(model_path), default_train_conf=self.default_train_conf + ) + ml = self.persistence_manager.to_model_learnable(exclude_vars=self.exclude_vars) + + # Get the model parameters and create dxo from it + dxo = model_learnable_to_dxo(ml) + return dxo.to_shareable() + + def validate(self, data: Shareable, fl_ctx: FLContext, abort_signal: Signal) -> Shareable: + model_owner = "?" + try: + try: + dxo = from_shareable(data) + except: + self.log_error(fl_ctx, "Error in extracting dxo from shareable.") + return make_reply(ReturnCode.BAD_TASK_DATA) + + # Ensure data_kind is weights. + if not dxo.data_kind == DataKind.WEIGHTS: + self.log_exception(fl_ctx, f"DXO is of type {dxo.data_kind} but expected type WEIGHTS.") + return make_reply(ReturnCode.BAD_TASK_DATA) + + if isinstance(dxo.data, ModelLearnable): + dxo.data = dxo.data[ModelLearnableKey.WEIGHTS] + + # Extract weights and ensure they are tensor. + model_owner = data.get_header(AppConstants.MODEL_OWNER, "?") + weights = {k: torch.as_tensor(v, device=self.device) for k, v in dxo.data.items()} + + self.model.load_state_dict(weights) + + # Get validation accuracy + val_accuracy = self.local_validate(abort_signal) + if abort_signal.triggered: + return make_reply(ReturnCode.TASK_ABORTED) + + self.log_info( + fl_ctx, + f"Accuracy when validating {model_owner}'s model on" + f" {fl_ctx.get_identity_name()}" + f"s data: {val_accuracy}", + ) + + dxo = DXO(data_kind=DataKind.METRICS, data={"val_acc": val_accuracy}) + return dxo.to_shareable() + except: + self.log_exception(fl_ctx, f"Exception in validating model from {model_owner}") + return make_reply(ReturnCode.EXECUTION_EXCEPTION) + + def local_validate(self, abort_signal): + self.model.eval() + correct = 0 + total = 0 + with torch.no_grad(): + for i, (images, labels) in enumerate(self.test_loader): + if abort_signal.triggered: + return 0 + + images, labels = images.to(self.device), labels.to(self.device) + output = self.model(images) + + _, pred_label = torch.max(output, 1) + + correct += (pred_label == labels).sum().item() + total += images.size()[0] + metric = correct / float(total) + return metric + + def save_local_model(self, fl_ctx: FLContext): + run_dir = fl_ctx.get_engine().get_workspace().get_run_dir(fl_ctx.get_prop(ReservedKey.RUN_NUM)) + models_dir = os.path.join(run_dir, PTConstants.PTModelsDir) + if not os.path.exists(models_dir): + os.makedirs(models_dir) + model_path = os.path.join(models_dir, PTConstants.PTLocalModelName) + + ml = make_model_learnable(self.model.state_dict(), {}) + self.persistence_manager.update(ml) + torch.save(self.persistence_manager.to_persistence_dict(), model_path) diff --git a/examples/hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/app/custom/simple_network.py b/examples/experiment-tracking/hello-pt-mlflow/custom/simple_network.py similarity index 100% rename from examples/hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/app/custom/simple_network.py rename to examples/experiment-tracking/hello-pt-mlflow/custom/simple_network.py diff --git a/examples/hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/app/custom/test_custom.py b/examples/experiment-tracking/hello-pt-mlflow/custom/test_custom.py similarity index 100% rename from examples/hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/app/custom/test_custom.py rename to examples/experiment-tracking/hello-pt-mlflow/custom/test_custom.py diff --git a/examples/experiment-tracking/hello-pt-mlflow/hello-mlflow-mix/app/config/config_fed_client.json b/examples/experiment-tracking/hello-pt-mlflow/hello-mlflow-mix/app/config/config_fed_client.json new file mode 100644 index 0000000000..1befbef8f8 --- /dev/null +++ b/examples/experiment-tracking/hello-pt-mlflow/hello-mlflow-mix/app/config/config_fed_client.json @@ -0,0 +1,45 @@ +{ + "format_version": 2, + + "executors": [ + { + "tasks": [ + "train", + "submit_model", + "validate" + ], + "executor": { + "id": "Executor", + "path": "nvflare.app_common.executors.learner_executor.LearnerExecutor", + "args": { + "learner_id": "pt_learner" + } + } + } + ], + "task_result_filters": [ + ], + "task_data_filters": [ + ], + "components": [ + { + "id": "pt_learner", + "path": "pt_learner.PTLearner", + "args": { + "lr": 0.01, + "epochs": 5, + "analytic_sender_id": "mlflow_writer" + } + }, + { + "id": "mlflow_writer", + "path": "nvflare.app_opt.tracking.mlflow.mlflow_writer.MLFlowWriter", + "args": {"event_type": "analytix_log_stats"} + }, + { + "id": "event_to_fed", + "name": "ConvertToFedEvent", + "args": {"events_to_convert": ["analytix_log_stats"], "fed_event_prefix": "fed."} + } + ] +} diff --git a/examples/experiment-tracking/hello-pt-mlflow/hello-mlflow-mix/app/config/config_fed_server.json b/examples/experiment-tracking/hello-pt-mlflow/hello-mlflow-mix/app/config/config_fed_server.json new file mode 100644 index 0000000000..7756c40675 --- /dev/null +++ b/examples/experiment-tracking/hello-pt-mlflow/hello-mlflow-mix/app/config/config_fed_server.json @@ -0,0 +1,104 @@ +{ + "format_version": 2, + + "server": { + "heart_beat_timeout": 600 + }, + "task_data_filters": [], + "task_result_filters": [], + "components": [ + { + "id": "persistor", + "path": "nvflare.app_common.pt.pt_file_model_persistor.PTFileModelPersistor", + "args": { + "model": { + "path": "simple_network.SimpleNetwork" + } + } + }, + { + "id": "shareable_generator", + "path": "nvflare.app_common.shareablegenerators.full_model_shareable_generator.FullModelShareableGenerator", + "args": {} + }, + { + "id": "aggregator", + "path": "nvflare.app_common.aggregators.intime_accumulate_model_aggregator.InTimeAccumulateWeightedAggregator", + "args": { + "expected_data_kind": "WEIGHTS" + } + }, + { + "id": "model_locator", + "path": "nvflare.app_common.pt.pt_file_model_locator.PTFileModelLocator", + "args": { + "pt_persistor_id": "persistor" + } + }, + { + "id": "json_generator", + "path": "nvflare.app_common.widgets.validation_json_generator.ValidationJsonGenerator", + "args": {} + }, + { + "id": "mlflow_receiver", + "path": "nvflare.app_opt.tracking.mlflow.mlflow_receiver.MLFlowReceiver", + "args": { + "kwargs": {"experiment_name": "hello-pt-experiments"}, + "artifact_location": "artifacts" + } + }, + { + "id": "tb_analytics_receiver", + "name": "TBAnalyticsReceiver", + "args": {"events": ["fed.analytix_log_stats"]} + }, + { + "id": "wandb_receiver", + "path": "nvflare.app_opt.tracking.wandb.wandb_receiver.WandBReceiver", + "args": { + "mode": "offline", + "config": { + "architecture": "CNN", + "dataset_id": "CIFAR10", + "momentum": 0.9, + "optimizer": "SGD", + "learning rate": 0.01, + "epochs": 5 + }, + + "kwargs" : { + "project": "hello-pt-wandb", + "notes": "tweak baseline", + "tags": ["baseline", "paper1"], + "group": "FL Experiment-1", + "job_type": "train-validate" + } + } + } + ], + "workflows": [ + { + "id": "scatter_and_gather", + "name": "ScatterAndGather", + "args": { + "min_clients" : 2, + "num_rounds" : 1, + "start_round": 0, + "wait_time_after_min_received": 10, + "aggregator_id": "aggregator", + "persistor_id": "persistor", + "shareable_generator_id": "shareable_generator", + "train_task_name": "train", + "train_timeout": 0 + } + }, + { + "id": "cross_site_validate", + "name": "CrossSiteModelEval", + "args": { + "model_locator_id": "model_locator" + } + } + ] +} diff --git a/examples/hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/meta.json b/examples/experiment-tracking/hello-pt-mlflow/hello-mlflow-mix/meta.json similarity index 73% rename from examples/hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/meta.json rename to examples/experiment-tracking/hello-pt-mlflow/hello-mlflow-mix/meta.json index 5f87e13392..0d9198515b 100644 --- a/examples/hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/meta.json +++ b/examples/experiment-tracking/hello-pt-mlflow/hello-mlflow-mix/meta.json @@ -1,5 +1,5 @@ { - "name": "hello-pt-tb-mlflow-job1", + "name": "hello-mlflow-mix", "resource_spec": {}, "min_clients" : 2, "deploy_map": { diff --git a/examples/experiment-tracking/hello-pt-mlflow/hello-mlflow/app/config/config_fed_client.json b/examples/experiment-tracking/hello-pt-mlflow/hello-mlflow/app/config/config_fed_client.json new file mode 100644 index 0000000000..1befbef8f8 --- /dev/null +++ b/examples/experiment-tracking/hello-pt-mlflow/hello-mlflow/app/config/config_fed_client.json @@ -0,0 +1,45 @@ +{ + "format_version": 2, + + "executors": [ + { + "tasks": [ + "train", + "submit_model", + "validate" + ], + "executor": { + "id": "Executor", + "path": "nvflare.app_common.executors.learner_executor.LearnerExecutor", + "args": { + "learner_id": "pt_learner" + } + } + } + ], + "task_result_filters": [ + ], + "task_data_filters": [ + ], + "components": [ + { + "id": "pt_learner", + "path": "pt_learner.PTLearner", + "args": { + "lr": 0.01, + "epochs": 5, + "analytic_sender_id": "mlflow_writer" + } + }, + { + "id": "mlflow_writer", + "path": "nvflare.app_opt.tracking.mlflow.mlflow_writer.MLFlowWriter", + "args": {"event_type": "analytix_log_stats"} + }, + { + "id": "event_to_fed", + "name": "ConvertToFedEvent", + "args": {"events_to_convert": ["analytix_log_stats"], "fed_event_prefix": "fed."} + } + ] +} diff --git a/examples/hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/app/config/config_fed_server.json b/examples/experiment-tracking/hello-pt-mlflow/hello-mlflow/app/config/config_fed_server.json similarity index 93% rename from examples/hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/app/config/config_fed_server.json rename to examples/experiment-tracking/hello-pt-mlflow/hello-mlflow/app/config/config_fed_server.json index 4cd6dfa17d..8d4666ba36 100644 --- a/examples/hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/app/config/config_fed_server.json +++ b/examples/experiment-tracking/hello-pt-mlflow/hello-mlflow/app/config/config_fed_server.json @@ -40,18 +40,13 @@ "path": "nvflare.app_common.widgets.validation_json_generator.ValidationJsonGenerator", "args": {} }, - { - "id": "tb_analytics_receiver", - "name": "TBAnalyticsReceiver", - "args": {"events": ["fed.analytix_log_stats"]} - }, { "id": "mlflow_receiver", "path": "nvflare.app_opt.tracking.mlflow.mlflow_receiver.MLFlowReceiver", "args": { "kwargs": {"experiment_name": "hello-pt-experiments"}, "artifact_location": "artifacts" - } + } } ], "workflows": [ diff --git a/examples/experiment-tracking/hello-pt-mlflow/hello-mlflow/meta.json b/examples/experiment-tracking/hello-pt-mlflow/hello-mlflow/meta.json new file mode 100644 index 0000000000..301bbb3424 --- /dev/null +++ b/examples/experiment-tracking/hello-pt-mlflow/hello-mlflow/meta.json @@ -0,0 +1,10 @@ +{ + "name": "hello-mlflow", + "resource_spec": {}, + "min_clients" : 2, + "deploy_map": { + "app": [ + "@ALL" + ] + } +} diff --git a/examples/hello-pt-tb/README.md b/examples/experiment-tracking/hello-pt-tb/README.md similarity index 97% rename from examples/hello-pt-tb/README.md rename to examples/experiment-tracking/hello-pt-tb/README.md index 160c61146c..538f0a3441 100644 --- a/examples/hello-pt-tb/README.md +++ b/examples/experiment-tracking/hello-pt-tb/README.md @@ -1,4 +1,4 @@ -# Hello PyTorch with Tensorboard Streaming +# Hello PyTorch with Tensorboard Experiment tracking Example of using [NVIDIA FLARE](https://nvflare.readthedocs.io/en/main/index.html) to train an image classifier using federated averaging ([FedAvg]([FedAvg](https://arxiv.org/abs/1602.05629))) and [PyTorch](https://pytorch.org/) as the deep learning training framework. This example also highlights the TensorBoard streaming capability from the clients to the server. diff --git a/examples/hello-pt-tb/app/custom/pt_constants.py b/examples/experiment-tracking/hello-pt-tb/custom/pt_constants.py similarity index 100% rename from examples/hello-pt-tb/app/custom/pt_constants.py rename to examples/experiment-tracking/hello-pt-tb/custom/pt_constants.py diff --git a/examples/hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/app/custom/pt_learner.py b/examples/experiment-tracking/hello-pt-tb/custom/pt_learner.py similarity index 100% rename from examples/hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/app/custom/pt_learner.py rename to examples/experiment-tracking/hello-pt-tb/custom/pt_learner.py diff --git a/examples/hello-pt-tb/app/custom/simple_network.py b/examples/experiment-tracking/hello-pt-tb/custom/simple_network.py similarity index 100% rename from examples/hello-pt-tb/app/custom/simple_network.py rename to examples/experiment-tracking/hello-pt-tb/custom/simple_network.py diff --git a/examples/hello-pt-tb/app/custom/test_custom.py b/examples/experiment-tracking/hello-pt-tb/custom/test_custom.py similarity index 100% rename from examples/hello-pt-tb/app/custom/test_custom.py rename to examples/experiment-tracking/hello-pt-tb/custom/test_custom.py diff --git a/examples/hello-pt-tb/app/config/config_fed_client.json b/examples/experiment-tracking/hello-pt-tb/hello-tb-mix/app/config/config_fed_client.json similarity index 85% rename from examples/hello-pt-tb/app/config/config_fed_client.json rename to examples/experiment-tracking/hello-pt-tb/hello-tb-mix/app/config/config_fed_client.json index 42c01f3214..c18a5ca422 100644 --- a/examples/hello-pt-tb/app/config/config_fed_client.json +++ b/examples/experiment-tracking/hello-pt-tb/hello-tb-mix/app/config/config_fed_client.json @@ -28,12 +28,12 @@ "args": { "lr": 0.01, "epochs": 5, - "analytic_sender_id": "analytic_sender" + "analytic_sender_id": "log_writer" } }, { - "id": "analytic_sender", - "name": "AnalyticsSender", + "id": "log_writer", + "path": "nvflare.app_opt.tracking.tb.tb_writer.TBWriter", "args": {"event_type": "analytix_log_stats"} }, { diff --git a/examples/experiment-tracking/hello-pt-tb/hello-tb-mix/app/config/config_fed_server.json b/examples/experiment-tracking/hello-pt-tb/hello-tb-mix/app/config/config_fed_server.json new file mode 100644 index 0000000000..277b02b301 --- /dev/null +++ b/examples/experiment-tracking/hello-pt-tb/hello-tb-mix/app/config/config_fed_server.json @@ -0,0 +1,101 @@ +{ + "format_version": 2, + + "server": { + "heart_beat_timeout": 600 + }, + "task_data_filters": [], + "task_result_filters": [], + "components": [ + { + "id": "persistor", + "path": "nvflare.app_common.pt.pt_file_model_persistor.PTFileModelPersistor", + "args": { + "model": { + "path": "simple_network.SimpleNetwork" + } + } + }, + { + "id": "shareable_generator", + "path": "nvflare.app_common.shareablegenerators.full_model_shareable_generator.FullModelShareableGenerator", + "args": {} + }, + { + "id": "aggregator", + "path": "nvflare.app_common.aggregators.intime_accumulate_model_aggregator.InTimeAccumulateWeightedAggregator", + "args": { + "expected_data_kind": "WEIGHTS" + } + }, + { + "id": "model_locator", + "path": "nvflare.app_common.pt.pt_file_model_locator.PTFileModelLocator", + "args": { + "pt_persistor_id": "persistor" + } + }, + { + "id": "json_generator", + "path": "nvflare.app_common.widgets.validation_json_generator.ValidationJsonGenerator", + "args": {} + }, + { + "id": "mlflow_receiver", + "path": "nvflare.app_opt.tracking.mlflow.mlflow_receiver.MLFlowReceiver", + "args": { + "kwargs": { + "experiment_name": "hello-pt-experiments" + }, + "artifact_location": "artifacts" + } + }, + { + "id": "wandb_receiver", + "path": "nvflare.app_opt.tracking.wandb.wandb_receiver.WandBReceiver", + "args": { + "mode": "offline", + "config": { + "architecture": "CNN", + "dataset_id": "CIFAR10", + "momentum": 0.9, + "optimizer": "SGD", + "learning rate": 0.01, + "epochs": 5 + }, + + "kwargs" : { + "project": "hello-pt-wandb", + "notes": "tweak baseline", + "tags": ["baseline", "paper1"], + "group": "FL Experiment-1", + "job_type": "train-validate" + } + } + } + ], + "workflows": [ + { + "id": "scatter_and_gather", + "name": "ScatterAndGather", + "args": { + "min_clients" : 2, + "num_rounds" : 1, + "start_round": 0, + "wait_time_after_min_received": 10, + "aggregator_id": "aggregator", + "persistor_id": "persistor", + "shareable_generator_id": "shareable_generator", + "train_task_name": "train", + "train_timeout": 0 + } + }, + { + "id": "cross_site_validate", + "name": "CrossSiteModelEval", + "args": { + "model_locator_id": "model_locator" + } + } + ] +} diff --git a/examples/experiment-tracking/hello-pt-tb/hello-tb-mix/meta.json b/examples/experiment-tracking/hello-pt-tb/hello-tb-mix/meta.json new file mode 100644 index 0000000000..c58996c281 --- /dev/null +++ b/examples/experiment-tracking/hello-pt-tb/hello-tb-mix/meta.json @@ -0,0 +1,10 @@ +{ + "name": "hello-tb-mix", + "resource_spec": {}, + "min_clients" : 2, + "deploy_map": { + "app": [ + "@ALL" + ] + } +} diff --git a/examples/hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/app/config/config_fed_client.json b/examples/experiment-tracking/hello-pt-tb/hello-tb/app/config/config_fed_client.json similarity index 85% rename from examples/hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/app/config/config_fed_client.json rename to examples/experiment-tracking/hello-pt-tb/hello-tb/app/config/config_fed_client.json index 42c01f3214..c18a5ca422 100644 --- a/examples/hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1/app/config/config_fed_client.json +++ b/examples/experiment-tracking/hello-pt-tb/hello-tb/app/config/config_fed_client.json @@ -28,12 +28,12 @@ "args": { "lr": 0.01, "epochs": 5, - "analytic_sender_id": "analytic_sender" + "analytic_sender_id": "log_writer" } }, { - "id": "analytic_sender", - "name": "AnalyticsSender", + "id": "log_writer", + "path": "nvflare.app_opt.tracking.tb.tb_writer.TBWriter", "args": {"event_type": "analytix_log_stats"} }, { diff --git a/examples/hello-pt-tb/app/config/config_fed_server.json b/examples/experiment-tracking/hello-pt-tb/hello-tb/app/config/config_fed_server.json similarity index 100% rename from examples/hello-pt-tb/app/config/config_fed_server.json rename to examples/experiment-tracking/hello-pt-tb/hello-tb/app/config/config_fed_server.json diff --git a/examples/hello-pt-tb/meta.json b/examples/experiment-tracking/hello-pt-tb/hello-tb/meta.json similarity index 80% rename from examples/hello-pt-tb/meta.json rename to examples/experiment-tracking/hello-pt-tb/hello-tb/meta.json index a33c26d86a..f0007cbedd 100644 --- a/examples/hello-pt-tb/meta.json +++ b/examples/experiment-tracking/hello-pt-tb/hello-tb/meta.json @@ -1,5 +1,5 @@ { - "name": "hello-pt-tb", + "name": "hello-tb", "resource_spec": {}, "min_clients" : 2, "deploy_map": { diff --git a/examples/experiment-tracking/hello-pt-wandb/app/config/config_fed_client.json b/examples/experiment-tracking/hello-pt-wandb/app/config/config_fed_client.json new file mode 100644 index 0000000000..f663c4d463 --- /dev/null +++ b/examples/experiment-tracking/hello-pt-wandb/app/config/config_fed_client.json @@ -0,0 +1,45 @@ +{ + "format_version": 2, + + "executors": [ + { + "tasks": [ + "train", + "submit_model", + "validate" + ], + "executor": { + "id": "Executor", + "path": "nvflare.app_common.executors.learner_executor.LearnerExecutor", + "args": { + "learner_id": "pt_learner" + } + } + } + ], + "task_result_filters": [ + ], + "task_data_filters": [ + ], + "components": [ + { + "id": "pt_learner", + "path": "pt_learner.PTLearner", + "args": { + "lr": 0.01, + "epochs": 5, + "analytic_sender_id": "log_writer" + } + }, + { + "id": "log_writer", + "path": "nvflare.app_opt.tracking.wandb.wandb_writer.WandBWriter", + "args": {"event_type": "analytix_log_stats"} + }, + { + "id": "event_to_fed", + "name": "ConvertToFedEvent", + "args": {"events_to_convert": ["analytix_log_stats"], "fed_event_prefix": "fed."} + } + ] +} diff --git a/examples/experiment-tracking/hello-pt-wandb/app/config/config_fed_server.json b/examples/experiment-tracking/hello-pt-wandb/app/config/config_fed_server.json new file mode 100644 index 0000000000..f5fb52eb1c --- /dev/null +++ b/examples/experiment-tracking/hello-pt-wandb/app/config/config_fed_server.json @@ -0,0 +1,97 @@ +{ + "format_version": 2, + + "server": { + "heart_beat_timeout": 600 + }, + "task_data_filters": [], + "task_result_filters": [], + "components": [ + { + "id": "persistor", + "path": "nvflare.app_common.pt.pt_file_model_persistor.PTFileModelPersistor", + "args": { + "model": { + "path": "simple_network.SimpleNetwork" + } + } + }, + { + "id": "shareable_generator", + "path": "nvflare.app_common.shareablegenerators.full_model_shareable_generator.FullModelShareableGenerator", + "args": {} + }, + { + "id": "aggregator", + "path": "nvflare.app_common.aggregators.intime_accumulate_model_aggregator.InTimeAccumulateWeightedAggregator", + "args": { + "expected_data_kind": "WEIGHTS" + } + }, + { + "id": "model_locator", + "path": "nvflare.app_common.pt.pt_file_model_locator.PTFileModelLocator", + "args": { + "pt_persistor_id": "persistor" + } + }, + { + "id": "json_generator", + "path": "nvflare.app_common.widgets.validation_json_generator.ValidationJsonGenerator", + "args": {} + }, + { + "id": "tb_analytics_receiver", + "name": "TBAnalyticsReceiver", + "args": {"events": ["fed.analytix_log_stats"]} + }, + { + "id": "wandb_receiver", + "path": "nvflare.app_opt.tracking.wandb.wandb_receiver.WandBReceiver", + "args": { + "mode": "offline", + + "config": { + "architecture": "CNN", + "dataset_id": "CIFAR10", + "momentum": 0.9, + "optimizer": "SGD", + "learning rate": 0.01, + "epochs": 5 + }, + + "kwargs" : { + "project": "hello-pt-wandb", + "notes": "tweak baseline", + "tags": ["baseline", "paper1"], + "group": "FL Experiment-1", + "job_type": "train-validate" + } + } + } + ], + "workflows": [ + { + "id": "scatter_and_gather", + "name": "ScatterAndGather", + "args": { + "min_clients" : 2, + "num_rounds" : 1, + "start_round": 0, + "wait_time_after_min_received": 10, + "aggregator_id": "aggregator", + "persistor_id": "persistor", + "shareable_generator_id": "shareable_generator", + "train_task_name": "train", + "train_timeout": 0 + } + }, + { + "id": "cross_site_validate", + "name": "CrossSiteModelEval", + "args": { + "model_locator_id": "model_locator" + } + } + ] +} diff --git a/examples/experiment-tracking/hello-pt-wandb/app/custom/pt_constants.py b/examples/experiment-tracking/hello-pt-wandb/app/custom/pt_constants.py new file mode 100644 index 0000000000..015ea2f5af --- /dev/null +++ b/examples/experiment-tracking/hello-pt-wandb/app/custom/pt_constants.py @@ -0,0 +1,22 @@ +# Copyright (c) 2021-2022, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +class PTConstants: + PTServerName = "server" + PTFileModelName = "FL_global_model.pt" + PTLocalModelName = "local_model.pt" + + PTModelsDir = "models" + CrossValResultsJsonFilename = "cross_val_results.json" diff --git a/examples/hello-pt-tb/app/custom/pt_learner.py b/examples/experiment-tracking/hello-pt-wandb/app/custom/pt_learner.py similarity index 96% rename from examples/hello-pt-tb/app/custom/pt_learner.py rename to examples/experiment-tracking/hello-pt-wandb/app/custom/pt_learner.py index acc5020374..3fe807dfd6 100644 --- a/examples/hello-pt-tb/app/custom/pt_learner.py +++ b/examples/experiment-tracking/hello-pt-wandb/app/custom/pt_learner.py @@ -100,10 +100,9 @@ def initialize(self, parts: dict, fl_ctx: FLContext): data=self.model.state_dict(), default_train_conf=self.default_train_conf ) - # Tensorboard streaming setup self.writer = parts.get(self.analytic_sender_id) # user configuration from config_fed_client.json - if not self.writer: # else use local TensorBoard writer only - self.writer = SummaryWriter(fl_ctx.get_prop(FLContextKey.APP_ROOT)) + if not self.writer: + raise RuntimeError("analytic_sender is not provided") def train(self, data: Shareable, fl_ctx: FLContext, abort_signal: Signal) -> Shareable: # Get model weights @@ -167,11 +166,11 @@ def local_train(self, fl_ctx, abort_signal): # Stream training loss at each step current_step = len(self.train_loader) * epoch + i - self.writer.add_scalar("train_loss", cost.item(), current_step) + self.writer.log({"train_loss": cost.item()}, current_step) # Stream validation accuracy at the end of each epoch metric = self.local_validate(abort_signal) - self.writer.add_scalar("validation_accuracy", metric, epoch) + self.writer.log({"validation_accuracy": metric}, epoch) def get_model_for_validation(self, model_name: str, fl_ctx: FLContext) -> Shareable: run_dir = fl_ctx.get_engine().get_workspace().get_run_dir(fl_ctx.get_job_id()) diff --git a/examples/experiment-tracking/hello-pt-wandb/app/custom/simple_network.py b/examples/experiment-tracking/hello-pt-wandb/app/custom/simple_network.py new file mode 100644 index 0000000000..631a6cdc0a --- /dev/null +++ b/examples/experiment-tracking/hello-pt-wandb/app/custom/simple_network.py @@ -0,0 +1,38 @@ +# Copyright (c) 2021-2022, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import torch +import torch.nn as nn +import torch.nn.functional as F + + +class SimpleNetwork(nn.Module): + def __init__(self): + super(SimpleNetwork, self).__init__() + + self.conv1 = nn.Conv2d(3, 6, 5) + self.pool = nn.MaxPool2d(2, 2) + self.conv2 = nn.Conv2d(6, 16, 5) + self.fc1 = nn.Linear(16 * 5 * 5, 120) + self.fc2 = nn.Linear(120, 84) + self.fc3 = nn.Linear(84, 10) + + def forward(self, x): + x = self.pool(F.relu(self.conv1(x))) + x = self.pool(F.relu(self.conv2(x))) + x = torch.flatten(x, 1) # flatten all dimensions except batch + x = F.relu(self.fc1(x)) + x = F.relu(self.fc2(x)) + x = self.fc3(x) + return x diff --git a/examples/experiment-tracking/hello-pt-wandb/app/custom/test_custom.py b/examples/experiment-tracking/hello-pt-wandb/app/custom/test_custom.py new file mode 100644 index 0000000000..7d0f69a68c --- /dev/null +++ b/examples/experiment-tracking/hello-pt-wandb/app/custom/test_custom.py @@ -0,0 +1,108 @@ +# Copyright (c) 2022, NVIDIA CORPORATION. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import random +from unittest.mock import patch, Mock + +import numpy +import pytest + +from nvflare.apis.shareable import Shareable +from pt_learner import PTLearner + +from nvflare.apis.dxo import DXO, DataKind +from nvflare.apis.fl_constant import ReturnCode, ReservedKey +from nvflare.apis.fl_context import FLContext +from nvflare.apis.signal import Signal + + +class TestPTLearner: + + @patch.object(PTLearner, "save_local_model") + def test_train_empty_input(self, mock_save_local_model): + fl_ctx = FLContext() + learner = PTLearner(epochs=1) + learner.initialize(parts={}, fl_ctx=fl_ctx) + + data = Shareable() + result = learner.train(data, fl_ctx=FLContext(), abort_signal=Signal()) + assert result.get_return_code() == ReturnCode.BAD_TASK_DATA + + @patch.object(PTLearner, "save_local_model") + def test_train_with_empty_input(self, mock_save_local_model): + fl_ctx = FLContext() + learner = PTLearner(epochs=1) + learner.initialize(parts={}, fl_ctx=fl_ctx) + + data = Shareable() + result = learner.train(data, fl_ctx=FLContext(), abort_signal=Signal()) + assert result.get_return_code() == ReturnCode.BAD_TASK_DATA + + @patch.object(PTLearner, "save_local_model") + def test_train_with_invalid_data_kind(self, mock_save_local_model): + fl_ctx = FLContext() + learner = PTLearner(epochs=1) + learner.initialize(parts={}, fl_ctx=fl_ctx) + + dxo = DXO(DataKind.WEIGHT_DIFF, data={"x": numpy.array([1, 2, 3])}) + result = learner.train(dxo.to_shareable(), fl_ctx=FLContext(), abort_signal=Signal()) + assert result.get_return_code() == ReturnCode.BAD_TASK_DATA + + @patch.object(PTLearner, "save_local_model") + def test_train(self, mock_save_local_model): + fl_ctx = FLContext() + learner = PTLearner(epochs=1) + learner.initialize(parts={}, fl_ctx=fl_ctx) + + dxo = DXO(data_kind=DataKind.WEIGHTS, data=learner.model.state_dict()) + result = learner.train(dxo.to_shareable(), fl_ctx=FLContext(), abort_signal=Signal()) + assert result.get_return_code() == ReturnCode.OK + + @patch.object(FLContext, "get_engine") + def test_validate_with_empty_input(self, mock_get_engine): + mock_get_engine.get_workspace = Mock() + fl_ctx = FLContext() + fl_ctx.set_prop(ReservedKey.RUN_NUM, 100) + + learner = PTLearner(epochs=1) + learner.initialize(parts={}, fl_ctx=fl_ctx) + + data = Shareable() + result = learner.validate(data, fl_ctx=fl_ctx, abort_signal=Signal()) + assert result.get_return_code() == ReturnCode.BAD_TASK_DATA + + @patch.object(FLContext, "get_engine") + def test_validate_with_invalid_data_kind(self, mock_get_engine): + mock_get_engine.get_workspace = Mock() + fl_ctx = FLContext() + fl_ctx.set_prop(ReservedKey.RUN_NUM, 100) + + learner = PTLearner(epochs=1) + learner.initialize(parts={}, fl_ctx=fl_ctx) + + dxo = DXO(DataKind.WEIGHT_DIFF, data={"x": numpy.array([1, 2, 3])}) + result = learner.validate(dxo.to_shareable(), fl_ctx=fl_ctx, abort_signal=Signal()) + assert result.get_return_code() == ReturnCode.BAD_TASK_DATA + + @patch.object(FLContext, "get_engine") + def test_validate(self, mock_get_engine): + mock_get_engine.get_workspace = Mock() + fl_ctx = FLContext() + fl_ctx.set_prop(ReservedKey.RUN_NUM, 100) + + learner = PTLearner(epochs=1) + learner.initialize(parts={}, fl_ctx=fl_ctx) + + dxo = DXO(data_kind=DataKind.WEIGHTS, data=learner.model.state_dict()) + result = learner.train(dxo.to_shareable(), fl_ctx=FLContext(), abort_signal=Signal()) + assert result.get_return_code() == ReturnCode.OK diff --git a/examples/experiment-tracking/hello-pt-wandb/meta.json b/examples/experiment-tracking/hello-pt-wandb/meta.json new file mode 100644 index 0000000000..c7a173fbef --- /dev/null +++ b/examples/experiment-tracking/hello-pt-wandb/meta.json @@ -0,0 +1,10 @@ +{ + "name": "hello-pt-wandb-job", + "resource_spec": {}, + "min_clients" : 2, + "deploy_map": { + "app": [ + "@ALL" + ] + } +} diff --git a/examples/experiment-tracking/mlflow_1.png b/examples/experiment-tracking/mlflow_1.png new file mode 100644 index 0000000000000000000000000000000000000000..5341aa246efee95aa52bae340aecd7edecd72bb1 GIT binary patch literal 128012 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 z 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 VnkAj+4A=q+MNd~hmvv4FO#qZ+)(!vw literal 0 HcmV?d00001 diff --git a/examples/experiment-tracking/mlflow_2.png b/examples/experiment-tracking/mlflow_2.png new file mode 100644 index 0000000000000000000000000000000000000000..e0d1a378f27c91bfa5b6e331764da2e904e9d2a2 GIT binary patch literal 125846 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 IV~kSkK%swQ2tX6IMU@5G(zv%cv( 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 z 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 literal 0 HcmV?d00001 diff --git a/examples/hello-pt-tb-mlflow/README.md b/examples/hello-pt-tb-mlflow/README.md deleted file mode 100644 index 0999676b6a..0000000000 --- a/examples/hello-pt-tb-mlflow/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# Hello PyTorch with MLFlow Experimental Tracking - -This example, show that one can using the existing tracker code written for Tensorboard, -but change the metrics tracking with both Tensorflow and MLFLow - -The only change compare with hello-pt-tb example is adding the following component in fed_server_config.json - -```json - { - "id": "mlflow_receiver", - "path": "nvflare.app_opt.tracking.mlflow.mlflow_receiver.MLFlowReceiver", - "args": { - "kwargs": {"experiment_name": "hello-pt-experiments"}, - "artifact_location": "artifacts" - } - } - -``` \ No newline at end of file diff --git a/examples/hello-pt-tb-mlflow/experiment_tracking.ipynb b/examples/hello-pt-tb-mlflow/experiment_tracking.ipynb deleted file mode 100644 index 154e40b59a..0000000000 --- a/examples/hello-pt-tb-mlflow/experiment_tracking.ipynb +++ /dev/null @@ -1,640 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "e129ede5", - "metadata": {}, - "source": [ - " # Hello PyTorch with MLflow" - ] - }, - { - "cell_type": "markdown", - "id": "9bf7e391", - "metadata": {}, - "source": [ - "In this example, we like to demonstrate that the example code used in hello-pt-tb with PyTorch Tensorboard tracking can be simply switch to using MLflow as experimental tracking without changing the code\n" - ] - }, - { - "cell_type": "markdown", - "id": "18ec76f4", - "metadata": {}, - "source": [ - "\n", - "Example of using [NVIDIA FLARE](https://nvflare.readthedocs.io/en/main/index.html) to train an image classifier using federated averaging ([FedAvg]([FedAvg](https://arxiv.org/abs/1602.05629))) and [PyTorch](https://pytorch.org/) as the deep learning training framework. This example also highlights the streaming capability from the clients to the server with Tensorboard SummaryWriter sender syntax, but with a MLFlow receiver\n", - "\n", - "> **_NOTE:_** This example uses the [CIFAR-10](https://www.cs.toronto.edu/~kriz/cifar.html) dataset and will load its data within the trainer code.\n" - ] - }, - { - "cell_type": "markdown", - "id": "bbca0050", - "metadata": {}, - "source": [ - "### 1. Install NVIDIA FLARE\n", - "\n", - "Follow the [Installation](https://nvflare.readthedocs.io/en/main/getting_started.html#installation) instructions.\n", - "Install additional requirements:\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e2b5579b", - "metadata": {}, - "outputs": [], - "source": [ - "%%bash\n", - "pip3 install torch torchvision tensorboard mlflow" - ] - }, - { - "cell_type": "markdown", - "id": "b8226dd7", - "metadata": {}, - "source": [ - "### 2. Change Configuration\n", - "\n", - "in fed_server_config.json\n", - "\n", - "add the following to the components\n", - "```\n", - "{\n", - " \"id\": \"mlflow_receiver\",\n", - " \"path\": \"nvflare.app_opt.tracking.mlflow.mlflow_receiver.MLFlowReceiver\",\n", - " \"args\": {\n", - " \"kwargs\": {\"experiment_name\": \"hello-pt-experiments\"},\n", - " \"artifact_location\": \"artifacts\"\n", - " }\n", - "}\n", - "```\n", - "This indicate that we are register the MLFLow Receiver in additional to the Tensorboard Receiver \n", - "\n" - ] - }, - { - "cell_type": "markdown", - "id": "6fe3165d", - "metadata": {}, - "source": [ - "\n", - "### 3. Run the experiment\n", - "\n", - "Use nvflare simulator to run the hello-examples:\n", - "\n", - "```\n", - "nvflare simulator -w /tmp/nvflare/ -n 2 -t 2 examples/hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c8f08cef", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2022-12-30 21:55:07,020 - SimulatorRunner - INFO - Create the Simulator Server.\n", - "2022-12-30 21:55:07,070 - nvflare.fuel.hci.server.hci - INFO - Starting Admin Server localhost on Port 39803\n", - "2022-12-30 21:55:07,072 - SimulatorServer - INFO - starting insecure server at localhost:41845\n", - "2022-12-30 21:55:07,074 - SimulatorRunner - INFO - Deploy the Apps.\n", - "2022-12-30 21:55:07,076 - SimulatorRunner - INFO - Create the simulate clients.\n", - "2022-12-30 21:55:07,093 - ClientManager - INFO - Client: New client site-1@127.0.0.1 joined. Sent token: 17a06432-2fe7-43ad-886a-9b97f887f35e. Total clients: 1\n", - "2022-12-30 21:55:07,093 - FederatedClient - INFO - Successfully registered client:site-1 for project simulator_server. Token:17a06432-2fe7-43ad-886a-9b97f887f35e SSID:\n", - "2022-12-30 21:55:07,110 - ClientManager - INFO - Client: New client site-2@127.0.0.1 joined. Sent token: 70848535-124b-4205-b035-7f231724f37e. Total clients: 2\n", - "2022-12-30 21:55:07,111 - FederatedClient - INFO - Successfully registered client:site-2 for project simulator_server. Token:70848535-124b-4205-b035-7f231724f37e SSID:\n", - "2022-12-30 21:55:07,111 - SimulatorRunner - INFO - Set the client status ready.\n", - "2022-12-30 21:55:07,112 - SimulatorRunner - INFO - Deploy and start the Server App.\n", - "2022-12-30 21:55:08,243 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job]: Server runner starting ...\n", - "2022-12-30 21:55:08,245 - MLFlowReceiver - INFO - Experiment with name 'hello-pt-experiments' does not exist. Creating a new experiment.\n", - "2022-12-30 21:55:08,246 - MLFlowReceiver - INFO - Experiment=\n", - "2022-12-30 21:55:08,249 - MLFlowReceiver - INFO - Experiment=\n", - "2022-12-30 21:55:08,251 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job]: starting workflow scatter_and_gather () ...\n", - "2022-12-30 21:55:08,251 - ScatterAndGather - INFO - [identity=simulator_server, run=simulate_job]: Initializing ScatterAndGather workflow.\n", - "2022-12-30 21:55:08,252 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job]: Workflow scatter_and_gather () started\n", - "2022-12-30 21:55:08,252 - ScatterAndGather - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather]: Beginning ScatterAndGather training phase.\n", - "2022-12-30 21:55:08,252 - ScatterAndGather - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather]: Round 0 started.\n", - "2022-12-30 21:55:08,252 - ScatterAndGather - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather]: scheduled task train\n", - "2022-12-30 21:55:09,115 - SimulatorClientRunner - INFO - Start the clients run simulation.\n", - "2022-12-30 21:55:10,117 - SimulatorClientRunner - INFO - Simulate Run client: site-1\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "E1230 21:55:10.118269652 159790 fork_posix.cc:76] Other threads are currently calling into gRPC, skipping fork() handlers\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2022-12-30 21:55:10,121 - SimulatorClientRunner - INFO - Simulate Run client: site-2\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "E1230 21:55:10.122527629 159791 fork_posix.cc:76] Other threads are currently calling into gRPC, skipping fork() handlers\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Files already downloaded and verified\n", - "2022-12-30 21:55:13,512 - ClientRunner - INFO - [identity=site-1, run=simulate_job]: client runner started\n", - "2022-12-30 21:55:13,512 - ClientTaskWorker - INFO - Initialize ClientRunner for client: site-1\n", - "2022-12-30 21:55:13,528 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather, peer=site-1, peer_run=simulate_job, task_name=train, task_id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e]: assigned task to client site-1: name=train, id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e\n", - "2022-12-30 21:55:13,528 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather, peer=site-1, peer_run=simulate_job, task_name=train, task_id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e]: sent task assignment to client\n", - "2022-12-30 21:55:13,529 - SimulatorServer - INFO - GetTask: Return task: train to client: site-1 (17a06432-2fe7-43ad-886a-9b97f887f35e) \n", - "Files already downloaded and verified\n", - "2022-12-30 21:55:13,529 - ClientRunner - INFO - [identity=site-2, run=simulate_job]: client runner started\n", - "2022-12-30 21:55:13,530 - ClientTaskWorker - INFO - Initialize ClientRunner for client: site-2\n", - "2022-12-30 21:55:13,540 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather, peer=site-2, peer_run=simulate_job, task_name=train, task_id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83]: assigned task to client site-2: name=train, id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83\n", - "2022-12-30 21:55:13,541 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather, peer=site-2, peer_run=simulate_job, task_name=train, task_id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83]: sent task assignment to client\n", - "2022-12-30 21:55:13,541 - SimulatorServer - INFO - GetTask: Return task: train to client: site-2 (70848535-124b-4205-b035-7f231724f37e) \n", - "2022-12-30 21:55:13,544 - Communicator - INFO - Received from simulator_server server (250515 Bytes). getTask time: 0.03078627586364746 seconds\n", - "2022-12-30 21:55:13,544 - FederatedClient - INFO - pull_task completed. Task name:train Status:True \n", - "2022-12-30 21:55:13,546 - ClientRunner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job]: got task assignment: name=train, id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e\n", - "2022-12-30 21:55:13,546 - ClientRunner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e]: invoking task executor \n", - "2022-12-30 21:55:13,546 - LearnerExecutor - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e]: Client trainer got task: train\n", - "2022-12-30 21:55:13,550 - Communicator - INFO - Received from simulator_server server (250515 Bytes). getTask time: 0.019717931747436523 seconds\n", - "2022-12-30 21:55:13,551 - FederatedClient - INFO - pull_task completed. Task name:train Status:True \n", - "2022-12-30 21:55:13,552 - ClientRunner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job]: got task assignment: name=train, id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83\n", - "2022-12-30 21:55:13,553 - ClientRunner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83]: invoking task executor \n", - "2022-12-30 21:55:13,553 - LearnerExecutor - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83]: Client trainer got task: train\n", - "2022-12-30 21:55:15,530 - PTLearner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83]: Accuracy when validating ?'s model on site-2s data: 0.096\n", - "2022-12-30 21:55:15,558 - PTLearner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e]: Accuracy when validating ?'s model on site-1s data: 0.096\n", - "2022-12-30 21:55:15,609 - PTLearner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83]: Epoch: 0/5, Iteration: 0, Loss: 2.4013899266719817e-05\n", - "2022-12-30 21:55:15,638 - PTLearner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e]: Epoch: 0/5, Iteration: 0, Loss: 2.4120797713597614e-05\n", - "2022-12-30 21:55:16,025 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:16,043 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:16,540 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:16,557 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:17,054 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:17,070 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:17,566 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:17,584 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:18,082 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:18,097 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:18,596 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:18,609 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:19,114 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:19,123 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:19,631 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:19,632 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:20,147 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:20,147 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:20,664 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:20,664 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:21,178 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:21,178 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:21,697 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:21,697 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:22,211 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:22,211 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:22,726 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:22,726 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:23,245 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:23,246 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:23,761 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:23,761 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:24,601 - PTLearner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e]: Epoch: 1/5, Iteration: 0, Loss: 1.2632161378860474e-05\n", - "2022-12-30 21:55:24,830 - PTLearner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83]: Epoch: 1/5, Iteration: 0, Loss: 1.5473701059818266e-05\n", - "2022-12-30 21:55:25,277 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:25,277 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:25,794 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:25,794 - SimulatorServer - INFO - getting AuxCommunicate request\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2022-12-30 21:55:26,312 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:26,312 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:26,831 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:26,831 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:27,351 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:27,351 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:27,873 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:27,873 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:28,391 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:28,391 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:28,909 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:28,909 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:29,425 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:29,425 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:29,944 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:29,944 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:30,466 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:30,466 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:30,985 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:30,985 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:31,509 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:31,511 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:32,023 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:32,024 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:32,545 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:32,545 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:33,573 - PTLearner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e]: Epoch: 2/5, Iteration: 0, Loss: 1.6300469636917113e-05\n", - "2022-12-30 21:55:33,611 - PTLearner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83]: Epoch: 2/5, Iteration: 0, Loss: 1.2848017116387685e-05\n", - "2022-12-30 21:55:34,065 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:34,065 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:34,581 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:34,581 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:35,101 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:35,101 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:35,620 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:35,622 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:36,151 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:36,153 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:36,671 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:36,671 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:37,193 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:37,193 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:37,711 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:37,712 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:38,225 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:38,225 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:38,741 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:38,742 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:39,261 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:39,261 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:39,776 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:39,776 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:40,297 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:40,297 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:40,813 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:40,813 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:41,337 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:41,337 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:41,856 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:41,856 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:42,867 - PTLearner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e]: Epoch: 3/5, Iteration: 0, Loss: 1.0297783960898717e-05\n", - "2022-12-30 21:55:42,960 - PTLearner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83]: Epoch: 3/5, Iteration: 0, Loss: 1.2203941742579142e-05\n", - "2022-12-30 21:55:43,372 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:43,372 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:43,888 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:43,888 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:44,410 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:44,411 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:44,927 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:44,928 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:45,448 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:45,448 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:45,970 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:45,970 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:46,487 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:46,488 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:47,007 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:47,007 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:47,527 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:47,527 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:48,043 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:48,044 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:48,559 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:48,559 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:49,076 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:49,076 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:49,598 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:49,598 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:50,113 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:50,113 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:50,635 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:50,635 - SimulatorServer - INFO - getting AuxCommunicate request\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2022-12-30 21:55:51,150 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:51,151 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:51,993 - PTLearner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e]: Epoch: 4/5, Iteration: 0, Loss: 1.4308373133341471e-05\n", - "2022-12-30 21:55:52,015 - PTLearner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83]: Epoch: 4/5, Iteration: 0, Loss: 1.1736134688059489e-05\n", - "2022-12-30 21:55:52,672 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:52,673 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:53,197 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:53,198 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:53,713 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:53,713 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:54,227 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:54,227 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:54,745 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:54,745 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:55,261 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:55,261 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:55,774 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:55,774 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:56,288 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:56,288 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:56,803 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:56,804 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:57,320 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:57,320 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:57,840 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:57,840 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:58,364 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:58,364 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:58,879 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:58,879 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:59,403 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:59,403 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:59,927 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:55:59,928 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:56:00,954 - ClientRunner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83]: finished processing task\n", - "2022-12-30 21:56:00,955 - FederatedClient - INFO - Starting to push execute result.\n", - "2022-12-30 21:56:00,955 - Communicator - INFO - Send submitUpdate to simulator_server server\n", - "2022-12-30 21:56:00,987 - SimulatorServer - INFO - received update from simulator_server_site-2_0 (250840 Bytes, 1672466160 seconds)\n", - "2022-12-30 21:56:00,987 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather, peer=site-2, peer_run=simulate_job]: got result from client site-2 for task: name=train, id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83\n", - "2022-12-30 21:56:00,988 - ScatterAndGather - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather, peer=site-2, peer_run=simulate_job, peer_rc=OK, task_name=train, task_id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83]: invoking result_received_cb ...\n", - "2022-12-30 21:56:00,988 - DXOAggregator - WARNING - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather, peer=site-2, peer_run=simulate_job, peer_rc=OK, task_name=train, task_id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83]: Aggregation_weight missing for site-2 and set to default value, 1.0 This kind of message will show 10 times at most.\n", - "2022-12-30 21:56:00,988 - ScatterAndGather - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather, peer=site-2, peer_run=simulate_job, peer_rc=OK, task_name=train, task_id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83]: Contribution from site-2 ACCEPTED by the aggregator.\n", - "2022-12-30 21:56:00,988 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather, peer=site-2, peer_run=simulate_job, peer_rc=OK, task_name=train, task_id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83]: finished processing client result by scatter_and_gather\n", - "2022-12-30 21:56:00,989 - Communicator - INFO - Received comments: simulator_server Received from site-2 (250840 Bytes, 1672466160 seconds). SubmitUpdate time: 0.03316950798034668 seconds\n", - "2022-12-30 21:56:00,989 - ClientRunner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83]: result sent to server for task: name=train, id=f221fc1d-6c70-4e32-aa00-a1fac2c4ab83\n", - "2022-12-30 21:56:00,989 - ClientTaskWorker - INFO - Finished one task run for client: site-2\n", - "2022-12-30 21:56:01,044 - ClientRunner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e]: finished processing task\n", - "2022-12-30 21:56:01,045 - FederatedClient - INFO - Starting to push execute result.\n", - "2022-12-30 21:56:01,046 - Communicator - INFO - Send submitUpdate to simulator_server server\n", - "2022-12-30 21:56:01,074 - SimulatorServer - INFO - received update from simulator_server_site-1_0 (250840 Bytes, 1672466161 seconds)\n", - "2022-12-30 21:56:01,074 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather, peer=site-1, peer_run=simulate_job]: got result from client site-1 for task: name=train, id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e\n", - "2022-12-30 21:56:01,075 - ScatterAndGather - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather, peer=site-1, peer_run=simulate_job, peer_rc=OK, task_name=train, task_id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e]: invoking result_received_cb ...\n", - "2022-12-30 21:56:01,075 - DXOAggregator - WARNING - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather, peer=site-1, peer_run=simulate_job, peer_rc=OK, task_name=train, task_id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e]: Aggregation_weight missing for site-1 and set to default value, 1.0 This kind of message will show 10 times at most.\n", - "2022-12-30 21:56:01,075 - ScatterAndGather - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather, peer=site-1, peer_run=simulate_job, peer_rc=OK, task_name=train, task_id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e]: Contribution from site-1 ACCEPTED by the aggregator.\n", - "2022-12-30 21:56:01,075 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather, peer=site-1, peer_run=simulate_job, peer_rc=OK, task_name=train, task_id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e]: finished processing client result by scatter_and_gather\n", - "2022-12-30 21:56:01,076 - Communicator - INFO - Received comments: simulator_server Received from site-1 (250840 Bytes, 1672466161 seconds). SubmitUpdate time: 0.029523372650146484 seconds\n", - "2022-12-30 21:56:01,076 - ClientRunner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=train, task_id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e]: result sent to server for task: name=train, id=f6b01c85-7ab8-4c78-a5c3-77e75b8deb0e\n", - "2022-12-30 21:56:01,077 - ClientTaskWorker - INFO - Finished one task run for client: site-1\n", - "2022-12-30 21:56:01,448 - SimulatorServer - INFO - getting AuxCommunicate request\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2022-12-30 21:56:01,448 - SimulatorServer - INFO - getting AuxCommunicate request\n", - "2022-12-30 21:56:03,018 - ClientTaskWorker - INFO - Finished one task run for client: site-2\n", - "2022-12-30 21:56:03,104 - ClientTaskWorker - INFO - Finished one task run for client: site-1\n", - "2022-12-30 21:56:05,051 - ClientTaskWorker - INFO - Finished one task run for client: site-2\n", - "2022-12-30 21:56:05,128 - ClientTaskWorker - INFO - Finished one task run for client: site-1\n", - "2022-12-30 21:56:07,071 - ClientTaskWorker - INFO - Finished one task run for client: site-2\n", - "2022-12-30 21:56:07,160 - ClientTaskWorker - INFO - Finished one task run for client: site-1\n", - "2022-12-30 21:56:08,314 - ScatterAndGather - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather]: task train exit with status TaskCompletionStatus.TIMEOUT\n", - "2022-12-30 21:56:08,315 - ScatterAndGather - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather]: Start aggregation.\n", - "2022-12-30 21:56:08,315 - DXOAggregator - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather]: aggregating 2 update(s) at round 0\n", - "2022-12-30 21:56:08,315 - ScatterAndGather - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather]: End aggregation.\n", - "2022-12-30 21:56:08,316 - ScatterAndGather - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather]: Start persist model on server.\n", - "2022-12-30 21:56:08,318 - ScatterAndGather - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather]: End persist model on server.\n", - "2022-12-30 21:56:08,318 - ScatterAndGather - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather]: Round 0 finished.\n", - "2022-12-30 21:56:08,318 - ScatterAndGather - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather]: Finished ScatterAndGather Training.\n", - "2022-12-30 21:56:08,318 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather]: Workflow: scatter_and_gather finalizing ...\n", - "2022-12-30 21:56:08,816 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather]: starting workflow cross_site_validate () ...\n", - "2022-12-30 21:56:08,816 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather]: Formatter not found. Stats will not be printed.\n", - "2022-12-30 21:56:08,816 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=scatter_and_gather]: Workflow cross_site_validate () started\n", - "2022-12-30 21:56:08,817 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate]: Beginning model validation with clients: ['site-1', 'site-2'].\n", - "2022-12-30 21:56:08,817 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate]: scheduled task submit_model\n", - "2022-12-30 21:56:08,817 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate]: Locating server models.\n", - "2022-12-30 21:56:08,819 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate]: Server models loaded: ['SRV_FL_global_model.pt'].\n", - "2022-12-30 21:56:08,819 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate]: Sending SRV_FL_global_model.pt model to all participating clients for validation.\n", - "2022-12-30 21:56:08,819 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate]: scheduled task validate\n", - "2022-12-30 21:56:09,099 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-2, peer_run=simulate_job, task_name=submit_model, task_id=04427e0e-9742-4e28-b121-7d204ab4def7]: assigned task to client site-2: name=submit_model, id=04427e0e-9742-4e28-b121-7d204ab4def7\n", - "2022-12-30 21:56:09,099 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-2, peer_run=simulate_job, task_name=submit_model, task_id=04427e0e-9742-4e28-b121-7d204ab4def7]: sent task assignment to client\n", - "2022-12-30 21:56:09,100 - SimulatorServer - INFO - GetTask: Return task: submit_model to client: site-2 (70848535-124b-4205-b035-7f231724f37e) \n", - "2022-12-30 21:56:09,100 - Communicator - INFO - Received from simulator_server server (586 Bytes). getTask time: 0.02457261085510254 seconds\n", - "2022-12-30 21:56:09,100 - FederatedClient - INFO - pull_task completed. Task name:submit_model Status:True \n", - "2022-12-30 21:56:09,101 - ClientRunner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job]: got task assignment: name=submit_model, id=04427e0e-9742-4e28-b121-7d204ab4def7\n", - "2022-12-30 21:56:09,101 - ClientRunner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=submit_model, task_id=04427e0e-9742-4e28-b121-7d204ab4def7]: invoking task executor \n", - "2022-12-30 21:56:09,101 - LearnerExecutor - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=submit_model, task_id=04427e0e-9742-4e28-b121-7d204ab4def7]: Client trainer got task: submit_model\n", - "2022-12-30 21:56:09,103 - ClientRunner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=submit_model, task_id=04427e0e-9742-4e28-b121-7d204ab4def7]: finished processing task\n", - "2022-12-30 21:56:09,103 - FederatedClient - INFO - Starting to push execute result.\n", - "2022-12-30 21:56:09,104 - Communicator - INFO - Send submitUpdate to simulator_server server\n", - "2022-12-30 21:56:09,124 - SimulatorServer - INFO - received update from simulator_server_site-2_0 (250784 Bytes, 1672466169 seconds)\n", - "2022-12-30 21:56:09,124 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-2, peer_run=simulate_job]: got result from client site-2 for task: name=submit_model, id=04427e0e-9742-4e28-b121-7d204ab4def7\n", - "2022-12-30 21:56:09,124 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-2, peer_run=simulate_job, peer_rc=OK, task_name=submit_model, task_id=04427e0e-9742-4e28-b121-7d204ab4def7]: invoking result_received_cb ...\n", - "2022-12-30 21:56:09,124 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-2, peer_run=simulate_job, peer_rc=OK, task_name=submit_model, task_id=04427e0e-9742-4e28-b121-7d204ab4def7]: Received local model from client site-2.\n", - "2022-12-30 21:56:09,125 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-2, peer_run=simulate_job, peer_rc=OK, task_name=submit_model, task_id=04427e0e-9742-4e28-b121-7d204ab4def7]: Sending site-2 model to all participating clients for validation.\n", - "2022-12-30 21:56:09,125 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-2, peer_run=simulate_job, peer_rc=OK, task_name=submit_model, task_id=04427e0e-9742-4e28-b121-7d204ab4def7]: scheduled task validate\n", - "2022-12-30 21:56:09,125 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-2, peer_run=simulate_job, peer_rc=OK, task_name=submit_model, task_id=04427e0e-9742-4e28-b121-7d204ab4def7]: finished processing client result by cross_site_validate\n", - "2022-12-30 21:56:09,125 - Communicator - INFO - Received comments: simulator_server Received from site-2 (250784 Bytes, 1672466169 seconds). SubmitUpdate time: 0.02110457420349121 seconds\n", - "2022-12-30 21:56:09,126 - ClientRunner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=submit_model, task_id=04427e0e-9742-4e28-b121-7d204ab4def7]: result sent to server for task: name=submit_model, id=04427e0e-9742-4e28-b121-7d204ab4def7\n", - "2022-12-30 21:56:09,126 - ClientTaskWorker - INFO - Finished one task run for client: site-2\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2022-12-30 21:56:09,192 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-1, peer_run=simulate_job, task_name=submit_model, task_id=84c36581-08e2-46d6-9a14-00dba446a027]: assigned task to client site-1: name=submit_model, id=84c36581-08e2-46d6-9a14-00dba446a027\n", - "2022-12-30 21:56:09,192 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-1, peer_run=simulate_job, task_name=submit_model, task_id=84c36581-08e2-46d6-9a14-00dba446a027]: sent task assignment to client\n", - "2022-12-30 21:56:09,192 - SimulatorServer - INFO - GetTask: Return task: submit_model to client: site-1 (17a06432-2fe7-43ad-886a-9b97f887f35e) \n", - "2022-12-30 21:56:09,192 - Communicator - INFO - Received from simulator_server server (586 Bytes). getTask time: 0.029262304306030273 seconds\n", - "2022-12-30 21:56:09,193 - FederatedClient - INFO - pull_task completed. Task name:submit_model Status:True \n", - "2022-12-30 21:56:09,193 - ClientRunner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job]: got task assignment: name=submit_model, id=84c36581-08e2-46d6-9a14-00dba446a027\n", - "2022-12-30 21:56:09,194 - ClientRunner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=submit_model, task_id=84c36581-08e2-46d6-9a14-00dba446a027]: invoking task executor \n", - "2022-12-30 21:56:09,194 - LearnerExecutor - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=submit_model, task_id=84c36581-08e2-46d6-9a14-00dba446a027]: Client trainer got task: submit_model\n", - "2022-12-30 21:56:09,195 - ClientRunner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=submit_model, task_id=84c36581-08e2-46d6-9a14-00dba446a027]: finished processing task\n", - "2022-12-30 21:56:09,196 - FederatedClient - INFO - Starting to push execute result.\n", - "2022-12-30 21:56:09,197 - Communicator - INFO - Send submitUpdate to simulator_server server\n", - "2022-12-30 21:56:09,225 - SimulatorServer - INFO - received update from simulator_server_site-1_0 (250784 Bytes, 1672466169 seconds)\n", - "2022-12-30 21:56:09,225 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-1, peer_run=simulate_job]: got result from client site-1 for task: name=submit_model, id=84c36581-08e2-46d6-9a14-00dba446a027\n", - "2022-12-30 21:56:09,225 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-1, peer_run=simulate_job, peer_rc=OK, task_name=submit_model, task_id=84c36581-08e2-46d6-9a14-00dba446a027]: invoking result_received_cb ...\n", - "2022-12-30 21:56:09,226 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-1, peer_run=simulate_job, peer_rc=OK, task_name=submit_model, task_id=84c36581-08e2-46d6-9a14-00dba446a027]: Received local model from client site-1.\n", - "2022-12-30 21:56:09,226 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-1, peer_run=simulate_job, peer_rc=OK, task_name=submit_model, task_id=84c36581-08e2-46d6-9a14-00dba446a027]: Sending site-1 model to all participating clients for validation.\n", - "2022-12-30 21:56:09,226 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-1, peer_run=simulate_job, peer_rc=OK, task_name=submit_model, task_id=84c36581-08e2-46d6-9a14-00dba446a027]: scheduled task validate\n", - "2022-12-30 21:56:09,226 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-1, peer_run=simulate_job, peer_rc=OK, task_name=submit_model, task_id=84c36581-08e2-46d6-9a14-00dba446a027]: finished processing client result by cross_site_validate\n", - "2022-12-30 21:56:09,226 - Communicator - INFO - Received comments: simulator_server Received from site-1 (250784 Bytes, 1672466169 seconds). SubmitUpdate time: 0.029749155044555664 seconds\n", - "2022-12-30 21:56:09,227 - ClientRunner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=submit_model, task_id=84c36581-08e2-46d6-9a14-00dba446a027]: result sent to server for task: name=submit_model, id=84c36581-08e2-46d6-9a14-00dba446a027\n", - "2022-12-30 21:56:09,227 - ClientTaskWorker - INFO - Finished one task run for client: site-1\n", - "2022-12-30 21:56:09,317 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate]: task submit_model exit with status TaskCompletionStatus.OK\n", - "2022-12-30 21:56:11,151 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-2, peer_run=simulate_job, task_name=validate, task_id=779dba6e-bba8-4671-8ae7-44e6bda42286]: assigned task to client site-2: name=validate, id=779dba6e-bba8-4671-8ae7-44e6bda42286\n", - "2022-12-30 21:56:11,152 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-2, peer_run=simulate_job, task_name=validate, task_id=779dba6e-bba8-4671-8ae7-44e6bda42286]: sent task assignment to client\n", - "2022-12-30 21:56:11,152 - SimulatorServer - INFO - GetTask: Return task: validate to client: site-2 (70848535-124b-4205-b035-7f231724f37e) \n", - "2022-12-30 21:56:11,169 - Communicator - INFO - Received from simulator_server server (250549 Bytes). getTask time: 0.0402834415435791 seconds\n", - "2022-12-30 21:56:11,169 - FederatedClient - INFO - pull_task completed. Task name:validate Status:True \n", - "2022-12-30 21:56:11,171 - ClientRunner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job]: got task assignment: name=validate, id=779dba6e-bba8-4671-8ae7-44e6bda42286\n", - "2022-12-30 21:56:11,171 - ClientRunner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=validate, task_id=779dba6e-bba8-4671-8ae7-44e6bda42286]: invoking task executor \n", - "2022-12-30 21:56:11,171 - LearnerExecutor - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=validate, task_id=779dba6e-bba8-4671-8ae7-44e6bda42286]: Client trainer got task: validate\n", - "2022-12-30 21:56:11,263 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-1, peer_run=simulate_job, task_name=validate, task_id=d26955bc-2272-4325-afa3-f101b521c56e]: assigned task to client site-1: name=validate, id=d26955bc-2272-4325-afa3-f101b521c56e\n", - "2022-12-30 21:56:11,263 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-1, peer_run=simulate_job, task_name=validate, task_id=d26955bc-2272-4325-afa3-f101b521c56e]: sent task assignment to client\n", - "2022-12-30 21:56:11,264 - SimulatorServer - INFO - GetTask: Return task: validate to client: site-1 (17a06432-2fe7-43ad-886a-9b97f887f35e) \n", - "2022-12-30 21:56:11,276 - Communicator - INFO - Received from simulator_server server (250549 Bytes). getTask time: 0.04758024215698242 seconds\n", - "2022-12-30 21:56:11,277 - FederatedClient - INFO - pull_task completed. Task name:validate Status:True \n", - "2022-12-30 21:56:11,279 - ClientRunner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job]: got task assignment: name=validate, id=d26955bc-2272-4325-afa3-f101b521c56e\n", - "2022-12-30 21:56:11,279 - ClientRunner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=validate, task_id=d26955bc-2272-4325-afa3-f101b521c56e]: invoking task executor \n", - "2022-12-30 21:56:11,279 - LearnerExecutor - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=validate, task_id=d26955bc-2272-4325-afa3-f101b521c56e]: Client trainer got task: validate\n", - "2022-12-30 21:56:12,328 - PTLearner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=validate, task_id=779dba6e-bba8-4671-8ae7-44e6bda42286]: Accuracy when validating SRV_FL_global_model.pt's model on site-2s data: 0.5613\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2022-12-30 21:56:12,328 - ClientRunner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=validate, task_id=779dba6e-bba8-4671-8ae7-44e6bda42286]: finished processing task\n", - "2022-12-30 21:56:12,329 - FederatedClient - INFO - Starting to push execute result.\n", - "2022-12-30 21:56:12,329 - Communicator - INFO - Send submitUpdate to simulator_server server\n", - "2022-12-30 21:56:12,347 - SimulatorServer - INFO - received update from simulator_server_site-2_0 (959 Bytes, 1672466172 seconds)\n", - "2022-12-30 21:56:12,348 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-2, peer_run=simulate_job]: got result from client site-2 for task: name=validate, id=779dba6e-bba8-4671-8ae7-44e6bda42286\n", - "2022-12-30 21:56:12,348 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-2, peer_run=simulate_job, peer_rc=OK, task_name=validate, task_id=779dba6e-bba8-4671-8ae7-44e6bda42286]: invoking result_received_cb ...\n", - "2022-12-30 21:56:12,348 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-2, peer_run=simulate_job, peer_rc=OK, task_name=validate, task_id=779dba6e-bba8-4671-8ae7-44e6bda42286]: Client site-2 sent results for validating SRV_FL_global_model.pt model.\n", - "2022-12-30 21:56:12,348 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-2, peer_run=simulate_job, peer_rc=OK, task_name=validate, task_id=779dba6e-bba8-4671-8ae7-44e6bda42286]: finished processing client result by cross_site_validate\n", - "2022-12-30 21:56:12,349 - Communicator - INFO - Received comments: simulator_server Received from site-2 (959 Bytes, 1672466172 seconds). SubmitUpdate time: 0.01944565773010254 seconds\n", - "2022-12-30 21:56:12,349 - ClientRunner - INFO - [identity=site-2, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=validate, task_id=779dba6e-bba8-4671-8ae7-44e6bda42286]: result sent to server for task: name=validate, id=779dba6e-bba8-4671-8ae7-44e6bda42286\n", - "2022-12-30 21:56:12,349 - ClientTaskWorker - INFO - Finished one task run for client: site-2\n", - "2022-12-30 21:56:12,479 - PTLearner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=validate, task_id=d26955bc-2272-4325-afa3-f101b521c56e]: Accuracy when validating SRV_FL_global_model.pt's model on site-1s data: 0.5613\n", - "2022-12-30 21:56:12,479 - ClientRunner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=validate, task_id=d26955bc-2272-4325-afa3-f101b521c56e]: finished processing task\n", - "2022-12-30 21:56:12,480 - FederatedClient - INFO - Starting to push execute result.\n", - "2022-12-30 21:56:12,481 - Communicator - INFO - Send submitUpdate to simulator_server server\n", - "2022-12-30 21:56:12,491 - SimulatorServer - INFO - received update from simulator_server_site-1_0 (959 Bytes, 1672466172 seconds)\n", - "2022-12-30 21:56:12,491 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-1, peer_run=simulate_job]: got result from client site-1 for task: name=validate, id=d26955bc-2272-4325-afa3-f101b521c56e\n", - "2022-12-30 21:56:12,491 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-1, peer_run=simulate_job, peer_rc=OK, task_name=validate, task_id=d26955bc-2272-4325-afa3-f101b521c56e]: invoking result_received_cb ...\n", - "2022-12-30 21:56:12,492 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-1, peer_run=simulate_job, peer_rc=OK, task_name=validate, task_id=d26955bc-2272-4325-afa3-f101b521c56e]: Client site-1 sent results for validating SRV_FL_global_model.pt model.\n", - "2022-12-30 21:56:12,492 - ServerRunner - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate, peer=site-1, peer_run=simulate_job, peer_rc=OK, task_name=validate, task_id=d26955bc-2272-4325-afa3-f101b521c56e]: finished processing client result by cross_site_validate\n", - "2022-12-30 21:56:12,492 - Communicator - INFO - Received comments: simulator_server Received from site-1 (959 Bytes, 1672466172 seconds). SubmitUpdate time: 0.011240482330322266 seconds\n", - "2022-12-30 21:56:12,493 - ClientRunner - INFO - [identity=site-1, run=simulate_job, peer=simulator_server, peer_run=simulate_job, task_name=validate, task_id=d26955bc-2272-4325-afa3-f101b521c56e]: result sent to server for task: name=validate, id=d26955bc-2272-4325-afa3-f101b521c56e\n", - "2022-12-30 21:56:12,493 - ClientTaskWorker - INFO - Finished one task run for client: site-1\n", - "2022-12-30 21:56:12,821 - CrossSiteModelEval - INFO - [identity=simulator_server, run=simulate_job, wf=cross_site_validate]: task validate exit with status TaskCompletionStatus.OK\n" - ] - } - ], - "source": [ - "%%bash\n", - "cd $NVFLARE_HOME\n", - "\n", - "nvflare simulator -w /tmp/nvflare/ -n 2 -t 2 examples/hello-pt-tb-mlflow/hello-pt-tb-mlflow-job1" - ] - }, - { - "cell_type": "markdown", - "id": "7b1fe44d", - "metadata": {}, - "source": [ - "### 4. Tensorboard Tracking\n", - "\n", - "On the client side, we are still using the TensorBoard SummaryWriter as the `AnalyticsSender`. \n", - "\n", - "Instead of writing to TB files, it actually generates NVFLARE events of type `analytix_log_stats`.\n", - "The `ConvertToFedEvent` widget will turn the event `analytix_log_stats` into a fed event `fed.analytix_log_stats`,\n", - "which will be delivered to the server side.\n", - "\n", - "On the server side, the `TBAnalyticsReceiver` is configured to process `fed.analytix_log_stats` events,\n", - "which writes received TB data into appropriate TB files on the server.\n", - "\n", - "To view training metrics that are being streamed to the server, run:\n", - "\n", - "```\n", - "tensorboard --logdir=/tmp/nvflare/simulate_job/tb_events\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e0329685", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "TensorFlow installation not found - running with reduced feature set.\n", - "\n", - "NOTE: Using experimental fast data loading logic. To disable, pass\n", - " \"--load_fast=false\" and report issues on GitHub. More details:\n", - " https://github.com/tensorflow/tensorboard/issues/4784\n", - "\n", - "Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all\n", - "TensorBoard 2.11.0 at http://localhost:6006/ (Press CTRL+C to quit)\n" - ] - } - ], - "source": [ - "%%bash\n", - "tensorboard --logdir=/tmp/nvflare/simulate_job/tb_events" - ] - }, - { - "cell_type": "markdown", - "id": "534d7879", - "metadata": {}, - "source": [ - "### 5. MLFlow tracking\n", - "\n", - "On the server side, we also configured `MLFlowReceiver` to process `fed.analytix_log_stats` events,\n", - "which writes received and write to the MLFlow backendstore\n", - "\n", - "To view training metrics that are being streamed to the server, run:\n", - "\n", - "```\n", - "mlflow ui --backend-store-uri=/tmp/nvflare/mlruns\n", - "```\n", - "\n", - "Then \n", - "\n", - "Look at the URL in browser http://localhost:5000/" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "52b1c85b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "total 200\r\n", - "drwxrwxr-x 6 chester chester 4096 Dec 30 21:53 \u001b[0m\u001b[01;34m.\u001b[0m/\r\n", - "drwxrwxrwt 147 root root 32768 Dec 30 21:54 \u001b[30;42m..\u001b[0m/\r\n", - "-rw-rw-r-- 1 chester chester 139543 Dec 30 21:54 audit.log\r\n", - "drwxrwxr-x 2 chester chester 4096 Dec 30 11:34 \u001b[01;34mlocal\u001b[0m/\r\n", - "drwxrwxr-x 5 chester chester 4096 Dec 30 16:53 \u001b[01;34mmlruns\u001b[0m/\r\n", - "drwxrwxr-x 8 chester chester 4096 Dec 30 21:54 \u001b[01;34msimulate_job\u001b[0m/\r\n", - "drwxrwxr-x 2 chester chester 4096 Dec 30 11:34 \u001b[01;34mstartup\u001b[0m/\r\n" - ] - } - ], - "source": [ - "%ls -al /tmp/nvflare\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ca576a9d", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.16" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/nvflare/apis/analytix.py b/nvflare/apis/analytix.py index cce208d896..233b62f3d4 100644 --- a/nvflare/apis/analytix.py +++ b/nvflare/apis/analytix.py @@ -13,10 +13,10 @@ # limitations under the License. from enum import Enum -from typing import Dict, Optional +from typing import Optional from nvflare.apis.dxo import DXO, DataKind -from nvflare.app_common.tracking.tracker_types import TrackConst, Tracker +from nvflare.app_common.tracking.tracker_types import LogWriterName, TrackConst _DATA_TYPE_KEY = "analytics_data_type" _KWARGS_KEY = "analytics_kwargs" @@ -35,22 +35,13 @@ class AnalyticsDataType(Enum): METRICS = "METRICS" MODEL = "MODEL" - # # MLFLOW ONLY TAG = "TAG" TAGS = "TAGS" - INIT_DATA = "INIT_DATA" class AnalyticsData: def __init__( - self, - key: str, - value, - data_type: AnalyticsDataType, - sender: Tracker = Tracker.TORCH_TB, - kwargs: Optional[dict] = None, - step: Optional[int] = None, - path: Optional[str] = None, + self, key: str, value, data_type: AnalyticsDataType, writer: LogWriterName = LogWriterName.TORCH_TB, **kwargs ): """This class defines AnalyticsData format. @@ -60,17 +51,17 @@ def __init__( key (str): tag name value: value data_type (AnalyticDataType): type of the analytic data. - sender (Tracker): Syntax of Tracker such as Tensorboard or MLFLow + writer (LogWriterName): Syntax of Tracker such as Tensorboard or MLFLow kwargs (optional, dict): additional arguments to be passed. """ - self._validate_data_types(data_type, kwargs, key, value, step, path) + self._validate_data_types(data_type, key, value, **kwargs) self.tag = key self.value = value self.data_type = data_type self.kwargs = kwargs - self.step = step - self.path = path - self.sender = sender + self.writer = writer + self.step = kwargs.get(TrackConst.GLOBAL_STEP_KEY, None) + self.path = kwargs.get(TrackConst.PATH_KEY, None) def to_dxo(self): """Converts the AnalyticsData to DXO object. @@ -88,16 +79,15 @@ def to_dxo(self): data[TrackConst.KWARGS_KEY] = self.kwargs dxo = DXO(data_kind=DataKind.ANALYTIC, data=data) dxo.set_meta_prop(TrackConst.DATA_TYPE_KEY, self.data_type) - dxo.set_meta_prop(TrackConst.TRACKER_KEY, self.sender) + dxo.set_meta_prop(TrackConst.WRITER_KEY, self.writer) return dxo @classmethod - def from_dxo(cls, dxo: DXO, receiver: Tracker = Tracker.TORCH_TB): + def from_dxo(cls, dxo: DXO, receiver: LogWriterName = LogWriterName.TORCH_TB): """Generates the AnalyticsData from DXO object. Args: receiver: type experiment tacker, default to Tensorboard. TrackerType.TORCH_TB - sender: type experiment tacker, default to Tensorboard. TrackerType.TORCH_TB dxo (DXO): The DXO object to convert. Returns: @@ -113,23 +103,29 @@ def from_dxo(cls, dxo: DXO, receiver: Tracker = Tracker.TORCH_TB): data = dxo.data key = data[TrackConst.TRACK_KEY] value = data[TrackConst.TRACK_VALUE] - step = data[TrackConst.GLOBAL_STEP_KEY] if TrackConst.GLOBAL_STEP_KEY in data else None - path = data[TrackConst.PATH_KEY] if TrackConst.PATH_KEY in data else None kwargs = data[TrackConst.KWARGS_KEY] if TrackConst.KWARGS_KEY in data else None data_type = dxo.get_meta_prop(TrackConst.DATA_TYPE_KEY) - sender = dxo.get_meta_prop(TrackConst.TRACKER_KEY) - if sender is not None and sender != receiver: - data_type = cls.convert_data_type(data_type, sender, receiver) - return cls(key, value, data_type, sender, kwargs, step, path) + writer = dxo.get_meta_prop(TrackConst.WRITER_KEY) + if writer is not None and writer != receiver: + data_type = cls.convert_data_type(data_type, writer, receiver) + + if not data_type: + return None + # + # if writer is not None and writer != receiver: + # kwargs = cls.convert_kwargs(kwargs, writer, receiver) + + if not kwargs: + return cls(key, value, data_type, writer) + else: + return cls(key, value, data_type, writer, **kwargs) def _validate_data_types( self, data_type: AnalyticsDataType, - kwargs: Optional[Dict], key: str, value: any, - step: Optional[int] = None, - path: Optional[str] = None, + **kwargs, ): if not isinstance(key, str): raise TypeError("expect tag to be an instance of str, but got {}.".format(type(key))) @@ -139,11 +135,14 @@ def _validate_data_types( ) if kwargs and not isinstance(kwargs, dict): raise TypeError("expect kwargs to be an instance of dict, but got {}.".format(type(kwargs))) + step = kwargs.get(TrackConst.GLOBAL_STEP_KEY, None) if step: if not isinstance(step, int): raise TypeError("expect step to be an instance of int, but got {}.".format(type(step))) if step < 0: raise ValueError("expect step to be non-negative int, but got {}.".format(step)) + + path = kwargs.get(TrackConst.PATH_KEY, None) if path and not isinstance(path, str): raise TypeError("expect path to be an instance of str, but got {}.".format(type(step))) if data_type in [AnalyticsDataType.SCALAR, AnalyticsDataType.METRIC] and not isinstance(value, float): @@ -163,25 +162,65 @@ def _validate_data_types( @classmethod def convert_data_type( - cls, sender_data_type: AnalyticsDataType, sender: Tracker, receiver: Tracker - ) -> AnalyticsDataType: + cls, writer_data_type: AnalyticsDataType, writer: LogWriterName, receiver: LogWriterName + ) -> Optional[AnalyticsDataType]: - if sender == Tracker.TORCH_TB and receiver == Tracker.MLFLOW: - if AnalyticsDataType.SCALAR == sender_data_type: + if writer == LogWriterName.TORCH_TB and receiver == LogWriterName.MLFLOW: + if AnalyticsDataType.SCALAR == writer_data_type: return AnalyticsDataType.METRIC - elif AnalyticsDataType.SCALARS == sender_data_type: + elif AnalyticsDataType.SCALARS == writer_data_type: return AnalyticsDataType.METRICS else: - return sender_data_type + return writer_data_type - if sender == Tracker.MLFLOW and receiver == Tracker.TORCH_TB: - if AnalyticsDataType.PARAMETER == sender_data_type: + elif writer == LogWriterName.TORCH_TB and receiver == LogWriterName.WANDB: + if AnalyticsDataType.SCALAR == writer_data_type: + return AnalyticsDataType.METRIC + elif AnalyticsDataType.SCALARS == writer_data_type: + return AnalyticsDataType.METRICS + else: + return writer_data_type + + if writer == LogWriterName.MLFLOW and receiver == LogWriterName.TORCH_TB: + if AnalyticsDataType.TAG == writer_data_type: + return None + elif AnalyticsDataType.TAGS == writer_data_type: + return None + elif AnalyticsDataType.PARAMETER == writer_data_type: + return None + elif AnalyticsDataType.PARAMETERS == writer_data_type: + return None + elif AnalyticsDataType.METRIC == writer_data_type: return AnalyticsDataType.SCALAR - elif AnalyticsDataType.PARAMETERS == sender_data_type: + elif AnalyticsDataType.METRICS == writer_data_type: return AnalyticsDataType.SCALARS - elif AnalyticsDataType.METRIC == sender_data_type: - return AnalyticsDataType.SCALAR - elif AnalyticsDataType.METRICS == sender_data_type: + else: + return writer_data_type + elif writer == LogWriterName.MLFLOW and receiver == LogWriterName.WANDB: + if AnalyticsDataType.TAG == writer_data_type: + return None + elif AnalyticsDataType.TAGS == writer_data_type: + return None + else: + return writer_data_type + + elif writer == LogWriterName.WANDB and receiver == LogWriterName.TORCH_TB: + if AnalyticsDataType.METRICS == writer_data_type: return AnalyticsDataType.SCALARS else: - return sender_data_type + return writer_data_type + + @classmethod + def convert_kwargs(cls, kwargs, sender: LogWriterName, receiver: LogWriterName) -> dict: + if not kwargs: + return kwargs + + filtered_kwargs = {} + if sender == LogWriterName.MLFLOW and receiver == LogWriterName.TORCH_TB: + for k in kwargs: + if k == TrackConst.GLOBAL_STEP_KEY: + filtered_kwargs[k] = kwargs[k] + else: + filtered_kwargs = kwargs + + return filtered_kwargs diff --git a/nvflare/app_common/pt/tb_receiver.py b/nvflare/app_common/pt/tb_receiver.py index 6a58bfdd06..620664f850 100644 --- a/nvflare/app_common/pt/tb_receiver.py +++ b/nvflare/app_common/pt/tb_receiver.py @@ -21,7 +21,6 @@ from nvflare.apis.dxo import from_shareable from nvflare.apis.fl_context import FLContext from nvflare.apis.shareable import Shareable -from nvflare.app_common.tracking.tracker_types import TrackConst from nvflare.app_common.widgets.streaming import AnalyticsReceiver FUNCTION_MAPPING = { @@ -69,6 +68,8 @@ def initialize(self, fl_ctx: FLContext): def save(self, fl_ctx: FLContext, shareable: Shareable, record_origin): dxo = from_shareable(shareable) analytic_data = AnalyticsData.from_dxo(dxo) + if not analytic_data: + return writer = self.writers_table.get(record_origin) if writer is None: @@ -77,12 +78,9 @@ def save(self, fl_ctx: FLContext, shareable: Shareable, record_origin): self.writers_table[record_origin] = writer # depend on the type in dxo do different things - k = dxo.data[TrackConst.TRACK_KEY] - v = dxo.data[TrackConst.TRACK_VALUE] - tag_name = k self.log_debug( fl_ctx, - f"save tag {tag_name} and value {v} with type {analytic_data.data_type} from {record_origin}", + f"save tag {analytic_data.tag} and value {analytic_data.value} with type {analytic_data.data_type} from {record_origin}", fire_event=False, ) func_name = FUNCTION_MAPPING.get(analytic_data.data_type, None) @@ -91,10 +89,10 @@ def save(self, fl_ctx: FLContext, shareable: Shareable, record_origin): return func = getattr(writer, func_name) - if isinstance(analytic_data.kwargs, dict): - func(tag_name, v, **analytic_data.kwargs) + if analytic_data.step: + func(analytic_data.tag, analytic_data.value, analytic_data.step) else: - func(tag_name, v) + func(analytic_data.tag, analytic_data.value) def finalize(self, fl_ctx: FLContext): for writer in self.writers_table.values(): diff --git a/nvflare/app_common/tracking/log_writer.py b/nvflare/app_common/tracking/log_writer.py new file mode 100644 index 0000000000..33369df027 --- /dev/null +++ b/nvflare/app_common/tracking/log_writer.py @@ -0,0 +1,38 @@ +# Copyright (c) 2021-2022, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from abc import ABC, abstractmethod + +from nvflare.apis.event_type import EventType +from nvflare.apis.fl_component import FLComponent +from nvflare.apis.fl_context import FLContext +from nvflare.app_common.tracking.tracker_types import LogWriterName +from nvflare.app_common.widgets.streaming import ANALYTIC_EVENT_TYPE, AnalyticsSender + + +class LogWriter(FLComponent, ABC): + def __init__(self): + super().__init__() + self.sender = self.load_log_sender() + self.engine = None + + def load_log_sender(self, event_type: str = ANALYTIC_EVENT_TYPE) -> AnalyticsSender: + return AnalyticsSender(event_type, self.get_writer_name()) + + def handle_event(self, event_type: str, fl_ctx: FLContext): + if event_type == EventType.START_RUN: + self.sender.engine = fl_ctx.get_engine() + + @abstractmethod + def get_writer_name(self) -> LogWriterName: + pass diff --git a/nvflare/app_common/tracking/tracker_types.py b/nvflare/app_common/tracking/tracker_types.py index 88899c80ef..f1bb35a2fd 100644 --- a/nvflare/app_common/tracking/tracker_types.py +++ b/nvflare/app_common/tracking/tracker_types.py @@ -12,45 +12,17 @@ # See the License for the specific language governing permissions and # limitations under the License. -""" - W&B vs MLFLOW vs. Tensorboad - DATA --> PARAMETER --> Scalar - DATA --> PARAMETERS --> Scalars - DATA --> METRIC --> Scalar - DATA --> METRICS --> Scalars - DATA --> TEXT --> TEXT - DATA --> IMAGE --> IMAGE - ARTIFACT:type=model --> MODEL - - NOT SUPPORTED - PLOT --> FIGURE - ARTIFACT --> TEXT - DATA --> ? --> Histogram - ARTIFACT --> DICT - ARTIFACT:type=dataset --> ARTIFACT - - wandb.log(data) ==> mlflow.log_params(data) ==> writer.add_scalas(data) - wandb.log(data) ==> mlflow.log_metrics(data) ==> writer.add_scalas(data) - wandb.log({"examples": images} ==> mlflow.log_image(image, output_path) ==> writer.add_image('images', image, 0) - - art = wandb.Artifact("my-object-detector", type="model") - art.add_file("saved_model_weights.pt") - wandb.log_artifact(art) ==> mlflow.register_model(model_uri, "my-object-detector") ==> ? - - """ from enum import Enum -ANALYTIC_EVENT_TYPE = "analytix_log_stats" - -class Tracker(Enum): +class LogWriterName(Enum): TORCH_TB = "TORCH_TENSORBOARD" MLFLOW = "MLFLOW" WANDB = "WEIGHTS_AND_BIASES" class TrackConst(object): - TRACKER_KEY = "tracker_key" + WRITER_KEY = "writer_key" TRACK_KEY = "track_key" TRACK_VALUE = "track_value" diff --git a/nvflare/app_common/widgets/streaming.py b/nvflare/app_common/widgets/streaming.py index 07dc812cbc..3b7a11c85d 100644 --- a/nvflare/app_common/widgets/streaming.py +++ b/nvflare/app_common/widgets/streaming.py @@ -11,7 +11,6 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - from abc import ABC, abstractmethod from threading import Lock from typing import List, Optional @@ -23,7 +22,7 @@ from nvflare.apis.fl_constant import EventScope, FLContextKey, ReservedKey from nvflare.apis.fl_context import FLContext from nvflare.apis.shareable import Shareable -from nvflare.app_common.tracking.tracker_types import Tracker +from nvflare.app_common.tracking.tracker_types import LogWriterName from nvflare.widgets.widget import Widget ANALYTIC_EVENT_TYPE = "analytix_log_stats" @@ -50,7 +49,7 @@ def send_analytic_dxo(comp: FLComponent, dxo: DXO, fl_ctx: FLContext, event_type def create_analytic_dxo( - tag: str, value, data_type: AnalyticsDataType, step: int, sender: Tracker = Tracker.TORCH_TB, **kwargs + tag: str, value, data_type: AnalyticsDataType, writer: LogWriterName = LogWriterName.TORCH_TB, **kwargs ) -> DXO: """Creates the analytic DXO. @@ -58,21 +57,19 @@ def create_analytic_dxo( tag (str): the tag associated with this value. value: the analytic data. data_type: (AnalyticsDataType): analytic data type. - step (int) : global step - sender: (Tracker), syntax of the sender: such TensorBoard or MLFLow + writer: (Tracker), syntax of the sender: such TensorBoard or MLFLow kwargs: additional arguments to be passed into the receiver side's function. Returns: A DXO object that contains the analytic data. """ - step = step if step else kwargs.get("global_step", None) - data = AnalyticsData(key=tag, value=value, data_type=data_type, step=step, sender=sender, kwargs=kwargs) + data = AnalyticsData(key=tag, value=value, data_type=data_type, writer=writer, **kwargs) dxo = data.to_dxo() return dxo class AnalyticsSender(Widget): - def __init__(self, event_type=ANALYTIC_EVENT_TYPE): + def __init__(self, event_type=ANALYTIC_EVENT_TYPE, writer_name=LogWriterName.TORCH_TB): """Sends analytics data. Note:: @@ -83,33 +80,30 @@ def __init__(self, event_type=ANALYTIC_EVENT_TYPE): event_type (str): event type to fire. """ super().__init__() - self.fl_ctx = None self.engine = None self.event_type = event_type + self.writer = writer_name - def get_tracker_name(self) -> Tracker: - return Tracker.TORCH_TB + def get_writer_name(self) -> LogWriterName: + return self.writer def handle_event(self, event_type: str, fl_ctx: FLContext): if event_type == EventType.START_RUN: self.engine = fl_ctx.get_engine() - def _add( + def add( self, tag: str, value, data_type: AnalyticsDataType, - global_step: Optional[int] = None, - kwargs: Optional[dict] = None, + **kwargs, ): kwargs = kwargs if kwargs else {} + global_step = kwargs["global_step"] if "global_step" in kwargs else None if global_step: if not isinstance(global_step, int): raise TypeError(f"Expect global step to be an instance of int, but got {type(global_step)}") - kwargs["global_step"] = global_step - dxo = create_analytic_dxo( - tag=tag, value=value, data_type=data_type, step=global_step, sender=self.get_tracker_name(), **kwargs - ) + dxo = create_analytic_dxo(tag=tag, value=value, data_type=data_type, writer=self.get_writer_name(), **kwargs) with self.engine.new_context() as fl_ctx: send_analytic_dxo(self, dxo=dxo, fl_ctx=fl_ctx, event_type=self.event_type) @@ -122,7 +116,7 @@ def add_scalar(self, tag: str, scalar: float, global_step: Optional[int] = None, global_step (optional, int): Global step value. **kwargs: Additional arguments to pass to the receiver side. """ - self._add(tag=tag, value=scalar, data_type=AnalyticsDataType.SCALAR, global_step=global_step, kwargs=kwargs) + self.add(tag=tag, value=scalar, data_type=AnalyticsDataType.SCALAR, global_step=global_step, **kwargs) def add_scalars(self, tag: str, scalars: dict, global_step: Optional[int] = None, **kwargs): """Sends scalars. @@ -133,7 +127,7 @@ def add_scalars(self, tag: str, scalars: dict, global_step: Optional[int] = None global_step (optional, int): Global step value. **kwargs: Additional arguments to pass to the receiver side. """ - self._add(tag=tag, value=scalars, data_type=AnalyticsDataType.SCALARS, global_step=global_step, kwargs=kwargs) + self.add(tag=tag, value=scalars, data_type=AnalyticsDataType.SCALARS, global_step=global_step, **kwargs) def add_text(self, tag: str, text: str, global_step: Optional[int] = None, **kwargs): """Sends a text. @@ -144,7 +138,7 @@ def add_text(self, tag: str, text: str, global_step: Optional[int] = None, **kwa global_step (optional, int): Global step value. **kwargs: Additional arguments to pass to the receiver side. """ - self._add(tag=tag, value=text, data_type=AnalyticsDataType.TEXT, global_step=global_step, kwargs=kwargs) + self.add(tag=tag, value=text, data_type=AnalyticsDataType.TEXT, global_step=global_step, **kwargs) def add_image(self, tag: str, image, global_step: Optional[int] = None, **kwargs): """Sends an image. @@ -155,7 +149,7 @@ def add_image(self, tag: str, image, global_step: Optional[int] = None, **kwargs global_step (optional, int): Global step value. **kwargs: Additional arguments to pass to the receiver side. """ - self._add(tag=tag, value=image, data_type=AnalyticsDataType.IMAGE, global_step=global_step, kwargs=kwargs) + self.add(tag=tag, value=image, data_type=AnalyticsDataType.IMAGE, global_step=global_step, **kwargs) def flush(self): """Flushes out the message. diff --git a/nvflare/app_opt/tracking/wnb/__init__.py b/nvflare/app_opt/tracking/__init__.py similarity index 100% rename from nvflare/app_opt/tracking/wnb/__init__.py rename to nvflare/app_opt/tracking/__init__.py diff --git a/nvflare/app_opt/tracking/mlflow/mlflow_receiver.py b/nvflare/app_opt/tracking/mlflow/mlflow_receiver.py index c46ce3f707..138107b9ea 100644 --- a/nvflare/app_opt/tracking/mlflow/mlflow_receiver.py +++ b/nvflare/app_opt/tracking/mlflow/mlflow_receiver.py @@ -24,7 +24,7 @@ from nvflare.apis.fl_context import FLContext from nvflare.apis.shareable import Shareable from nvflare.app_common.tracking.track_exception import ExpTrackingException -from nvflare.app_common.tracking.tracker_types import TrackConst, Tracker +from nvflare.app_common.tracking.tracker_types import LogWriterName, TrackConst from nvflare.app_common.widgets.streaming import AnalyticsReceiver @@ -135,7 +135,10 @@ def _create_experiment( def save(self, fl_ctx: FLContext, shareable: Shareable, record_origin: str): dxo = from_shareable(shareable) - data = AnalyticsData.from_dxo(dxo, receiver=Tracker.MLFLOW) + data = AnalyticsData.from_dxo(dxo, receiver=LogWriterName.MLFLOW) + if not data: + return + mlflow_client = self.get_mlflow_client(record_origin) run_id = self.get_run_id(record_origin) key = data.tag @@ -152,13 +155,13 @@ def save(self, fl_ctx: FLContext, shareable: Shareable, record_origin: str): elif data.data_type == AnalyticsDataType.METRICS: timestamp = get_current_time_millis() metrics_arr = [Metric(k, v, timestamp, data.step or 0) for k, v in data.value.items()] - mlflow_client.log_batch(run_id=run_id, metrics=metrics_arr, params=[], tags=["site", record_origin]) + mlflow_client.log_batch(run_id=run_id, metrics=metrics_arr, params=[]) elif data.data_type == AnalyticsDataType.TAG: mlflow_client.set_tag(run_id, key, data.value) elif data.data_type == AnalyticsDataType.TAGS: - tags_arr = [RunTag(key, str(value)) for key, value in tags.items()] + tags_arr = [RunTag(key, str(value)) for key, value in data.value.items()] mlflow_client.log_batch(run_id=run_id, metrics=[], params=[], tags=tags_arr) elif data.data_type == AnalyticsDataType.TEXT: diff --git a/nvflare/app_opt/tracking/mlflow/mlflow_writer.py b/nvflare/app_opt/tracking/mlflow/mlflow_writer.py new file mode 100644 index 0000000000..28b065bfe9 --- /dev/null +++ b/nvflare/app_opt/tracking/mlflow/mlflow_writer.py @@ -0,0 +1,81 @@ +# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from typing import Dict, Optional + +from nvflare.apis.analytix import AnalyticsDataType +from nvflare.app_common.tracking.log_writer import LogWriter +from nvflare.app_common.tracking.tracker_types import LogWriterName +from nvflare.app_common.widgets.streaming import ANALYTIC_EVENT_TYPE + + +class MLFlowWriter(LogWriter): + def __init__(self, event_type: str = ANALYTIC_EVENT_TYPE): + super().__init__() + self.sender = self.load_log_sender(event_type) + + def get_writer_name(self) -> LogWriterName: + return LogWriterName.MLFLOW + + def log_param(self, key: str, value: any) -> None: + self.sender.add(tag=key, value=value, data_type=AnalyticsDataType.PARAMETER) + + def log_params(self, values: dict) -> None: + self.sender.add(tag="params", value=values, data_type=AnalyticsDataType.PARAMETERS) + + def log_metric(self, key: str, value: float, step: Optional[int] = None) -> None: + """ + Args: + key: – Metric name (string). This string may only contain alphanumerics, underscores (_), dashes (-), + periods (.), spaces ( ), and slashes (/). All backend stores will support keys up to length 250, + but some may support larger keys. + value: – Metric value (float). Note that some special values such as +/- Infinity may be replaced by other + values depending on the store. For example, the SQLAlchemy store replaces +/- Infinity with + max / min float values. All backend stores will support values up to length 5000, but some may + support larger values. + step: – Metric step (int). Defaults to zero if unspecified. + Returns: None + """ + self.sender.add(tag=key, value=value, data_type=AnalyticsDataType.METRIC, global_step=step) + + def log_metrics(self, metrics: Dict[str, float], step: Optional[int] = None) -> None: + """ + Log multiple metrics for the current run. If no run is active, this method will create a new active run. + Args: + metrics: – Dictionary of metric_name: String -> value: Float. Note that some special values such as +/- + Infinity may be replaced by other values depending on the store. For example, sql based store + may replace +/- Infinity with max / min float values. + + step: – A single integer step at which to log the specified Metrics. If unspecified, each metric is + logged at step zero. + + Returns: None + """ + self.sender.add(tag="metrics", value=metrics, data_type=AnalyticsDataType.METRICS, global_step=step) + + def log_text(self, text: str, artifact_file_path: str): + """ + Args: + text – String containing text to log. + artifact_file_path – The run-relative artifact file path in posixpath format to which the text is saved (e.g. “dir/file.txt”). + Returns: None + """ + self.sender.add(tag="text", value=text, data_type=AnalyticsDataType.TEXT, path=artifact_file_path) + + def set_tag(self, key: str, tag: any) -> None: + self.sender.add(tag=key, value=tag, data_type=AnalyticsDataType.TAG) + + def set_tags(self, tags: dict) -> None: + self.sender.add(tag="tags", value=tags, data_type=AnalyticsDataType.TAGS) diff --git a/nvflare/app_opt/tracking/tb/__init__.py b/nvflare/app_opt/tracking/tb/__init__.py new file mode 100644 index 0000000000..2db92b2574 --- /dev/null +++ b/nvflare/app_opt/tracking/tb/__init__.py @@ -0,0 +1,13 @@ +# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/nvflare/app_opt/tracking/tb/tb_writer.py b/nvflare/app_opt/tracking/tb/tb_writer.py new file mode 100644 index 0000000000..fed231e158 --- /dev/null +++ b/nvflare/app_opt/tracking/tb/tb_writer.py @@ -0,0 +1,85 @@ +# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from typing import Optional + +from nvflare.apis.analytix import AnalyticsDataType +from nvflare.app_common.tracking.log_writer import LogWriter +from nvflare.app_common.tracking.tracker_types import LogWriterName +from nvflare.app_common.widgets.streaming import ANALYTIC_EVENT_TYPE + + +class TBWriter(LogWriter): + def __init__(self, event_type=ANALYTIC_EVENT_TYPE): + """Sends experiment tracking data. + Note:: + This class implements some common methods follows signatures from PyTorch SummaryWriter. + It provides a convenient way for Learner to use. + Args: + event_type (str): event type to fire. + """ + super().__init__() + + def get_writer_name(self) -> LogWriterName: + return LogWriterName.TORCH_TB + + def add_scalar(self, tag: str, scalar: float, global_step: Optional[int] = None, **kwargs): + """Sends a scalar. + + Args: + tag (str): Data identifier. + scalar (float): Value to send. + global_step (optional, int): Global step value. + **kwargs: Additional arguments to pass to the receiver side. + """ + self.sender.add(tag=tag, value=scalar, data_type=AnalyticsDataType.SCALAR, global_step=global_step, **kwargs) + + def add_scalars(self, tag: str, scalars: dict, global_step: Optional[int] = None, **kwargs): + """Sends scalars. + + Args: + tag (str): The parent name for the tags. + scalars (dict): Key-value pair storing the tag and corresponding values. + global_step (optional, int): Global step value. + **kwargs: Additional arguments to pass to the receiver side. + """ + self.sender.add(tag=tag, value=scalars, data_type=AnalyticsDataType.SCALARS, global_step=global_step, **kwargs) + + def add_text(self, tag: str, text: str, global_step: Optional[int] = None, **kwargs): + """Sends a text. + + Args: + tag (str): Data identifier. + text (str): String to send. + global_step (optional, int): Global step value. + **kwargs: Additional arguments to pass to the receiver side. + """ + self.sender.add(tag=tag, value=text, data_type=AnalyticsDataType.TEXT, global_step=global_step, **kwargs) + + def add_image(self, tag: str, image, global_step: Optional[int] = None, **kwargs): + """Sends an image. + + Args: + tag (str): Data identifier. + image: Image to send. + global_step (optional, int): Global step value. + **kwargs: Additional arguments to pass to the receiver side. + """ + self.sender.add(tag=tag, value=image, data_type=AnalyticsDataType.IMAGE, global_step=global_step, **kwargs) + + def flush(self): + """Flushes out the message. + + This is doing nothing, it is defined for mimic the PyTorch SummaryWriter behavior. + """ + pass diff --git a/nvflare/app_opt/tracking/wandb/__init__.py b/nvflare/app_opt/tracking/wandb/__init__.py new file mode 100644 index 0000000000..2db92b2574 --- /dev/null +++ b/nvflare/app_opt/tracking/wandb/__init__.py @@ -0,0 +1,13 @@ +# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/nvflare/app_opt/tracking/wandb/wandb_receiver.py b/nvflare/app_opt/tracking/wandb/wandb_receiver.py new file mode 100644 index 0000000000..8b4e15a5c2 --- /dev/null +++ b/nvflare/app_opt/tracking/wandb/wandb_receiver.py @@ -0,0 +1,130 @@ +# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import os +from multiprocessing import Process, Queue +from typing import NamedTuple, Optional + +import wandb + +from nvflare.apis.analytix import AnalyticsData, AnalyticsDataType +from nvflare.apis.dxo import from_shareable +from nvflare.apis.fl_context import FLContext +from nvflare.apis.shareable import Shareable +from nvflare.app_common.tracking.tracker_types import LogWriterName +from nvflare.app_common.widgets.streaming import AnalyticsReceiver + + +class WandBTask(NamedTuple): + task_owner: str + task_type: str + task_data: dict + step: int + + +class WandBReceiver(AnalyticsReceiver): + def __init__(self, config: dict, kwargs: dict, mode: str = "online", events=None): + + if events is None: + events = ["fed.analytix_log_stats"] + + super().__init__(events=events) + self.fl_ctx = None + self.config = config + self.mode = mode + self.kwargs = kwargs + self.queues = {} + self.processes = {} + + # os.environ["WANDB_API_KEY"] = YOUR_KEY_HERE + os.environ["WANDB_MODE"] = self.mode + + def job(self, queue): + cnt = 0 + run = None + while True: + + wandb_task: WandBTask = queue.get() + cnt += 1 + if wandb_task.task_type == "stop": + break + elif wandb_task.task_type == "init": + run = wandb.init(**wandb_task.task_data) + elif wandb_task.task_type == "log": + if cnt % 500 == 0: + self.log_info(self.fl_ctx, f"process task : {wandb_task}") + + if wandb_task.step: + wandb.log(wandb_task.task_data, wandb_task.step) + else: + wandb.log(wandb_task.task_data) + + if run: + run.finish() + + def initialize(self, fl_ctx: FLContext): + self.fl_ctx = fl_ctx + sites = fl_ctx.get_engine().get_clients() + for site in sites: + self.log_info(self.fl_ctx, f"initialize WandB run for site {site.name}") + self.kwargs["name"] = f"{site.name}" + + self.check_kwargs(self.kwargs) + + q = Queue() + wandb_task = WandBTask(task_owner=site.name, task_type="init", task_data=self.kwargs, step=0) + q.put_nowait(wandb_task) + + self.queues[site.name] = q + p = Process(target=self.job, args=(q,)) + self.processes[site.name] = p + + for site_name, site_p in self.processes.items(): + site_p.start() + + def save(self, fl_ctx: FLContext, shareable: Shareable, record_origin: str): + dxo = from_shareable(shareable) + data = AnalyticsData.from_dxo(dxo, receiver=LogWriterName.WANDB) + if not data: + return + + q: Optional[Queue] = self.get_job_queue(record_origin) + if q: + if data.data_type == AnalyticsDataType.PARAMETER or data.data_type == AnalyticsDataType.METRIC: + log_data = {data.tag: data.value} + q.put_nowait(WandBTask(task_owner=record_origin, task_type="log", task_data=log_data, step=data.step)) + elif data.data_type == AnalyticsDataType.PARAMETERS or data.data_type == AnalyticsDataType.METRICS: + q.put_nowait(WandBTask(task_owner=record_origin, task_type="log", task_data=data.value, step=data.step)) + + def finalize(self, fl_ctx: FLContext): + + for site in self.processes: + q: Optional[Queue] = self.get_job_queue(site) + q.put_nowait(WandBTask(task_owner=site, task_type="stop", task_data={}, step=0)) + + for site in self.processes: + p = self.processes[site] + p.join() + + def get_job_queue(self, record_origin): + return self.queues.get(record_origin, None) + + def check_kwargs(self, kwargs): + if "project" not in kwargs: + raise ValueError("must provide `project' value") + + if "group" not in kwargs: + raise ValueError("must provide `group' value") + + if "job_type" not in kwargs: + raise ValueError("must provide `job_type' value") diff --git a/nvflare/app_opt/tracking/wandb/wandb_writer.py b/nvflare/app_opt/tracking/wandb/wandb_writer.py new file mode 100644 index 0000000000..76ef422ecc --- /dev/null +++ b/nvflare/app_opt/tracking/wandb/wandb_writer.py @@ -0,0 +1,39 @@ +# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from typing import Dict, Optional + +from nvflare.apis.analytix import AnalyticsDataType +from nvflare.app_common.tracking.log_writer import LogWriter +from nvflare.app_common.tracking.tracker_types import LogWriterName +from nvflare.app_common.widgets.streaming import ANALYTIC_EVENT_TYPE + + +class WandBWriter(LogWriter): + def __init__(self, event_type: str = ANALYTIC_EVENT_TYPE): + super().__init__() + self.sender = self.load_log_sender(event_type) + + def get_writer_name(self) -> LogWriterName: + return LogWriterName.WANDB + + def log(self, metrics: Dict[str, float], step: Optional[int] = None): + """ + Log multiple metrics for the current run. If no run is active, this method will create a new active run. + Args: + metrics: – Dictionary of metric_name: String -> value: Float. + step: – A single integer step at which to log the specified Metrics. + """ + self.sender.add(tag="metrics", value=metrics, data_type=AnalyticsDataType.METRICS, global_step=step) diff --git a/nvflare/private/fed/server/job_meta_validator.py b/nvflare/private/fed/server/job_meta_validator.py index 3e5855dd31..3332da378e 100644 --- a/nvflare/private/fed/server/job_meta_validator.py +++ b/nvflare/private/fed/server/job_meta_validator.py @@ -105,7 +105,7 @@ def _validate_app(self, job_name: str, meta: dict, zip_file: ZipFile) -> None: if not self._entry_exists(zip_file, zip_folder): logger.debug(f"zip folder {zip_folder} missing. Files in the zip:") for x in zip_file.namelist(): - logger.debug(f" {x}") + logger.info(f" {x}") raise ValueError(f"App {app} in deploy_map doesn't exist for job {job_name}") all_sites = ALL_SITES.casefold() in (site.casefold() for site in deployments) diff --git a/nvflare/widgets/info_collector.py b/nvflare/widgets/info_collector.py index 2533cf5a77..12ccaa95e5 100644 --- a/nvflare/widgets/info_collector.py +++ b/nvflare/widgets/info_collector.py @@ -102,6 +102,8 @@ def handle_event(self, event_type: str, fl_ctx: FLContext): return analytic_data = AnalyticsData.from_dxo(dxo) + if not analytic_data: + return if event_type == EventType.CRITICAL_LOG_AVAILABLE: key = "critical" diff --git a/tests/unit_test/apis/analytix_test.py b/tests/unit_test/apis/analytix_test.py index 11ce80a2f0..7a4149a141 100644 --- a/tests/unit_test/apis/analytix_test.py +++ b/tests/unit_test/apis/analytix_test.py @@ -11,12 +11,13 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from typing import re import pytest from nvflare.apis.analytix import _DATA_TYPE_KEY, _KWARGS_KEY, AnalyticsData, AnalyticsDataType from nvflare.apis.dxo import DXO, DataKind -from nvflare.app_common.tracking.tracker_types import TrackConst, Tracker +from nvflare.app_common.tracking.tracker_types import LogWriterName, TrackConst from nvflare.app_common.widgets.streaming import create_analytic_dxo FROM_DXO_TEST_CASES = [ @@ -32,7 +33,7 @@ key="dict", value={"key": 1.0}, step=3, - sender=Tracker.MLFLOW, + writer=LogWriterName.MLFLOW, kwargs={"experiment_name": "test"}, data_type=AnalyticsDataType.SCALARS, ), @@ -64,14 +65,14 @@ TypeError, f"expect data_type to be an instance of AnalyticsDataType, but got {type('')}.", ), - ( - "tag", - 1.0, - AnalyticsDataType.SCALAR, - [1], - TypeError, - f"expect kwargs to be an instance of dict, but got {type(list())}.", - ), + # ( + # "tag", + # 1.0, + # AnalyticsDataType.SCALAR, + # [1], + # TypeError, + # "type object argument after ** must be a mapping, not list", + # ), ] @@ -79,17 +80,20 @@ class TestAnalytix: @pytest.mark.parametrize("tag,value,data_type,kwargs,expected_error,expected_msg", INVALID_TEST_CASES) def test_invalid(self, tag, value, data_type, kwargs, expected_error, expected_msg): with pytest.raises(expected_error, match=expected_msg): - _ = AnalyticsData(key=tag, value=value, data_type=data_type, kwargs=kwargs) + if not kwargs: + _ = AnalyticsData(key=tag, value=value, data_type=data_type) + else: + _ = AnalyticsData(key=tag, value=value, data_type=data_type, **kwargs) @pytest.mark.parametrize("tag,value,step, data_type", FROM_DXO_TEST_CASES) def test_from_dxo(self, tag, value, step, data_type): - dxo = create_analytic_dxo(tag=tag, value=value, data_type=data_type, step=step) + dxo = create_analytic_dxo(tag=tag, value=value, data_type=data_type, global_step=step) assert dxo.get_meta_prop(_DATA_TYPE_KEY) == data_type result = AnalyticsData.from_dxo(dxo) assert result.tag == tag assert result.value == value assert result.step == step - assert result.sender == Tracker.TORCH_TB + assert result.writer == LogWriterName.TORCH_TB @pytest.mark.parametrize("data", TO_DXO_TEST_CASES) def test_to_dxo(self, data: AnalyticsData): @@ -105,7 +109,7 @@ def test_to_dxo(self, data: AnalyticsData): assert result.data[TrackConst.KWARGS_KEY] == data.kwargs assert result.get_meta_prop(_DATA_TYPE_KEY) == data.data_type - assert result.get_meta_prop(TrackConst.TRACKER_KEY) == data.sender + assert result.get_meta_prop(TrackConst.WRITER_KEY) == data.writer @pytest.mark.parametrize("dxo,expected_error,expected_msg", FROM_DXO_INVALID_TEST_CASES) def test_from_dxo_invalid(self, dxo, expected_error, expected_msg): diff --git a/tests/unit_test/app_common/widgets/streaming_test.py b/tests/unit_test/app_common/widgets/streaming_test.py index eff54ed6a8..212c683d15 100644 --- a/tests/unit_test/app_common/widgets/streaming_test.py +++ b/tests/unit_test/app_common/widgets/streaming_test.py @@ -18,7 +18,7 @@ from nvflare.apis.dxo import DXO, DataKind from nvflare.apis.fl_component import FLComponent from nvflare.apis.fl_context import FLContext -from nvflare.app_common.tracking.tracker_types import Tracker +from nvflare.app_common.tracking.tracker_types import LogWriterName from nvflare.app_common.widgets.streaming import create_analytic_dxo, send_analytic_dxo INVALID_TEST_CASES = [ @@ -95,4 +95,4 @@ def test_invalid_send_analytic_dxo(self, comp, dxo, fl_ctx, expected_error, expe @pytest.mark.parametrize("tag,value,step, data_type,expected_error,expected_msg", INVALID_WRITE_TEST_CASES) def test_invalid_write_func(self, tag, value, step, data_type, expected_error, expected_msg): with pytest.raises(expected_error, match=expected_msg): - create_analytic_dxo(tag=tag, value=value, data_type=data_type, step=step, sender=Tracker.TORCH_TB) + create_analytic_dxo(tag=tag, value=value, data_type=data_type, step=step, writer=LogWriterName.TORCH_TB)