Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
6ac2a26
Add prompt-hashed validation/test split to meta-eval
ErlisLushtaku Sep 29, 2026
f7c0816
Add successive-halving judge tuning on meta-eval tasks
ErlisLushtaku Sep 30, 2026
5481487
Document judge tuning and add an example search space
ErlisLushtaku Sep 30, 2026
cb18726
Split judge tuning into tune-judge tasks searched with neps
ErlisLushtaku Oct 2, 2026
7e91164
Name tuning run directories after the tune-judge task
ErlisLushtaku Oct 2, 2026
baccfac
Use NePS 0.17 runtime for resumable judge tuning
ErlisLushtaku Oct 6, 2026
1414577
Document native NePS search configuration and worker usage
ErlisLushtaku Oct 6, 2026
871df16
Drain running NePS evaluations without waiting for unused samples
ErlisLushtaku Oct 6, 2026
b95b660
Remove obsolete meta-eval tuning dispatch test setup
ErlisLushtaku Oct 6, 2026
f5d864d
Require OpenAI SDK types imported by vLLM 0.25
ErlisLushtaku Oct 7, 2026
729a315
Merge remote-tracking branch 'origin/main' into erlislushtaku/feat/tu…
ErlisLushtaku Oct 7, 2026
13c87da
Merge NePS configuration foundation into the tuning runtime stack
ErlisLushtaku Oct 7, 2026
99300e9
Separate tuning execution from configuration contracts and usage docs
ErlisLushtaku Oct 7, 2026
83ed0c2
Report judge cost Pareto front and continue multi-objective trial fai…
ErlisLushtaku Oct 7, 2026
5cf09c4
Merge branch 'erlislushtaku/feat/judge-tuning-02-neps-config' into er…
ErlisLushtaku Oct 7, 2026
ce9d509
Cover failed trials in single and multi-objective searches
ErlisLushtaku Oct 7, 2026
62fe021
Merge branch 'erlislushtaku/feat/judge-tuning-02-neps-config' into er…
ErlisLushtaku Oct 7, 2026
d54d3e4
Merge branch 'erlislushtaku/feat/judge-tuning-02-neps-config' into er…
ErlisLushtaku Oct 8, 2026
3c32d93
Merge branch 'erlislushtaku/feat/judge-tuning-02-neps-config' into er…
ErlisLushtaku Oct 8, 2026
021baa8
Route judge tuning through a configured meta-evaluation target
ErlisLushtaku Oct 8, 2026
e2be3a4
Merge branch 'erlislushtaku/feat/judge-tuning-02-neps-config' into er…
ErlisLushtaku Oct 8, 2026
b0b3bf8
Merge branch 'erlislushtaku/feat/judge-tuning-02-neps-config' into er…
ErlisLushtaku Oct 8, 2026
2fd3662
Merge branch 'erlislushtaku/feat/judge-tuning-02-neps-config' into er…
ErlisLushtaku Oct 8, 2026
c809d4a
Resolve automatic judge prices and use the short tuning configuration
ErlisLushtaku Oct 8, 2026
a9b1a86
Pin judge pricing table source revision
ErlisLushtaku Oct 8, 2026
e235745
Merge branch 'erlislushtaku/feat/judge-tuning-02-neps-config' into er…
ErlisLushtaku Oct 9, 2026
1d8d075
Keep tuning execution cost override-only and move reference pricing out
ErlisLushtaku Oct 9, 2026
209ab68
Merge branch 'erlislushtaku/feat/cache-native-usage' into erlislushta…
ErlisLushtaku Oct 9, 2026
6c10084
Use native request usage for cached and fresh judge cost objectives
ErlisLushtaku Oct 9, 2026
2164600
Merge branch 'erlislushtaku/feat/cache-native-usage' into erlislushta…
ErlisLushtaku Oct 9, 2026
cde1ec6
Merge branch 'erlislushtaku/feat/cache-native-usage' into erlislushta…
ErlisLushtaku Oct 9, 2026
3fbb3d5
Merge branch 'erlislushtaku/feat/cache-native-usage' into erlislushta…
ErlisLushtaku Oct 9, 2026
5abc6a8
Consolidate tuning integration tests and isolate session contracts
ErlisLushtaku Oct 9, 2026
19f4ee0
Merge branch 'erlislushtaku/feat/cache-native-usage' into erlislushta…
ErlisLushtaku Oct 9, 2026
befae24
Halve tuning test scope with representative integration coverage
ErlisLushtaku Oct 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

permissions:
contents: read
Expand All @@ -29,3 +28,16 @@ jobs:
run: uv run pre-commit run --all-files
- name: Test with pytest
run: uv run pytest

tuning:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
python-version: "3.12"
- name: Install tuning dependencies
run: uv sync --extra tune
- name: Test tuning integration
run: uv run --extra tune pytest tests/test_tuning.py tests/test_tuning_config.py
50 changes: 50 additions & 0 deletions judgearena/pricing.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
"""Shared reference token pricing and request cost calculation."""

from dataclasses import dataclass

from judgearena.usage import RequestUsage


@dataclass(frozen=True)
class TokenPrice:
input: float
output: float
source: str


def reference_cost(usage: RequestUsage, price: TokenPrice) -> float:
"""Calculate USD from native input/output token counts and per-million rates."""
missing = [
name
for name in ("input_tokens", "output_tokens")
if getattr(usage, name) is None
]
if missing:
fields = " and ".join(missing)
raise ValueError(
f"Cannot calculate reference cost: missing native {fields}; "
"provide provider-reported input_tokens and output_tokens usage"
)
return (
usage.input_tokens * price.input + usage.output_tokens * price.output
) / 1_000_000


def resolve_prices(models, overrides, *, require_cost=True) -> dict[str, TokenPrice]:
"""Resolve explicit USD-per-million-token rates before searching."""
if not require_cost:
return {}
prices = {}
for model in sorted(models):
if model not in overrides:
continue
rate = overrides[model]
if isinstance(rate, (int, float)):
rate = {"input": rate, "output": rate}
prices[model] = TokenPrice(rate["input"], rate["output"], "user_override")
missing = sorted(set(models) - prices.keys())
if missing:
raise ValueError(
f"No token price for {missing}; set tune_judge.price_per_million_tokens"
)
return prices
Loading
Loading