次の方法で共有


Mosaic AI モデル トレーニングの実行を表示、管理、分析する

重要

この機能は、次のリージョンでパブリック プレビュー段階です: centraluseastuseastus2northcentraluswestus

この記事では、API または UI を使用して、Mosaic AI モデル トレーニング (旧称 Foundation Model Training) の実行を表示、管理、分析する方法について説明します。

実行の作成の詳細については、「Mosaic AI モデル トレーニングの API を使用してトレーニングの実行を作成する」と「Mosaic AI モデル トレーニングの UI を使用してトレーニングの実行を作成する」を参照してください。

Mosaic AI モデル トレーニングの API を使用してトレーニングの実行を表示および管理する

Mosaic AI モデル トレーニング API には、トレーニングの実行を管理するための次の機能が用意されています。

実行を取得する

get() 関数を使い、起動した名前または実行オブジェクトを指定して実行します。

from databricks.model_training import foundation_model as fm

fm.get('<your-run-name>')

実行のリストの取得

起動した実行を確認するには、list() 関数を使います。 次の表は、指定できる省略可能なフィルターの一覧です。

省略可能なフィルター Definition
finetuning_runs 取得する実行の一覧。 既定値はすべての実行の選択です。
user_emails ワークスペースで共有実行が有効な場合は、トレーニング実行を送信したユーザーごとに結果をフィルター処理できます。 既定値はユーザー フィルターなしです。
before 前に実行をフィルター処理する日時または日時文字列。 既定値はすべての実行です。
after 後に実行をフィルター処理する日時または日時文字列。 既定値はすべての実行です。
from databricks.model_training import foundation_model as fm

fm.list()

# filtering example
fm.list(before='2023-01-01', limit=50)

トレーニングの実行を取り消す

1 つのトレーニング実行をキャンセルするには、cancel() 関数を使用して、実行名を渡します。

from databricks.model_training import foundation_model as fm

run_to_cancel = '<name-of-run-to-cancel>'
fm.cancel(run_to_cancel)

複数のトレーニング実行をキャンセルするには、特定の実行名をリストとして渡します。

from databricks.model_training import foundation_model as fm

runs_to_cancel = ['<run_1>, <run_2>, <run_3>']
fm.cancel(runs=runs_to_cancel)

テスト内のすべてのトレーニング実行をキャンセルするには、テスト ID を渡します。

from databricks.model_training import foundation_model as fm

experiment_to_cancel = '<experiment-id-to-cancel>'
fm.cancel(experiment_id=experiment_to_cancel)

トレーニングの実行の状態を確認する

次の表は、トレーニングの実行によって作成されるイベントの一覧です。 実行中にいつでも get_events() 関数を使って、実行の進行状況を確認します。

Note

Mosaic AI モデル トレーニングでは、アクティブな実行数が 10 に制限されます。 これらの実行は、キュー内、実行中、または完了済みのいずれかです。 実行は、COMPLETED、FAILED、または STOPPED 状態になると、アクティブとは見なされなくなります。

イベントの種類 イベント メッセージの例 Definition
CREATED 実行が作成されました。 トレーニングの実行が作成されました。 リソースを使用できる場合は、実行が開始されます。 そうではない場合は、Pending 状態になります。
STARTED 実行が開始されました。 リソースが割り当てられ、実行が開始されました。
DATA_VALIDATED トレーニング データが検証されました。 トレーニング データが正しく書式設定されていることを検証しました。
MODEL_INITIALIZED モデル データがダウンロードされ、基本モデル meta-llama/Llama-2-7b-chat-hf 用に初期化されました。 基本モデルの重みがダウンロードされ、トレーニングを開始する準備が整いました。
TRAIN_UPDATED [epoch=1/1][batch=50/56][ETA=5min] トレーニングの損失: 1.71 現在のトレーニング バッチ、エポック、またはトークン、トレーニングが完了するまでの推定時間 (チェックポイントのアップロード時間は含まれません)、トレーニングの損失を報告します。 このイベントは、各バッチが終了すると更新されます。 実行構成で tok 単位の max_duration が指定されている場合、進行状況はトークンで報告されます。
TRAIN_FINISHED トレーニングが完了しました。 トレーニングが完了しました。 チェックポイントのアップロードが開始されます。
COMPLETED 実行が完了しました。 最終的な重みがアップロードされました。 チェックポイントがアップロードされ、実行が完了しました。
CANCELED 実行が取り消されました。 fm.cancel() が呼び出されると、実行は取り消されます。
FAILED 1 つ以上のトレーニング データセット サンプルに不明なキーがあります。 サポートされているデータ形式については、ドキュメントを参照してください。 実行に失敗しました。 対処可能な詳細について event_message を確認するか、サポートにお問い合わせください。
from databricks.model_training import foundation_model as fm

fm.get_events()

UI を使って実行を表示および管理する

UI で実行を表示するには:

  1. 左側のナビゲーション バーにある [実験] をクリックして、[実験] ページを表示します。

  2. 表内の実験名をクリックして、実験ページを表示します。 実験ページに、実験に関連付けられているすべての実行が一覧表示されます。

    実験ページ

  3. 表にその他の情報またはメトリックを表示するには、プラス記号 をクリックし、メニューから表示する項目を選びます。

    グラフにメトリックを追加する

  4. その他の実行情報は、[グラフ] タブで確認できます。

    グラフ タブ

  5. また、実行名をクリックして実行画面を表示することもできます。 この画面では、実行に関するその他の詳細にアクセスできます。

    実行ページ

チェックポイント

checkpoint フォルダーにアクセスするには、実行画面の [成果物] タブをクリックします。 実験名を開き、checkpoints フォルダーを開きます。 これらのアーティファクト チェックポイントは、トレーニング実行の最後に登録されたモデルと同じではありません。

[成果物] タブの checkpoint フォルダー

このフォルダーには以下に示すいくつかのディレクトリが存在します。

  • (ep<n>-xxx という名前の) エポック フォルダーには、各 Composer チェックポイントでの重みとモデルの状態が含まれています。 Composer チェックポイントはトレーニングを通じて定期的に保存され、微調整トレーニングの実行の再開と、連続的な微調整のために使用されます。 このチェックポイントは、これらの重みから別のトレーニング実行を開始するために custom_weights_path として渡すものです。「カスタム モデルの重みを基にする」を参照してください。
  • huggingface フォルダーでは、Hugging Face チェックポイントもトレーニングを通じて定期的に保存されます。 このフォルダーにコンテンツをダウンロードした後、AutoModelForCausalLM.from_pretrained(<downloaded folder>) を使用して他の Hugging Face チェックポイントと同様に、これらのチェックポイントを読み込むことができます。
  • checkpoints/latest-sharded-rank0.symlink は、トレーニングの再開に使用できる最新のチェックポイントへのパスを保持するファイルです。

get_checkpoints(run) を使用して保存された後の実行に対して、Composer チェックポイントを取得することもできます。 この関数は、実行オブジェクトを入力として受け取ります。 チェックポイントがまだ存在しない場合は、チェックポイントが保存された後に再試行するように求められます。