fAIr-models
Model registry and ML pipeline orchestration for fAIr.
fair-py-ops is the Python package for building ZenML pipelines, validating STAC items, and testing locally. The models/ directory is the single source of truth for base model contributions.
Quick Start
Prerequisites: Docker, uv, just.
git clone https://github.com/hotosm/fAIr-models.git
cd fAIr-models
just setup
just build
just example
just setup installs Python deps, brings up the full stack via Docker Compose (Postgres + MinIO + STAC + MLflow + ZenML), and registers the ZenML stack. just build builds the model Docker images that the local_docker orchestrator runs each pipeline step in. just example runs all example pipelines end-to-end.
| Service | URL | Credentials |
|---|---|---|
| ZenML dashboard | http://localhost:8080 | default / (empty) |
| MLflow | http://localhost:5000 | none |
| STAC API | http://localhost:8082 | none |
| MinIO console | http://localhost:9001 | minioadmin / minioadmin |
See Getting Started for the full guide. For Kubernetes parity or production deploys, see infra/README.md.
Documentation
- Getting Started : Installation and running the examples
- Architecture : STAC catalog structure, flows, identity model, infrastructure
- Contributing a Model : Guide for adding base models to fAIr
- API Reference : Python package documentation
- Changelog : Release history
Examples
Reference implementations demonstrate the full workflow:
| Example | Task | Model | Run |
|---|---|---|---|
| Building footprints | Semantic segmentation | DINOv3 ViT-S/16 + UperNet (PyTorch) | just example dinov3s_buildings |
| Solid waste grid | Semantic segmentation | YOLO26x classifier (ultralytics) | just example yolo_swag_waste_grid_segmentation |
| RGB pixels (minimal) | Semantic segmentation | Logistic regression (scikit-learn) | just example sklearn_rgb_segmentation |
Commands
Run just to see all recipes.
just setup # install deps + bring up stack + register ZenML stack
just example # run all example pipelines
just down # stop the stack (state preserved, fast restart)
just up # restart after `just down`
just tear # destroy stack + volumes + local ZenML state
just lint # ruff + ty
just test # pytest
just validate # validate STAC items + model pipelines
just docs # serve documentation locally
just commit # run pre-commit hooks + commitizen
Key Concepts
| Concept | Description |
|---|---|
| Base model | Reusable ML blueprint (weights, code, Docker image, STAC item) |
| Local model | Finetuned model produced by ZenML pipeline on user data |
| STAC catalog | Model/dataset registry with MLM and Version extensions |
| ZenML pipeline | Orchestrated training and inference workflows |
Metadata
Release files for fair-py-ops 0.3.16
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fair_py_ops-0.3.16.tar.gz | 4.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fair_py_ops-0.3.16-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.1 MB
Release files / fair_py_ops-0.3.16.tar.gz
| Download URL | fair_py_ops-0.3.16.tar.gz |
|---|---|
| Size | 4.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0e8a8835c2a29bed4dfa0d5fea82ddddd0ac92cefce2214f670c2957451a6b8a
|
|
BLAKE2b-256 checksum How to use checksums |
ac5484def37e240a323f9f5b4c14709b3320e1e7b4c8cda341a263272c070c03
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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":true}
|
Release files / fair_py_ops-0.3.16-py3-none-any.whl
| Download URL | fair_py_ops-0.3.16-py3-none-any.whl |
|---|---|
| Size | 4.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
887f9d1af8cd317dd946034403b243da557f97f0fa8fa5cbc5d5504c4e151c4d
|
|
BLAKE2b-256 checksum How to use checksums |
b0386b04251b39b6dcca73d9372f1aed4dcc3583e9008b7fe3c3e38c2c9c97f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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":true}
|