{"id":21184868,"url":"https://github.com/r-gg/flower-async","last_synced_at":"2025-07-10T00:33:57.909Z","repository":{"id":230467911,"uuid":"779428429","full_name":"r-gg/flower-async","owner":"r-gg","description":"Implementation of asynchronous federated learning in flower.","archived":false,"fork":false,"pushed_at":"2024-07-27T12:28:09.000Z","size":148,"stargazers_count":7,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-07-27T13:42:48.757Z","etag":null,"topics":["asynchronous-federated-learning","distributed-machine-learning","federated-learning","flower-framework","online-learning"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/r-gg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-29T20:21:18.000Z","updated_at":"2024-07-27T13:42:52.136Z","dependencies_parsed_at":"2024-07-27T13:42:51.421Z","dependency_job_id":"94c23b3e-ad4a-4211-9754-2852296f5367","html_url":"https://github.com/r-gg/flower-async","commit_stats":null,"previous_names":["r-gg/flower-async"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r-gg%2Fflower-async","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r-gg%2Fflower-async/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r-gg%2Fflower-async/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r-gg%2Fflower-async/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/r-gg","download_url":"https://codeload.github.com/r-gg/flower-async/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225606522,"owners_count":17495551,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asynchronous-federated-learning","distributed-machine-learning","federated-learning","flower-framework","online-learning"],"created_at":"2024-11-20T18:11:52.692Z","updated_at":"2024-11-20T18:11:53.314Z","avatar_url":"https://github.com/r-gg.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# flower-async\nImplementation of asynchronous federated learning in flower currently being developed as a part of my master's thesis. \n\nCurrently offers the following modes of operation:\n- Unweighted - Upon each merge into the global model, the local updates and global model are weighted equally.\n- FedAsync - global_new = (1-alpha) * global_old + alpha * local_new\n  - Where alpha depends on the staleness and/or number of samples used\n- AsyncFedED - global_new = global_old + $\\eta$ * (local_new - global_old)\n  - $\\eta$ again depends on staleness and/or number of samples\n\n# Implementation\n\nThe implementation consists of a modified server, strategy and client manager.\n\nThe inspiration of this work stems from the following papers:\n- [Privacy-Preserving Asynchronous Federated Learning Mechanism for Edge Network Computing -  ](https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9022982)\n- [Asynchronous Federated Optimization ~ FedAsync](https://arxiv.org/pdf/1903.03934.pdf)\n- [AsyncFedED: Asynchronous Federated Learning with Euclidean Distance based Adaptive Weight Aggregation](https://arxiv.org/pdf/2205.13797.pdf)\n- [Federated Learning on Non-IID Data Silos: An Experimental Study](https://arxiv.org/abs/2102.02079)\n\n# Usage\n\nUse the server as typical flower server with one additional argument: \n- async_strategy - currently only responsible for aggregating the models.\n\nMoreover the async client manager should be used instead of the SimpleClientManager. \n\nThe server instantiation would hence look something like this:\n```\nserver = AsyncServer(\n    strategy=FedAvg(\u003ccustomized\u003e), \n    client_manager=AsyncClientManager(), \n    async_strategy=AsynchronousStrategy(\u003ccustomized\u003e))\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr-gg%2Fflower-async","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fr-gg%2Fflower-async","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr-gg%2Fflower-async/lists"}