An intuitive and modular simulator for assessing the marginal value of a client's contribution in a decentralized setting.
Project description
Setting Configuration
In order to run the simulation, the Orchestrator
instance must receive a settings
object that contains all the necessary parameters. It is possible to store those parameters in a JSON
format and load them as the Python dictionary by using asociita.utils.helper.load_from_json
function. Below is an exemplary settings object embedded as a json
file. All the elements are necessary unless stated otherwise.
{
"orchestrator":{
"iterations": int,
"number_of_nodes": int,
"local_warm_start": bool,
"sample_size": int,
"evaluation": "none" | "full"
"save_metrics": bool,
"save_models": bool,
"save_path": str
"nodes": [0,
1,
2]
},
"nodes":{
"local_epochs": int,
"model_settings": {
"optimizer": "RMS",
"batch_size": int,
"learning_rate": float}
}
}
The settings
contains two dictionaries: orchestrator
and nodes
.
orchestrator
contains all the settings necessary details of the training:
iterations
is the number of rounds to be performed. Example:iterations:12
number_of_nodes
is the number of nodes that will be included in the training. Example:number_of_nodes: 10
local_warm_start
allows to distribute various pre-trained weights to different local clients. Not implemeneted yet. Example:local_warm_start: false
.sample_size
is the size of the sample that will be taken each round. Example:sample_size : 4.
evaluation
allows to control the evaluation procedure across the clients. Currently, onlynone
orfull
are supported. Setting the evaluation to full will perform a full evaluation of every client included in the training. Example:evaluation: full
save_metrics
allows to control whether the metrics should be saved in a csv file. Example:save_metrics: true.
save_models
allows to control whether the models should be saved. Not implemeneted yet. Example:save_metrics: false
.save_path
is the system path that will be used when saving the model. It is possible to define a saving_path in a method call.nodes
is the list containing the ids of all the nodes participating in the training. Length ofnodes
must be equalnumber_of_nodes
.
nodes
contains all the necessary configuration for nodes.
"local_epochs":
the number of local epochs to be performed on the local nodes."model_settings"
is a dictionary containing all the parameters for training the model.optimizer
is an optimizer that will be used during the training. Example:optimizer: "RMS"
batch_size
is the batch size that will be used during the training. Example:batch_size: 32
learning_rate
is the learning rate that will be used during the training. Example:learning_rate: 0.001
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.