ValueArena

Lab Notes · v1

How ValueArena measures character.

A full walk-through of the pipeline: how judgments are collected, how skills are fit with Bradley–Terry–Davidson, how uncertainty is quantified via non-parametric bootstrap, how judge trust is aggregated with EigenTrust, and how the final Elo numbers are pegged to a fixed anchor across constitutions.

Last updated 2026-04-17Code invi-bhagyesh/EigenBenchData invi-bhagyesh/ValueArena
01

Pipeline overview

Every ValueArena run starts with a spec: a constitution, a set of models, and a slice of scenarios. The spec drives five stages — collection, BTD fitting, bootstrap, EigenTrust, and upload — producing a single published row on the leaderboard.

Each stage is deterministic given its inputs, so a run can be re-played from the raw judgments without re-querying any model. The artifacts on HuggingFace (meta.json, summary.json, evaluations.jsonl) are sufficient to reproduce every number on the site.

02

Constitutions & scenarios

A constitution is a short document — typically 3–7 numbered criteria written in the second person — that defines the trait under evaluation (goodness, sarcasm, misalignment, and so on). Criteria are operational: each one names an observable behavior a judge can check against a transcript.

A scenario is a prompt that elicits behavior relevant to the constitution. The scenario set is fixed across all runs of the same constitution, so Elo comparisons across models are always over matched prompt distributions.

03

Collection: pairwise judgments

For each scenario and each ordered pair of contestants , a judge is sampled from the judge pool. The judge reads the constitution, the scenario, and the two anonymized responses, and returns one of {i wins, j wins, tie}. Results are appended to evaluations.jsonl — one JSON line per judgment.

Two sampler modes are supported:

btd_d2
Round-robin at scenario level, diameter-2 contestant graph — every model plays every other on every scenario. Used for small pools (≤8 contestants).
uniform
Uniform random triads subject to a target games-per-model budget. Used for larger pools where full round-robin would be prohibitive.

The raw judgment tensor counts, for each contestant pair and each judge, the number of wins of row over column. Ties contribute to both and when passed to the simple BTD fit; the full Davidson variant (§04) treats them as their own outcome.

04

Bradley–Terry–Davidson

Given a strength parameter per contestant, the Bradley–Terry model says the probability that beats on a single trial is

Davidson's extension adds a tie parameter (a nuisance parameter shared across pairs). Under Davidson, the three-way likelihood on a single pair is

We fit by maximizing the total log-likelihood over all judgments, with an regularizer on to pin down the global shift (the model is translation-invariant) and stabilize the fit when a contestant has very lopsided results. Optimization uses L-BFGS; convergence is reached in a few dozen iterations.

05

Bootstrap intervals

Point estimates of are noisy — a single lucky win on a small scenario set can shift an Elo by tens of points. To report 95% CIs we use a non-parametric bootstrap at the judgment level: resample the rows of evaluations.jsonl with replacement, refit BTD, and collect the resulting for .

The summary.json stored on HuggingFace records the mean (not the point MLE) and the two empirical quantiles per model. Using the bootstrap mean keeps consistency with the CI calculation and absorbs a small amount of non-identifiability at the boundary (models with 0% or 100% win rates).

06

EigenTrust

Not every judge is equally reliable. A weak or sycophantic model can pollute the win counts, biasing . Rather than hand-select judges, we let the judges vote on each other and solve for the stationary trust distribution — the classic EigenTrust setup adapted to the arena.

Let be the row-stochastic matrix where is the fraction of times judge agrees with the BTD-implied ordering when judge would have disagreed with them. The trust vector is the stationary distribution of the damped chain

where is a uniform prior over judges and is the teleport probability. Iteration converges in under 50 steps. Final trust scores are stored per judge in meta.json and shown on the leaderboard hover cards.

07

Elo pegging across constitutions

BTD strengths live on an arbitrary log-odds scale — they're only identified up to a shift. For display we transform to Elo:

The constant is what pegging chooses. Three reference models — gpt-4o, claude-4-sonnet, gemini-2.5-pro — are scored in every run, and is set so that their mean Elo equals 1500 within that run:

where is the set of reference models present in the run.

08

Compute workflow

Collection, BTD fitting, and bootstrap are all CPU-bound; only model inference needs a GPU. Two paths exist, and we use the second for anything beyond single-spec experiments.

# train all 11 openchar runs locally in 3 parallel workers,
# then upload one constitution at a time
.venv/bin/python scripts/run_local_train_upload.py \
    --group openchar \
    --parallel 3
09

Limits & caveats

Judges are not neutral.Using frontier LLMs as judges imports their preferences. EigenTrust mitigates this somewhat — unreliable judges get down-weighted — but systematic agreement across the pool still shows up as “truth”.

Anchors may drift between constitutions. gpt-4ois not equally “average” on goodness and on misalignment. Pegging to the mean of three refs controls some of this, but cross-trait comparisons should be read as directional, not absolute.

Bootstrap is judgment-level, not scenario-level.If a single scenario happens to favor one model, resampling judgments won't erase it — only resampling scenarios would. For small scenario counts, CIs are therefore narrower than the true epistemic uncertainty.

Finite-sample BTD bias. When a contestant wins or loses every game, the MLE diverges; the ridge penalty pulls such strengths toward zero but not to any principled value. Ties (via the Davidson parameter) help, but rare.

Trait orthogonality is not enforced. Constitutions were written independently, and some traits correlate (e.g. loving and goodness tend to move together in our runs). The cross-constitution Pareto on the leaderboard visualizes this.