FedML-AI/FedML

Why aggregation algorithm has different name but identical implementation

Open

#1,140 opened on Jun 28, 2023

View on GitHub
 (0 comments) (0 reactions) (0 assignees)Python (743 forks)batch import
help wantedquestion

Repository metrics

Stars
 (3,930 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

I have been testing other aggregation algorithms implemented in python/fedml/ml/aggregator/agg_oeprator.py. I realize all aggregation methods represent identical implementation. It means no matter which algorithm you select, in the end, the result will be the same. However, there are a few methods like SCAFFOLD and MIME have different way implementations but they are also giving errors as they require a totally different weight structure.

Is anyone explain to me why all algorithms have identical implementation codes and why SCAFFOLD expects a different weight structure?

This is the location I am talking about:

https://github.com/FedML-AI/FedML/blob/64715d4fb56a90e4106872f503815d978d32f8e6/python/fedml/ml/aggregator/agg_operator.py#L35C1-L35C45

Thanks for your kind support.

Contributor guide