Skip to content

Commit 22d4f85

Browse files
committed
Fix LLM repair construction and test default runner wiring across modalities
1 parent 013fb43 commit 22d4f85

2 files changed

Lines changed: 45 additions & 1 deletion

File tree

‎evalrx/benchmark/runner.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -590,7 +590,7 @@ def run(args, task: T.Task, resolved: Resolved) -> int:
590590
floor = {"max_tokens": gen_kwargs.get("max_new_tokens", task.max_new_tokens)}
591591
if sampled:
592592
floor.update(temperature=gen_kwargs["temperature"], top_p=gen_kwargs["top_p"])
593-
fix_kwargs.update(baseline_generation_kwargs=floor, floor_candidates=("self_consistency_5",))
593+
fix_kwargs.update(baseline_generation_kwargs=floor)
594594
prewritten_code = (
595595
Path(args.fix_code_file).read_text(encoding="utf-8")
596596
if args.fix_code_file else ""

‎tests/test_analysis/test_run_cli.py‎

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,3 +121,47 @@ def test_agentic_rejects_unsupported_holdout_before_model_load():
121121
"--diagnosis-mode", "agentic", "--held-out"])
122122
with pytest.raises(ValueError, match="EXPLORE"):
123123
run_args(args)
124+
125+
126+
@pytest.mark.parametrize('modality,dataset', [
127+
('llm', 'bbh_causal_judgement'), ('vlm', 'chartqa'), ('alm', 'mmau'),
128+
])
129+
def test_default_runner_constructs_agentic_pipeline_for_every_modality(monkeypatch, tmp_path,
130+
modality, dataset):
131+
from evalrx.benchmark.models import resolve
132+
from evalrx.benchmark.tasks import get
133+
from evalrx.core.case import CaseBatch, FailureCase, Inputs, Label
134+
from evalrx.eval_agent import AgenticDiagnoseLoop, CaseDiscoveryAgent
135+
from evalrx.specs import get_spec
136+
from tests.conftest import FakeModel
137+
138+
cases = CaseBatch([
139+
FailureCase(id=str(i), inputs=Inputs(prompt=f'question {i}'), expected='A',
140+
observed='A' if i % 2 else 'B', label=Label.PASS if i % 2 else Label.FAIL)
141+
for i in range(8)
142+
])
143+
args = build_parser().parse_args(['--modality', modality, '--model', 'gemini-3.6-flash',
144+
'--dataset', dataset, '--run-dir', str(tmp_path)])
145+
resolved = resolve(args.model, modality, 'gemini')
146+
monkeypatch.setattr(runner, 'ensure_manifest', lambda *a: tmp_path / 'manifest.json')
147+
monkeypatch.setattr(runner.T, 'build_cases', lambda *a: (cases, []))
148+
monkeypatch.setattr(runner, 'build_judge', lambda *a: (FakeModel(), 'claude', None, ()))
149+
monkeypatch.setattr(runner, 'load_model', lambda *a: (
150+
FakeModel(), {'do_sample': True, 'temperature': 0.6, 'top_p': 0.95},
151+
get_spec(resolved.spec_key)))
152+
monkeypatch.setattr(CaseDiscoveryAgent, 'discover', lambda *a, **k: SimpleNamespace(
153+
cases=cases, n_pass=4, n_fail=4, n_unknown=0, has_m4_groups=True))
154+
155+
class ReachedController(Exception):
156+
pass
157+
158+
def run(loop, data):
159+
assert loop.probe_agent.allow_codegen
160+
assert loop.max_actions == 12
161+
assert loop.fix_agent._floor_candidates == ()
162+
assert len(data) == 8
163+
raise ReachedController
164+
165+
monkeypatch.setattr(AgenticDiagnoseLoop, 'run', run)
166+
with pytest.raises(ReachedController):
167+
runner.run(args, get(dataset), resolved)

0 commit comments

Comments
 (0)