Views
No views yet
erdos. Checkpoint saved
after training step 46 (0-indexed). Strict upstream eval parity:
1100s hard kill, verbatim prompts/entrypoints, group 64x8, T=1.0, kl 0.1.1{
2 "step": 46,
3 "progress/batch": 46,
4 "optim/lr": 4e-05,
5 "progress/done_frac": 0.94,
6 "puct/buffer_size": 744,
7 "puct/sampled_size": 8,
8 "puct/T": 23552,
9 "puct/scale_last": 0.2791161009492404,
10 "puct/buffer_value/mean": -0.38418120721339166,
11 "puct/buffer_value/std": 0.0192714450685652,
12 "puct/buffer_value/min": -0.66,
13 "puct/buffer_value/max": -0.38088389905075964,
14 "puct/buffer_timestep/mean": 22.247311827956988,
15 "puct/buffer_timestep/std": 13.424945416663627,
16 "puct/buffer_timestep/min": -1.0,
17 "puct/buffer_timestep/max": 45.0,
18 "puct/buffer_construction_len/mean": 107.85752688172043,
19 "puct/buffer_construction_len/std": 49.66052631067837,
20 "puct/buffer_construction_len/min": 40.0,
21 "puct/buffer_construction_len/max": 400.0,
22 "puct/sampled_value/mean": -0.3808852717914863,
23 "puct/sampled_value/std": 5.948573404197492e-07,
24 "puct/sampled_value/min": -0.38088595357371224,
25 "puct/sampled_value/max": -0.38088389905075964,
26 "puct/sampled_timestep/mean": 45.0,
27 "puct/sampled_timestep/std": 0.0,
28 "puct/sampled_timestep/min": 45.0,
29 "puct/sampled_timestep/max": 45.0,
30 "puct/sampled_construction_len/mean": 225.0,
31 "puct/sampled_construction_len/std": 66.14378277661477,
32 "puct/sampled_construction_len/min": 200.0,
33 "puct/sampled_construction_len/max": 400.0,
34 "time/sampling": 2195.1686222553253,
35 "env/all/ac_tokens_per_turn": 10068.294921875,
36 "env/all/ob_tokens_per_turn": 1812.5,
37 "env/all/turns_per_episode": 1.0,
38 "env/all/total_episodes": 512,
39 "env/all/total_turns": 512,
40 "env/all/total_ac_tokens": 5154967,
41 "env/all/total_ob_tokens": 928000,
42 "env/all/time/sampling_mean": 603.59412993351,
43 "env/all/time/sampling_max": 881.450279712677,
44 "env/all/time/env_step_mean": 231.52067769272253,
45 "env/all/time/env_step_max": 1309.239402770996,
46 "env/all/reward/mean": 0.6207202375689858,
47 "env/all/reward/max": 2.6254718990166017,
48 "env/all/reward/min": 0.0,
49 "env/all/format": 0.998046875,
50 "env/all/format/min": 0.0,
51 "env/all/format/max": 1.0,
52 "env/all/reward": 0.6207202375689858,
53 "env/all/correctness": 0.2578125,
54 "env/all/correctness/min": 0.0,
55 "env/all/correctness/max": 1.0,
56 "env/all/raw_score": 0.4249899627803216,
57 "env/all/raw_score/min": 0.3808838990506208,
58 "env/all/raw_score/max": 1.0,
59 "env/all/initial_raw_score": -0.38088527179148635,
60 "env/all/initial_raw_score/min": -0.38088595357371224,
61 "env/all/initial_raw_score/max": -0.38088389905075964,
62 "env/all/msg": "After normalization, h(x) is not in [0, 1]. Range: [0.0, 1.0000000000000002]",
63 "env/all/parsed_code": "```python\nimport numpy as np\nfrom scipy.optimize import minimize\n\ndef run(seed=42, budget_s=1000, **kwargs):\n np.random.seed(seed)\n \n n_points = 100\n dx = 2.0 / n_points\n desired_sum = n_points / 2.0 # Ensures \u222bh(x)dx = 1\n\n best_h = np.zeros(n_points)\n best_t = np.inf\n\n # Check if initial_h_values is available and use it as the base\n if 'initial_h_values' in globals():\n initial_h = np.array(initial_h_values)\n if initial_h.shape[0] > n_points:\n initial_h = initial_h[::2] # Downsample if necessary\n elif initial_h.shape[0] < n_points:\n # Repeat the pattern to fill up to n_points\n period = len(initial_h)\n num_repeats = n_points // period\n initial_h = np.repeat(initial_h, num_repeats)[:n_points]\n # Adjust to meet desired sum\n sum_h = np.sum(initial_h)\n delta = desired_sum - sum_h\n remaining_delta = delta\n for i in reversed(range(n_points)):\n if remaining_delta <= 0:\n break\n add = min(1.0 - initial_h[i], remaining_delta)\n initial_h[i] += add\n remaining_delta -= add\n initial_h = np.clip(initial_h, 0, 1)\n else:\n # Default initial pattern: 1 at every other position\n initial_h = np.zeros(n_points)\n for i in range(n_points):\n if i % 2 == 0:\n initial_h[i] = 1.0\n\n # Generate a small set of initial guesses\n num_initial_guesses = 5\n initial_guesses = []\n # Use the initial guess\n initial_guesses.append(initial_h.copy())\n\n # Generate some perturbations of the initial guess\n for _ in range(4):\n noise = np.random.randn(n_points) * 0.05\n noise = np.clip(noise, -0.1, 0.1)\n perturbed = initial_h + noise\n perturbed = np.clip(perturbed, 0, 1)\n sum_perturbed = np.sum(perturbed)\n delta = desired_sum - sum_perturbed\n remaining_delta = delta\n for i in reversed(range(n_points)):\n if remaining_delta <= 0:\n break\n add = min(1.0 - perturbed[i], remaining_delta)\n perturbed[i] += add\n remaining_delta -= add\n perturbed = np.clip(perturbed, 0, 1)\n initial_guesses.append(perturbed.copy())\n\n # Optimize each guess\n for h_guess in initial_guesses:\n def objective(x):\n return x[-1] # Minimize t\n\n # Constraint: sum of h = desired sum\n def constraint_sum(x):\n return np.sum(x[:-1]) - desired_sum\n\n # Constraints: t >= overlap for relevant shifts (k in [0, 2])\n def constraints_func(x):\n h_vec = x[:-1]\n t = x[-1]\n cross_corr = np.correlate(h_vec, 1 - h_vec, mode='full')\n # Extract relevant part for k in [0,2]\n relevant_shifts = cross_corr[n_points-1 : 2*n_points-1] # n_points-1 to end\n overlaps = relevant_shifts * dx\n return [t - overlap for overlap in overlaps]\n\n # Optimization setup\n cons = [\n {'type': 'eq', 'fun': constraint_sum},\n {'type': 'ineq', 'fun': constraints_func}\n ]\n\n bounds = [(0.0, 1.0) for _ in range(n_points)] + [(0.0, np.inf)]\n\n try:\n result = minimize(\n fun=objective,\n x0=np.concatenate((h_guess, [0.5])),\n bounds=bounds,\n constraints=cons,\n method='SLSQP',\n options={\n 'ftol': 1e-10,\n 'maxiter': 1500,\n 'disp': False\n }\n )\n if result.success and result.x[-1] < best_t:\n best_t = result.x[-1]\n best_h = result.x[:-1]\n except Exception as e:\n # Skip if optimization fails\n pass\n\n return best_h, best_t, n_points\n```",
64 "env/all/time/policy": 603.59412993351,
65 "env/all/time/policy/min": 276.13408160209656,
66 "env/all/time/policy/max": 881.450279712677,
67 "env/all/time/env_step": 231.52067769272253,
68 "env/all/time/env_step/min": 0.006475687026977539,
69 "env/all/time/env_step/max": 1309.239402770996,
70 "env/all/time/reward_compute": 4.498288035392761e-07,
71 "env/all/time/reward_compute/min": 2.60770320892334e-07,
72 "env/all/time/reward_compute/max": 1.2516975402832031e-06,
73 "env/all/by_group/frac_mixed": 1.0,
74 "env/all/by_group/frac_all_good": 0.0,
75 "env/all/by_group/frac_all_bad": 0.0,
76 "advantage/mean": 0.031061317771673203,
77 "advantage/min": -0.8591853380203247,
78 "advantage/max": 6.820256233215332,
79 "time/assemble_training_data": 7.0089216232299805,
80 "time/kl_vs_base": 141.0076003074646,
81 "kl_policy_base": 0.0008624878246337175,
82 "time/train": 1126.1073191165924,
83 "time/save_checkpoint": 10.155897378921509,
84 "time/total": 3480.8826167583466
85}[2026-07-09T06:24:18+00:00] job=1812626 node=node-31 ngpu=3 ntrain=1 replicas=2 flash_attn=no
[2026-07-09T08:02:36+00:00] job=1813125 node=node-12 ngpu=3 ntrain=1 replicas=2 flash_attn=yes
[2026-07-09T09:32:13+00:00] job=1813126 node=node-3 ngpu=6 ntrain=2 replicas=4 flash_attn=yes
[2026-07-09T10:04:31+00:00] job=1813623 node=node-31 ngpu=3 ntrain=1 replicas=2 flash_attn=yes