Declarative ML framework: write a Pipeline once, run it anywhere — local Docker, AWS, GCP, Azure, or routed to the cheapest cloud.
Project description
Ophelian
Write your ML pipeline once. Run it anywhere. Route to the cheapest available GPU across AWS, GCP, and Azure.
Ophelian is a small, opinionated Python framework for taking ML / AI
prototypes to production without rewriting them every time the runtime
changes. Declare a Pipeline, pick an env, and Ophelian compiles +
runs it — locally in Docker, on AWS, GCP, or Azure, or routed
automatically to the cheapest cloud for the GPU you need.
Install
pip install ophelian # core, runs locally
pip install 'ophelian[aws]' # + EC2 / S3
pip install 'ophelian[gcp]' # + GCE / GCS
pip install 'ophelian[azure]' # + Azure VM / Blob
pip install 'ophelian[huggingface]' # + Transformers + PyTorch
pip install 'ophelian[all]' # every adapter and provider
Python 3.11+. Full extras list (pytorch, sklearn, xgboost,
otel, ...) in pyproject.toml.
Hello, pipeline
from ophelian import Pipeline, Train, Auto
pipe = Pipeline([
Train(
model="meta-llama/Llama-3.2-1B",
data="s3://my-bucket/dataset.jsonl",
epochs=3,
),
])
# Picks the cheapest A100 across AWS / GCP / Azure right now.
pipe.run(env=Auto(cheapest_gpu="A100"))
The same source runs on your laptop, on EC2 spot, on a GCE preemptible VM, or on an Azure Spot VM — Ophelian handles checkpointing, artifact persistence (S3 / GCS / Azure Blob), structured logs, and a rich summary at the end.
Envs
from ophelian import Standalone, AWS, GCP, Azure, Auto
Standalone(local=True) # local Docker / in-process
AWS(region="us-east-1", instance="g5.xlarge", spot=True) # EC2 / S3
GCP(project="p", region="us-central1",
machine_type="n1-standard-4", gpu_type="nvidia-tesla-t4",
preemptible=True) # GCE / GCS
Azure(subscription_id=..., resource_group="ml",
region="eastus", vm_size="Standard_NC6s_v3",
spot=True) # Azure VM / Blob
Auto(cheapest_gpu="A100",
regions=["us-east-1", "us-central1", "eastus"]) # cost router
The same Pipeline(...) runs on every one of them. Each cloud env has
a Local*Driver mirror so the test suite (and any contributor without
cloud creds) exercises the full framework offline.
Why Ophelian
| Ophelian | SageMaker | Vertex AI | Azure ML | Bare cloud SDKs | |
|---|---|---|---|---|---|
| Single API across AWS + GCP + Azure | ✅ | ❌ | ❌ | ❌ | ❌ |
| Write pipeline once, run anywhere | ✅ | ❌ | ❌ | ❌ | ❌ |
| Auto-router that picks the cheapest GPU | ✅ | ❌ | ❌ | ❌ | ❌ |
| Spot / preemptible resume | ✅ | partial | partial | partial | DIY |
| Local-first dev (no cloud auth) | ✅ | ❌ | ❌ | ❌ | ❌ |
| Apache-2.0, no vendor lock-in | ✅ | ❌ | ❌ | ❌ | mixed |
Documentation
Full docs live at https://ophelianio.github.io/ophelian/: Quickstart · Concepts · Envs · Cookbook · Troubleshooting.
Runnable examples in examples/.
Roadmap and release history in CHANGELOG.md.
Community
- Questions → GitHub Discussions
- Bugs / features → Issues
- Security → see
SECURITY.md— please do not file a public issue - Contributing →
CONTRIBUTING.md(we follow the Contributor Covenant 2.1)
Citation
@software{ophelian_2026,
author = {Falva, Luis and the Ophelian contributors},
title = {{Ophelian: a declarative, multi-cloud ML pipeline framework}},
year = {2026},
version = {1.0.1},
license = {Apache-2.0},
url = {https://github.com/ophelianio/ophelian},
}
License
Copyright © 2024–2026 Luis Falva and the Ophelian contributors.
Licensed under the Apache License, Version 2.0 — see
LICENSE
and NOTICE
for third-party attributions.
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
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 ophelian-1.0.1.tar.gz.
File metadata
- Download URL: ophelian-1.0.1.tar.gz
- Upload date:
- Size: 515.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9fa661a120b30c3c6af36f9e6fde2134d14e9cf8d0ebaa2accbd15923743e410
|
|
| MD5 |
63b8981ee42b07ee8e07f0cd1c9245c2
|
|
| BLAKE2b-256 |
8898df391b55c6f4d5b5826516449fbb158330fdefaa804d1d641ef48a1c9463
|
Provenance
The following attestation bundles were made for ophelian-1.0.1.tar.gz:
Publisher:
release.yml on ophelianio/ophelian
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ophelian-1.0.1.tar.gz -
Subject digest:
9fa661a120b30c3c6af36f9e6fde2134d14e9cf8d0ebaa2accbd15923743e410 - Sigstore transparency entry: 1439166593
- Sigstore integration time:
-
Permalink:
ophelianio/ophelian@f3fcf2536c593a56cd4c30fa0c80dd765880cdf1 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/ophelianio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f3fcf2536c593a56cd4c30fa0c80dd765880cdf1 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ophelian-1.0.1-py3-none-any.whl.
File metadata
- Download URL: ophelian-1.0.1-py3-none-any.whl
- Upload date:
- Size: 180.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddcd957558f9981c7ac0744cf6f01041d55d7707e03d92c08b4aac4963674f04
|
|
| MD5 |
7d908c61256d13b35ffa32f26f7dad0d
|
|
| BLAKE2b-256 |
593225cce04226cf0ba65dbd813233c97cb9cc57c589957847a33b821c384ee2
|
Provenance
The following attestation bundles were made for ophelian-1.0.1-py3-none-any.whl:
Publisher:
release.yml on ophelianio/ophelian
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ophelian-1.0.1-py3-none-any.whl -
Subject digest:
ddcd957558f9981c7ac0744cf6f01041d55d7707e03d92c08b4aac4963674f04 - Sigstore transparency entry: 1439166596
- Sigstore integration time:
-
Permalink:
ophelianio/ophelian@f3fcf2536c593a56cd4c30fa0c80dd765880cdf1 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/ophelianio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f3fcf2536c593a56cd4c30fa0c80dd765880cdf1 -
Trigger Event:
push
-
Statement type: