Skip to content

[FIX] Do not charge baseline trials against the optimization n_trials budget (+ test)#21

Open
VincentG1234 wants to merge 2 commits into
mainfrom
fix/exclude-baseline-trials-budget
Open

[FIX] Do not charge baseline trials against the optimization n_trials budget (+ test)#21
VincentG1234 wants to merge 2 commits into
mainfrom
fix/exclude-baseline-trials-budget

Conversation

@VincentG1234

Copy link
Copy Markdown
Collaborator

Summary

Baseline runs should not consume the configured optimization trial budget (n_trials). The synchronous path in _run_baseline_trials still incremented completed_trials, which caused the study to stop early (e.g. an incomplete grid). This now matches _collect_completed_trials, which already counts only optimization trials.

Changes

  • auto_tune_vllm/core/study_controller.py

    • Removed completed_trials += 1 after each baseline finishes (success, failure, timeout, exception).
    • Docstring clarifies that n_trials applies to optimization trials only.
  • tests/core/test_study_controller.py (generic module for future StudyController tests)

    • Fake backend that completes a trial on the first poll.
    • Test: two entries in concurrency_levelscompleted_trials stays 0 after _run_baseline_trials.

Expected behavior after merge

  • You can set n_trials (and grid cardinality in grid mode) without manually adding +1 / +k for baselines.
  • Multiple concurrency_levels still mean multiple baseline Optuna trials, but they do not eat the optimization budget.

How to test

  • pytest tests/core/test_study_controller.py

Signed-off-by: Vincent Gimenes <vincent.gimenes@gmail.com>
VincentG1234 added a commit that referenced this pull request May 20, 2026
## Summary
Add structured documentation for human maintainers and coding agents:
`AGENTS.md`, `.ai/context/`, `.ai/skills/`, and a user-facing
architecture guide with Mermaid diagrams. Link the new doc from README
and quick start. Align the local example YAML with vLLM V1 constraints.

## Why
The InseeFrLab fork needs a stable onboarding path for contributors and
agents (local backend focus, safe commands, known issues/PRs) without
reading the whole codebase. Architecture was previously only implicit in
code; diagrams improve onboarding and reviews.

## What changed
- `AGENTS.md` — entry point for agents (context files, skills, safe
commands).
- `.ai/context/` — repo map, execution flow, history, known issues,
current work snapshot, external links.
- `.ai/skills/` — pr-writer, pr-reviewer, test-writer, docs-writer,
architecture-diagrams.
- `docs/architecture.md` — end-to-end, layout, orchestration, trial
lifecycle, outputs (Mermaid).
- `README.md`, `docs/quick_start.md` — links to architecture doc.
- `examples/study_config_local_exec.yaml` — disable
`max_num_partial_prefills` (unsupported on V1; comment added).

## How tested
- [x] `ruff check .`
- [x] `pytest -v tests/`
- [x] Manual E2E (maintainer): not required (docs-only PR)

## Risks / limitations
- `.ai/context/current-work.md` is a point-in-time snapshot (open PRs
#13, #17, #21, #22); it will drift until refreshed after merges.
- Mermaid rendering depends on the viewer (GitHub, IDE); no runtime
behavior change except the example YAML default.

## Links
- (none — no issue closed)

Signed-off-by: Vincent Gimenes <vincent.gimenes@gmail.com>
@VincentG1234 VincentG1234 requested a review from Copilot May 20, 2026 12:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes premature stopping of optimization runs by ensuring baseline trials don’t consume the configured optimization n_trials budget. This aligns the synchronous baseline execution path with the async accounting logic that already counts only optimization trials.

Changes:

  • Stop incrementing StudyController.completed_trials during synchronous baseline execution so only optimization trials count toward n_trials.
  • Clarify _run_baseline_trials docstring to state n_trials applies to optimization trials only.
  • Add a unit test with a fake backend to ensure baseline runs do not increment completed_trials.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
auto_tune_vllm/core/study_controller.py Removes baseline increments against completed_trials and documents optimization-only budgeting.
tests/core/test_study_controller.py Adds a regression test ensuring baseline runs don’t affect the optimization trial counter.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread auto_tune_vllm/core/study_controller.py Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants