RunConfiguration クラス

Azure Machine Learning の異なるコンピューティング先をターゲットとする実験実行の構成を表します。

RunConfiguration オブジェクトにより、実験でトレーニング実行を送信するために必要な情報がカプセル化されます。 通常、RunConfiguration オブジェクトは、直接作成するのではなく、Experiment クラスの submit メソッドなど、そのオブジェクトを返すメソッドから取得します。

RunConfiguration は、トリガーする実行の種類に応じて、他の種類の構成ステップでも使用される基本環境構成です。 たとえば、PythonScriptStep を設定するときに、ステップの RunConfiguration オブジェクトにアクセスして、Conda 依存関係を構成したり、実行の環境プロパティにアクセスしたりすることができます。

実行構成の例については、モデルをトレーニングするためのコンピューティング先の選択と使用に関する記事をご覧ください。

既定の設定で RunConfiguration を初期化します。

継承
azureml._base_sdk_common.abstract_run_config_element._AbstractRunConfigElement
RunConfiguration

コンストラクター

RunConfiguration(script=None, arguments=None, framework=None, communicator=None, conda_dependencies=None, _history_enabled=None, _path=None, _name=None, command=None)

パラメーター

名前 説明
script
str

Python スクリプト ファイルへの相対パス。 ファイル パスは、submit に渡されるソース ディレクトリに対する相対パスです。

規定値: None
arguments

Python スクリプト ファイルのコマンド ライン引数。

規定値: None
framework
str

実行内で使用されるターゲット フレームワーク。 サポートされているフレームワークは、Python、PySpark、TensorFlow、PyTorch です。

規定値: None
communicator
str

実行内で使用される Communicator。 サポートされている Communicator は、None、ParameterServer、OpenMpi、IntelMpi です。 OpenMpi には OpenMpi がインストールされたカスタム イメージが必要であることに注意してください。 AmlCompute クラスターには ParameterServer または OpenMpi を使用します。 分散トレーニング ジョブには IntelMpi を使用します。

規定値: None
conda_dependencies

既定値の False のままにすると、Python 環境が作成されます。この環境には、conda_dependencies 内で指定されたパッケージが含まれています。 True に設定すると、python_interpreter の設定で、既存の Python 環境を指定できます。

規定値: None
auto_prepare_environment
必須

非推奨。 この設定は使用されなくなりました。

command
list[str] または str

実行のために送信されるコマンド。 コマンド プロパティは、スクリプト/引数の代わりに使用することもできます。 コマンドとスクリプト/引数の両方のプロパティを一緒に使用して実行を送信することはできません。 コマンド プロパティを使用してスクリプト ファイルを送信する場合 - ['python', 'train.py', '–arg1', arg1_val] 実際のコマンドを実行する場合 - ['ls']

規定値: None
_history_enabled
規定値: None
_path
規定値: None
_name
規定値: None

注釈

機械学習システムは、通常、特定の問題を解決するために構築されます。 たとえば、クエリに対する検索結果として提供される可能性のある Web ページをランク付けするモデルとして、最適なものを見つけたいと考えているとします。 最適な機械学習モデルを検索するには、別のアルゴリズムを試したり、さまざまなパラメーター設定を検討したりすることが必要かもしれません。

Azure Machine Learning SDK 内では、さまざまなトレーニングの実行が、解決しようとしている問題に関連しているという考え方を理解するために、実験という概念を使用しています。 その後、Experiment は、これらのトレーニング実行の論理コンテナーとして機能し、2 つのトレーニング実行を直接比較して、トレーニング実行全体の進行状況をさらに容易に追跡できるようにします。

RunConfiguration は、実験内でトレーニングの実行を送信するのに必要な実行環境の設定をカプセル化します。 同じ機械学習の問題を解決するように設計されたトレーニング実行の共有構造と、個別のトレーニング実行を相互に区別する構成パラメーター (学習率、損失関数など) の違いの両方をキャプチャします。

一般的なトレーニング シナリオでは、RunConfiguration オブジェクトとトレーニング用の実行スクリプトをパッケージ化した ScriptRunConfig オブジェクトを作成して、RunConfiguration を使用します。

RunConfiguration の構成は以下のとおりです。

  • 送信されたスクリプトを含む実験ソース ディレクトリのバンドル。

  • 送信されたスクリプトのコマンド ライン引数の設定。

  • Python インタープリターのパスの構成。

  • Conda 構成を取得してアプリケーションの依存関係を管理。 ジョブ送信プロセスでは、構成を使用して、一時 Conda 環境をプロビジョニングし、その中でアプリケーションを起動できます。 一時環境はキャッシュされ、その後の実行で再利用されます。

  • Docker とカスタムの基本イメージの使用 (省略可能)。

  • 複数の種類の Azure compute への実験の送信 (省略可能)。

  • 入力を具体化し出力をアップロードする方法の構成 (省略可能)。

  • Spark や tensorflow など、一般的なランタイム用のランタイム詳細設定。

次の例は、ローカル コンピューターでトレーニング スクリプトを送信する方法を示しています。


   from azureml.core import ScriptRunConfig, RunConfiguration, Experiment

   # create or load an experiment
   experiment = Experiment(workspace, "MyExperiment")
   # run a trial from the train.py code in your current directory
   config = ScriptRunConfig(source_directory='.', script='train.py',
       run_config=RunConfiguration())
   run = experiment.submit(config)

次の例は、スクリプトや引数の代わりにコマンド プロパティを使用して、クラスターでトレーニング スクリプトを送信する方法を示しています。


   from azureml.core import ScriptRunConfig, Experiment
   # create or load an experiment
   experiment = Experiment(workspace, 'MyExperiment')
   # create or retrieve a compute target
   cluster = workspace.compute_targets['MyCluster']
   # create or retrieve an environment
   env = Environment.get(ws, name='MyEnvironment')
   # configure and submit your training run
   config = ScriptRunConfig(source_directory='.',
                            command=['python', 'train.py', '--arg1', arg1_val],
                            compute_target=cluster,
                            environment=env)
   script_run = experiment.submit(config)

次のサンプルは、クラスターでコマンドを実行する方法を示しています。


   from azureml.core import ScriptRunConfig, Experiment
   # create or load an experiment
   experiment = Experiment(workspace, 'MyExperiment')
   # create or retrieve a compute target
   cluster = workspace.compute_targets['MyCluster']
   # create or retrieve an environment
   env = Environment.get(ws, name='MyEnvironment')
   # configure and submit your training run
   config = ScriptRunConfig(source_directory='.',
                            command=['ls', '-l'],
                            compute_target=cluster,
                            environment=env)
   script_run = experiment.submit(config)

変数

名前 説明
environment

環境定義。 このフィールドは、Python 環境を構成します。 既存の Python 環境を使用するように構成することも、実験用に一時環境を設定するように構成することもできます。 この定義で、必要なアプリケーションの依存関係を設定することもできます。

max_run_duration_seconds
int

実行の最大許容時間。 この値よりも時間がかかった場合、システムによって自動的に実行のキャンセルが試みられます。

node_count
int

ジョブに使用するノードの数。

priority
int

スケジューリング ポリシーでのジョブの優先順位。

history

実験履歴のログ機能を無効または有効にするために使用される構成セクション。

spark

プラットフォームが PySpark に設定されている場合、Spark 構成セクションは、送信されたジョブの既定の SparkConf を設定するために使用されます。

hdi

HDI 構成セクションは、ターゲットが Azure HDI コンピューティングに設定されている場合にのみ有効になります。 HDI 構成は、YARN デプロイ モードを設定するために使用されます。 既定のデプロイ モードはクラスターです。

docker

Docker 構成セクションは、Docker 環境の変数を設定するために使用されます。

tensorflow

分散 TensorFlow パラメーターを構成するために使用される構成セクション。 このパラメーターは、framework が TensorFlow に設定されていて、communicator が ParameterServer に設定されている場合にのみ有効になります。 AmlCompute は、この構成でサポートされている唯一のコンピューティングです。

mpi

分散 MPI ジョブのパラメーターを構成するために使用される構成セクション。 このパラメーターは、framework が Python に設定されていて、communicator が OpenMpi または IntelMpi に設定されている場合にのみ有効になります。 AmlCompute は、この構成でサポートされる唯一のコンピューティングの種類です。

pytorch

分散 PyTorch ジョブのパラメーターを構成するために使用される構成セクション。 このパラメーターは、framework が PyTorch に設定され、かつ communicator が Nccl または Gloo に設定されている場合にのみ有効になります。 AmlCompute は、この構成でサポートされる唯一のコンピューティングの種類です。

paralleltask

分散 Paralleltask ジョブのパラメーターを構成するために使用される構成セクション。 このパラメーターは、framework が Python に設定されていて、communicator が ParallelTask に設定されている場合にのみ有効になります。 AmlCompute は、この構成でサポートされている唯一のコンピューティングの種類です。

data_references

各構成に基づいて、実行中、すべてのデータソースを実行で使用できます。 辞書の各項目について、キーはデータ ソースに指定された名前、値は DataReferenceConfiguration です。

data

実施中の実行に提供されるすべてのデータ。

datacaches
<xref:buildin.list>[DatacacheConfiguration]

実施中の実行にデータキャッシュを提供するすべてのデータ。

output_data

この実行でアップロードおよび追跡する必要があるすべての出力。

source_directory_data_store
str

プロジェクト共有のバッキング データストア。

amlcompute

実験中に作成されるコンピューティング先の詳細。 この構成は、コンピューティング先が AmlCompute の場合にのみ有効になります。

kubernetescompute

実験中に使用されるコンピューティング先の詳細。 この構成は、コンピューティング先が KubernetesCompute の場合にのみ有効になります。

services

コンピューティング リソースと連動するエンドポイント。 使用できるエンドポイントは、Jupyter、JupyterLab、VSCode、Tensorboard、SSH の各ポートとカスタム ポートです。

メソッド

delete

実行構成ファイルを削除します。

構成ファイルが見つからない場合、UserErrorException を発生させます。

load

ディスク上のファイルから、以前に保存した実行構成ファイルを読み込みます。

path がファイルを指している場合、RunConfiguration はそのファイルから読み込まれます。

path がディレクトリを指していて、そのディレクトリをプロジェクト ディレクトリにする必要がある場合、RunConfiguration は、<path>/.azureml/<name> または <path>/aml_config/<name> から読み込まれます。

save

RunConfiguration をディスク上のファイルに保存します。

UserErrorException は、次の場合に発生します。

  • RunConfiguration は、名前を指定して保存することはできません。

  • name パラメーターが指定されませんでした。

  • path パラメーターが正しくありません。

path が <dir_path>/<file_name> の形式で、<dir_path> が有効なディレクトリである場合、RunConfiguration は <dir_path>/<file_name> に保存されます。

path がディレクトリを指していて、そのディレクトリをプロジェクト ディレクトリにする必要がある場合、RunConfiguration は、<path>/.azureml/<name> または <path>/aml_config/<name> に保存されます。

この方法は、構成を手動で編集する場合、または構成を CLI と共有する場合に便利です。

delete

実行構成ファイルを削除します。

構成ファイルが見つからない場合、UserErrorException を発生させます。

static delete(path, name)

パラメーター

名前 説明
path
必須
str

実行構成用のユーザー選択ルート ディレクトリ。 通常は、これは Git リポジトリまたは Python プロジェクトのルート ディレクトリです。 構成は、.azureml という名前のサブ ディレクトリから削除されています。

name
必須
str

構成ファイル名。

例外

説明
UserErrorException

load

ディスク上のファイルから、以前に保存した実行構成ファイルを読み込みます。

path がファイルを指している場合、RunConfiguration はそのファイルから読み込まれます。

path がディレクトリを指していて、そのディレクトリをプロジェクト ディレクトリにする必要がある場合、RunConfiguration は、<path>/.azureml/<name> または <path>/aml_config/<name> から読み込まれます。

static load(path, name=None)

パラメーター

名前 説明
path
必須
str

実行構成用のユーザー選択ルート ディレクトリ。 通常は、これは Git リポジトリまたは Python プロジェクトのルート ディレクトリです。 下位互換性を維持するために、構成は、.azureml または aml_config サブ ディレクトリからも読み込まれます。 ファイルがこれらのディレクトリ内に存在しない場合、ファイルは指定されたパスから読み込まれます。

name
str

構成ファイル名。

規定値: None

戻り値

説明

実行構成オブジェクト。

例外

説明
UserErrorException

save

RunConfiguration をディスク上のファイルに保存します。

UserErrorException は、次の場合に発生します。

  • RunConfiguration は、名前を指定して保存することはできません。

  • name パラメーターが指定されませんでした。

  • path パラメーターが正しくありません。

path が <dir_path>/<file_name> の形式で、<dir_path> が有効なディレクトリである場合、RunConfiguration は <dir_path>/<file_name> に保存されます。

path がディレクトリを指していて、そのディレクトリをプロジェクト ディレクトリにする必要がある場合、RunConfiguration は、<path>/.azureml/<name> または <path>/aml_config/<name> に保存されます。

この方法は、構成を手動で編集する場合、または構成を CLI と共有する場合に便利です。

save(path=None, name=None, separate_environment_yaml=False)

パラメーター

名前 説明
separate_environment_yaml

Conda 環境構成を保存するかどうかを示します。 True の場合、Conda 環境構成は、'environment.yml' という名前の YAML ファイルに保存されます。

規定値: False
path
str

実行構成用のユーザー選択ルート ディレクトリ。 通常は、これは Git リポジトリまたは Python プロジェクトのルート ディレクトリです。 構成は、.azureml という名前のサブ ディレクトリに保存されます。

規定値: None
name
str

[必須] 構成ファイル名。

規定値: None

戻り値

説明

例外

説明
UserErrorException

属性

auto_prepare_environment

auto_prepare_environment パラメーターを取得します。 これは、非推奨の使用されていない設定です。

environment_variables

ランタイム環境変数。

戻り値

説明

ランタイム変数。

target

ジョブの実行がスケジュールされているコンピューティング先を取得します。

既定のターゲットは、ローカル コンピューターを参照する "local" です。 使用可能なクラウド コンピューティング先は、compute_targets 関数を使用して見つけることができます。

戻り値

説明
str

ターゲット名