モデルを比較および選択するための実験を実行する¶
Snowflake ML Experimentsでは、 実験 を設定して、モデルトレーニングの結果の評価を整理できます。これにより、ハイパーパラメーターの調整の結果、異なるターゲットメトリック、異なるモデルタイプの動作を整理された方法ですばやく比較し、ニーズに最適なモデルを選択することができます。各実験は、トレーニングのメタデータとアーティファクトである一連の 実行 で構成されます。Snowflakeは実行アーティファクトについて柔軟であるため、モデルの評価プロセスに役立つものを何でも送信できます。
実験が完了すると、結果は Snowsight によって表示されます。また、Pythonまたは SQL で実行アーティファクトをいつでも取得することができます。
注釈
Snowflake Experiments は snowflake-ml-python バージョン1.19.0以降を必要とします。
アクセス制御の要件¶
実験の作成には、実行アーティファクトが保存されるスキーマで CREATE EXPERIMENT 権限が必要です。実験の作成には、親データベースとスキーマで USAGE 権限が必要です。
実験を作成する¶
まず、実験を作成します。これには、実行情報を保存するために使用する既存のデータベースとスキーマが必要です。
実験サポートは snowflake.ml.experiment.ExperimentTracking クラスで利用できます。set_experiment(name: Optional[str]) メソッドを使用して、指定された名前の実験を開き、ログとアーティファクトのアクティブな実験コンテキストを設定します。まだ存在しない実験が作成されます。
次の例は、アクティブなデータベースとスキーマで My_Experiment という名前の実験を作成または開いて、既存の session を使用してアクティブな実験として設定する方法を示しています。
重要
ExperimentTracking クラスはシングルトンであり、一度にアクティブにできる実行は1つだけです。実験と実行はスレッドセーフではなく、 ExperimentTracking インスタンスが構成されたスレッドからのみ変更する必要があります。
ナビゲーションメニューで AI & ML » Experiments を選択します。
New Experiment を選択します。
実験の Name を入力します。
実験の実行アーティファクトを保存するデータベースとスキーマを選択します。
Create を選択して実験を作成します。または Cancel を選択してキャンセルします。
実験実行を開始する¶
実験の各実行には、メトリック、パラメーター、アーティファクトの独自のセットがあります。この情報は、モデルのトレーニングとその結果に関する可視化とデータを提供するために、 Snowsight で使用されます。
ExperimentTracking インスタンスで start_run(name: Optional[str]) メソッドを使用して実行を開始します。これにより新しい Run が返されます。これは with ステートメントでの使用をサポートしています。Snowflakeは、実行がクリーンに完了し、実行範囲に関する推論が容易になるよう with ステートメントの使用を推奨しています。
トレーニング情報を自動的にログに記録する¶
モデルトレーニング中に XGBoost 、 LightGBM またはKerasモデルのトレーニング情報を自動的にログに記録できます。自動ログは、トレーニングしているモデルに関する実験と情報を参照するコールバックを登録することによって実行されます。パラメーターまたはメトリックを調整する Model インスタンスでメソッドが呼び出されるたびに、アクティブな実行について実験に自動的にログが記録されます。
次の例は、サポートされているモデルのトレーニングごとに実験のコールバックを構成し、基本的なトレーニング実行を開始してアーティファクトをログに記録する方法を示しています。
トレーニング情報とアーティファクトを手動でログに記録する¶
自動ログをサポートしていないモデルや、事前にトレーニング済みのモデルの場合は、Pythonで実験情報とアップロードアーティファクトを手動でログに記録できます。パラメーターはトレーニングモデルへの定数の入力であり、メトリックはモデル ステップ で評価されます。対応するステップとしてトレーニングエポックを表すように選択できます。次の例は、パラメーター、メトリック、アップロードアーティファクトをログに記録する方法を示しています。
注釈
デフォルトのステップ値は 0 です。
stdoutおよびstderr出力をログに記録する¶
Snowflake Notebookまたは MLジョブ のような他の SPCS ワークロードで実行がアクティブな場合、実行の一部としてstdoutとstderrの出力をログに記録できます。ライブログを有効にするには、以下のメソッドを呼び出します。
ライブログが有効な場合、ノートブックからのstdoutとstderr出力はSnowflakeのデフォルト :doc:` イベントテーブル </developer-guide/logging-tracing/event-table-setting-up>` に書き込まれます。キャプチャされた出力を表示するには、実験 UI に移動して実行を選択します。出力は Logs タブに表示されます。
この機能はレガシーノートブックでは機能しないことに注意してください。
実行を完了する¶
実行を完了すると、変更できなくなり、 Snowsight で終了したものとして表示されます。
with ステートメントの一部として実行を開始すると、スコープを終了した時に実行が自動的に完了します。それ以外の場合は、実験の end_run(name: Optional[str]) メソッドと完了する実行の名前を呼び出して、実行を終了できます。
実験内の実行を比較する¶
実験の評価は Snowsight によって行われます。ナビゲーションメニューで、 AI & ML » Experiments を選択し、リストから調べる実験を選択します。
実行リストには、各メトリックの Run name 、 Status 、 Created の日付、および列が表示されます。追加の列としてパラメーターを切り替えることもできます。実行ビューと実行比較ビューから、アーティファクト、メトリックチャート、リンクされたモデルバージョンなどの詳細を表示します。
注釈
リンクされたモデルのバージョンの表示は、 Modeling Lineage機能 の一部であり、Enterprise Edition以上のお客様のみ利用可能です。
実験では最大5回の実行を選択できます。実行を比較するには、:ui:`Compare`ボタンを選択します。比較ビューが表示され、実行メタデータ、パラメーター、メトリック、モデルのバージョン情報が表示されます。
Search and filter runs¶
You can programmatically search and filter runs using the list_metrics and list_params methods. Each method
returns a Snowpark DataFrame with one row per run: list_metrics includes a run_name column and one float column
per logged metric, while list_params includes a run_name column and one string column per logged parameter.
Because the results are Snowpark DataFrames, you can join, filter, and sort them using Snowpark expressions, or convert them to pandas for local analysis.
You can also retrieve metrics or parameters for a single run by passing a run_name argument:
実行からアーティファクトを取得する¶
実行中または実行後はいつでも、アーティファクトを取得できます。次の例は、 logs パスで実行の利用可能なアーティファクトを一覧表示し、実験 my_experiment における実行 my_run の logs/log0.txt アーティファクトをローカルディレクトリ /tmp にダウンロードする方法を示しています。
実行と実験を削除する¶
実験の終了後、実験とそれに関連する実行アーティファクトをすべて削除することができます。次の例では、実験 my_experiment を削除しています。
実験から個々の実行を削除することもできます。次の例では、実験 my_experiment から実行 my_run を削除しています。
制限事項¶
Snowflake Experimentsには以下の制限があります。
各スキーマは500の実験に制限されています。
各実験は500の実行に制限されています。
実行は1000個の一意のパラメーターと200個の一意のメトリクスに制限されています。
コストの考慮事項¶
Snowflake Experimentsを使用するための追加コストはありません。標準的なSnowflake消費ベースのコストが発生します。これらには次が含まれます。
実行アーティファクトを保存するためのコスト。ストレージコストに関する一般情報については、 ストレージコストの調査 をご参照ください。
データ可視化のコスト。UIのチャートは仮想ウェアハウスによって生成されます。詳細については、 クレジット使用状況の表示 をご参照ください。