Views
No views yet
erdos. Checkpoint saved
after training step 33 (0-indexed). Strict upstream eval parity:
1100s hard kill, verbatim prompts/entrypoints, group 64x8, T=1.0, kl 0.1.1{
2 "step": 33,
3 "progress/batch": 33,
4 "optim/lr": 4e-05,
5 "progress/done_frac": 0.68,
6 "puct/buffer_size": 536,
7 "puct/sampled_size": 8,
8 "puct/T": 16896,
9 "puct/scale_last": 0.2790747993527306,
10 "puct/buffer_value/mean": -0.38419059194859917,
11 "puct/buffer_value/std": 0.02015237950147373,
12 "puct/buffer_value/min": -0.66,
13 "puct/buffer_value/max": -0.3809252006472694,
14 "puct/buffer_timestep/mean": 15.746268656716419,
15 "puct/buffer_timestep/std": 9.672770341379831,
16 "puct/buffer_timestep/min": -1.0,
17 "puct/buffer_timestep/max": 32.0,
18 "puct/buffer_construction_len/mean": 93.94776119402985,
19 "puct/buffer_construction_len/std": 33.59744507969721,
20 "puct/buffer_construction_len/min": 40.0,
21 "puct/buffer_construction_len/max": 200.0,
22 "puct/sampled_value/mean": -0.38092525662623844,
23 "puct/sampled_value/std": 2.1176282867839906e-08,
24 "puct/sampled_value/min": -0.380925265436063,
25 "puct/sampled_value/max": -0.3809252006472694,
26 "puct/sampled_timestep/mean": 32.0,
27 "puct/sampled_timestep/std": 0.0,
28 "puct/sampled_timestep/min": 32.0,
29 "puct/sampled_timestep/max": 32.0,
30 "puct/sampled_construction_len/mean": 100.0,
31 "puct/sampled_construction_len/std": 0.0,
32 "puct/sampled_construction_len/min": 100.0,
33 "puct/sampled_construction_len/max": 100.0,
34 "time/sampling": 1769.900378704071,
35 "env/all/ac_tokens_per_turn": 9402.40234375,
36 "env/all/ob_tokens_per_turn": 1791.375,
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": 4814030,
41 "env/all/total_ob_tokens": 917184,
42 "env/all/time/sampling_mean": 544.0074843377806,
43 "env/all/time/sampling_max": 776.285160779953,
44 "env/all/time/env_step_mean": 43.67272796994075,
45 "env/all/time/env_step_max": 1100.124758720398,
46 "env/all/reward/mean": 1.098304482067838,
47 "env/all/reward/max": 2.6251890729593628,
48 "env/all/reward/min": 0.0,
49 "env/all/format": 1.0,
50 "env/all/format/min": 1.0,
51 "env/all/format/max": 1.0,
52 "env/all/reward": 1.098304482067838,
53 "env/all/correctness": 0.431640625,
54 "env/all/correctness/min": 0.0,
55 "env/all/correctness/max": 1.0,
56 "env/all/raw_score": 0.396922100390674,
57 "env/all/raw_score/min": 0.38092493376898534,
58 "env/all/raw_score/max": 1.0,
59 "env/all/initial_raw_score": -0.38092525662623844,
60 "env/all/initial_raw_score/min": -0.380925265436063,
61 "env/all/initial_raw_score/max": -0.3809252006472694,
62 "env/all/msg": "RuntimeError: Program execution failed: IndexError: list index out of range",
63 "env/all/parsed_code": "```python\nimport numpy as np\nfrom scipy.optimize import minimize\nfrom scipy.signal import correlate\nfrom numpy.random import choice, normal, uniform\n\ndef run(seed=42, budget_s=1000, **kwargs):\n n_points = 100 # balance between resolution and speed\n dx = 2.0 / n_points\n np.random.seed(seed)\n np.set_printoptions(precision=10, suppress=True)\n\n desired_sum = n_points / 2\n\n # Generate a diverse initial population\n initial_h = np.array(initial_h_values, dtype=np.float64)\n initial_h = np.clip(initial_h, 0.0, 1.0)\n sum_h = np.sum(initial_h)\n if abs(sum_h - desired_sum) > 1e-6:\n delta = desired_sum - sum_h\n initial_h[-1] += delta\n initial_h = np.clip(initial_h, 0.0, 1.0)\n\n # Generate perturbations to enrich the initial population\n num_perturbations = 5\n perturbations = [initial_h.copy()]\n for _ in range(num_perturbations):\n perturbed = initial_h.copy()\n noise = normal(0, 0.02, n_points)\n perturbed += noise\n perturbed = np.clip(perturbed, 0.0, 1.0)\n # Adjust sum to meet constraint\n sum_p = np.sum(perturbed)\n delta_p = desired_sum - sum_p\n perturbed[-1] += delta_p\n perturbed = np.clip(perturbed, 0.0, 1.0)\n perturbations.append(perturbed)\n\n population = perturbations\n population = [np.array(p, dtype=np.float64) for p in population]\n\n # Genetic algorithm parameters\n population_size = 100\n generations = 300 # reduced for efficiency\n elite_ratio = 0.3\n mutation_rate_start = 0.2\n mutation_rate_end = 0.01\n mutation_decay = (mutation_rate_end - mutation_rate_start) / generations\n mutation_steps = 5 # more aggressive mutation\n\n def evaluate_erdos(h):\n corr = correlate(h, 1 - h, mode='full')\n return np.max(corr) * dx\n\n best_c5 = float('inf')\n best_h = None\n\n for gen in range(generations):\n mutation_rate = mutation_rate_start + mutation_decay * gen\n\n # Evaluate and sort\n fitness = [evaluate_erdos(h) for h in population]\n best_idx = np.argmin(fitness)\n\n if fitness[best_idx] < best_c5:\n best_c5 = fitness[best_idx]\n best_h = population[best_idx].copy()\n\n # Select elites based on fitness ranking\n elite_count = int(elite_ratio * population_size)\n elite_indices = np.argsort(fitness)[:elite_count]\n elites = [population[i].copy() for i in elite_indices]\n\n # Generate new population via crossover and mutation\n new_population = elites.copy()\n while len(new_population) < population_size:\n # Tournament selection (2 parents)\n idxs = np.random.choice(range(population_size), size=2, replace=False)\n parent1, parent2 = population[idxs[0]], population[idxs[1]]\n\n # Uniform crossover\n child = np.zeros(n_points)\n for i in range(n_points):\n if uniform() < 0.5:\n child[i] = parent1[i]\n else:\n child[i] = parent2[i]\n\n # Apply mutation\n if np.random.rand() < mutation_rate:\n num_mutations = np.random.randint(1, mutation_steps + 1)\n indices = np.random.choice(range(n_points), num_mutations, replace=False)\n for i in indices:\n delta = uniform(-0.03, 0.03)\n new_val = child[i] + delta\n new_val = np.clip(new_val, 0.0, 1.0)\n child[i] = new_val\n\n # Adjust total sum to desired value\n sum_changes = np.sum(child) - np.sum(parent1)\n # Apply the adjustment to a random element (last one)\n idx = n_points - 1\n new_val = child[idx] + sum_changes\n new_val = np.clip(new_val, 0.0, 1.0)\n child[idx] = new_val\n\n new_population.append(child.copy())\n\n population = new_population\n\n # Final refinement with SLSQP\n if best_h is not None:\n h_array = np.array(best_h, dtype=np.float64)\n corr = correlate(h_array, 1 - h_array, mode='full')\n max_c5 = np.max(corr) * dx\n\n def objective(h):\n h_array = np.array(h, dtype=np.float64)\n corr = correlate(h_array, 1 - h_array, mode='full')\n return np.max(corr) * dx\n\n constraint_func = lambda h: np.sum(h) - desired_sum\n bounds = [(0.0, 1.0) for _ in range(n_points)]\n\n res = minimize(\n fun=objective,\n x0=best_h,\n method='SLSQP',\n bounds=bounds,\n constraints=[{'type': 'eq', 'fun': constraint_func}],\n options={\n 'ftol': 1e-8,\n 'maxiter': 500,\n 'disp': False\n }\n )\n\n if res.success:\n new_c5 = evaluate_erdos(res.x)\n if new_c5 < best_c5:\n best_c5 = new_c5\n best_h = res.x\n\n return (best_h, best_c5, n_points)\n```",
64 "env/all/time/policy": 544.0074843377806,
65 "env/all/time/policy/min": 210.9724953174591,
66 "env/all/time/policy/max": 776.285160779953,
67 "env/all/time/env_step": 43.67272796994075,
68 "env/all/time/env_step/min": 0.006490468978881836,
69 "env/all/time/env_step/max": 1100.124758720398,
70 "env/all/time/reward_compute": 6.48200511932373e-07,
71 "env/all/time/reward_compute/min": 2.644956111907959e-07,
72 "env/all/time/reward_compute/max": 2.864748239517212e-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.020116189494729042,
77 "advantage/min": -0.998640775680542,
78 "advantage/max": 1.9469425678253174,
79 "time/assemble_training_data": 6.726631164550781,
80 "time/kl_vs_base": 133.8869869709015,
81 "kl_policy_base": 0.0008436304051429033,
82 "time/train": 1055.8599174022675,
83 "time/save_checkpoint": 17.90280055999756,
84 "time/total": 2985.511561155319
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