- Jul 22, 2024
-
-
ANDREY Paul authored
-
ANDREY Paul authored
-
ANDREY Paul authored
Fix the case when the batch size for a given subset is exactly a multiple of the number of samples for that subset, which would result in an exception (at least with in-memory data).
-
ANDREY Paul authored
-
ANDREY Paul authored
-
ANDREY Paul authored
-
ANDREY Paul authored
-
ANDREY Paul authored
-
ANDREY Paul authored
-
ANDREY Paul authored
-
ANDREY Paul authored
- Add shared code in the unit tests suite. - Add dedicated data and tests in FairGrad and FairBatch subclasses.
-
ANDREY Paul authored
-
ANDREY Paul authored
-
ANDREY Paul authored
-
ANDREY Paul authored
-
ANDREY Paul authored
- Expose some subroutines under setup and fairness round, for the mere sake of making tests easier to perform, as well as to enable variants over current algorithms in the future / in experiments. - Rename some methods and re-order some arguments. - Refactor server-side aggregation of metrics, making it part of 'FairnessControllerServer' rather than part of 'FederatedServer' backend code.
-
ANDREY Paul authored
- Replace 'FairfedFairnessFunction' with 'FairfedValueComputer'. - Add explicit 'target' keyword argument to the controller classes.
-
ANDREY Paul authored
- Revise 'FairnessAccuracyComputer' into 'FairnessMetricsComputer'. - Revise name and documentation to reflect broader scope. - Remove specific accuracy and loss computation routines. - Introduce more generic metrics-computation routines. - Add methods to set up accuracy and loss-computation metrics. - Revise 'FairnessControllerClient.compute_fairness_measures': - Have unshared values be returned as a nested dict, to limit redundant (un)packing operations and code. - Add 'setup_fairness_metrics' method to define metrics to compute. By default, compute group-wise accuracy. - By default, scale and share all metrics defined by `setup_fairness_metrics`, and compute (but do not share) local fairness values. - Propagate this change across all subclasses, effectively trimming some redundant boilerplate code.
-
ANDREY Paul authored
-
ANDREY Paul authored
-
ANDREY Paul authored
- Until now, 'TomlConfig' fields were either mandatory of had a fixed default value. In some cases, the latter may be refined based on other values; however, they could not be missing in TOML files. - With the added 'autofield_fields' class attribute, some fields can be explicitly marked as having a dynamically-created default value. In that case, it can safely be ignored in TOML files. - This is now used to support omitting 'evaluate' and 'fairness' fields when writing down a 'FLRunConfig' as a TOML file.
-
ANDREY Paul authored
-
ANDREY Paul authored
Debug 'FederatedClient' along the way, mostly improving error catching and raising behaviors' consistency with other methods.
-
ANDREY Paul authored
-
ANDREY Paul authored
-
ANDREY Paul authored
-
ANDREY Paul authored
-
ANDREY Paul authored
-
ANDREY Paul authored
- Move all ABCs and the ever-present accuracy computer to 'api'. - Make 'core' a submodule for concrete implementations of abstract classes, currently holding group-fairness functions and in-memory fairness dataset.
-
ANDREY Paul authored
-
ANDREY Paul authored
- Introduce a 'strict' mode, that sticks closely to the original paper, restricting the scope of settings covered by FairFed and using rather-specific synthetic fairness values. - Document this 'strict' mode and, by contrast, the more generic extension that was previously implemented.
-
ANDREY Paul authored
-
ANDREY Paul authored
This implementation is very loosely based on the "legacy" one from the 'fairgrad' branch. It generalizes to broader cases than those showcased in the initial FairFed paper, and relies on a dedicated (mostly client-side) Aggregator subclass that is altered during fairness rounds to use fairness-based averaging weights. The maths to the "global" fairness measures computation are not those of the original paper, and should be verified to equate the original paper for the EOD and SPD cases prior to merging.
-
ANDREY Paul authored
-
ANDREY Paul authored
-
ANDREY Paul authored
- Have clients' measures-computing routine return both shareable and local-use values. - This way, unscaled metrics that are to be post-processed and/or checkpointed can be kept as-is rather than scaled-then-descaled.
-
ANDREY Paul authored
This commit adds the Fed-FairBatch and FedFB algorithms for group fairness. It is based on the "legacy" implementation from the 'fairgrad' branch, but adjusts to the updated fairness API. It also adds some documentation, changes the signature of sampling probabilities controllers to be coherent with 'FairnessFunction', and integrates FedFB as a variant of Fed-FairGrad, within the same controller class. Co-authored-by:
Brahim Erraji <brahim.erraji@inria.fr>
-
ANDREY Paul authored
-
ANDREY Paul authored
- Revise the way client-side controllers are instantiated from server-emitted instructions, using the usual type-registration tools and removing the need to subclass setup query messages. - Move fairness-related base messages to the 'messaging' module (and 'secagg.messaging' one). - Have the client-side controller access and wrap a training manager at instantiation. Revise method signatures and docs. - Add fairness metrics checkpointing.
-
ANDREY Paul authored
* Integrate Fairness configuration on the server side, split between 'FLOptimConfig' and 'FLRunConfig'. * Implement generic fairness measures computation on the server side. Implement default computations on the client side. Leave additional actions up to subclasses. This will potentially be refactored to be coherent as to what goes in the fairness controllers and what goes in the existing main classes, and as to what is part of the shared API and what is left to algorithm-specific subclasses. * Move fairness round query and reply messages to 'messaging'.
-