Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Features/decay scores #92

Merged
merged 5 commits into from
Feb 12, 2024
Merged

Features/decay scores #92

merged 5 commits into from
Feb 12, 2024

Conversation

steffencruz
Copy link
Collaborator

@steffencruz steffencruz commented Feb 7, 2024

Introduces a decay alpha which decreases ALL scores by a small amount of every step. This is effectively a ping for the miners so that those which are not alive pay a cost for not participating.

An initial value of decay_alpha=0.001 is set which would reduce all scores by 0.001 on every run_step. Given that currently step_size=50, the expected number of steps before a given UID is queried is around 1000/50 = 20.

This means that a UIDs score will tend to decrease by 0.02 between subsequent queries due to score decay, which is negligible compared to the ~0.3 that is typically scored. The net effect for active UIDs is a uniform drop in all scores by 0.02.

However, for UIDs that are not active this will compound so that their scores drop by 0.02 each time a query is missed - so after 10 missed queries (or 200 steps) their scores will drop by 0.2. In other words, miners that are not consistently alive will be at risk of deregistration.

  • EMA alpha is increased from 0.05 -> 0.1.

TODO: unit tests for alpha decay

@steffencruz steffencruz marked this pull request as ready for review February 8, 2024 16:52
Copy link
Contributor

@p-ferreira p-ferreira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like how clean this solution is and how this change puts the expectation on reliability and consistency high, at the same time this makes harder for miners to perform any eventual non-instant update or adjustment.

I think it's worth highlighting this in the release so miners are aware that once they are registered, they will be actively punished for any downtime.

@steffencruz steffencruz merged commit 7dd0653 into staging Feb 12, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants