Skip to content

Runを記録して探す ​

Experimentを選んでRunの一覧を表示した画面

mado ML Trackingでは、学習や評価の1回の実行を「Run」として記録します。Runにはparams(実行条件)、metrics(stepごとの数値)、tags(目印)、ログ、Artifact(ファイル)が付きます。サイドバーの[Experiments]で、Runを一覧・検索・比較できます。

こんなときに向いています ​

  • 学習率やbatch sizeを変えた実行を並べて、どの条件が良かったかを確かめたい
  • 半年前の実験も含めて、val_lossが一定より小さいRunだけを探したい
  • よく使う絞り込みと列の並びを保存して、チームで同じ表示を開きたい
  • 検索結果をCSVにして、表計算ソフトで集計したい

Project・Experiment・Runの関係 ​

単位内容作る場所
Project権限と保存先の単位。メンバーと役割(viewer・editor・admin)はProjectごとに決まりますProjectの切り替えの[+ プロジェクトを作成](Projectの作成と管理)
Experiment同じ目的のRunをまとめる単位(「音声合成の学習」など)[Experiments]の左側の[+](実験を作成)
Run1回の実行の記録Python SDK、MLflow 3 SDK、Task・Sweep・自動実行、画面の[Runを作成]

Runには実行種別があります。学習、ファインチューニング、推論、評価、データ処理の5種類で、一覧の[実行種別]で絞り込めます。

閲覧はviewer以上、Runの記録や編集はeditor以上の役割が必要です。役割の付け方は権限を参照してください。

params・metrics・tags ​

項目記録する内容規則
params学習率、epoch数など、実行の条件一度記録したキーに別の値は書けません。条件を変えるときは新しいRunにします
metricslossや精度など、stepごとに変わる数値stepと時刻を一緒に保存します。一覧に出るのは最新の値です
tagsデータセット名、担当者など、Runを探すための目印あとから変更できます

metricsの「最新の値」は、届いた順ではなくstepと時刻の大きいものです。途中から記録し直しても、最後のstepの値が一覧に出ます。

mmt.とautomation.で始まるtagはシステムが付けるもので、利用者は付け外しできません。Sweepの試行番号(mmt.sweepTrialIndex)などがこれに当たります。

Workerで動いたRun(Jobが付いたRun)は、終わったあとにmetrics・params・tagsを追加できません。結果を後から書き換えられないようにするためです。説明文とコメントは終わったあとも書けます(メモとコメント)。

Runの一覧 ​

左側で[すべての実験]かExperimentを選ぶと、Runが新しい順に並びます。

  • [状態]と[実行種別]で絞り込みます
  • [並び順]は作成日時と名前に加え、metricsの昇順・降順を選べます
  • [表示する列]で、表に出すparams・metrics・tagsの列を選びます。列の端をドラッグすると幅が変わり、見出しを選んでAlt+←/→で列を移動できます
  • 行のチェックボックスでRunを選ぶと、表の上に選択バーが出ます。2件以上選んで[比較]を選ぶと比較画面を開きます。editor以上は[タグを追加]で、選んだRunにまとめてtagを付けられます
  • Run名を選ぶと、そのRunの詳細(Metrics、Media、Artifacts、System metrics、Logsなど)を開きます

全履歴を検索する ​

metrics.val_loss < 0.1で全Experimentを検索した画面

検索欄には、Run名の一部か、MLflowのsearch_runsと同じ形式の検索式を入力します。検索はサーバー側で全履歴に対して行うので、表示中のページに無い古いRunも見つかります。

text
metrics.val_loss < 0.1
params.batch_size = '32' AND metrics.accuracy >= 0.9
tags.dataset = 'training-v1' AND attributes.status = 'finished'
  • 条件はANDでつなぎます。ORと括弧は使えません
  • paramsは文字列として比べるので、値を引用符で囲みます(params.lr = '0.01')
  • metricsは各Runの最新の値で比べます
  • 状態はfinished・failedなどの名前でも、MLflowのFINISHED・FAILEDでも指定できます

[すべての実験]を選んでから検索すると、Project内の全Experimentが対象になります。検索式が読めないときは、何文字目を確認すればよいかが検索欄の下に表示されます。paramsを>で比べたときや、paramsの値を引用符で囲み忘れたときは、直した式(params.batch_size = '16'など)が表示されます。loss < 0.2のようにmetrics.を付け忘れた比較はRun名として探し、検索欄の下にmetrics.loss < 0.2と[この式で検索]を出します。

Pythonからも同じ検索式を使えます。

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"])

保存ビュー ​

保存ビューのメニューを開いた画面

Experimentの選択、検索式、状態と実行種別の絞り込み、並び順、表示する列と幅、図のグループ化と図パネルの配置を、名前を付けて保存できます。保存したビューは一覧の左上のメニューから開けます。

  1. 一覧を見たい形に整えます
  2. [名前を付けて保存]を選びます
  3. [ビューの名前]を入力し、[公開範囲]を選んで保存します
公開範囲見える人作れる人
自分だけ作った本人だけ。ほかのメンバーには一覧にもURLにも出ませんviewer以上
プロジェクトで共有Projectのメンバー全員editor以上

ビューを開いたあとに表示を変えると、メニューに「未保存の変更」と出ます。[上書き保存]で今の表示を保存し、[名前を付けて保存]で別のビューにできます。[URLをコピー]で、ビューを開くURL(?view=<ID>)をコピーできます。共有したビューの名前変更・内容の変更・削除は、作った本人とProject adminができます。

保存されるのは表示の条件だけで、Runの一覧そのものは保存しません。開くたびにその時点のRunで検索し直します。

CSVに出力する ​

一覧の[検索結果をCSV出力]を選ぶと、いまの検索条件に一致したRunを1件1行のCSVでダウンロードします。表示中のページだけでなく、一致した全件が対象です。

  • 列はid、name、experiment、kind、status、created、ended、modelVersion、datasetVersionsのあとに、params.*・metrics.*・tags.*が続きます
  • 文字コードはBOM付きのUTF-8なので、Excelでそのまま開けます
  • 1回に出力できるのは50,000行までです(管理者が変更できます)。超えた分は省き、画面とCSVの末尾に打ち切ったことを示します
  • =や+で始まる値は、表計算ソフトで数式として動かないように先頭に'を付けます

Pythonではexport_runs_csvで同じCSVを保存できます。

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

選んだRunを項目ごとに並べたCSVは、比較画面の[CSVをダウンロード]で出力します。