Views
No views yet
ac1. Checkpoint saved
after training step 10 (0-indexed). Strict upstream eval parity:
1100s hard kill, verbatim prompts/entrypoints, group 64x8, T=1.0, kl 0.1.1{
2 "step": 10,
3 "progress/batch": 10,
4 "optim/lr": 4e-05,
5 "progress/done_frac": 0.22,
6 "puct/buffer_size": 168,
7 "puct/sampled_size": 8,
8 "puct/T": 5120,
9 "puct/scale_last": 0.5734837763976226,
10 "puct/buffer_value/mean": -1.5669991434650075,
11 "puct/buffer_value/std": 0.14414087488880295,
12 "puct/buffer_value/min": -2.0797874683482562,
13 "puct/buffer_value/max": -1.5063036919506336,
14 "puct/buffer_timestep/mean": 4.238095238095238,
15 "puct/buffer_timestep/std": 3.0379310300450633,
16 "puct/buffer_timestep/min": -1.0,
17 "puct/buffer_timestep/max": 9.0,
18 "puct/buffer_construction_len/mean": 1357.0833333333333,
19 "puct/buffer_construction_len/std": 1236.6915272337505,
20 "puct/buffer_construction_len/min": 1000.0,
21 "puct/buffer_construction_len/max": 7850.0,
22 "puct/sampled_value/mean": -1.5063040917771477,
23 "puct/sampled_value/std": 5.161738096836023e-07,
24 "puct/sampled_value/min": -1.5063047581546731,
25 "puct/sampled_value/max": -1.5063036919506336,
26 "puct/sampled_timestep/mean": 9.0,
27 "puct/sampled_timestep/std": 0.0,
28 "puct/sampled_timestep/min": 9.0,
29 "puct/sampled_timestep/max": 9.0,
30 "puct/sampled_construction_len/mean": 1000.0,
31 "puct/sampled_construction_len/std": 0.0,
32 "puct/sampled_construction_len/min": 1000.0,
33 "puct/sampled_construction_len/max": 1000.0,
34 "time/sampling": 5181.648415327072,
35 "env/all/ac_tokens_per_turn": 7987.384765625,
36 "env/all/ob_tokens_per_turn": 2752.875,
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": 4089541,
41 "env/all/total_ob_tokens": 1409472,
42 "env/all/time/sampling_mean": 264.81452747108415,
43 "env/all/time/sampling_max": 357.29027557373047,
44 "env/all/time/env_step_mean": 2168.0217905458994,
45 "env/all/time/env_step_max": 4835.379299879074,
46 "env/all/reward/mean": 0.49218947726609363,
47 "env/all/reward/max": 0.6638767459078935,
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": 0.49218947726609363,
53 "env/all/correctness": 0.77734375,
54 "env/all/correctness/min": 0.0,
55 "env/all/correctness/max": 1.0,
56 "env/all/raw_score": 1.6008797288455583,
57 "env/all/raw_score/min": 1.5063036919506336,
58 "env/all/raw_score/max": 2.9288536292206,
59 "env/all/initial_raw_score": -1.506304091777148,
60 "env/all/initial_raw_score/min": -1.5063047581546731,
61 "env/all/initial_raw_score/max": -1.5063036919506336,
62 "env/all/msg": "Success; raw_score=1.5063036919506336",
63 "env/all/parsed_code": "```python\n\"\"\"Gradient-Driven Optimization with Adaptive Perturbations for C1 Autoconvolution Minimization\"\"\"\nimport time\nimport numpy as np\n\ndef propose_candidate(seed=42, budget_s=1000, **kwargs):\n np.random.seed(seed)\n deadline = time.time() + budget_s - 10\n\n # Start from known best construction if it exists\n prev = globals().get(\"height_sequence_1\", None)\n if prev is not None and np.isscalar(prev):\n prev = []\n for _ in range(1000):\n prev.append(prev)\n if prev is not None and len(prev) > 0:\n best_sequence = list(np.asarray(prev, dtype=float))\n else:\n n = 1000\n base = np.full(n, 1.0 / n) # Uniform distribution\n gauss = np.random.normal(0, 0.05, n)\n best_sequence = [max(0.0, base[i] + gauss[i]) for i in range(n)]\n \n current_sequence = best_sequence.copy()\n best_score = evaluate_sequence(current_sequence)\n\n # Hyperparameters\n learning_rate = 0.01\n learning_rate_decay = 0.999\n perturbation_strength = 0.05\n decay_interval = 100 # Number of iterations to decay learning rate\n\n iteration = 0\n max_iterations = 1000 # Limit iteration count for safety\n\n while time.time() < deadline and iteration < max_iterations:\n n = len(current_sequence)\n # Compute convolution and find the maximum\n try:\n convolution = np.convolve(current_sequence, current_sequence)\n max_b = np.max(convolution)\n max_pos = np.argmax(convolution)\n sum_a = np.sum(current_sequence)\n except:\n # In case of any computational issues, perturb and retry\n current_sequence = [max(0.0, x + np.random.normal(0, 0.05)) for x in current_sequence]\n continue\n\n # Compute gradient\n gradient = np.zeros(n)\n for i in range(n):\n j = max_pos - i\n if 0 <= j < n:\n derivative_max_b = current_sequence[j]\n else:\n derivative_max_b = 0.0\n grad_i = (2 * n * derivative_max_b * sum_a - 4 * n * max_b) / (sum_a ** 3) if sum_a != 0 else 0.0\n gradient[i] = grad_i\n\n # Update the sequence with gradient step\n new_sequence = np.array(current_sequence) - learning_rate * gradient\n new_sequence = np.clip(new_sequence, 0.0, 1000.0)\n\n # Perturb the sequence\n indices = np.random.choice(n, size=5, replace=False)\n for idx in indices:\n new_sequence[idx] = max(0.0, new_sequence[idx] + np.random.normal(0, perturbation_strength))\n\n # Check and rescale to ensure sum_a is not too small\n sum_new = np.sum(new_sequence)\n if sum_new < 0.01:\n # Rescale to maintain sum_a\n scale_factor = 0.01 / sum_new\n new_sequence = np.clip(new_sequence * scale_factor, 0.0, 1000.0)\n\n # Evaluate the new sequence\n try:\n curr_score = evaluate_sequence(new_sequence)\n if curr_score < best_score:\n best_score = curr_score\n best_sequence = new_sequence.copy()\n print(f\"New best: {best_score}\")\n current_sequence = new_sequence.copy()\n else:\n # If not better, revert to current_sequence\n current_sequence = new_sequence.copy()\n except Exception:\n # Handle any exceptions, perhaps skip or log\n pass\n\n # Decay learning rate periodically\n iteration += 1\n if iteration % decay_interval == 0:\n learning_rate *= learning_rate_decay\n\n return [float(max(0.0, x)) for x in best_sequence]\n```",
64 "env/all/time/policy": 264.81452747108415,
65 "env/all/time/policy/min": 94.86562728881836,
66 "env/all/time/policy/max": 357.29027557373047,
67 "env/all/time/env_step": 2168.0217905458994,
68 "env/all/time/env_step/min": 0.006529331207275391,
69 "env/all/time/env_step/max": 4835.379299879074,
70 "env/all/time/reward_compute": 6.677582859992981e-07,
71 "env/all/time/reward_compute/min": 1.564621925354004e-07,
72 "env/all/time/reward_compute/max": 3.5353004932403564e-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.012898027896881104,
77 "advantage/min": -1.0,
78 "advantage/max": 1.9586033821105957,
79 "time/assemble_training_data": 5.199927568435669,
80 "time/kl_vs_base": 79.81349110603333,
81 "kl_policy_base": 0.0008105411543510854,
82 "time/train": 506.11422657966614,
83 "time/save_checkpoint": 17.888490676879883,
84 "time/total": 5793.055105686188
85}[2026-07-09T06:24:18+00:00] job=1812630 node=node-14 ngpu=3 ntrain=1 replicas=2 flash_attn=no
[2026-07-09T09:14:17+00:00] job=1813129 node=node-28 ngpu=3 ntrain=1 replicas=2 flash_attn=yes
[2026-07-09T13:46:36+00:00] job=1813130 node=node-22 ngpu=6 ntrain=2 replicas=4 flash_attn=yes