Yero commited on
Commit
2caeddd
·
1 Parent(s): a117c83

fix: run 3 tasks with clamped scores in (0,1) for validator

Browse files
Files changed (1) hide show
  1. inference.py +26 -10
inference.py CHANGED
@@ -32,32 +32,38 @@ def log_step(step: int, action: str, reward: float, done: bool, error: Optional[
32
  )
33
 
34
 
35
- def log_end(success: bool, steps: int, rewards: List[float]) -> None:
36
  rewards_str = ",".join(f"{r:.2f}" for r in rewards)
37
  print(
38
- f"[END] success={str(success).lower()} steps={steps} rewards={rewards_str}",
39
  flush=True,
40
  )
41
 
42
 
 
 
 
 
 
 
 
 
43
  def parse_decision(text: str) -> str:
44
  text = (text or "").strip().lower()
45
  return "flag" if text == "flag" else "skip"
46
 
47
 
48
- def main():
49
- env_url = os.getenv("ENV_SERVER_URL", "http://127.0.0.1:7860")
50
- task_difficulty = "easy"
51
-
52
  rewards: List[float] = []
53
  steps_taken = 0
54
  success = False
 
55
 
56
- log_start(task=f"{TASK_NAME}_{task_difficulty}", env=BENCHMARK, model=MODEL_NAME)
57
 
58
  try:
59
  with CodeReviewEnv(base_url=env_url).sync() as env:
60
- step_result = env.reset(difficulty=task_difficulty)
61
  obs = step_result.observation
62
 
63
  while not step_result.done:
@@ -107,14 +113,24 @@ def main():
107
  error=error_msg,
108
  )
109
 
110
- success = bool(getattr(obs, "f1_score", 0.0) > 0.0)
 
 
111
 
112
  except Exception as e:
113
  print(str(e).replace("\n", " "), file=sys.stderr, flush=True)
 
114
  success = False
115
 
116
  finally:
117
- log_end(success=success, steps=steps_taken, rewards=rewards)
 
 
 
 
 
 
 
118
 
119
 
120
  if __name__ == "__main__":
 
32
  )
33
 
34
 
35
+ def log_end(success: bool, steps: int, score: float, rewards: List[float]) -> None:
36
  rewards_str = ",".join(f"{r:.2f}" for r in rewards)
37
  print(
38
+ f"[END] success={str(success).lower()} steps={steps} score={score:.4f} rewards={rewards_str}",
39
  flush=True,
40
  )
41
 
42
 
43
+ def clamp_score(raw: float) -> float:
44
+ if raw <= 0.0:
45
+ return 0.01
46
+ if raw >= 1.0:
47
+ return 0.99
48
+ return raw
49
+
50
+
51
  def parse_decision(text: str) -> str:
52
  text = (text or "").strip().lower()
53
  return "flag" if text == "flag" else "skip"
54
 
55
 
56
+ def run_task(env_url: str, difficulty: str) -> None:
 
 
 
57
  rewards: List[float] = []
58
  steps_taken = 0
59
  success = False
60
+ score = 0.01
61
 
62
+ log_start(task=f"{TASK_NAME}_{difficulty}", env=BENCHMARK, model=MODEL_NAME)
63
 
64
  try:
65
  with CodeReviewEnv(base_url=env_url).sync() as env:
66
+ step_result = env.reset(difficulty=difficulty)
67
  obs = step_result.observation
68
 
69
  while not step_result.done:
 
113
  error=error_msg,
114
  )
115
 
116
+ raw_score = getattr(obs, "f1_score", 0.0) or 0.0
117
+ score = clamp_score(raw_score)
118
+ success = raw_score > 0.0
119
 
120
  except Exception as e:
121
  print(str(e).replace("\n", " "), file=sys.stderr, flush=True)
122
+ score = 0.01
123
  success = False
124
 
125
  finally:
126
+ log_end(success=success, steps=steps_taken, score=score, rewards=rewards)
127
+
128
+
129
+ def main():
130
+ env_url = os.getenv("ENV_SERVER_URL", "http://127.0.0.1:7860")
131
+
132
+ for difficulty in ["easy", "medium", "hard"]:
133
+ run_task(env_url, difficulty)
134
 
135
 
136
  if __name__ == "__main__":