Documentation
| APIs | Documentation | Status |
|---|---|---|
| Python | scorio.readthedocs.io | |
| Julia | mohsenhariri.github.io/scorio/julia |
News
-
April 2026 🎉: Our ranking paper "Ranking Reasoning LLMs under Test-Time Scaling" has been accepted to ACL 2026 Main Conference!
-
February 2026 🎉: Our paper "Don't Pass@k: A Bayesian Framework for Large Language Model Evaluation" has been accepted to ICLR 2026!
-
April 2026 🔜: Reasoning traces will be released soon.
Packages
This repository contains two packages:
scorio- Python implementationScorio.jl- Julia implementation
Quick Start
Python (scorio)
Installation
# Install from PyPI
pip install scorio
# Install latest from GitHub
pip install "git+https://github.com/mohsenhariri/scorio.git"
# Install a specific tag
pip install "git+https://github.com/mohsenhariri/scorio.git@v0.2.2"
# Install from local repository
pip install -e .
Basic Usage
import numpy as np
from scorio import eval
# Outcomes R: shape (M, N) with integer categories in {0, ..., C}
R = np.array([[0, 1, 2, 2, 1],
[1, 1, 0, 2, 2]])
# Rubric weights w: length C+1
# Here: 0=incorrect(0.0), 1=partial(0.5), 2=correct(1.0)
w = np.array([0.0, 0.5, 1.0])
# Optional prior outcomes R0: shape (M, D)
R0 = np.array([[0, 2],
[1, 2]])
# Bayesian evaluation with prior
mu, sigma = eval.bayes(R, w, R0)
print(f"μ = {mu:.6f}, σ = {sigma:.6f}")
# Expected: μ ≈ 0.575, σ ≈ 0.084275
# Bayesian evaluation without prior
mu2, sigma2 = eval.bayes(R, w)
print(f"μ = {mu2:.6f}, σ = {sigma2:.6f}")
# Expected: μ ≈ 0.5625, σ ≈ 0.091998
# Weighted average
accuracy, accuracy_sigma = eval.avg(R, w)
print(f"Average = {accuracy:.6f}, σ = {accuracy_sigma:.6f}")
Julia (Scorio.jl)
Installation
using Pkg
# From local development
Pkg.develop(path="./julia/Scorio.jl")
# Or from Julia General Registry
# Pkg.add("Scorio")
Basic Usage
using Scorio
# Outcomes R: shape (M, N) with integer categories in {0, ..., C}
R = [0 1 2 2 1;
1 1 0 2 2]
# Rubric weights w: length C+1
# Here: 0=incorrect(0.0), 1=partial(0.5), 2=correct(1.0)
w = [0.0, 0.5, 1.0]
# Optional prior outcomes R0: shape (M, D)
R0 = [0 2;
1 2]
# Bayesian evaluation with prior
mu, sigma = bayes(R, w, R0)
println("μ = $mu, σ = $sigma")
# Expected: μ ≈ 0.575, σ ≈ 0.084275
# Bayesian evaluation without prior
mu2, sigma2 = bayes(R, w)
println("μ = $mu2, σ = $sigma2")
# Expected: μ ≈ 0.5625, σ ≈ 0.091998
# Weighted average
accuracy, accuracy_sigma = avg(R, w)
println("Average = $accuracy, σ = $accuracy_sigma")
Evaluation Functions
bayes(R, w, R0=None)
Bayesian performance evaluation with uncertainty quantification using the Bayes@N framework.
R:M × Ninteger matrix with entries in{0, ..., C}(outcomes for M questions over N trials)w: lengthC+1float vector of rubric weights mapping categories to scoresR0(optional):M × Dinteger matrix of prior outcomes- Returns:
(mu, sigma)- posterior estimate and uncertainty
Data and Shape Conventions
- Categories: Encode outcomes per trial as integers in
{0, ..., C} - Weights: Choose rubric weights
wof lengthC+1(e.g.,[0, 1]for binary outcomes) - Shapes:
RisM × N(M questions, N trials)R0isM × D(M questions, D prior trials)- Both must share the same
Mand category set
Requirements
Python
- Python 3.10+
- NumPy 2.0+
Julia
- Julia 1.6 or higher
Citation
If you use Scorio in your research, please cite the relevant papers:
Bayesian Evaluation Framework
@inproceedings{hariri2026don,
title={Don't Pass@k: A Bayesian Framework for Large Language Model Evaluation},
author={Hariri, Mohsen and Samandar, Amirhossein and Hinczewski, Michael and Chaudhary, Vipin},
booktitle={The Fourteenth International Conference on Learning Representations},
year={2026},
url={https://openreview.net/forum?id=PTXi3Ef4sT},
doi={10.48550/arXiv.2510.04265}
}
Ranking Methods
@article{hariri2026ranking,
title={Ranking Reasoning LLMs under Test-Time Scaling},
author={Hariri, Mohsen and Hinczewski, Michael and Ma, Jing and Chaudhary, Vipin},
journal={arXiv preprint arXiv:2603.10960},
year={2026},
doi={10.48550/arXiv.2603.10960},
url={https://arxiv.org/abs/2603.10960}
}
License
This project is licensed under the MIT License - see the LICENSE file for details.
Links
- Landing Page: mohsenhariri.github.io/scorio
- Python Docs: scorio.readthedocs.io
- Julia Docs: mohsenhariri.github.io/scorio/julia
- Repository: github.com/mohsenhariri/scorio
- Issues: github.com/mohsenhariri/scorio/issues
- Papers:
Metadata
Release files for scorio 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| scorio-0.2.2.tar.gz | 98.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scorio-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 210.8 kB
Release files / scorio-0.2.2.tar.gz
| Download URL | scorio-0.2.2.tar.gz |
|---|---|
| Size | 98.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7b2edaad7a42329c63f5fee7a62c8b8a41867c1cf766e13402e6e5fb3e45c550
|
|
BLAKE2b-256 checksum How to use checksums |
50165e1f680376708b2e41bca6313fcb1b35212bedbd3716de443ddb19c9f970
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.
Transparency logRelease files / scorio-0.2.2-py3-none-any.whl
| Download URL | scorio-0.2.2-py3-none-any.whl |
|---|---|
| Size | 112.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4f965e92cfa1824dcf5b5374475a6a2b46b4641aee5c5748408c97a285fac736
|
|
BLAKE2b-256 checksum How to use checksums |
ebfc4b0f783217b3b2bf1ddff27f2e4b73e5ca5d888d65c355bc2c664ad939d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.
Transparency log