Hulder
A release gate for activation probes, and any other thresholded scorer, across LLM serving configs.
Teams tune a probe's threshold on one serving config, then change it: FP8 or AWQ weights, an FP8 KV cache, a vLLM upgrade. The hidden states move, and the threshold silently stops giving its target false-positive rate. hulder check compares a reference and a candidate on the same labelled examples and returns PASS, THRESHOLD STALE, SCORER DEGRADED or INCONCLUSIVE, with confidence intervals and a CI exit code.
Install
pip install hulder
The base install is numpy and scipy only and runs on CPU. Capturing activations from vLLM needs the vllm extra (pip install "hulder[vllm]"), which adds hulder.capture, experimental in v0.1.
Quickstart
hulder quickstart
It runs two checks on bundled data with a demo probe, under a minute on CPU. An fp16 rerun as candidate gives PASS. The official AWQ int4 checkpoint of Qwen2.5-1.5B-Instruct gives INCONCLUSIVE, with the shift flagged against the rerun's noise floor. hulder check --help lists the options.
v0.1 is an early release. It has run only on a Turing GPU in fp16 and AWQ, and its tolerance bands are fixed.
More
Design, statistical method, results and the cases where it loses: https://github.com/revtheundead/hulder
Apache-2.0. The bundled demo data is derived from a CC-BY-4.0 dataset, attributed in hulder/data/NOTICE.md.
Metadata
Release files for hulder 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 | |
|---|---|---|---|
| hulder-0.1.0.tar.gz | 3.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hulder-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.3 MB
Release files / hulder-0.1.0.tar.gz
| Download URL | hulder-0.1.0.tar.gz |
|---|---|
| Size | 3.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
492a2c811610c70e89756c1d112a3a4a0db78f53657af99b7a21d7b1472e3853
|
|
BLAKE2b-256 checksum How to use checksums |
13bacfb6d4093dd1e2caa757cd0856678ab3bbc149ef1dbff43de1dbb3f86e3e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / hulder-0.1.0-py3-none-any.whl
| Download URL | hulder-0.1.0-py3-none-any.whl |
|---|---|
| Size | 3.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7168204bfb71b7b41be161200943e3b564d6b848b712df1ec0069566a2ac4f09
|
|
BLAKE2b-256 checksum How to use checksums |
f480715a7f1da3080ef0984f7fcb5983ff4d2f4b577193672b373a8eb877c8ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|