SenseBench
SenseBench is benchmark and leaderboard tooling for evaluating English word sense disambiguation (WSD) on lexEN and related datasets. A model is shown a target word in context plus its candidate WordNet senses and must answer with the index of the correct sense. Prompts are immutable, registered definitions; runs produce fully auditable artifacts that anyone can re-verify down to the raw API responses.
Install
Requires Python 3.12+.
uv tool install sensebench # or: pipx install sensebench / pip install sensebench
For development, clone this repository and run uv sync.
Configure API keys
SenseBench calls models through LiteLLM, so any supported provider
works. Export the provider key, or put it in a .env file in your working directory (see
.env.example):
export OPENAI_API_KEY=...
Run a benchmark
sensebench run --model gpt-5.5 --prompt p001
On first use this downloads the NLTK WordNet corpus and the registered dataset release
(lexen-v0.1.0, cached under ~/.cache/sensebench/, integrity-checked against a pinned SHA-256
hash). The run preflights the model with a single call, evaluates every item, writes
runs/<run-id>/, and prints an accuracy summary. Useful flags:
--limit 25for a cheap smoke run (not leaderboard-eligible)--run-id my-runto name the run yourself (otherwise generated from model, prompt, and dataset)--temperature,--max-tokens,--seed,--reasoning-effortfor sampling control--hosting-kind self_hosted --endpoint-base-url http://...for self-hosted models
Each run directory contains:
run.json— run metadata, policy, and totalspredictions.jsonl— one record per item with candidates, votes, and correctnesscalls.jsonl.gz— every raw API request and response
Verify a run
Verification replays the full chain — prompt rendering, answer extraction, vote decisions, and correctness against gold — from the stored artifacts:
sensebench verify runs/<run-id> --dataset lexen-v0.1.0 --prompt p001
Prompts
Registered prompts are immutable JSON definitions under src/sensebench/prompts/registered/. Any
benchmark-relevant change requires a new prompt ID. See docs/prompts.md.
Leaderboard
sensebench leaderboard aggregates verified run directories from results/ into
leaderboard.json. Every run is re-verified before inclusion, and accuracy is recomputed from the
predictions rather than trusted from metadata.
Website
The public leaderboard site is generated as static GitHub Pages output:
sensebench site build --results-dir results --output-dir _site --strict
The generated site includes an interactive leaderboard, Pareto charts, static run-detail pages,
dataset and prompt reference pages, submission instructions, a sitemap, and static JSON under
_site/data/. Pull requests that add public results must place complete run artifacts under
results/<run-id>/; CI verifies all submitted results and builds a preview artifact. Merges to
main deploy the rebuilt site automatically.
Development
uv sync
uv run pytest
uv run ruff check src tests tools
uv run mypy src
uv run python tools/verify_prompt.py --all
uv run sensebench site build --results-dir results --output-dir _site --strict
License
Apache-2.0.
Metadata
Release files for sensebench 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| sensebench-0.1.0.tar.gz | 6.6 MB | With provenance | Details for sensebench-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| sensebench-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for sensebench-0.1.0-py3-none-any.whl |
Total release size: 7.0 MB
Release files / sensebench-0.1.0.tar.gz
| Download URL | sensebench-0.1.0.tar.gz |
|---|---|
| Size | 6.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
10537b99b68081ec19af957f8771c9a7a8fe6ba18cad62bdb377b1d8bbec9d4d
|
|
BLAKE2b-256 checksum How to use checksums |
3c2e6c1c3de5e2b6bffa93a480f7a21d34a87387d14e10ce23dad74a10a71f75
|
| 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 Jun 12, 2026.
Transparency logRelease files / sensebench-0.1.0-py3-none-any.whl
| Download URL | sensebench-0.1.0-py3-none-any.whl |
|---|---|
| Size | 407.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7fcf16234ac6561aa02a4964caf2c2a5fac341dfcf43ce0beb9c8ef0ed353e8c
|
|
BLAKE2b-256 checksum How to use checksums |
87f8d39b08477483a8c6550fddf2cac55a315334def86dae50969a4f15b018a5
|
| 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 Jun 12, 2026.
Transparency logSecurity for sensebench 0.1.0
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.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for sensebench-0.1.0.tar.gz
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 Jun 12, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.