Skip to content
Latchkey

実験トラッキングとは?MLのrunの記録を解説

実験トラッキングとは、実験を比較可能、検索可能、再現可能にするために、各ML学習runの入力と結果を記録するプラクティスです。

機械学習は経験的です。数十の構成を試し、最良のものを残します。システムがなければ、それらのrunはスクロールバックと忘れられたファイル名の中に消えていきます。実験トラッキングは各run - そのパラメータ、コード、データ、メトリクス - を捕捉し、それらを比較して再現できるようにします。

実験トラッキングとは何か

実験トラッキングは、各学習runの詳細を中央のstoreに記録します。使用したhyperparameter、コードのバージョン、datasetのバージョン、得られたメトリクス、そしてしばしばモデルやプロットなどのartifactです。各runは、一時的な結果ではなくクエリ可能なレコードになります。

なぜ重要か

トラッキングは実験を比較可能(「どのlearning rateが最良のF1を出したか?」)、再現可能(何が結果を生んだかを正確に把握できる)、協調的(チーム全体がrunの履歴を見られる)にします。これは、model registryと継続的トレーニングが構築される基盤です。

ツール

MLflow、Weights and Biases、Neptuneが一般的なtrackerです。学習コードから呼び出すloggingのAPIと、runを閲覧、フィルタ、比較するUIを提供し、さらに最良のrunをpromoteするためのmodel registryとの統合を提供します。

CIでの実験トラッキング

学習がCIで実行されるとき、各runをcommitとdatasetのバージョンでタグ付けしてtrackerに記録し、すべての自動化されたrunが記録され比較可能になるようにします。

Logging a CI training run
import mlflow
mlflow.set_tag("git_sha", "${GITHUB_SHA}")
mlflow.log_params(params)
mlflow.log_metric("f1", score)

Latchkeyノート

トラッキングされたCIのrunは、artifactとメトリクスをトラッキングサーバーにアップロードします。Latchkeyでは、学習データと依存関係をcacheすることで各トラッキングされたrunが高速に保たれ、auto-retryがrunがartifactをtrackerにアップロードする際の一時的な不具合をカバーします。

重要なポイント

  • 実験トラッキングは、各学習runのパラメータ、コード、データ、メトリクスを記録する。
  • 実験を比較可能、再現可能にし、チーム全体から見えるようにする。
  • CIの学習runをcommitとデータバージョンでタグ付けしてtrackerに記録すると、自動化されたrunが記録され比較可能になる。

関連ガイド