RunConfiguration クラス
Azure Machine Learning の異なるコンピューティング先をターゲットとする実験実行の構成を表します。
RunConfiguration オブジェクトにより、実験でトレーニング実行を送信するために必要な情報がカプセル化されます。 通常、RunConfiguration オブジェクトは、直接作成するのではなく、Experiment クラスの submit メソッドなど、そのオブジェクトを返すメソッドから取得します。
RunConfiguration は、トリガーする実行の種類に応じて、他の種類の構成ステップでも使用される基本環境構成です。 たとえば、PythonScriptStep を設定するときに、ステップの RunConfiguration オブジェクトにアクセスして、Conda 依存関係を構成したり、実行の環境プロパティにアクセスしたりすることができます。
実行構成の例については、モデルをトレーニングするためのコンピューティング先の選択と使用に関する記事をご覧ください。
既定の設定を使用して RunConfiguration を初期化します。
- 継承
-
azureml._base_sdk_common.abstract_run_config_element._AbstractRunConfigElementRunConfiguration
コンストラクター
RunConfiguration(script=None, arguments=None, framework=None, communicator=None, conda_dependencies=None, _history_enabled=None, _path=None, _name=None, command=None)
パラメーター
名前 | 説明 |
---|---|
script
|
Python スクリプト ファイルへの相対パス。 ファイル パスは、submit に渡されるソース ディレクトリに対する相対パスです。 規定値: None
|
arguments
|
Python スクリプト ファイルのコマンド ライン引数。 規定値: None
|
framework
|
実行内で使用されるターゲット フレームワーク。 サポートされているフレームワークは、Python、PySpark、TensorFlow、PyTorch です。 規定値: None
|
communicator
|
実行内で使用される Communicator。 サポートされている Communicator は、None、ParameterServer、OpenMpi、IntelMpi です。 OpenMpi には OpenMpi がインストールされたカスタム イメージが必要であることに注意してください。 AmlCompute クラスターには ParameterServer または OpenMpi を使用します。 分散トレーニング ジョブには IntelMpi を使用します。 規定値: None
|
conda_dependencies
|
既定値の False のままにすると、Python 環境が作成されます。この環境には、 規定値: None
|
auto_prepare_environment
必須
|
非推奨。 この設定は使用されなくなりました。 |
command
|
実行のために送信されるコマンド。 コマンド プロパティは、スクリプト/引数の代わりに使用することもできます。 コマンドとスクリプト/引数の両方のプロパティを一緒に使用して実行を送信することはできません。 コマンド プロパティを使用してスクリプト ファイルを送信する場合 - ['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
|
実行の最大許容時間。 この値よりも時間がかかった場合、システムによって自動的に実行のキャンセルが試みられます。 |
node_count
|
ジョブに使用するノードの数。 |
priority
|
スケジューリング ポリシーでのジョブの優先順位。 |
history
|
実験履歴のログ機能を無効または有効にするために使用される構成セクション。 |
spark
|
プラットフォームが PySpark に設定されている場合、Spark 構成セクションは、送信されたジョブの既定の SparkConf を設定するために使用されます。 |
hdi
|
HDI 構成セクションは、ターゲットが Azure HDI コンピューティングに設定されている場合にのみ有効になります。 HDI 構成は、YARN デプロイ モードを設定するために使用されます。 既定のデプロイ モードはクラスターです。 |
docker
|
Docker 構成セクションは、Docker 環境の変数を設定するために使用されます。 |
tensorflow
|
分散 TensorFlow パラメーターを構成するために使用される構成セクション。
このパラメーターは、 |
mpi
|
分散 MPI ジョブのパラメーターを構成するために使用される構成セクション。
このパラメーターは、 |
pytorch
|
分散 PyTorch ジョブのパラメーターを構成するために使用される構成セクション。
このパラメーターは、 |
paralleltask
|
分散 Paralleltask ジョブのパラメーターを構成するために使用される構成セクション。
このパラメーターは、 |
data_references
|
各構成に基づいて、実行中、すべてのデータソースを実行で使用できます。 辞書の各項目について、キーはデータ ソースに指定された名前、値は DataReferenceConfiguration です。 |
data
|
実施中の実行に提供されるすべてのデータ。 |
datacaches
|
<xref:buildin.list>[DatacacheConfiguration]
実施中の実行にデータキャッシュを提供するすべてのデータ。 |
output_data
|
この実行でアップロードおよび追跡する必要があるすべての出力。 |
source_directory_data_store
|
プロジェクト共有のバッキング データストア。 |
amlcompute
|
実験中に作成されるコンピューティング先の詳細。 この構成は、コンピューティング先が AmlCompute の場合にのみ有効になります。 |
kubernetescompute
|
実験中に使用されるコンピューティング先の詳細。 この構成は、コンピューティング先が KubernetesCompute の場合にのみ有効になります。 |
services
|
コンピューティング リソースと連動するエンドポイント。 使用できるエンドポイントは、Jupyter、JupyterLab、VSCode、Tensorboard、SSH の各ポートとカスタム ポートです。 |
メソッド
delete |
実行構成ファイルを削除します。 構成ファイルが見つからない場合、UserErrorException を発生させます。 |
load |
ディスク上のファイルから、以前に保存した実行構成ファイルを読み込みます。
|
save |
RunConfiguration をディスク上のファイルに保存します。 UserErrorException は、次の場合に発生します。
この方法は、構成を手動で編集する場合、または構成を CLI と共有する場合に便利です。 |
delete
実行構成ファイルを削除します。
構成ファイルが見つからない場合、UserErrorException を発生させます。
static delete(path, name)
パラメーター
名前 | 説明 |
---|---|
path
必須
|
実行構成用のユーザー選択ルート ディレクトリ。 通常は、これは Git リポジトリまたは Python プロジェクトのルート ディレクトリです。 構成は、.azureml という名前のサブ ディレクトリから削除されています。 |
name
必須
|
構成ファイル名。 |
例外
型 | 説明 |
---|---|
UserErrorException
|
load
ディスク上のファイルから、以前に保存した実行構成ファイルを読み込みます。
path
がファイルを指している場合、RunConfiguration はそのファイルから読み込まれます。
path
がディレクトリを指していて、そのディレクトリをプロジェクト ディレクトリにする必要がある場合、RunConfiguration は、<path>/.azureml/<name> または <path>/aml_config/<name> から読み込まれます。
static load(path, name=None)
パラメーター
名前 | 説明 |
---|---|
path
必須
|
実行構成用のユーザー選択ルート ディレクトリ。 通常は、これは Git リポジトリまたは Python プロジェクトのルート ディレクトリです。 下位互換性を維持するために、構成は、.azureml または aml_config サブ ディレクトリからも読み込まれます。 ファイルがこれらのディレクトリ内に存在しない場合、ファイルは指定されたパスから読み込まれます。 |
name
|
構成ファイル名。 規定値: 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
|
実行構成用のユーザー選択ルート ディレクトリ。 通常は、これは Git リポジトリまたは Python プロジェクトのルート ディレクトリです。 構成は、.azureml という名前のサブ ディレクトリに保存されます。 規定値: None
|
name
|
[必須] 構成ファイル名。 規定値: None
|
戻り値
型 | 説明 |
---|---|
例外
型 | 説明 |
---|---|
UserErrorException
|
属性
auto_prepare_environment
auto_prepare_environment
パラメーターを取得します。 これは、非推奨の使用されていない設定です。
environment_variables
target
ジョブの実行がスケジュールされているコンピューティング先を取得します。
既定のターゲットは、ローカル コンピューターを参照する "local" です。 使用可能なクラウド コンピューティング先は、compute_targets 関数を使用して見つけることができます。
戻り値
型 | 説明 |
---|---|
ターゲット名 |