Aqueduct is an MLOps framework that allows you to define and deploy machine learning and LLM workloads on any cloud infrastructure. Check out our quickstart guide! →
Aqueduct is an open-source MLOps framework that allows you to write code in vanilla Python, run that code on any cloud infrastructure you'd like to use, and gain visibility into the execution and performance of your models and predictions. See what infrastructure Aqueduct works with. →
Here's how you can get started:
pip3 install aqueduct-ml
aqueduct start
Aqueduct's Python native API allows you to define ML tasks in regular Python code. You can connect Aqueduct to your existing cloud infrastructure (docs), and Aqueduct will seamlessly move your code from your laptop to the cloud or between different cloud infrastructure layers.
For example, we can define a pipeline that trains a model on Kubernetes using a GPU and validates that model in AWS Lambda in a few lines of Python:
# Use an existing LLM.
vicuna = aq.llm_op('vicuna_7b', engine='eks-us-east-2')
features = vicuna(
raw_logs,
{
"prompt":
"Turn this log entry into a CSV: {text}"
}
)
# Or write a custom op on your favorite infrastructure!
@op(
engine='kubernetes',
# Get a GPU.
resources={'gpu_resource_name': 'nvidia.com/gpu'}
)
def train(featurized_logs):
return model.train(features) # Train your model.
train(features)
Once you publish this workflow to Aqueduct, you can see it on the UI:
To see how to build your first workflow, check out our quickstart guide! →
MLOps has become a tangled mess of siloed infrastructure. Most teams need to set up and operate many different cloud infrastructure tools to run ML effectively, but these tools have disparate APIs and interoperate poorly.
Aqueduct provides a single interface to running machine learning tasks on your existing cloud infrastructure — Kubernetes, Spark, Lambda, etc. From the same Python API, you can run code across any or all of these systems seamlessly and gain visibility into how your code is performing.
The core abstraction in Aqueduct is a Workflow, which is a sequence of Artifacts (data) that are transformed by Operators (compute). The input Artifact(s) for a Workflow is typically loaded from a database, and the output Artifact(s) are typically persisted back to a database. Each Workflow can either be run on a fixed schedule or triggered on-demand.
To see Aqueduct in action on some real-world machine learning workflows, check out some of our examples:
Check out our documentation, where you'll find:
If you have questions or comments or would like to learn more about what we're building, please reach out, join our Slack channel, or start a conversation on GitHub. We'd love to hear from you!
If you're interested in contributing, please check out our roadmap and join the development channel in our community Slack.