RunConfiguration クラス
Azure Machine Learning のさまざまなコンピューティング ターゲットを対象とする実験実行の構成を表します。
RunConfiguration オブジェクトは、実験でトレーニングの実行を送信するために必要な情報をカプセル化します。 通常、RunConfiguration オブジェクトは直接作成せず、submit クラスのExperiment メソッドなど、それを返すメソッドから取得します。
RunConfiguration は、トリガーする実行の種類に依存する他の種類の構成手順でも使用される基本環境構成です。 たとえば、 PythonScriptStepを設定するときに、ステップの RunConfiguration オブジェクトにアクセスし、Conda の依存関係を構成したり、実行の環境プロパティにアクセスしたりできます。
実行構成の例については、「 コンピューティング ターゲットを選択して使用してモデルをトレーニングする」を参照してください。
既定の設定で RunConfiguration を初期化します。
コンストラクター
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
|
実行中に使用されるコミュニケーター。 サポートされているコミュニケーターは None、ParameterServer、OpenMpi、IntelMpi です。 OpenMpi には、OpenMpi がインストールされたカスタム イメージが必要であることに注意してください。 AmlCompute クラスターには ParameterServer または OpenMpi を使用します。 分散トレーニング ジョブには IntelMpi を使用します。 規定値: None
|
conda_dependencies
|
既定値の False のままにすると、 規定値: 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 コンピューティングに実験を送信するオプションの選択肢。
入力を具体化し、出力をアップロードする方法を構成するオプションの選択肢。
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
|
分散並列タスク ジョブ パラメーターの構成に使用する構成セクション。
このパラメーターは、 |
data_references
|
すべてのデータ ソースは、各構成に基づいて実行中に実行できます。 ディクショナリの各項目について、キーはデータ ソースに指定された名前であり、値は DataReferenceConfiguration です。 |
data
|
実行中に実行に使用できるすべてのデータ。 |
datacaches
|
<xref:buildin.list>[DatacacheConfiguration]
実行中にデータ キャッシュを実行できるようにするためのすべてのデータ。 |
output_data
|
この実行に対してアップロードおよび追跡する必要があるすべての出力。 |
source_directory_data_store
|
プロジェクト共有のバッキング データストア。 |
amlcompute
|
実験中に作成されるコンピューティング 先の詳細。 構成は、コンピューティング 先が AmlCompute の場合にのみ有効になります。 |
kubernetescompute
|
実験中に使用するコンピューティング先の詳細。 構成は、コンピューティング 先が KubernetesCompute の場合にのみ有効になります。 |
services
|
コンピューティング リソースと対話するエンドポイント。 許可されるエンドポイントは、Jupyter、JupyterLab、VS Code、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
|
戻り値
型 | 説明 |
---|---|
実行構成オブジェクト。 |
save
RunConfiguration をディスク上のファイルに保存します。
UserErrorExceptionは、次の場合に発生します。
RunConfiguration は、指定された名前で保存できません。
パラメーター
name
指定されませんでした。path
パラメーターが無効です。
path
が有効なディレクトリである<dir_path>/<file_name>形式の場合、<dir_path>は <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
|
戻り値
型 | 説明 |
---|---|
属性
auto_prepare_environment
auto_prepare_environment
パラメーターを取得します。 これは非推奨の未使用の設定です。
target
ジョブの実行がスケジュールされているコンピューティング 先を取得します。
既定のターゲットは、ローカル コンピューターを参照する "ローカル" です。 使用可能なクラウド コンピューティング ターゲットは、関数 compute_targetsを使用して見つけることができます。
戻り値
型 | 説明 |
---|---|
ターゲット名 |