Open cosmicBboy opened 2 years ago
I do agree task plugins don't make sense. Is decorator a better pattern? Actually thinking a little more - more native integration might be better 1 especially if we can find commonality with w&b, mlflow and flytedecks
Actually thinking a little more - more native integration might be better 1
How would that look like?
If we take inspiration for zenml, they have a simple enable_mlflow
decorator:
https://github.com/zenml-io/zenml/tree/main/examples/mlflow_tracking#-how-the-example-is-implemented
Hello 👋, This issue has been inactive for over 9 months. To help maintain a clean and focused backlog, we'll be marking this issue as stale and will close the issue if we detect no activity in the next 7 days. Thank you for your contribution and understanding! 🙏
Hello 👋, This issue has been inactive for over 9 months and hasn't received any updates since it was marked as stale. We'll be closing this issue for now, but if you believe this issue is still relevant, please feel free to reopen it. Thank you for your contribution and understanding! 🙏
Hello 👋, this issue has been inactive for over 9 months. To help maintain a clean and focused backlog, we'll be marking this issue as stale and will engage on it to decide if it is still applicable. Thank you for your contribution and understanding! 🙏
The purpose of this task is to come up with a way of using mlflow in a flyte task.
The light-weight integration would simply be to use the mlflow tracking API within a Flyte task to log metrics. Indeed, some of our users are already doing this, and it might make sense to document this in an "MLflow" section in the integration docs.
However, there's an opportunity for a declarative API that would handle some subset of the mlflow logging functions, for example:
This would be beneficial for end users so that they can follow what we think of as "best practices" for how to use MLFlow in Flyte, e.g. not having to think about how to parameterize and name experiments correctly.
For example:
API Proposal 1: Decorator Plugin
Use the task decorator and/or workflow decorator pattern to create a more seamless experience. This would introduce a new plugin pattern in flytekit, which modifies the underlying function wrapped by
@task
and@workflow
.Example
API Proposal 2: extend
@task
and@workflow
argumentsTask config plugins don't really make sense for MLFlow experiment tracking/logging, since the
task_config
argument is typically used for task types that have specific backend resource requirements (e.g. Spark, Ray, MPI tasks) and is orthogonal to configuring experiments and logging metrics.Therefore, to support similar functionality to proposal 1, we could introduce additional arguments to the
@task
and@workflow
decorators, e.g.