Skip to main content

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; download refuses anything that doesn't reconstruct byte-for-byte. Explicit proof per artifact: repo.integrity("model.bin")integrity OK (sha256 …).
  • Addressable — one .at1 per artifact; tabular artifacts stay queryable in place via the at1 CLI.
  • 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mlflow_at1-0.1.0.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mlflow_at1-0.1.0-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

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

Hashes for mlflow_at1-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c09371ac4863b1e666f4456055a9d1485fd17f62c1109bf386d8f288bc3ba3c0
MD5 71c2a9d7cf95f8961b3b13686782f762
BLAKE2b-256 34102493d31c4fd0704eb755b2212583a9e0f028c38c5fcfb1f44c456a0da621

See more details on using hashes here.

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

Hashes for mlflow_at1-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1329ad14a20aa7d4dbd6424f0b5551902207d4067f35e3ae61176eff692ab698
MD5 8c204519a8c790d8afe6e16336e9e4d5
BLAKE2b-256 03ce47b613bf0e8eef12d42bced020cdc13da179299b2ceee9de419f5f33476b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page