MLflow artifact repository backed by verified, compressed, byte-exact AT-1 containers
Project description
mlflow-at1 — verified, compressed MLflow artifacts
Store MLflow models, checkpoints, and datasets as verified, byte-exact AT-1 containers instead of raw files. Every artifact is compressed losslessly (never-worse vs xz), carries an embedded SHA-256, and is byte-exact-verified on download — a tampered or corrupted artifact is refused, not silently returned.
That makes an artifact in your MLflow store provably the exact bytes you logged — the reproducibility / provenance hook that regulated AI (EU AI Act, NIST AI RMF, FDA 21 CFR Part 11) needs: "this model is the exact model that was trained, untampered."
It's a pure-glue plugin — no engine code ships here. It registers the at1:// artifact-repository
scheme and shells out to the at1 CLI.
Install
npm i -g @tinyfiles/cli # the at1 binary (the codec; no Python engine needed)
pip install mlflow-at1 # this plugin (registers the at1:// scheme)
# pip install mlflow-at1[full] # if you want full MLflow rather than mlflow-skinny
Use
Point an experiment's artifact location at an at1:// path; everything else is normal MLflow:
import mlflow
exp = mlflow.create_experiment("regulated-model", artifact_location="at1:///data/mlartifacts")
with mlflow.start_run(experiment_id=exp):
mlflow.log_artifact("model.bin") # -> stored as a verified, compressed AT-1 container
# mlflow.sklearn.log_model(...) etc. all route through AT-1 too
# later — download is a byte-exact, SHA-256-verified reconstruction:
path = mlflow.artifacts.download_artifacts(run_id=run_id, artifact_path="model.bin")
at1://<path> is a local/mounted filesystem base directory for the containers (S3/GCS backing is a
follow-on). Set AT1_BIN to point at a specific at1 binary if it isn't on PATH.
What you get
- Smaller — lossless, never-worse than xz; typically a real reduction on weights/checkpoints/datasets.
- Verified — every container embeds a SHA-256;
downloadrefuses anything that doesn't reconstruct byte-for-byte. Explicit proof per artifact:repo.integrity("model.bin")→integrity OK (sha256 …). - Addressable — one
.at1per artifact; tabular artifacts stay queryable in place via theat1CLI. - Zero lock-in — the container is an ordinary file with a tiny open decoder; you can always get the exact original back, with or without this plugin.
Test
pip install mlflow-skinny pytest && python -m pytest tests/ -q # needs the `at1` CLI on PATH
5 tests: log→download byte-exact, logical listing, directory trees, integrity + tamper-rejection, delete.
Project details
Release history Release notifications | RSS feed
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 mlflow_at1-0.1.0.tar.gz.
File metadata
- Download URL: mlflow_at1-0.1.0.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c09371ac4863b1e666f4456055a9d1485fd17f62c1109bf386d8f288bc3ba3c0
|
|
| MD5 |
71c2a9d7cf95f8961b3b13686782f762
|
|
| BLAKE2b-256 |
34102493d31c4fd0704eb755b2212583a9e0f028c38c5fcfb1f44c456a0da621
|
File details
Details for the file mlflow_at1-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mlflow_at1-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1329ad14a20aa7d4dbd6424f0b5551902207d4067f35e3ae61176eff692ab698
|
|
| MD5 |
8c204519a8c790d8afe6e16336e9e4d5
|
|
| BLAKE2b-256 |
03ce47b613bf0e8eef12d42bced020cdc13da179299b2ceee9de419f5f33476b
|