Skip to content

fix(benchmark): account for failed evaluations - #3719

Draft
ehz0ah wants to merge 1 commit into
volcengine:mainfrom
ehz0ah:fix/benchmark-result-integrity
Draft

fix(benchmark): account for failed evaluations#3719
ehz0ah wants to merge 1 commit into
volcengine:mainfrom
ehz0ah:fix/benchmark-result-integrity

Conversation

@ehz0ah

@ehz0ah ehz0ah commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Description

Make OpenViking benchmark results failure-inclusive and suitable for opt-in CI gating.

LoCoMo worker failures now persist explicit failed rows and the runner verifies planned versus recorded identities/counts. Judge/stat output separates expected, failed, ungraded, correct, and wrong rows and reports both graded-only and expected-denominator accuracy.

The session contention benchmark now calculates each adapter/operation overall QPS from its own active span, reports successful QPS, separates successful and failed latency, and offers default-off failure-rate and successful-p95 exit gates.

Human Involvement

  • A human participated in the implementation or review loop
  • This PR was generated entirely by AI agents without human participation in the loop

Related Issue

Found during a source-first benchmark audit; no existing issue or open PR covered the denominator and aggregation defects together.

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)
  • Performance improvement
  • Test update

Changes Made

  • Persist explicit LoCoMo completed/failed status and errors for every planned QA row.
  • Verify planned/recorded result integrity and expose expected-denominator accuracy.
  • Correct per-adapter/operation QPS spans and separate attempt/success/failure latency.
  • Add default-off --max-failure-rate-percent and --max-success-p95-ms gates.

Testing

  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have tested this on the following platforms:
    • Linux
    • macOS
    • Windows
pytest -q tests/benchmark/test_locomo_benchmark_integrity.py \
  tests/benchmark/test_session_contention_benchmark.py
# 9 passed

ruff check benchmark/custom/session_contention_benchmark.py \
  benchmark/locomo/openviking/judge.py \
  benchmark/locomo/openviking/run_eval.py \
  benchmark/locomo/openviking/stat_judge_result.py \
  tests/benchmark/test_locomo_benchmark_integrity.py \
  tests/benchmark/test_session_contention_benchmark.py
ruff format --check <same Python files>
git diff --check
# passed

Checklist

  • My code follows the project's coding style
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

Screenshots (if applicable)

Not applicable.

Additional Notes

The new contention SLO gates are disabled by default, preserving existing command exit behavior unless thresholds are explicitly supplied. No live server load run was used as proof; deterministic tests cover persistence, denominator, aggregation, and exit-gate semantics.

Persist failed LoCoMo rows, report expected-denominator accuracy, separate successful load metrics, and add optional benchmark exit gates.
@ehz0ah
ehz0ah force-pushed the fix/benchmark-result-integrity branch from edeb4ee to 44db4e5 Compare August 4, 2026 02:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

1 participant