Skip to content

Resolve "Add support for mlflow.search_runs([exp.experiment_id])"

What does this MR do and why?

Adding partial implementation of /runs/search MLflow API endpoint. It
currently only supports search within a single experiment id, with order
by either metrics or column, and no support for filtering.
Details: https://mlflow.org/docs/1.28.0/rest-api.html#search-runs

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

  1. Create an experiment and a few candidates:

    project_id = 1
    user_id = 1
    exp = Ml::Experiment.create!(name: "Gitlab Experiment", user_id: user_id, project_id: project_id)
    exp.candidates.create!(user_id: user_id, start_time: 0, internal_id: 1, project_id: project_id)
    exp.candidates.create!(user_id: user_id, start_time: 0, internal_id: 1, project_id: project_id)
  2. Create a request to fetch the the candidates/runs (set experiment_ids[]=? is probably 1, but if you created other experiments before this could change):

    curl -X GET -H "Authorization: Bearer $GPAT" "http://localhost:3000/api/v4/projects/$PROJECT_ID/ml/mlflow/api/2.0/mlflow/runs/search?experiment_ids[]=1"

    image

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #423640 (closed)

Edited by Eduardo Bonet

Merge request reports