Calculator

Calculator#

class rizemind.strategies.contribution.calculators.calculator.ContributionCalculator[source]

Bases: ABC

Participant contribution calculator.

Defines the interface that all contribution calculation algorithms must implement. Contribution calculators assess how much each participant contributed to the overall model performance in federated learning.

abstractmethod get_scores(*, participant_mapping: ~rizemind.strategies.contribution.shapley.trainer_mapping.ParticipantMapping, store: ~rizemind.strategies.contribution.shapley.trainer_set.TrainerSetAggregateStore, coalition_to_score_fn: ~collections.abc.Callable[[~rizemind.strategies.contribution.shapley.trainer_set.TrainerSetAggregate], float] | None = <function default_coalition_to_score>) dict[ChecksumAddress, PlayerScore][source]

Calculates contribution scores for all participants.

Computes the contribution score for each participant. The specific calculation method depends on the implementing class.

Parameters:
  • participant_mapping – Maps participants to their coalition memberships.

  • store – Contains metrics and losses for all evaluated coalitions.

  • coalition_to_score_fn – Function to convert a coalition’s aggregate

  • None (to a numerical score. If)

  • default_coalition_to_score. (uses)

Returns:

A dictionary mapping each participant’s address to their PlayerScore.

class rizemind.strategies.contribution.calculators.calculator.PlayerScore(*, trainer_address: ChecksumAddress, score: float)[source]

Bases: BaseModel

The contribution score for a single participant.

Represents the calculated contribution value for a participant and their blockchain address.

trainer_address

The blockchain address of the participant.

Type:

eth_typing.evm.ChecksumAddress

score

The calculated contribution score value.

Type:

float

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

score: float
trainer_address: ChecksumAddress
rizemind.strategies.contribution.calculators.calculator.default_coalition_to_score(set: TrainerSetAggregate) float[source]

Returns the loss value of a set as its score.

Raises:

Exception – if the coalition was not evaluated.