Synergos is an open source platform AI Singapore created to support Federated Learning. Federated Learning is a privacy-preserving ML technology that enables multiple parties to build machine learning model without exchanging raw data among one another.
This group is created for discussion about Synergos, Federated Learning, and privacy-preserving ML in general
Unfortunately, I am unable to reproduce the error on my end. As such, I would like to clarify your setup with the following questions: 1. Was the worker image pulled from GCR, or was it built directly from source?
2. What was the exact “docker run” command used to start the worker?
3. What was the exact error message raised?
In the meantime, here are a few preemptive tips to note:
1. Ensure that the option flags (i.e. “–logging_variant”) are placed after the container name (i.e. “synergos_worker:v0.1.0″)
2. Ensure that the logging variant is one of these 2 options – “basic” or “graylog”. Do note that if “graylog” is specified, it means that Synergos Logger is expected to be deployed.
A minimal command I had used that work is as follows: “docker container run [-v <custom mount>] [–name <custom name>] gcr.io/synergos-aisg/synergos_worker:v0.1.0 –logging_resolution 5 –logging_variant basic”
Please this try out this command first without specifying the flags in brackets. Once it has been confirmed to work, add in the flags in brackets matching your intended configurations. Let me know if this works, yeah?
Alternatively, if you would like a fuss-free experience of the system itself, I would like to redirect you to our all-in-one sandbox, Synergos Simulator (https://github.com/aimakerspace/synergos_simulator), where we have everything setup and ready to run.
1. Do the dockers support RedHat Linux-based Systems, such as Amazon Linux 2?
We haven’t fully tested running on RedHat Linux-based Systems, given that we’ve tested our docker images on top of Ubuntu kernels, it should theoretically work on most Linux kernel variants, since they are sufficiently similar that applications will not notice.
2. Where should the participants store their data, if they want to use the UI? Local laptop, cloud VM, or other environments?
The participants can store their data on any of your given examples, contingent on your use case. Ideally, for beginner user though, we recommend starting off with the local laptop, for easier access configurations. Otherwise, for cloud VMs for example, you will need to mount the corresponding remote volume prior to docker container run. On abstraction, for a participant, all Synergos UI requires for data tags declaration, are its symbolic links to the data file locations.
3. For the logger, what is the difference between graylog and basic?
Basic outputs on CLI, which is next streamed into docker logs. Use Basic if you don’t wish to deploy anything else. Use Graylog if you want to consolidate all the stats into a centralised logger. It’s useful when you have multiple parties and it becomes important to monitor each one, since down time on any one of them causes more problems (eg. needing to restart all 100 machines again in a 100 party network because of 1 computer)
4. Could you share an example of the correct command to utilize selected gpu(s) on a multi-gpu machine?
At the moment, the current version of Synergos (v0.1.0) does not support GPU. However, release of this feature is in the foreseeable product roadmap.
5. Do Synergos support pretrained CV models, or custom-written layer/loss?
Synergos does not officially support pre-trained CV models (presumably as a global model) and custom-written layer/loss at user abstraction level.
While greatly not recommended, It is still possible for advance users/developers, by exploring substituting torch model files in orchestrator outputs for the run.