|
Download docs/evaluation-plan-v2.md from Farshadm/beampilot: direct link, hf CLI and curl.
- Browser
- Download file 6.22 kB
-
https://huggingface.co/spaces/Farshadm/beampilot/resolve/main/docs/evaluation-plan-v2.md
- Command line
-
hf download hf://spaces/Farshadm/beampilot/docs/evaluation-plan-v2.md
-
curl -L -o evaluation-plan-v2.md https://huggingface.co/spaces/Farshadm/beampilot/resolve/main/docs/evaluation-plan-v2.md
6.22 kB
| # BeamPilot evaluation plan v2 | |
| Status: pre-registered on 27 Oct 2026, **before any v2 run and before the code | |
| changes it tests**. This file is the first commit on branch `add-agent-efficiency`. | |
| Any later change goes under "Deviations" at the end, with date and reason. | |
| v1 ([evaluation-plan.md](evaluation-plan.md), results in | |
| [evaluation-results.md](evaluation-results.md)) **stays unchanged**. v2 does not | |
| replace it; v2 results go to `docs/evaluation-results-v2.md`. | |
| ## Why v2 | |
| v1 showed an efficiency problem, not a judgement problem: | |
| - **A8 and C2 were stopped by the 40-model-call limit** before `finish`; the | |
| controller's fallback verdict made both wrong. | |
| - **In 12 of 31 agent runs the model made one tool call per model call** instead of | |
| requesting independent calls together. | |
| v2 makes exactly two changes to the agent and nothing else (tools, simulator, | |
| scoring, scripted and naive contenders all stay as in v1): | |
| 1. **Model-call limit 40 β 60.** The token budget (1.5 M per run) and the cost cap | |
| ($0.50 per run) stay unchanged. | |
| 2. **Prompt:** it says clearly that independent measurements are to be requested | |
| together in one turn (parallel tool calls), and that after each `evaluate` the | |
| agent plans several positions at once. The prompt stays under 1,500 words and | |
| still names no fault. | |
| The question: with these changes, does the agent finish on its own in every run, | |
| with fewer model calls, and without losing accuracy? | |
| ## Contenders | |
| | Name | What it is | | |
| |---|---| | |
| | `agent` | `run_agent`, model `muse-spark-1.2`, reasoning effort `low`, limits **60 model calls**, 1.5 M tokens, $0.50 per run | | |
| | `agent-noview` | as `agent`, with `view_frame` switched off (group C only, as v1 deviation 4) | | |
| | `scripted` | `scripted_iso`, unchanged | | |
| | `naive` | `naive_uniform`, unchanged (reference only) | | |
| ## Cases: same groups and definitions as v1, new seeds | |
| **New seeds.** None of these seeds was used before. Used so far: 0β99 (tests and | |
| development runs), 100, 200β204, 300β304 and 1000β1009 (v1). | |
| | Group | Cases | Definition | Seeds (v1 β v2) | | |
| |---|---|---|---| | |
| | A | A1βA6 | the six known scenarios | 100 β **500** | | |
| | A | A7βA16 | mystery beams (`random_scenario`) | 1000β1009 β **3000β3009** | | |
| | B | B1βB5 | operator notes, word for word as in v1 | 200β204 β **600β604** | | |
| | C | C1βC5 | the five faults exactly as defined in v1 (incl. C5 from deviation 3) | 300β304 β **700β704** | | |
| The seed sets only the noise for A1βA6, B and C, so their expected verdicts are | |
| the same as in v1. Expected verdicts of the new mystery beams, from v1's oracle | |
| rule (computed before this commit, without any API call): | |
| | Case | Seed | Expected | Case | Seed | Expected | | |
| |---|---|---|---|---|---| | |
| | A7 | 3000 | iso_compliant | A12 | 3005 | iso_compliant | | |
| | A8 | 3001 | iso_compliant | A13 | 3006 | iso_compliant | | |
| | A9 | 3002 | iso_compliant | A14 | 3007 | iso_compliant | | |
| | A10 | 3003 | iso_compliant | A15 | 3008 | waist_not_accessible | | |
| | A11 | 3004 | iso_compliant | A16 | 3009 | iso_compliant | | |
| **Nothing in group C is held out in v2.** All five fault types were seen in the v1 | |
| results (C1 also during development). v2 measures efficiency and repeatability on | |
| new noise and new mystery beams, not generalisation to new faults. Group C totals | |
| are reported as "seen in v1". | |
| ## Metrics | |
| The same as v1, with the same scoring rules (v1 deviations 5 and 8): | |
| - correct verdict, with B3 scored on x only; | |
| - C3 and C5 count as correct only if MΒ² is within 3 %; | |
| - MΒ² error; | |
| - constraint violations in group B; | |
| - positions used; | |
| - cost; | |
| - fault noticed (keywords, plus the hand check for C3 and C4). | |
| Also reported, not scored: | |
| - model calls per run; | |
| - tool calls per model call (batching); | |
| - the number of runs stopped by a limit. | |
| ## Comparison with v1 | |
| `docs/evaluation-results-v2.md` gets, next to the v2 tables, a short table for | |
| `agent` v1 against v2: | |
| - correct verdicts per group; | |
| - mean positions; | |
| - mean model calls; | |
| - tool calls per model call; | |
| - runs stopped by the call limit; | |
| - median and maximum |MΒ² error|; | |
| - cost. | |
| The seeds differ between v1 and v2 and each case runs once. A difference of one or | |
| two cases is therefore noise, not a measured effect. | |
| ## Budget and stopping | |
| Agent runs: 16 (A) + 5 (B) + 2 Γ 5 (C) = 31. | |
| - **Hard stop at $4** in total for the v2 agent runs; the remaining cases are then | |
| reported as not run. | |
| - Order: A1βA16, B1βB5, then C1βC5, each case with and without `view_frame`. | |
| - Up to 3 runs go in parallel. The budget is checked before each run starts. | |
| - No code changes between runs. If something breaks, the evaluation stops and is | |
| reported, and no case is re-run. | |
| ## Known limitations | |
| - One run per case, as in v1. | |
| - Two changes at once (call limit and prompt). If v2 improves, this plan cannot say | |
| which change caused it. The model-call and batching numbers give a hint. | |
| - A higher call limit can raise the cost per run; the per-run cap stays at $0.50. | |
| ## Deviations | |
| Both dated 27 Oct 2026 and committed **before any v2 run**, after the physics | |
| review of the v2 changes. | |
| 1. **The prompt changes more than the two lines described above.** To stay under | |
| 1,500 words, three sentences were also shortened or dropped: | |
| - the frames-per-position rule; | |
| - the saturation hint; | |
| - "You explain every decision briefly." | |
| The required `reason` argument is still "one short sentence", but shorter reasons | |
| could lower the keyword hits for "fault noticed" in group C, independently of | |
| the two intended changes. | |
| 2. **Wording fix: no accept before seeing a result.** The Fill step said "Then accept | |
| or reject the results and call `evaluate` in the same turn". Measurement ids are | |
| predictable (m1, m2, β¦), so this could be read as accepting a batch in the same | |
| turn that measures it, without seeing the flags. It now says "Once you have seen | |
| the results, accept or reject them and call `evaluate` in that same turn". The | |
| v2 report counts any `set_status` that lands in the same model call as the | |
| `measure_at` that created its id. | |