Skip to content

Commit 1aad6cd

Browse files
authored
Merge pull request #124 from web-genie-ai/feat/reserved-weights
Feat/reserved weights
2 parents b3c4b1f + 8813868 commit 1aad6cd

File tree

6 files changed

+42
-35
lines changed

6 files changed

+42
-35
lines changed

neurons/validators/genie_validator.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ async def query_miners(self):
8282
available_challenges_classes = [
8383
AccuracyChallenge,
8484
SeoChallenge,
85+
#QualityChallenge,
86+
SeoChallenge,
8587
SeoChallenge,
8688
SeoChallenge,
8789
]

neurons/validators/score_manager.py

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,9 @@
88
from typing import List
99

1010
from webgenie.base.neuron import BaseNeuron
11-
from webgenie.challenges.challenge import Challenge
12-
from webgenie.constants import (
13-
CONSIDERING_SESSION_COUNTS,
14-
__STATE_VERSION__,
15-
WORK_DIR,
16-
MAX_UNANSWERED_TASKS,
17-
)
11+
12+
from webgenie.challenges.challenge import Challenge, RESERVED_WEIGHTS
13+
from webgenie.constants import CONSIDERING_SESSION_COUNTS, __STATE_VERSION__, WORK_DIR
1814
from webgenie.helpers.weights import save_file_to_wandb
1915

2016
class ScoreManager:
@@ -183,30 +179,37 @@ def get_winner(self, total_scores: np.ndarray, solved_tasks: np.ndarray, number_
183179

184180
def get_scores(self, session_upto: int):
185181
scores = np.zeros(self.neuron.metagraph.n, dtype=np.float32)
186-
tiny_weight = 1 / 128
187-
big_weight = 1.0
188182
for session_number in self.session_results:
189183
if (session_number <= session_upto - CONSIDERING_SESSION_COUNTS or
190184
session_number > session_upto):
191185
continue
192-
193-
winner = self.get_winner(
194-
self.session_results[session_number]["scores"],
195-
self.session_results[session_number]["solved_tasks"],
196-
self.session_results[session_number]["number_of_tasks"],
197-
)
198-
if winner == -1:
199-
continue
200-
if session_number == session_upto:
201-
scores[winner] += big_weight
202-
else:
203-
scores[winner] += tiny_weight
204-
205-
for uid in range(self.neuron.metagraph.n):
206-
if self.is_blacklisted(uid):
207-
scores[uid] = 0
208-
186+
187+
try:
188+
winner = self.session_results[session_number]["winner"]
189+
competition_type = self.session_results[session_number]["competition_type"]
190+
if winner == -1:
191+
continue
192+
scores[winner] += RESERVED_WEIGHTS[competition_type]
193+
except Exception as e:
194+
bt.logging.warning(f"Error getting scores: {e}")
195+
209196
return scores
197+
# scores = np.zeros(self.neuron.metagraph.n, dtype=np.float32)
198+
# tiny_weight = 1 / 128
199+
# big_weight = 1.0
200+
# for session_number in self.session_results:
201+
# if (session_number <= session_upto - CONSIDERING_SESSION_COUNTS or
202+
# session_number > session_upto):
203+
# continue
204+
205+
# winner = self.session_results[session_number]["winner"]
206+
# if winner == -1:
207+
# continue
208+
# if session_number == session_upto:
209+
# scores[winner] += big_weight
210+
# else:
211+
# scores[winner] += tiny_weight
212+
# return scores
210213

211214
# if session_upto in self.session_results:
212215
# scores = self.session_results[session_upto]["scores"]

neurons/validators/validator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def __init__(self, config=None):
6969
self.query_miners_thread: Union[threading.Thread, None] = None
7070
self.score_thread: Union[threading.Thread, None] = None
7171
self.sync_thread: Union[threading.Thread, None] = None
72-
self.lock = threading.RLock()
72+
self.lock = threading.Lock()
7373

7474
self.genie_validator = GenieValidator(neuron=self)
7575
self.score_manager = ScoreManager(neuron=self)
@@ -345,7 +345,7 @@ def sync_loop(self):
345345
try:
346346
with self.lock:
347347
self.sync()
348-
self.set_weights()
348+
self.set_weights()
349349
except Exception as e:
350350
bt.logging.error(f"Error during sync: {str(e)}")
351351
if self.should_exit:

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "web-genie-ai"
3-
version = "1.1.26"
3+
version = "1.1.20"
44
description = "The first bittensor subnet for web generation"
55
readme = "README.md"
66
requires-python = ">=3.12.4"

webgenie/challenges/challenge.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ async def calculate_scores(self) -> dict[str, np.ndarray]:
4343
scores = await self.task.generator.calculate_scores(self.task, self.solutions)
4444
accuracy_scores = scores[ACCURACY_METRIC_NAME]
4545
seo_scores = scores[SEO_METRIC_NAME]
46-
aggregated_scores = np.where(accuracy_scores > 0.9, seo_scores, 0)
46+
aggregated_scores = np.where(accuracy_scores > 0.7, seo_scores, 0)
4747
return aggregated_scores, scores
4848

4949

@@ -54,9 +54,10 @@ async def calculate_scores(self) -> dict[str, np.ndarray]:
5454
scores = await self.task.generator.calculate_scores(self.task, self.solutions)
5555
accuracy_scores = scores[ACCURACY_METRIC_NAME]
5656
quality_scores = scores[QUALITY_METRIC_NAME]
57-
aggregated_scores = np.where(accuracy_scores > 0.9, quality_scores, 0)
57+
aggregated_scores = np.where(accuracy_scores > 0.7, quality_scores, 0)
5858
return aggregated_scores, scores
5959

60+
6061
class BalancedChallenge(Challenge):
6162
competition_type: str = Field(default=BALANCED_COMPETITION_TYPE, description="The type of competition")
6263

@@ -65,13 +66,13 @@ async def calculate_scores(self) -> dict[str, np.ndarray]:
6566
accuracy_scores = scores[ACCURACY_METRIC_NAME]
6667
quality_scores = scores[QUALITY_METRIC_NAME]
6768
seo_scores = scores[SEO_METRIC_NAME]
68-
aggregated_scores = accuracy_scores * 0.4 + quality_scores * 0.3 + seo_scores * 0.3
69+
aggregated_scores = accuracy_scores * 0.6 + quality_scores * 0.2 + seo_scores * 0.2
6970
return aggregated_scores, scores
7071

7172

7273
RESERVED_WEIGHTS = {
73-
ACCURACY_COMPETITION_TYPE: 50,
74-
BALANCED_COMPETITION_TYPE: 30,
74+
ACCURACY_COMPETITION_TYPE: 70,
75+
BALANCED_COMPETITION_TYPE: 10,
7576
SEO_COMPETITION_TYPE: 10,
7677
QUALITY_COMPETITION_TYPE: 10,
7778
}

webgenie/constants.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
import psutil
44
# Change this value when updating your code base.
55
# Define the version of the webgenie.
6-
__VERSION__ = "1.1.29" # version
6+
7+
__VERSION__ = "1.1.20" # version
78

89
SPEC_VERSION = (
910
(1000 * int(__VERSION__.split(".")[0]))

0 commit comments

Comments
 (0)