Adding a non deep learning end to end model training? #122
-
Hello, What would it take to setup a sample example of federated learning for a non deep learning model (like a logistic regression model or better, the recently popular XGBoost or Light GBM models)? Thank you very much, |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 2 replies
-
Thanks for this good suggestion! There are quite a few examples in the "examples" folder already, and some of them have nothing to do with DL (e.g. hello-numpy). As you might already have noticed, NVFLARE is totally agnostic to what the client is doing (doesn't even have to be machine learning). All it requires is that executors are defined for tasks received from the server, and these executors must return some result (called Shareable). Tasks are assigned by Controllers running on the Server. We defined a few commonly used controllers (i.e. ScatterAndGather for Fed Average). You can create your own using the Controller API. As long as the Controllers on the Server and Executors on the Clients are in agreement (tasks issued by the Controllers are executable by executors), you are okay. That said, we do want to gradually develop more examples for typical use cases (e.g.XGBoost). At the same time, we'd like to encourage users to contribute examples to NVFLARE. |
Beta Was this translation helpful? Give feedback.
-
@vkullu we added more examples other than deep learning now: https://github.com/NVIDIA/NVFlare/tree/dev/examples/advanced k-means, SVM, random forest, ...etc. Also XGBoost is added as well. Feel free to try them out! |
Beta Was this translation helpful? Give feedback.
Thanks for this good suggestion!
There are quite a few examples in the "examples" folder already, and some of them have nothing to do with DL (e.g. hello-numpy).
As you might already have noticed, NVFLARE is totally agnostic to what the client is doing (doesn't even have to be machine learning). All it requires is that executors are defined for tasks received from the server, and these executors must return some result (called Shareable).
Tasks are assigned by Controllers running on the Server. We defined a few commonly used controllers (i.e. ScatterAndGather for Fed Average). You can create your own using the Controller API.
As long as the Controllers on the Server and Executors on the C…