Commit ·
1422c62
1
Parent(s): ddcd303
Per-task rollouts: easy=2, medium=4, hard=4 — reduces runtime to ~16min
Browse files- baseline/evaluator.py +10 -4
baseline/evaluator.py
CHANGED
|
@@ -12,7 +12,11 @@ from core.reward import normalise_score
|
|
| 12 |
from core.policy_update import compute_advantage, update_memory
|
| 13 |
import requests as http_requests
|
| 14 |
|
| 15 |
-
N_ROLLOUTS =
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
|
| 17 |
|
| 18 |
def build_prompt_with_memory(obs: CityObservation, memory: EpisodicMemory) -> str:
|
|
@@ -77,17 +81,19 @@ def run_task_grpo(
|
|
| 77 |
env: Any, task_name: str, client: OpenAI,
|
| 78 |
base_url: str, verbose: bool = True,
|
| 79 |
) -> float:
|
|
|
|
|
|
|
| 80 |
if verbose:
|
| 81 |
-
print(f"\n Task: {task_name.upper()} | {
|
| 82 |
print(f" {'─'*44}")
|
| 83 |
|
| 84 |
memory = EpisodicMemory(max_size=20)
|
| 85 |
rollouts = []
|
| 86 |
|
| 87 |
-
for i in range(
|
| 88 |
if verbose:
|
| 89 |
label = "base prompt" if len(memory) == 0 else f"memory: {len(memory)} entries"
|
| 90 |
-
print(f"\n Rollout {i+1}/{
|
| 91 |
|
| 92 |
total_reward, steps, trajectory = run_rollout(
|
| 93 |
env, task_name, client, memory, verbose
|
|
|
|
| 12 |
from core.policy_update import compute_advantage, update_memory
|
| 13 |
import requests as http_requests
|
| 14 |
|
| 15 |
+
N_ROLLOUTS = {
|
| 16 |
+
"easy": 2, # Always solves cleanly in 1-2 rollouts, no variance to learn from
|
| 17 |
+
"medium": 4, # Needs GRPO learning signal to stabilise
|
| 18 |
+
"hard": 4, # Needs GRPO learning signal to stabilise
|
| 19 |
+
}
|
| 20 |
|
| 21 |
|
| 22 |
def build_prompt_with_memory(obs: CityObservation, memory: EpisodicMemory) -> str:
|
|
|
|
| 81 |
env: Any, task_name: str, client: OpenAI,
|
| 82 |
base_url: str, verbose: bool = True,
|
| 83 |
) -> float:
|
| 84 |
+
n = N_ROLLOUTS[task_name]
|
| 85 |
+
|
| 86 |
if verbose:
|
| 87 |
+
print(f"\n Task: {task_name.upper()} | {n} rollouts")
|
| 88 |
print(f" {'─'*44}")
|
| 89 |
|
| 90 |
memory = EpisodicMemory(max_size=20)
|
| 91 |
rollouts = []
|
| 92 |
|
| 93 |
+
for i in range(n):
|
| 94 |
if verbose:
|
| 95 |
label = "base prompt" if len(memory) == 0 else f"memory: {len(memory)} entries"
|
| 96 |
+
print(f"\n Rollout {i+1}/{n} [{label}]")
|
| 97 |
|
| 98 |
total_reward, steps, trajectory = run_rollout(
|
| 99 |
env, task_name, client, memory, verbose
|