spb/llmindex Public
The discriminative, contamination-resistant, fully transparent LLM ranking — updated live.
TypeScript 77.9%
TeX 15.2%
Python 3.7%
SQL 1.4%
JavaScript 1.1%
Shell 0.5%
1# IRT Specification (2PL)23**Author:** Simon-Pierre Boucher — contact@spboucher.ai45## Model67For model m and item i: `P(x_mi = 1) = σ(a_i (θ_m − b_i))`.89## Estimation1011MAP via Adam gradient ascent on the penalized log-likelihood (`apps/psychometrics/llmindex_psycho/irt.py`):1213- Priors: θ ~ N(0, 1); b ~ N(0, 1.5); log a ~ N(0, 0.5) (a > 0 by construction).14- Warm start: θ from row-accuracy logits (centered), b from inverted column-accuracy logits.15- Identification: θ recentered to mean 0 each step (shift absorbed into b); scale pinned by priors.16- Missing cells masked (models need not share identical item sets).17- Convergence: relative objective change < `tolerance` (default 1e-6), max 500 iterations.1819## Uncertainty2021`SE(θ_m) = 1/√(Σ_i a_i² P(1−P) + 1/σ_θ²)` over observed items (Fisher information + prior22precision). Published as 95% CIs on every score.2324## Hygiene2526After each refit: items with `a < 0.3` or `|b| > 3` are flagged `flagged_for_retirement` in the27item bank and reviewed before the next run. Fit diagnostics (iterations, convergence, final28log-likelihood, matrix sizes) are stored on the `score_runs` row.2930## Deviation note3132The spec allows py-irt / PyTorch; v1 ships a dependency-light custom numpy implementation with the33same 2PL likelihood and priors — verified by parameter-recovery tests34(`apps/psychometrics/tests/test_psycho.py`).35