semvec/pypi-packages huggingface dataset:
asociita 0.3.4
An intuitive and modular simulator for assessing the marginal value of a client's contribution in a decentralized setting.
License: MIT
Requires Python: >=3.10,<4.0

### 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, only `none` or `full` 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 of `nodes` must be equal `number_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`