注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

実験

実験 は、モデルのトレーニングジョブ中に生成されたメトリクスのコレクションを表すアーティファクトです。実験を使用すると、開発者はトレーニングジョブ中にハイパーパラメータとメトリクスを記録し、モデルページで視覚化し、異なるモデルバージョン間で比較することができます。

なぜ実験を使用するのか?

モデル開発プロセスは本質的に反復的であり、モデルを生成するための異なる試みを追跡することは困難です。実験は、異なる試みに関連する詳細を記録するための軽量なPython APIを提供し、メトリクスとハイパーパラメータを含みます。これらのメトリクスとハイパーパラメータは視覚化され、異なるモデルバージョン間で比較され、異なるパラメータがモデルのパフォーマンスにどのように影響するかをより良く理解することができます。以下は、実験を作成し、書き込む方法の概要です。

実験の作成

Jupyter® Code WorkspacesCode Repositoriesからモデルを公開するために使用されるModelOutputクラスは、実験を作成するためのフックを提供します。

Code Workspacesでの実験の作成:

Copied!
1 2 3 4 from palantir_models.code_workspaces import ModelOutput # `my-alias`は現在のワークスペース内のモデルへのエイリアスです model_output = ModelOutput("my-alias") experiment = model_output.create_experiment(name="my-experiment")

Code Repositoriesでの実験の作成:

Copied!
1 2 3 4 5 6 7 8 9 from transforms.api import configure, transform, Input from palantir_models.transforms import ModelOutput @transform( input_data=Input("..."), model_output=ModelOutput("..."), ) def compute(input_data, model_output): experiment = model_output.create_experiment(name="my-experiment")

特定のモデルに対する2つの実験が同じ名前を使用する場合、それらは自動的に重複排除され、同じコードを複数回使用しても実験の名前変更を心配する必要はありません。

時折、モデルトレーニングコードは、実験への書き込み中にネットワークエラーが発生したり、シリーズの最大サイズを超えたりするために失敗することがあります。Pythonクライアントはこれらのエラーをできるだけ優雅に処理することを目指していますが、それができない場合もあります。クライアントはエラーをどのように処理するかを選択でき、3つの異なるエラーハンドリングのバリアントから選べます:

  • FAIL - エラーを即座に再発生させ、コードが失敗します。
  • WARN (デフォルト) - エラーの警告をログに記録し、その後のすべてのエラーを抑制します。
  • SUPPRESS - 何もログに記録しません。

エラーハンドラモードは、以下のように実験作成時に設定できます:

Copied!
1 2 from palantir_models.experiments import ErrorHandlerType experiment = model_output.create_experiment(name="my-experiment", error_handler_type=ErrorHandlerType.FAIL)

実験の公開

実験がモデルページに表示されるためには、モデルバージョンと共に公開される必要があります。一度公開されると、実験はモデルページで表示できます。

Copied!
1 model_output.publish(model_adapter, experiment=experiment)

公開後の実験の視覚化について詳しく学ぶ。

ハイパーパラメータの記録

ハイパーパラメータは、Experiment.log_paramExperiment.log_params関数を使用して記録できます。ハイパーパラメータは、モデルトレーニングジョブに関連付けられた静的データを保存するための単一のキーと値のペアです。

Copied!
1 2 3 4 5 6 experiment.log_param("learning_rate", 1e-3) experiment.log_param("model_type", "CNN") experiment.log_params({ "batch_size": 12, "parallel": True })

実験は現在、以下のタイプのハイパーパラメータの記録をサポートしています:

  • ブール値
  • 日付/日時
  • 浮動小数点数
  • 整数
  • 文字列

メトリクスの記録

メトリクスは、Experiment.log_metricExperiment.log_metrics関数を使用して記録できます。メトリクスはシリーズに記録され、シリーズは記録された各値を時系列で追跡します。

メトリクスを記録する際、メトリックシリーズが作成されていない場合、新しいシリーズが作成されます。さらに、呼び出し者はstepパラメータを渡して、記録するステップを設定することができます。

Copied!
1 2 3 4 5 6 experiment.log_metric("train/acc", 1.5) experiment.log_metric("test/acc", 15, step=1) experiment.log_metrics({ "train/acc": 5, "train/loss": 0.9 })

制限

以下の表は、Foundryにおける実験に関連する制限を示しています。

説明制限
実験/メトリクス/ハイパーパラメータ名の最大長100文字
実験内のすべてのメトリックシリーズの最大値100,000
実験ごとのハイパーパラメータの最大数100

これらの制限を増やすには、Palantirサポートに連絡してください。

詳細については、モデル実験のPython APIリファレンスを確認してください。