AutonomyFit
AutonomyFit detects local edge-AI hardware, tracks a continuously updated signed model registry, and ranks models against memory, latency, throughput, accuracy, power and runtime constraints. Performance claims are tied to explicit evidence rather than model names alone.
Install
pip install autonomyfit
Quick start
autonomyfit scan
autonomyfit registry update
autonomyfit models
autonomyfit recommend --task detection --fps 30 --latency-ms 40
A known target can be screened without the device attached:
autonomyfit recommend --hardware-profile jetson-orin-nx-16gb --fps 200 --latency-ms 5
The published YOLO26n / Jetson Orin NX / TensorRT FP16 reference is 4.13 ms, but AutonomyFit 0.4 deliberately treats it as vendor reference evidence, not automatic proof for every YOLO26n artifact. Because that table does not pin an exact model revision and artifact SHA-256, a performance constraint returns BENCHMARK_REQUIRED until exact evidence is available.
Evidence-aware decisions
| Outcome | Meaning |
|---|---|
VERIFIED_FIT |
Exact identity-matched local or standardized evidence satisfies the requested constraints. |
FEASIBLE |
Compatibility and memory screening pass with no unresolved performance constraint. |
BENCHMARK_REQUIRED |
A performance/power constraint needs exact target-device evidence. |
CONSTRAINT_FAIL |
Exact applicable evidence or catalogued constraints show a violation. |
NO_FIT |
A hard compatibility or memory screen fails. |
Evidence quality is explicit:
local-measured
standardized
vendor-published
third-party-reproducible
metadata-estimate
A result can be useful without being proof. JSON and human output state whether benchmark identity is exact or context-only, along with model revision, artifact hash, hardware, runtime, precision, source date and evidence quality.
See docs/evidence.md.
Continuously updated registry
The PyPI package is the decision engine. Model intelligence is a separately versioned, signed registry that can update without a new package release.
autonomyfit registry status
autonomyfit registry update
autonomyfit search detr-resnet-50
autonomyfit info eagle2-1b
autonomyfit models --source nvidia
The registry client verifies Sigstore identity, schema/freshness and local rollback state, caches the last accepted registry and supports offline fallback:
autonomyfit recommend --offline --task detection
See docs/registry.md and docs/discovery.md.
Exact artifact matching
For a deployable artifact, include its identity in the recommendation:
autonomyfit recommend \
--model-id my-model \
--model-revision FULL_REVISION \
--artifact model.onnx \
--runtime onnx \
--precision fp16 \
--latency-ms 10
AutonomyFit hashes the artifact with SHA-256. Known revision, artifact, hardware, runtime or precision mismatches do not silently share benchmark evidence.
Local benchmarking
Check backend availability:
autonomyfit benchmark-backends
For ONNX Runtime:
pip install 'autonomyfit[benchmark]'
autonomyfit benchmark model.onnx \
--model-id my-model \
--model-revision FULL_REVISION \
--iterations 100 \
--warmup 20 \
-o result.json
Then validate and import the report:
autonomyfit benchmark-inspect result.json
autonomyfit benchmark-import result.json
A local report records the exact artifact SHA-256, model revision, hardware identity, runtime/provider versions, deterministic input seed, input shapes, load time, mean/median/p50/p90/p95/p99 latency, throughput, process-RSS peak, scoped NVIDIA/Jetson power where available, thermal readings where exposed and a reproducibility fingerprint.
Full local filesystem paths and raw hostnames are not written into the report.
Native backends
OnnxRuntimeBackend: in-process ONNX Runtime execution-provider benchmark.TensorRTBackend: native NVIDIAtrtexecsummary parsing for ONNX or TensorRT engine/plan artifacts.OpenVINOBackend: native Intelbenchmark_applatency-oriented benchmark.CoreMLBackend: macOS Core ML benchmark for generic numericMLMultiArrayinputs.
Unsupported backends or input semantics fail explicitly. See docs/benchmarking.md.
Power and memory scope
AutonomyFit does not equate all watts or memory numbers.
- Jetson power is labelled by the observed rail, such as VDD_IN.
- NVIDIA
power.drawis labelled as GPU board power. - These are not represented as whole-system wall power.
- Generic local peak memory is labelled
process RSS, not accelerator memory.
MLPerf
AutonomyFit includes strict parsing/import primitives for VALID MLPerf results. Standardized evidence is only accepted as exact proof when the benchmark workload is the correct one and the model revision plus artifact identity are explicitly supplied. AutonomyFit does not map a different MLPerf detector onto YOLO26 by task similarity alone.
Model discovery
The discovery pipeline uses provider adapters and separates discovery from approval. New candidates can remain DISCOVERED or NORMALIZED without being promoted into high-confidence recommendations. Official upstream provenance is preferred and licences are retained rather than normalized away.
The scheduled registry refresh runs daily, validates deterministic output and signs only meaningful registry changes. Registry updates do not publish PyPI packages.
Development
git clone https://github.com/sylvesterkaczmarek/autonomyfit.git
cd autonomyfit
python -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'
make test
make evidence-validate
make smoke
CI covers Python 3.10 through 3.13, registry/evidence validation, Ruff, tests, wheel/sdist build, twine check, installed-wheel smoke tests and signed-registry refresh behavior.
Limitations
- Vendor benchmarks remain contextual when exact artifact/revision identity is absent.
- Synthetic local inputs benchmark execution performance, not task accuracy or end-to-end autonomy safety.
- Process RSS is not GPU/accelerator memory.
- Power depends on measurement scope, power mode, thermals, clocks and peripherals.
- Native backend availability depends on vendor tooling installed on the target machine.
- Core ML generic benchmarking does not replace Xcode/Instruments profiling; Apple also introduced Core AI for new custom neural-network deployment workflows.
- Standardized MLPerf ingestion is intentionally empty unless an actually applicable model/system/artifact tuple exists.
Cite
Kaczmarek, S. (2026). AutonomyFit. GitHub.
License
MIT. See LICENSE.
© Sylvester Kaczmarek · https://www.sylvesterkaczmarek.com
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file autonomyfit-0.4.0.tar.gz.
File metadata
- Download URL: autonomyfit-0.4.0.tar.gz
- Upload date:
- Size: 67.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99fd7c61a4d425903d0a863035d1996ef4687571d334aad2dc2f910a5b5a0961
|
|
| MD5 |
a71cc517214a834cabf16ecb5b2225d6
|
|
| BLAKE2b-256 |
95a739db821e1a641f0f330df092761adebab0691f0adea117b14e5753a496f5
|
Provenance
The following attestation bundles were made for autonomyfit-0.4.0.tar.gz:
Publisher:
release.yml on sylvesterkaczmarek/autonomyfit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
autonomyfit-0.4.0.tar.gz -
Subject digest:
99fd7c61a4d425903d0a863035d1996ef4687571d334aad2dc2f910a5b5a0961 - Sigstore transparency entry: 2488378970
- Sigstore integration time:
-
Permalink:
sylvesterkaczmarek/autonomyfit@b57bc10bd0bb9b6da33517dd97c4ba9a35f679e0 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/sylvesterkaczmarek
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b57bc10bd0bb9b6da33517dd97c4ba9a35f679e0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file autonomyfit-0.4.0-py3-none-any.whl.
File metadata
- Download URL: autonomyfit-0.4.0-py3-none-any.whl
- Upload date:
- Size: 62.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
851f64406281c7beb5f12a9962b225926773aaf99766151eec1a7a0680706c66
|
|
| MD5 |
d8e8cb31bca39ce976fba2c0d5b0a72e
|
|
| BLAKE2b-256 |
1cd87dd5a7d4789e85a066358c411f32c56882771924efa3d84253d26ef6aafa
|
Provenance
The following attestation bundles were made for autonomyfit-0.4.0-py3-none-any.whl:
Publisher:
release.yml on sylvesterkaczmarek/autonomyfit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
autonomyfit-0.4.0-py3-none-any.whl -
Subject digest:
851f64406281c7beb5f12a9962b225926773aaf99766151eec1a7a0680706c66 - Sigstore transparency entry: 2488379035
- Sigstore integration time:
-
Permalink:
sylvesterkaczmarek/autonomyfit@b57bc10bd0bb9b6da33517dd97c4ba9a35f679e0 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/sylvesterkaczmarek
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b57bc10bd0bb9b6da33517dd97c4ba9a35f679e0 -
Trigger Event:
push
-
Statement type: