Skip to main content

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 25 for a cheap smoke run (not leaderboard-eligible)
  • --run-id my-run to name the run yourself (otherwise generated from model, prompt, and dataset)
  • --temperature, --max-tokens, --seed, --reasoning-effort for sampling control
  • --hosting-kind self_hosted --endpoint-base-url http://... for self-hosted models

Each run directory contains:

  • run.json — run metadata, policy, and totals
  • predictions.jsonl — one record per item with candidates, votes, and correctness
  • calls.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)

Source distribution for sensebench 0.1.0
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)

Table of built distributions (wheels) for sensebench 0.1.0
File Interpreter ABI Platform Actions
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

A 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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page