Getting Started¶
Prerequisites¶
Installation¶
Running the Example Pipelines¶
Three example pipelines demonstrate the full workflow for each supported task type: register a base model, finetune on sample data, promote the best version, and run inference.
| Example | Task | Model |
|---|---|---|
examples/segmentation/ |
Semantic segmentation | UNet (torchgeo) |
examples/classification/ |
Binary classification | ResNet18 (torchvision) |
examples/detection/ |
Object detection | YOLOv11n (ultralytics) |
Run All Pipelines¶
Running a single example
Verifying Results¶
After the pipeline completes
| What | Where |
|---|---|
| ZenML pipelines, steps, artifacts | http://localhost:8080 (login: default / empty) |
| STAC collections | http://localhost:8082/collections |
| MLflow runs | http://localhost:5000 |
| MinIO objects | http://localhost:9001 (login: minioadmin / minioadmin) |
| Trained weights | artifacts/ |
| Predictions | data/sample/test/predictions/ |
Project Structure¶
fair/ # Core library (pip-installable as fair-py-ops)
stac/ # STAC catalog management, builders, validators
utils/ # Data helpers
zenml/ # ZenML config generation, promotion, steps
models/ # Base model contributions (one subdir per model)
examples/ # Example pipelines (segmentation, classification, detection)
infra/ # Production stack (Kubernetes via helmfile, DigitalOcean via OpenTofu)
infra/compose/ # Local dev stack (this is what `just setup` uses)
stacks/compose.yaml # ZenML stack definition for the compose stack
tests/ # pytest suite
Development Commands¶
Available recipes
just setup # install deps + bring up stack + register ZenML stack
just example # run all 3 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 check + format + ty check
just test # pytest
just validate # validate STAC items + model pipelines
just docs # serve documentation locally
just commit # run pre-commit hooks + commitizen
Next Steps¶
Tip
- Read the Architecture overview to understand the system
- Contribute a model to fAIr
- Stand up the Kubernetes dev stack for production-parity testing