Decentral Shapley Value Strategy#
- class rizemind.strategies.contribution.shapley.decentralized.shapley_value_strategy.DecentralShapleyValueStrategy(strategy: Strategy, model: SupportsShapleyValueStrategy, **kwargs)[source]
Bases:
ShapleyValueStrategyDecentralized Shapley value strategy with client-side evaluation.
This strategy extends ShapleyValueStrategy to distribute coalition evaluation tasks to clients rather than performing evaluation on the server. Coalitions are created from client training results, and their parameters are sent to available clients for evaluation in a round-robin fashion.
- aggregate_evaluate(server_round: int, results: list[tuple[ClientProxy, EvaluateRes]], failures: list[tuple[ClientProxy, EvaluateRes] | BaseException]) tuple[float | None, dict[str, bool | bytes | float | int | str]][source]
Aggregate client evaluation results and finalize the round.
Collects evaluation results from clients, associates them with their respective coalitions, and closes the round by computing contributions and distributing rewards.
- Parameters:
server_round – The current server round number.
results – List of tuples containing client proxies and their evaluation results.
failures – List of any failed evaluation results.
- Returns:
Tuple containing the best coalition loss and aggregated metrics.
- configure_evaluate(server_round: int, parameters: Parameters, client_manager: ClientManager) list[tuple[ClientProxy, EvaluateIns]][source]
Create evaluation instructions for distributing coalition evaluation to clients.
Assigns each coalition’s parameters to available clients in a round-robin fashion for decentralized evaluation. Coalition order is randomized to prevent bias.
- Parameters:
server_round – The current server round number.
parameters – Current model parameters (unused, coalitions have their own).
client_manager – Manager handling available clients.
- Returns:
List of tuples containing client proxies and their evaluation instructions.
- evaluate(server_round: int, parameters: Parameters)[source]
Server-side evaluation (disabled for decentralized mode).
Returns None since evaluation is performed by clients in decentralized mode.
- Parameters:
server_round – The current server round number.
parameters – Model parameters (unused).
- Returns:
None to indicate no centralized evaluation.