MLOps.NET icon indicating copy to clipboard operation
MLOps.NET copied to clipboard

MLFlow Interoperability Layers for MLOps.NET

Open lqdev opened this issue 5 years ago • 1 comments

Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like MLFlow is one of, if not the most popular MLOps management system/platform. MLOps.NET was originally created to fill MLFLow lack of support for ML.NET models. MLFlow and its infrastructure have a lot to offer. To improve the extensibility and interoperability of MLOps.NET within the MLFlow ecosystem, build an interoperability layer that uses MLOps.NET as the backend for MLOps lifecycle.

Describe alternatives you've considered

N/A

Additional context Add any other context or screenshots about the feature request here.

To-Do:

  • [x] Research interfaces
  • [ ] Create spec
  • [ ] Build out POC

lqdev avatar Jun 14 '20 15:06 lqdev

Goal

Enable users to track ML experiments, runs, artifacts, and models using MLFlow.

Interfaces

Some ways to interact with MLFlow from .NET are:

  • REST API
  • CLI

REST API

REST API provides good support for the following:

  • Experiments
  • Runs
  • Metrics
  • Parameters
  • Register Models
  • Model Versions

Missing:

  • Artifacts

CLI

CLI provides good support for the following:

  • Experiments
  • Runs
  • Metrics
  • Parameters
  • Register Models
  • Model Versions
  • Artifacts

Implementation

REST API

Strengths

  • All interactions done via HTTP
  • No need to consider platform differences (MacOS, Windows, Linux)
  • Existing client (MLFlow.NET)
  • No need to parse / manipulate STDOUT. Responses are in JSON format.

Weaknesses

  • Can't log artifacts with REST API
  • MLFLow.NET needs to be extended to support model registration

CLI

Strengths

  • Supports all main functions for tracking and model registry.

Weaknesses

  • Need to parse STDOUT. Responses are in JSON format.
  • When running CLI commands from .NET code, you need to consider the user's platform.

lqdev avatar Jul 02 '20 01:07 lqdev