前処理から学習までを順番に実行する
Workflowsでは、前処理・学習・評価のTaskを順番に実行します。保存時点の設定と入力バージョンを固定するので、実行履歴から「どのデータを、どの条件で処理し、何を学習に使ったか」を確認できます。
Mado Data Catalogはデータの出自、処理履歴、保管先を管理します。ML Trackingは前処理の実行条件と品質、学習での用途を記録します。両方で同じデータセットバージョンを参照します。
画面の開き方
左のサイドバーの「実行」にある[Workflows]で開きます。一覧からワークフローの名前を押すと、そのワークフローの画面になります。
ワークフローの画面は上から次の順に並びます。
- バージョンの選択と[ワークフローを実行]。新しい20件のバージョンを選べます。それより前のバージョンは[以前のバージョンを読み込む]で足します。
- 選んだバージョンのステップ(Task、入力、次へ進む条件)
- 実行履歴。表示する実行と、比較する実行を選びます。[以前の実行]でページを送っても、表示中の実行は変わりません。
- 表示中の実行の各ステップの状態、Run・Jobへのリンク、前処理レポート、出力バージョン
ワークフローが作ったRunの画面の[詳細]からは、[ワークフローを開く]でそのRunを作った実行へ戻れます。
ワークフローを作る
- Taskで各処理のコード、パラメータ、実行先を設定します。
- Workflowsで[ワークフローを作成]を押し、Taskを実行順に並べます。
- 最初の入力には固定したデータセットバージョンを選びます。学習の入力には前処理ステップの出力を選びます。
- 入力の用途を学習・検証・テストなどから選び、必要に応じて混合比率の重みと抽出条件を指定します。重みは0より大きい数です。
- 品質条件を設定して保存します。たとえば
preprocessing.retained_input_ratio ≥ 0.9なら、入力の90%以上が残ったときに次へ進みます。
保存できないときは、「ステップ2の入力1: データセットバージョンを選んでください。」のように、直す場所と理由が出ます。ステップのキーを変えると、そのステップを入力やモデルの引き継ぎ元にしている後のステップも新しいキーに付け替えます。前のステップと同じキーにしたときと、同じキーのステップがほかにもあるときは付け替えず、キーの欄に「キー「…」は前のステップで使われています」と出ます。ステップを削除したときなど、引き継ぎ元が見つからない欄には「前のステップ「…」が見つかりません」と出るので、選び直してください。ステップの削除と、保存しないまま閉じるときは確認が出ます。
Taskの後日の変更は保存済みのワークフローに反映されません。条件を変えるときは[新しいバージョンを作成]で新しいバージョンを作ります。重みと抽出条件は実行コードで読み取って使ってください。
実行する
バージョンを選んで[ワークフローを実行]を押すと、ワークフロー名とバージョンを示す確認が出ます。[実行する]を押すと、各ステップのTaskをそのバージョンの設定でJobとして順番に起動し、「実行 … を開始しました」と表示します。確認の中で失敗してもう一度押した場合は、最初の起動が受け付けられていればその実行を返し、実行が2つにはなりません。
ワークフローのJobは、ワークフローに対応したworker(新しいmado-tracking)だけが受け取ります。担当するworkerが古いと、Jobは待機中のままで、Jobsの画面の詳細に「workerを新しいmado-trackingに更新すると受け取ります」と出ます。workerの更新はworkerの導入を見てください。
品質を記録する
前処理のRunの[詳細]か、Python SDKのRun.log_preprocessing_report()から、入力・出力・除外・失敗の件数と時間を保存できます。理由別の件数、品質メトリクス、確認用サンプルも記録できます。
実行履歴には各ステップのレポートと実際の入出力バージョンを表示します。別の実行を選ぶと、同じステップの品質値や学習結果を比較できます。Runが終了するとレポートは固定されます。
途中で失敗したとき・止めたいとき
品質条件を満たさない場合や必要な出力がない場合は、後続のステップを起動せず理由を表示します。
失敗または中止した実行を表示しているときは、[新しい実行として再開]が出ます。確認で[再開する]を押すと、成功したステップのRunと出力を再利用し、最初の未完了のステップから新しい実行で動かします。元の実行の履歴は残ります。条件を変えたいときは、新しいバージョンを作って最初から実行してください。
動いている実行を止めるときは[ワークフローを停止]を押します。確認には実行、バージョン、作成者が出ます。[停止する]を押すと、実行中のJobに停止を依頼し、後続のステップは起動しません。Jobが止まるまで状態は「停止要求済み」、止まると「中止」になります。
ワークフローのステップのJobは、Jobsの画面から単独で再実行できません。Jobsの[操作]の列には、失敗・中止したJobなら[ワークフローの画面で再開]、完了したJobなら[ワークフローを開く]が出て、その実行の画面へ移ります。
実行先が手動投入のsiteの場合、各Jobはsiteへの投入が行われるまで待機します。
権限
| 操作 | 必要な権限 |
|---|---|
| ワークフロー、バージョン、実行履歴を見る | viewer以上 |
| ワークフローと新しいバージョンを作る | editor以上(API tokenはregistry:write) |
| ワークフローを実行する | editor以上(API tokenはruns:writeとjobs:write) |
| 実行を停止する、新しい実行として再開する | 元の実行の作成者(editor以上)か、Project admin(API tokenはruns:writeとjobs:write) |
ほかの人が始めた実行を表示しているeditorには、停止・再開のボタンの代わりに「停止・再開は、実行の作成者かProject adminだけができます」と出ます。