Synthetic SFT
sft.jsonMulti-turn tool-using investigation as a clean demonstration.
- id
- ml_research_trajectory_novelty_decoding_passk_001
- domain
- machine_learning_research
- task_type
- multi_turn_autonomous_research_investigation
- variant
- A_reasoning_externalized
provenance
tools
Functions available to the assistant
8 tools- 01
search_literatureSearch the research literature and return relevant papers with findings.
querystring*categoriesstring[]date_fromstringmax_resultsinteger - 02
search_findingsSearch findings previously recorded by this lab, to reuse established results instead of re-deriving them.
querystring*max_resultsinteger - 03
propose_experimentDraft a runnable experiment specification. Returns a proposal id and a compute estimate. Does not run anything.
titlestring*research_questionstring*methodstring*controlsstring[]evaluationstring*experimentsstring[]*deliverablesstring[]computeobject - 04
launch_experimentLaunch a proposed experiment on compute. Returns a run id. The run executes autonomously.
proposal_idstring* - 05
read_experiment_resultsRead output from a running or finished experiment.
run_idstring*sectionstring*detailstring - 06
steer_experimentSend an instruction to a running experiment to change what it does mid-flight.
run_idstring*instructionstring* - 07
stop_experimentCancel a running experiment and release its compute.
run_idstring*reasonstring* - 08
record_findingRecord a durable finding so later experiments can build on it without re-deriving it.
titlestring*statementstring*evidencestring*caveatsstring
messages
{
"query": "diversity-promoting decoding for test-time scaling Pass@k reasoning LLM hidden representations",
"categories": [
"cs.CL",
"cs.LG"
],
"date_from": "2024-01-01",
"max_results": 10
}{"results":[{"id":"2504.15466","title":"Adaptive Parallel Reasoning","finding":"Self-consistency-style parallel sampling produces substantially redundant reasoning traces; wall-clock returns saturate well before k saturates.","relevance":"high"},{"id":"2510.08325","title":"Beyond Pass@k","finding":"The diversity of the candidate set, not the marginal quality of each candidate, governs the returns from larger k.","relevance":"high"},{"id":"2510.21067","title":"Virtues of Brevity","finding":"Long parallel reasoning traces re-tread the same solution strategies; lexical variation is a poor proxy for strategy variation.","relevance":"high"},{"id":"2506.13681","title":"Min-p, Max Exaggeration","finding":"Critical re-analysis: reported diversity gains from heuristic samplers (min-p, eta, typical) are fragile and largely disappear under controlled comparison.","relevance":"high"}],"notice":"No paper found that induces candidate diversity by measuring novelty in hidden representations."}{
"title": "Validate hidden-state idea-boundary detection (R1-Distill-1.5B)",
"research_question": "Before building any diversity-decoding method, test the one assumption it depends on: when the model's residual-stream representation shifts, has it actually moved to a new idea? This run answers only that and stops; the next experiment is decided from these results.",
"method": "Generate reasoning traces from DeepSeek-R1-Distill-Qwen-1.5B on a small set of MATH-500 and AIME24 problems, saving per-token residual-stream hidden states. Compute a per-token change-point signal: a windowed running mean of the hidden state at layer L, and the cosine drift of each new token's state from that mean; flag a boundary when drift crosses a threshold.",
"controls": [
"random detector firing at the same rate",
"lexical/discourse-cue detector, to test whether hidden states beat keywords",
"degeneracy checks: ideas per 1k tokens and idea-length distribution, ruling out one-giant-idea and one-per-token failure modes"
],
"evaluation": "Primary deliverable is a token-by-token side-by-side: decoded tokens in order, annotated with the per-token drift score and where the detector fires, so firings can be checked directly against real transitions (new sub-goal, method switch, a 'wait' backtrack). Quantified against LLM-judge idea-shift labels with a token tolerance, and swept over layer L x window x threshold to locate a non-degenerate operating point.",
"experiments": [
"Qualitative detection audit: annotated side-by-side of tokens vs detector firings on full traces",
"Detector sweep: layer L x window x threshold scored against judge labels, vs random and lexical-cue baselines",
"Degeneracy checks: boundary-rate and idea-length statistics"
],
"deliverables": [
"token-by-token side-by-side visualizations",
"agreement table across the sweep with a recommended operating point, or a verdict that change-points do not capture idea boundaries",
"saved traces and hidden states for reuse by whatever comes next"
],
"compute": {
"gpu_type": "A100-80GB",
"num_gpus": 1,
"estimated_hours": 4
}
}{"proposal_id": "P-8b0c", "status": "drafted", "compute": {"gpu_type": "A100-80GB", "num_gpus": 1, "estimated_hours": 4}, "estimated_cost_usd": 7.2}{
"proposal_id": "P-8b0c"
}{"run_id":"R-d0d6","status":"finished","elapsed_hours":3.6,"title":"Validate hidden-state idea-boundary detection (R1-Distill-1.5B)"}{
"run_id": "R-d0d6",
"section": "summary"
}{"pipeline":"12 traces generated (8 MATH-500 level>=4, 4 AIME24), temp 0.6 / top-p 0.95 / max 8192 new tokens, per-token residual stream saved for all 29 layers in fp16. Detector: unit-normalize layer-L states, trailing-window smooth (k=8), fire a boundary when smoothed cosine distance to a windowed running centroid exceeds a threshold; centroid resets per boundary. Raw consecutive-token cosine distance has median ~0.4 and is useless without smoothing. LLM-judge idea-shift labels obtained on all 12 traces (321 judged shifts, ~4.5 per 1k tokens). Swept L x window x threshold over 126 configs, scored against judge labels with a 32-token tolerance.","operating_point":{"layer":18,"window":96,"threshold":0.32},"agreement":{"f1":0.474,"precision":0.37,"recall":0.64},"baselines":{"random_detector_same_firing_rate_f1":0.267,"lexical_cue_detector_f1":0.332},"degeneracy":{"ideas_per_1k_tokens":7.8,"mean_idea_length_tokens":133,"note":"non-degenerate over a wide band; per-token degeneracy structurally prevented by smoothing + min_gap"},"layer_effect":"mid-network layers 12-21 best; deep layers 24+ worse","verdict":"Change-points are a usable but imprecise idea segmenter. Precision 0.37 because ~63% of firings land at a finer grain (new equation / computation) than the judge's top-level notion of an idea, while catching ~64% of real shifts."}{
"run_id": "R-d0d6",
"section": "qualitative",
"detail": "per-boundary context dump for a single trace, with judge-shift alignment marked, plus per-trace detected/judge/missed counts"
}{"trace":"math_427","detector_boundaries":15,"judge_shifts":8,"legend":"** = firing lands within 32 tokens of a judge-labeled idea shift; >>>| marks the fired position","dump":["t= 120 d=0.33 ...\\( N = p_1 >>>| ^{a_1} \\times p... (new equation)","t= 156 d=0.34 ...sum of its positive div >>>| isors is \\( (1+p... (new equation)","t= 239 d=0.33 ** ..._n}) \\). So >>>| , my first task is to factorize... <- new sub-goal","t= 413 d=0.33 ** ...applying the sum of div >>>| isors formula, A... <- new method","t= 683 d=0.33 ** ...Wait, hold on >>>| a second. Let me double-check... <- backtrack","t= 733 d=0.34 ...2^2 * 5 >>>| ^3, so the sum of div... (new computation)","t= 786 d=0.34 ** ...Yeah, that seems >>>| correct. But just to be thorough... <- verify","t= 833 d=0.35 ...numbers of the form 2 >>>| ^a * 5^b... (new computation)","t=1032 d=0.35 ...Now, let's >>>| add all these up... (new computation)","t=1208 d=0.37 ** ...092. Yup >>>| , that matches. So, A is... <- verify","t=1377 d=0.33 ...7 + 3 = >>>| 12, which is divisible by... (new computation)","t=1671 d=0.32 ** ...But just to make >>>| sure I didn't... <- verify","t=1801 d=0.32 ** ...So, I >>>| think that's the answer... <- conclude","t=2009 d=0.34 ...Next, we factor >>>| ize 1092 into... (new computation)","t=2118 d=0.33 ...is: \\[ \\boxed{25} \\]... (final answer)"],"per_trace_counts":[{"trace":"math_427","detected":15,"judge_shifts":8,"missed":1},{"trace":"math_187","detected":18,"judge_shifts":8,"missed":2},{"trace":"math_44","detected":33,"judge_shifts":10,"missed":3},{"trace":"math_1640","detected":37,"judge_shifts":16,"missed":4},{"trace":"math_398","detected":70,"judge_shifts":19,"missed":5},{"trace":"aime24-II-3","detected":67,"judge_shifts":21,"missed":7},{"trace":"math_516","detected":93,"judge_shifts":55,"missed":13},{"trace":"aime24-I-4","detected":51,"judge_shifts":36,"missed":11},{"trace":"math_955","detected":25,"judge_shifts":23,"missed":11},{"trace":"math_627","detected":46,"judge_shifts":53,"missed":19}]}{
"title": "Hidden-state change-points are a real but computation-grained idea segmenter",
"statement": "Residual-stream change-points in R1-Distill-1.5B detect reasoning transitions above chance and above lexical cues, but at the grain of new equations/computations rather than top-level strategy shifts, and recall collapses on dense-reasoning traces.",
"evidence": "L=18/W=96/th=0.32: F1 0.474 (P 0.37, R 0.64) vs random 0.267 and lexical-cue 0.332 against 321 judged shifts on 12 traces. Per-trace: math_427 1/8 missed; math_627 19/53 missed. Mid layers 12-21 best, deep layers 24+ worse. 7.8 ideas/1k tokens, mean idea 133 tokens.",
"caveats": "Judge labels define 'idea' at a coarser grain than the detector fires; low precision is partly a label-schema artifact, not detector error."
}{"finding_id":51,"recorded":true}{
"query": "per-token representation predictability prediction error as novelty or event-boundary signal in language model hidden states",
"categories": [
"cs.CL",
"cs.LG",
"q-bio.NC"
],
"max_results": 10
}{"results":[{"title":"Event segmentation theory: prediction error and event boundaries","study_type":"cognitive science review","finding":"Humans segment continuous experience at moments of transient prediction failure; a boundary is precisely where the next internal state is not predictable from the trajectory so far.","relevance":"moderate — theoretical backing for the reframing"}],"notice":"No paper found using per-token hidden-state predictability as an idea-novelty signal in LLM reasoning traces. This appears to be open ground."}{
"title": "Cross-depth predictability: does the surface text foretell the deep idea?",
"research_question": "Is a new idea a moment where the model's deep, post-thinking representation cannot be predicted from a shallow encoding of the same text? If the surface text already determines the deep idea the model did nothing new; if the deep state departs from what the shallow encoding predicts, the model injected genuinely new reasoning.",
"method": "During generation, store the per-token residual-stream hidden state for ALL 29 layer indices for every token. Then for every ordered layer pair (i, j) with i < j, fit a ridge map f: h_i -> h_j and define surprise = ||h_j - f(h_i)|| normalized. The Gram matrix X_i^T X_i depends only on the shallow layer, so this is 29 Grams and 406 cheap solves rather than 406 independent fits. Fit on a subset of traces and score on held-out traces (cross-trace splits) so surprise reflects generalization, not memorization. Secondary: predict the deep state k tokens ahead.",
"controls": [
"triviality control: predict a layer from its adjacent same-position layer, which should be near-perfect and confirm why a time-adjacent target is uninformative",
"shuffle control: apply each trained map to mismatched shallow/deep pairs; a genuine signal must collapse under shuffling. Rank pairs by (spike - spike_shuffle), never by raw spikiness"
],
"evaluation": "Qualitative-first and human-inspectable. Primary: surprise-shaded token streams rendered token-by-token, and ranked highest/lowest-surprise spans with surrounding context, for the best pairs. Secondary and explicitly non-selecting: an (i,j) sweep summary and any automated judge overlay, kept faint and never used to pick the winner.",
"experiments": [
"Full 406-pair sweep with cross-trace held-out evaluation, producing the (i,j) map",
"Qualitative rendering of top pairs: shaded streams and ranked high/low spans",
"Controls: adjacent-layer triviality and shuffle",
"Look-ahead variant compared against same-position"
],
"deliverables": [
"(i,j) sweep summary",
"surprise-shaded HTML and ranked span tables for top pairs",
"control results",
"per-token hidden states and surprise signals for reuse"
],
"compute": {
"gpu_type": "A100-80GB",
"num_gpus": 1,
"estimated_hours": 6
}
}{"proposal_id": "P-ed30", "status": "drafted", "compute": {"gpu_type": "A100-80GB", "num_gpus": 1, "estimated_hours": 6}, "estimated_cost_usd": 10.8, "note": "all-layer hidden states for ~40 traces estimated at ~20 GB fp16"}{
"proposal_id": "P-ed30"
}{"run_id":"R-9f2a","status":"finished","elapsed_hours":5.4,"tokens_collected":216000,"traces":40}{
"run_id": "R-9f2a",
"section": "metrics"
}{
"run_id": "R-9f2a",
"section": "controls"
}{"sweep":"406 layer pairs (i<j), ridge, cross-trace held-out evaluation, 40 traces / 216k tokens","best_region":"shallow i in 1-8 -> mid j in 8-15; best single pair i=6 -> j=12","nmse":{"adjacent_layer_pairs":0.10,"cross_depth_range":"0.3-0.8","best_pair_6_to_12":0.32},"lookahead_k4":{"nmse":0.9,"note":"weaker and noisier than same-position"},"discourse_glue_statistic":{"lowest_surprise_2pct_at_mid_depth":"~40% discourse glue (11x base rate)","lowest_surprise_2pct_at_final_layer":"18%"}}{"triviality_control":{"result":"adjacent-layer (i,i+1) NMSE 0.10 vs 0.3-0.8 cross-depth","interpretation":"adjacent states are ~90% linearly recoverable from each other; a time-adjacent same-depth target would have been uninformative, as predicted"},"shuffle_control":{"final_layer_j28":{"spike_survives_shuffle":true,"true_vs_shuffle_corr":0.2,"interpretation":"final-layer spikiness is a TARGET-NORM ARTIFACT, not input-conditioned signal"},"mid_depth_j8_15":{"spike_survives_shuffle":false,"interpretation":"mid-depth spikes collapse under shuffling, i.e. genuine input-conditioned prediction"},"recommendation":"rank layer pairs by (spike - spike_shuffle), never by raw spikiness"}}{
"run_id": "R-9f2a",
"section": "qualitative",
"detail": "ranked highest and lowest surprise spans with context for the best pair 6->12, and for comparison the top spans from the shuffle-failing pair 4->28"
}{"pair_6_to_12":{"highest_surprise":[{"z":7.46,"context":"...Therefore, by Banach fixed<<-point>> theorem, f has a unique fixed point..."},{"z":7.40,"context":"...Given that f(z) = |z<<|>> - 1/2|, and z = sin(..."},{"z":7.27,"context":"...f(x) = { ax^2 if x >= a<<,>> { ax + 2a if x < a..."},{"z":6.97,"context":"...maybe I can use the sho<<el>>ace formula..."},{"z":6.92,"context":"...when you have a point that reflects<< off>> a line, the shortest path..."},{"z":6.46,"context":"...the altitude to the hypoten<<use>> has some nice properties..."}],"lowest_surprise":[{"z":-3.07,"context":"...as simplified as it gets.\n\n<<Wait>>, but let me make sure..."},{"z":-3.00,"context":"...multiply by 2 each time.\n\n<<Wait>>, but hold on..."},{"z":-2.98,"context":"...Therefore, w = 6 - 5i.\n\n<<Wait>>, but let me think..."},{"z":-2.92,"context":"...f(x1) != x1.\n\n<<But>> in our case, x1 is a fixed point..."},{"z":-2.86,"context":"...triangle ABC has area 60.\n\n<<So>>, then when I..."}]},"pair_4_to_28_shuffle_failing":{"highest_surprise":[{"context":"...Therefore,<< by>> Banach fixed-point theorem..."},{"context":"...use the shoel<<ace>> formula..."},{"context":"...the altitude to the hypoten<<use>>..."}]},"lookahead_k4_top_spans":[{"context":"...Let<< me>> compute..."},{"context":"...step by step..."}]}{
"title": "Cross-depth surprise is a genuine novelty signal at early->mid depth; the final layer is a norm artifact",
"statement": "Predicting a token's deep hidden state from a shallow encoding of the same token yields a real input-conditioned novelty signal, best at i in 1-8 -> j in 8-15 (best pair 6->12, NMSE 0.32). High surprise marks newly introduced mathematical content; low surprise marks discourse glue. Final-layer targets produce spikes that survive shuffling and must not be used.",
"evidence": "406-pair ridge sweep over 40 traces / 216k tokens, cross-trace held-out. Triviality control: adjacent-layer NMSE 0.10 vs 0.3-0.8 cross-depth. Shuffle control: j=28 spikes survive shuffling (corr 0.2); mid-depth spikes collapse. Lowest-surprise 2% is ~40% discourse glue at mid-depth (11x base rate) vs 18% at final layer. Look-ahead k=4 NMSE ~0.9.",
"caveats": "Qualitative inspection CANNOT distinguish the genuine mid-depth signal from the final-layer artifact - both look equally plausible by eye. Always select layer pairs by (spike - spike_shuffle). Signal fires at sub-word content granularity, which is finer than a reasoning strategy."
}{"finding_id":52,"recorded":true}{
"title": "Online prequential surprise - quick signal check",
"research_question": "Does an online, per-trace predictor - one that learns during generation what this trace's reasoning usually looks like - produce a usable new-idea surprise signal at all? Minimal proof-of-signal; configuration questions are deliberately deferred.",
"method": "At each token t, on the validated shallow->deep direction from finding #52 (i=6 -> j=12): (1) predict hhat_j(t) = W_{t-1} . h_i(t); (2) score s(t) = ||h_j(t) - hhat_j(t)||^2 / ||h_j(t)||^2 BEFORE any update; (3) update W with this token. Predict-then-update is what makes s(t) a novelty score: the predictor is never scored on a token it has already learned from. Warm-start from the pooled offline ridge map so there is no burn-in confounding the read; reset per trace.",
"controls": [
"shuffle control (mandatory): mismatched i/j pairs must collapse the signal",
"RLS vs NLMS run side by side - not an ablation but a reliability check: two independent update rules agreeing implies the signal is in the data, not in the learning rule"
],
"evaluation": "Ranked highest/lowest-surprise token contexts as readable text for both update rules, shown next to the offline signal, across a handful of MATH-500 L5 traces. Plus the shuffle control.",
"experiments": [
"E1 online surprise, RLS vs NLMS at i=6 -> j=12, warm-started: ranked high/low spans next to offline",
"E2 reliability and control: rule-vs-rule agreement plus the shuffle control"
],
"deliverables": [
"ranked span report",
"agreement statistics",
"shuffle-control result"
],
"compute": {
"gpu_type": "A100-80GB",
"num_gpus": 1,
"estimated_hours": 3
}
}{"proposal_id": "P-b7f3", "status": "drafted", "compute": {"gpu_type": "A100-80GB", "num_gpus": 1, "estimated_hours": 3}, "estimated_cost_usd": 5.4}{
"proposal_id": "P-b7f3"
}{"run_id":"R-f520","status":"finished","elapsed_hours":2.4,"traces":8,"completion_tokens":26115}{
"run_id": "R-f520",
"section": "summary"
}{"setup":"8 MATH-500 L5 traces, R1-Distill-1.5B, temp 0.6 / top-p 0.95, <=4096 tokens, 26,115 completion tokens. Predict hhat12 = W.h6, score s = ||h12 - hhat12||^2 / ||h12||^2 BEFORE updating W (prequential), warm-started from pooled offline ridge, reset per trace. RLS and NLMS (online SGD) run side by side.","reliability":{"spearman_rho_RLS_vs_NLMS":0.94,"interpretation":"two independent update rules agree; not a rule artifact"},"shuffle_control":{"result":"PASSES","mean_surprise_true":0.12,"mean_surprise_shuffled":1.0,"true_vs_shuffle_rho":{"NLMS":0.10,"RLS":0.22}},"qualitative":{"high_online_surprise":"onset of a new local computation or symbol - the first time the trace does a thing","low_online_surprise":"within-trace repeated templates - the model looping over near-identical cases, which the online predictor has adapted to"},"online_vs_offline_cross_correlation":"rho 0.33-0.42 - meaningfully different objects; offline tracks the global content-vs-glue split, online tracks novelty relative to what this trace has already done","stability_warning":{"issue":"RLS forgetting factor lambda_f=0.99 is UNSTABLE at D=1536: mean surprise >1 and true-vs-shuffle rho 0.5-0.6, i.e. an artifact that survives shuffling","fix":"lambda_f=0.999 with posterior warm-start covariance P0 = inv(X^T X + lambda I)","note":"NLMS stable across mu in {0.2, 0.05, 0.01}; forgetting factor is the most important knob"}}{
"title": "Online prequential surprise is a validated, self-calibrating, per-trace novelty signal",
"statement": "An online predict-then-update linear map on the L6->L12 cross-depth direction produces a real input-conditioned novelty signal with no offline corpus needed at test time. High surprise = onset of a new local computation; low surprise = within-trace repeated templates.",
"evidence": "8 MATH-500 L5 traces, 26,115 tokens. Spearman rho(RLS, NLMS) = 0.94. Shuffle control passes: mean surprise 0.12 -> ~1.0, true-vs-shuffle rho 0.10 (NLMS) / 0.22 (RLS). Cross-correlation with the offline map only rho 0.33-0.42.",
"caveats": "RLS with lambda_f=0.99 is UNSTABLE at D=1536 and produces an artifact that survives shuffling (rho 0.5-0.6). Use lambda_f=0.999 with posterior warm-start covariance P0=inv(X^T X + lambda I), or use NLMS (mu ~ 0.05), which was stable across all step sizes tested. The forgetting factor is the most sensitive knob."
}{"finding_id":53,"recorded":true}{
"query": "validated online surprise configuration, layer pair, update rule, stability",
"max_results": 5
}{"results": [{"id": 51, "title": "Hidden-state change-points are a real but computation-grained idea segmenter", "use": "detector fires at new-equation grain, recall collapses on dense traces"}, {"id": 52, "title": "Cross-depth surprise is genuine at early->mid depth; the final layer is a norm artifact", "use": "use pair L6->L12; select layers by (spike - spike_shuffle), never by raw spikiness"}, {"id": 53, "title": "Online prequential surprise is a validated, self-calibrating, per-trace novelty signal", "use": "use NLMS online SGD mu ~ 0.05 warm-started from a pooled offline ridge map; RLS at lambda_f=0.99 is UNSTABLE at D=1536 and produces an artifact that survives shuffling"}]}{
"title": "Surprise-guided branching for Pass@k",
"research_question": "Does forking reasoning trajectories at online-surprise new-idea tokens improve Pass@k efficiency over standard stochastic sampling and over cheap heuristic branch-point baselines?",
"method": "Online surprise during decoding via forward hooks on L6/L12; predict hhat12 = W.h6, score prequential surprise before updating W. Stable configuration from finding #53: NLMS online SGD (mu ~ 0.05), warm-started from a pooled offline ridge map fit on held-out traces, reset per root trajectory; a running median/MAD z-score flags spikes. Surprise-fork: generate a root trajectory, fork at its top-B surprise spikes, sample divergent continuations sharing the root prefix via KV cache, recurse to k leaves. Every generated token counts toward the efficiency axis.",
"controls": [
"iid sampling, k independent completions at temp 0.6 / top-p 0.95",
"entropy-fork: identical tree, fork at high next-token output-entropy positions - tests whether the internal signal beats an output-side heuristic needing no hidden states",
"random-fork: identical tree, random fork positions - isolates where we branch from the tree structure itself",
"pre-flight: verify hook-based L6/L12 extraction is numerically identical to the reference indexing the warm-start map assumes"
],
"evaluation": "Pass@k as a function of total generated tokens per problem (the matched-budget efficiency curve), plus Pass@k at fixed k=1..16 with the unbiased estimator. Correctness by exact/normalized math-answer matching - no LLM judge anywhere in the scoring path. Mechanism checks: mean surprise-z at chosen fork points per method, distinct-answer count, answer entropy, tail reasoning divergence.",
"experiments": [
"E1 main Pass@k: surprise-fork vs iid vs entropy-fork vs random-fork on MATH-500 L5",
"E2 branch-point value: the three fork rules head to head on the identical tree",
"E3 diversity mechanism: distinct answers, answer entropy, fork-vs-spike alignment"
],
"deliverables": [
"Pass@k vs token-budget curves and fixed-k tables",
"diversity diagnostics",
"FULL per-candidate trajectory logs: complete decoded text and token ids, tree structure with fork positions and parent/child links and shared prefixes, per-token online-surprise trace and chosen spike positions, extracted answer, correctness - structured per-problem JSON for every method"
],
"data": "MATH-500 hard/L5 subset only",
"compute": {
"gpu_type": "A100-80GB",
"num_gpus": 1,
"estimated_hours": 8
}
}{"proposal_id": "P-591b", "status": "drafted", "compute": {"gpu_type": "A100-80GB", "num_gpus": 1, "estimated_hours": 8}, "estimated_cost_usd": 14.4}{
"proposal_id": "P-591b"
}{"run_id": "R-f381", "status": "running", "preflight": {"hook_extraction_check": "L6/L12 hook extraction bit-identical to reference indexing (0.0 max-abs diff); warm-start map applies correctly", "green_pilot": "passed end-to-end at small k on 3 problems; JSON schema and analyzer both work", "mechanism_signal": "surprise-chosen fork points at mean surprise-z 6.9 vs 0.25 (entropy) and 0.36 (random)", "calibration": "R1-Distill-1.5B needs long CoT on L5: at max_new=6144 only 4/10 problems finished, finishing traces 3880-4967 tokens", "measured_throughput": "~20 min/problem at k=16, max_new=5120, continuation batch of 61 sequences; peak memory ~37 GB", "implication": "the planned 134-problem set would take ~45 h against an 8 h budget", "awaiting": "budget re-scoping decision before committing"}}{
"run_id": "R-f381",
"instruction": "Re-scope by cutting N only. Hold k=16 and hold the per-candidate token budget; set max_new=4096 and N=32 MATH-500 L5 problems, checkpointed per problem. Do NOT cut k and do NOT reduce the per-candidate budget below 4096. Apply the identical max_new to all four methods. Rationale: k is the x-axis of the result, so cutting it destroys the measurement; cutting the per-candidate budget truncates L5 solutions and would differentially penalise whichever method produces longer traces, confounding the comparison. Cutting N only widens the error bars. 4096 will still truncate the longest solutions - that is acceptable because it is applied uniformly, so it lowers absolute Pass@k without biasing the between-method comparison. Report the truncation rate per method so I can confirm it is uniform."
}{"run_id": "R-f381", "accepted": true, "new_config": {"k": 16, "max_new": 4096, "n_problems": 32, "estimated_hours": 7, "checkpointed": "per problem"}, "note": "will report per-method truncation rate alongside results"}{
"run_id": "R-f381",
"section": "metrics",
"detail": "partial results on problems completed so far, including mechanism checks"
}{"progress":"22 of 32 problems generated; analyzers run on the first 21","mechanism_check":{"mean_surprise_z_at_chosen_fork_points":{"surprise_fork":5.8,"entropy_fork":0.0,"random_fork":0.0},"interpretation":"surprise-fork branches exactly where intended and distinctly from the baselines"},"pass_at_k":{"estimator":"unbiased, 21 MATH-500 L5 problems, k=16 samples per problem","table":[{"k":1,"surprise":0.51,"entropy":0.54,"random":0.45,"iid":0.45},{"k":4,"surprise":0.64,"entropy":0.65,"random":0.61,"iid":0.66},{"k":8,"surprise":0.68,"entropy":0.67,"random":0.69,"iid":0.73},{"k":16,"surprise":0.71,"entropy":0.67,"random":0.76,"iid":0.76}]},"diversity_diagnostics":{"distinct_answers_surprise":0.95,"distinct_answers_others":1.10,"answer_entropy_surprise":0.024,"answer_entropy_others":0.06,"tail_reasoning_divergence":"~0.81, essentially identical across all fork rules"},"token_cost_at_k16":{"all_fork_methods":"42-45k","iid":"54k","note":"~20% cheaper, attributable to shared-prefix KV reuse, not to the surprise signal"},"root_pass_at_1":0.48}{
"run_id": "R-f381",
"reason": "Direction of the effect is settled at N=21 and the diversity diagnostics corroborate rather than contradict it; the remaining 11 problems would tighten intervals on a result I will not act on. Reallocating compute to the mechanism the diagnosis implies. Trajectory logs for the completed problems are retained for reuse as a baseline on an identical problem set."
}{"run_id":"R-f381","status":"stopped","retained_artifacts":"per-candidate trajectory logs, tree structures, per-token surprise traces, answers and correctness for 21 MATH-500 L5 problems across all four methods"}{
"title": "Discrete forking at surprise peaks does not improve Pass@k and mildly converges candidates",
"statement": "Forking reasoning trajectories at online-surprise spikes places branches correctly (mean surprise-z 5.8 vs ~0 for heuristic baselines) but does not lift Pass@k; it ends slightly behind iid sampling and random-fork at k=16 and produces the fewest distinct answers and lowest answer entropy. Proposed mechanism: a surprise spike is a symptom of a token the model has ALREADY committed to, so the distribution at that position is peaked and resampling there moves little.",
"evidence": "21 MATH-500 L5 problems, k=16, unbiased estimator. Pass@16: surprise 0.71, entropy 0.67, random 0.76, iid 0.76. Distinct answers 0.95 vs 1.10; answer entropy 0.024 vs ~0.06; tail reasoning divergence ~0.81 across all fork rules. All fork methods 42-45k tokens vs iid 54k at k=16 (prefix-sharing, not signal-attributable). Root Pass@1 0.48.",
"caveats": "N=21 with wide error bars; one branch-point policy at one layer pair. The negative result concerns discrete forking AT peaks, not the surprise signal itself, which remains validated by finding #53."
}{"finding_id":54,"recorded":true}{
"query": "controlled decoding auxiliary per-token signal reshaping logits classifier guided attribute steered contrastive decoding activation steering representation engineering",
"categories": [
"cs.CL",
"cs.LG"
],
"max_results": 10
}{"results":[{"title":"FUDGE: Controlled Text Generation With Future Discriminators","finding":"An auxiliary per-token predictor reshapes logits at each step to steer generation toward an attribute.","relevance":"high - same mechanism family"},{"title":"PPLM / GeDi","finding":"Attribute-conditioned decoding by gradient or discriminator-guided logit modification; mild guidance preserves fluency, strong guidance degrades it.","relevance":"high - establishes the tilt-strength tradeoff is real"},{"title":"Contrastive Decoding","finding":"Per-token logit adjustment from a second signal improves reasoning without retraining.","relevance":"high"},{"title":"ActAdd / Representation Engineering (RepE)","finding":"Adding a direction vector into the residual stream at an intermediate layer steers generation; the residual stream is additive and the effect propagates through later layers to the unembedding.","relevance":"high - mechanism for intervening in activation space rather than logit space"}],"notice":"No prior work uses an internal cross-depth novelty residual as the steering attribute."}{
"title": "Surprise-direction activation steering for Pass@k",
"research_question": "Discrete forking at surprise peaks did not improve Pass@k and mildly converged candidates, because a spike is a symptom of a token the model has already committed to - the decision is behind us and the distribution there is peaked. Does acting AT the decision instead, by continuously steering the residual stream along the surprise direction at every step, diversify reasoning and lift Pass@k?",
"method": "The surprise residual r(t) = h12(t) - W.h6(t) is a direction in activation space, in the same 1536-dim space as the hidden state. Rather than searching over candidate tokens for ones that induce surprise, inject g = lambda * rhat at layer 12 and let layers 13->28 propagate it: because the residual stream is additive and the LM head is linear, this reshapes the entire next-token distribution within the single forward pass already being run - ~1x decode cost, no lookahead. This is activation steering / representation engineering (ActAdd, RepE) with the validated internal novelty signal as the steering attribute. Two variants: propagated steering and direct-unembedding steering. Implementation constraint: the online predictor updates on the UNSTEERED h12 (the model's true computation), so steering shapes the choice without corrupting the estimator that produces the direction.",
"controls": [
"MANDATORY: matched-norm random-direction steering - the steering analog of the shuffle control. Any sufficiently large injected vector perturbs the distribution, so without this a Pass@k gain cannot be attributed to the surprise direction rather than to generic activation perturbation",
"lambda = 0 must reproduce the unsteered baseline exactly",
"negative lambda (steer away from surprise) as a sign check",
"iid and entropy baselines are NOT re-run: reuse the retained per-candidate trajectory logs from the stopped discrete-fork run"
],
"evaluation": "Pass@k vs token budget across the lambda sweep. The primary output is the diversity-vs-accuracy tradeoff curve, not a single number - strong tilt is expected to produce off-distribution degradation, and the question is whether any lambda > 0 lifts Pass@k.",
"experiments": [
"E1 lambda sweep over both signs, propagated steering, Pass@k vs token budget",
"E2 direct-unembedding steering variant",
"E3 matched-norm random-direction control across the same lambda magnitudes",
"E4 diversity diagnostics per lambda: distinct answers, answer entropy, tail reasoning divergence"
],
"constraints": [
"Evaluate on the IDENTICAL ~32 MATH-500 L5 problems covered by the retained logs. Reusing those baselines is only valid on the same problem set, so N stays at 32 rather than the larger set the freed compute would allow - the fixed eval set is worth more than the extra problems.",
"Excluded as not on the critical path: exact-lookahead faithfulness reference (a question about the approximation, not about whether the method works) and the KV write-back ablation (configuration)."
],
"compute": {
"gpu_type": "A100-80GB",
"num_gpus": 1,
"estimated_hours": 6
}
}{"proposal_id": "P-8527", "status": "drafted", "compute": {"gpu_type": "A100-80GB", "num_gpus": 1, "estimated_hours": 6}, "estimated_cost_usd": 10.8}{
"proposal_id": "P-8527"
}{"run_id":"R-58fb","status":"running","title":"Surprise-direction activation steering for Pass@k"}