Skip to content

Record and Find Runs ​

The Run list of a selected Experiment

mado ML Tracking records each training or evaluation execution as a Run. A Run carries params (the conditions), metrics (numbers per step), tags (labels), logs, and Artifacts (files). Open Experiments in the sidebar to list, search, and compare Runs.

When it helps ​

  • Lining up runs with different learning rates or batch sizes to see which condition worked best
  • Finding every Run whose val_loss is below a threshold, including experiments from months ago
  • Saving a filter and column layout you use often, so the whole team opens the same view
  • Exporting search results as CSV for a spreadsheet

Projects, Experiments, and Runs ​

UnitWhat it isWhere to create it
ProjectThe unit of permissions and storage. Members and their roles (viewer, editor, admin) are set per ProjectCreate project in the Project switcher (Create and manage Projects)
ExperimentA group of Runs with one purpose, such as "speech synthesis training"Create experiment (the + button) on the left of Experiments
RunThe record of one executionPython SDK, MLflow 3 SDK, Tasks, Sweeps, automation rules, or Create run

Every Run has a kind: training, fine-tuning, inference, evaluation, or data processing. The Run kind filter narrows the list by kind.

Viewing needs the viewer role or higher; recording and editing Runs needs editor or higher. See Permissions.

Params, metrics, and tags ​

ItemWhat to recordRules
paramsExecution conditions such as the learning rate or number of epochsA key cannot be changed to a different value once recorded. Use a new Run for new conditions
metricsValues that change by step, such as loss or accuracyStored with the step and timestamp. The list shows the latest value
tagsLabels for finding Runs, such as the dataset or ownerCan be changed later

The latest metric value is chosen by step and timestamp, not by arrival order.

Tags starting with mmt. and automation. are set by the system and cannot be added or removed by users. The Sweep trial number (mmt.sweepTrialIndex) is one of them.

Once a Run executed by a worker (a Run with a Job) has finished, metrics, params, and tags can no longer be added, so results cannot be rewritten afterwards. The description and comments can still be edited (Notes and Comments).

The Run list ​

Select All experiments or an Experiment on the left to list its Runs, newest first.

  • Filter by Status and Run kind
  • Sort by offers creation time, name, and ascending or descending order of any metric
  • Visible columns chooses which params, metrics, and tags appear. Drag a column edge to resize it; focus a header and press Alt+←/→ to move it
  • Selecting rows shows a selection bar above the table. With two or more Runs selected, Compare opens the comparison page. Editors can tag the selected Runs at once with Add tag
  • Click a Run name to open its details (Metrics, Media, Artifacts, System metrics, Logs, and more)

Search the whole history ​

All Experiments searched with metrics.val_loss < 0.1

Type part of a Run name, or a filter in the same syntax as MLflow search_runs. The server searches the whole history, so old Runs that are not on the current page are found too.

text
metrics.val_loss < 0.1
params.batch_size = '32' AND metrics.accuracy >= 0.9
tags.dataset = 'training-v1' AND attributes.status = 'finished'
  • Join conditions with AND. OR and parentheses are not supported
  • Params are compared as strings, so quote their values (params.lr = '0.01')
  • Metrics are compared by each Run's latest value
  • Status accepts both the native names (finished, failed, ...) and MLflow names (FINISHED, FAILED, ...)

Search with All experiments selected to cover every Experiment in the Project. When a filter cannot be parsed, the message below the box tells you which character to check. Comparing params with >, or leaving a params value unquoted, shows the corrected filter (such as params.batch_size = '16'). A comparison without metrics., such as loss < 0.2, is searched as a Run name, and the box offers metrics.loss < 0.2 with Search with this expression.

Python uses the same filter syntax:

python
from mado_tracking import Client

with Client() as client:
    for run in client.search_runs(
        "PROJECT_ID",
        filter="metrics.val_loss < 0.1 AND params.lr = '0.01'",
        order_by=["metrics.val_loss ASC"],
    ):
        print(run["name"], run["latestMetrics"]["val_loss"])

Saved views ​

The saved view menu

A saved view keeps the selected Experiments, filter, status and kind filters, sort order, columns and their widths, chart grouping, and the chart panel layout under a name. Open saved views from the menu at the top left of the list.

  1. Arrange the list the way you want
  2. Choose Save as
  3. Enter a name, choose who can see it (Visibility), and save
VisibilityWho sees itWho can create it
Only meOnly the owner. Other members see it neither in the menu nor by URLviewer or higher
Shared with projectEvery Project membereditor or higher

After you change the display, the menu shows Unsaved changes. Save changes overwrites the view, Save as saves a new one, and Copy URL copies a URL that opens the view (?view=<ID>). A shared view can be renamed, changed, or deleted by its owner and by Project admins.

A view stores the conditions, not a list of Runs: every time you open it, the search runs again against the current Runs.

Export CSV ​

Export search results to CSV downloads every Run that matches the current search as one row each, not just the visible page.

  • Columns are id, name, experiment, kind, status, created, ended, modelVersion, datasetVersions, followed by params.*, metrics.*, and tags.*
  • The file is UTF-8 with a BOM, so Excel opens it directly
  • One export holds up to 50,000 rows (an administrator can change this). Extra rows are left out, and both the page and the end of the CSV say so
  • Values starting with =, +, and similar characters get a leading ' so spreadsheets do not run them as formulas

Python saves the same CSV with export_runs_csv:

python
with Client() as client:
    client.export_runs_csv("PROJECT_ID", "runs.csv", filter="metrics.val_loss < 0.1")

For a CSV with items as rows and selected Runs as columns, use Download CSV on the comparison page.