Command 클래스
명령 구성 요소 버전 사용에 사용되는 명령 노드의 기본 클래스입니다.
이 클래스를 직접 인스턴스화해서는 안 됩니다. 대신 작성기 함수 command()를 사용하여 만들어야 합니다.
- 상속
-
azure.ai.ml.entities._builders.base_node.BaseNodeCommandazure.ai.ml.entities._job.pipeline._io.mixin.NodeWithGroupInputMixinCommand
생성자
Command(*, component: str | CommandComponent, compute: str | None = None, inputs: Dict[str, Input | str | bool | int | float | Enum] | None = None, outputs: Dict[str, str | Output] | None = None, limits: CommandJobLimits | None = None, identity: ManagedIdentityConfiguration | AmlTokenConfiguration | UserIdentityConfiguration | None = None, distribution: Dict | MpiDistribution | TensorFlowDistribution | PyTorchDistribution | RayDistribution | None = None, environment: Environment | str | None = None, environment_variables: Dict | None = None, resources: JobResourceConfiguration | None = None, services: Dict[str, JobService | JupyterLabJobService | SshJobService | TensorBoardJobService | VsCodeJobService] | None = None, queue_settings: QueueSettings | None = None, **kwargs)
매개 변수
- component
- Union[str, CommandComponent]
단계에 대해 실행할 명령 구성 요소 또는 작업의 ID 또는 instance.
입력 이름을 작업에 사용되는 입력 데이터 원본에 매핑합니다.
- limits
- CommandJobLimits
명령 구성 요소 또는 작업에 대한 제한입니다.
- identity
- Optional[Union[ dict[str, str], ManagedIdentityConfiguration, AmlTokenConfiguration, UserIdentityConfiguration]]
컴퓨팅에서 실행하는 동안 명령 작업이 사용할 ID입니다.
- distribution
- Optional[Union[dict, PyTorchDistribution, MpiDistribution, TensorFlowDistribution, RayDistribution]]
분산 작업에 대한 구성입니다.
- environment
- Optional[Union[str, Environment]]
작업이 실행될 환경입니다.
환경 변수 이름 및 값의 사전입니다. 이러한 환경 변수는 사용자 스크립트가 실행되는 프로세스에서 설정됩니다.
- resources
- Optional[JobResourceConfiguration]
명령에 대한 컴퓨팅 리소스 구성입니다.
- services
- Optional[dict[str, Union[JobService, JupyterLabJobService, SshJobService, TensorBoardJobService, VsCodeJobService]]]
노드에 대한 대화형 서비스입니다. 실험적 매개 변수이며 언제든지 변경 될 수 있습니다. 자세한 내용은 https://aka.ms/azuremlexperimental을 참조하세요.
- queue_settings
- Optional[QueueSettings]
작업에 대한 큐 설정입니다.
메서드
clear | |
copy | |
dump |
YAML 형식의 파일로 작업 콘텐츠를 덤프합니다. |
fromkeys |
반복 가능의 키와 값이 값으로 설정된 새 사전을 만듭니다. |
get |
키가 사전에 있으면 키 값을 반환하고, 그렇지 않으면 기본값을 반환합니다. |
items | |
keys | |
pop |
키를 찾을 수 없으면 기본값을 반환합니다. 그렇지 않으면 KeyError를 발생합니다. |
popitem |
(키, 값) 쌍을 제거하고 2 튜플로 반환합니다. 쌍은 LIFO(마지막, 선적) 순서로 반환됩니다. 받아쓰기가 비어 있으면 KeyError를 발생합니다. |
set_limits |
명령에 대한 제한을 설정합니다. |
set_queue_settings |
작업에 대한 QueueSettings를 설정합니다. |
set_resources |
명령에 대한 리소스를 설정합니다. |
setdefault |
키가 사전에 없는 경우 기본값으로 키를 삽입합니다. 키가 사전에 있으면 키 값을 반환하고, 그렇지 않으면 기본값을 반환합니다. |
sweep |
명령을 추가 스윕 실행 설정이 있는 스윕 노드로 바꿉니다. 현재 명령 노드의 명령 구성 요소가 평가판 구성 요소로 사용됩니다. 명령 노드는 여러 번 스윕할 수 있으며 생성된 스윕 노드는 동일한 평가판 구성 요소를 공유합니다. |
update |
E가 있고 .keys() 메서드가 있는 경우 다음을 수행합니다. E의 k: D[k] = E[k] E가 있고 .keys() 메서드가 없는 경우 다음을 수행합니다. k의 경우 E: D[k] = v 두 경우 모두 다음을 수행합니다. F: D[k] = F[k] |
values |
clear
clear() -> None. Remove all items from D.
copy
copy() -> a shallow copy of D
dump
YAML 형식의 파일로 작업 콘텐츠를 덤프합니다.
dump(dest: str | PathLike | IO, **kwargs) -> None
매개 변수
YAML 콘텐츠를 쓸 로컬 경로 또는 파일 스트림입니다. dest가 파일 경로인 경우 새 파일이 만들어집니다. dest가 열려 있는 파일인 경우 파일이 직접 에 기록됩니다.
- kwargs
- dict
YAML serializer에 전달할 추가 인수입니다.
예외
dest가 파일 경로이고 파일이 이미 있는 경우 발생합니다.
dest가 열려 있는 파일이고 파일을 쓸 수 없는 경우 발생합니다.
fromkeys
반복 가능의 키와 값이 값으로 설정된 새 사전을 만듭니다.
fromkeys(value=None, /)
매개 변수
- type
- iterable
- value
get
키가 사전에 있으면 키 값을 반환하고, 그렇지 않으면 기본값을 반환합니다.
get(key, default=None, /)
매개 변수
- key
- default
items
items() -> a set-like object providing a view on D's items
keys
keys() -> a set-like object providing a view on D's keys
pop
키를 찾을 수 없으면 기본값을 반환합니다. 그렇지 않으면 KeyError를 발생합니다.
pop(k, [d]) -> v, remove specified key and return the corresponding value.
popitem
(키, 값) 쌍을 제거하고 2 튜플로 반환합니다.
쌍은 LIFO(마지막, 선적) 순서로 반환됩니다. 받아쓰기가 비어 있으면 KeyError를 발생합니다.
popitem()
set_limits
명령에 대한 제한을 설정합니다.
set_limits(*, timeout: int, **kwargs) -> None
매개 변수
- timeout
- int
작업의 시간 제한(초)입니다.
예제
명령에서 제한 시간 제한을 10초로 설정합니다.
from azure.ai.ml import Input, Output, command
command_node = command(
environment="AzureML-sklearn-1.0-ubuntu20.04-py38-cpu:33",
command='echo "hello world"',
distribution={"type": "Pytorch", "process_count_per_instance": 2},
inputs={
"training_data": Input(type="uri_folder"),
"max_epochs": 20,
"learning_rate": 1.8,
"learning_rate_schedule": "time-based",
},
outputs={"model_output": Output(type="uri_folder")},
)
command_node.set_limits(timeout=10)
set_queue_settings
작업에 대한 QueueSettings를 설정합니다.
set_queue_settings(*, job_tier: str | None = None, priority: str | None = None) -> None
매개 변수
예제
명령에서 큐 설정을 구성합니다.
from azure.ai.ml import Input, Output, command
command_node = command(
environment="AzureML-sklearn-1.0-ubuntu20.04-py38-cpu:33",
command='echo "hello world"',
distribution={"type": "Pytorch", "process_count_per_instance": 2},
inputs={
"training_data": Input(type="uri_folder"),
"max_epochs": 20,
"learning_rate": 1.8,
"learning_rate_schedule": "time-based",
},
outputs={"model_output": Output(type="uri_folder")},
)
command_node.set_queue_settings(job_tier="standard", priority="medium")
set_resources
명령에 대한 리소스를 설정합니다.
set_resources(*, instance_type: str | List[str] | None = None, instance_count: int | None = None, locations: List[str] | None = None, properties: Dict | None = None, docker_args: str | None = None, shm_size: str | None = None, **kwargs) -> None
매개 변수
작업을 실행할 컴퓨팅 instance 유형입니다. 지정하지 않으면 작업이 기본 컴퓨팅 대상에서 실행됩니다.
Docker 컨테이너의 공유 메모리 블록 크기입니다. 이 형식은 (number)(unit) 형식이어야 합니다. 여기서 숫자는 0보다 커야 하며 단위는 b(바이트), k(킬로바이트), m(메가바이트) 또는 g(기가바이트) 중 하나일 수 있습니다.
예제
명령에서 리소스를 설정합니다.
from azure.ai.ml import Input, Output, command
command_node = command(
environment="AzureML-sklearn-1.0-ubuntu20.04-py38-cpu:33",
command='echo "hello world"',
distribution={"type": "Pytorch", "process_count_per_instance": 2},
inputs={
"training_data": Input(type="uri_folder"),
"max_epochs": 20,
"learning_rate": 1.8,
"learning_rate_schedule": "time-based",
},
outputs={"model_output": Output(type="uri_folder")},
)
command_node.set_resources(
instance_count=1,
instance_type="STANDARD_D2_v2",
properties={"key": "new_val"},
shm_size="3g",
)
setdefault
키가 사전에 없는 경우 기본값으로 키를 삽입합니다.
키가 사전에 있으면 키 값을 반환하고, 그렇지 않으면 기본값을 반환합니다.
setdefault(key, default=None, /)
매개 변수
- key
- default
sweep
명령을 추가 스윕 실행 설정이 있는 스윕 노드로 바꿉니다. 현재 명령 노드의 명령 구성 요소가 평가판 구성 요소로 사용됩니다. 명령 노드는 여러 번 스윕할 수 있으며 생성된 스윕 노드는 동일한 평가판 구성 요소를 공유합니다.
sweep(*, primary_metric: str, goal: str, sampling_algorithm: str = 'random', compute: str | None = None, max_concurrent_trials: int | None = None, max_total_trials: int | None = None, timeout: int | None = None, trial_timeout: int | None = None, early_termination_policy: EarlyTerminationPolicy | str | None = None, search_space: Dict[str, Choice | LogNormal | LogUniform | Normal | QLogNormal | QLogUniform | QNormal | QUniform | Randint | Uniform] | None = None, identity: ManagedIdentityConfiguration | AmlTokenConfiguration | UserIdentityConfiguration | None = None, queue_settings: QueueSettings | None = None, job_tier: str | None = None, priority: str | None = None) -> Sweep
매개 변수
- primary_metric
- str
스윕 목표의 기본 메트릭(예: AUC(곡선 아래 영역)) 평가판 구성 요소를 실행하는 동안 메트릭을 기록해야 합니다.
- goal
- str
스윕 목표의 목표입니다. 허용되는 값은 "최소화" 또는 "최대화"입니다.
- sampling_algorithm
- str
검색 공간 내에서 사용할 샘플링 알고리즘입니다. 허용되는 값은 "random", "grid" 또는 "bayesian"입니다. 기본값은 "random"입니다.
- early_termination_policy
- Optional[Union[BanditPolicy, TruncationSelectionPolicy, MedianStoppingPolicy, str]]
스윕 노드의 초기 종료 정책입니다. 허용되는 값은 "산적", "median_stopping" 또는 "truncation_selection"입니다. 기본값은 None입니다.
- identity
- Optional[Union[ ManagedIdentityConfiguration, AmlTokenConfiguration, UserIdentityConfiguration]]
컴퓨팅에서 실행하는 동안 작업이 사용할 ID입니다.
- queue_settings
- Optional[QueueSettings]
작업에 대한 큐 설정입니다.
반환
현재 명령 노드의 구성 요소를 평가판 구성 요소로 사용하는 스윕 노드입니다.
반환 형식
예제
명령 작업에서 스윕 노드 만들기
from azure.ai.ml import command
job = command(
inputs=dict(kernel="linear", penalty=1.0),
compute=cpu_cluster,
environment=f"{job_env.name}:{job_env.version}",
code="./scripts",
command="python scripts/train.py --kernel $kernel --penalty $penalty",
experiment_name="sklearn-iris-flowers",
)
# we can reuse an existing Command Job as a function that we can apply inputs to for the sweep configurations
from azure.ai.ml.sweep import Uniform
job_for_sweep = job(
kernel=Uniform(min_value=0.0005, max_value=0.005),
penalty=Uniform(min_value=0.9, max_value=0.99),
)
from azure.ai.ml.sweep import BanditPolicy
sweep_job = job_for_sweep.sweep(
sampling_algorithm="random",
primary_metric="best_val_acc",
goal="Maximize",
max_total_trials=8,
max_concurrent_trials=4,
early_termination_policy=BanditPolicy(slack_factor=0.15, evaluation_interval=1, delay_evaluation=10),
)
update
E가 있고 .keys() 메서드가 있는 경우 다음을 수행합니다. E의 k: D[k] = E[k] E가 있고 .keys() 메서드가 없는 경우 다음을 수행합니다. k의 경우 E: D[k] = v 두 경우 모두 다음을 수행합니다. F: D[k] = F[k]
update([E], **F) -> None. Update D from dict/iterable E and F.
values
values() -> an object providing a view on D's values
특성
base_path
code
command
component
단계에 대해 실행할 명령 구성 요소 또는 작업의 ID 또는 instance.
반환
단계에 대해 실행할 명령 구성 요소 또는 작업의 ID 또는 instance.
반환 형식
creation_context
distribution
분산 명령 구성 요소 또는 작업에 대한 구성입니다.
반환
분산 작업에 대한 구성입니다.
반환 형식
id
identity
컴퓨팅에서 실행하는 동안 작업이 사용할 ID입니다.
반환
컴퓨팅에서 실행하는 동안 작업이 사용할 ID입니다.
반환 형식
inputs
log_files
name
outputs
parameters
queue_settings
resources
services
노드에 대한 대화형 서비스입니다.
실험적 매개 변수이며 언제든지 변경 될 수 있습니다. 자세한 내용은 https://aka.ms/azuremlexperimental을 참조하세요.
반환 형식
status
작업의 상태.
반환되는 일반적인 값에는 “Running”, “Completed”, “Failed”가 포함됩니다. 가능한 모든 값은 다음과 같습니다.
NotStarted - 클라우드 제출 전에 클라이언트 쪽 Run 개체가 있는 임시 상태입니다.
Starting - 실행이 클라우드에서 처리되기 시작했습니다. 호출자에게는 이 시점에서 실행 ID가 있습니다.
프로비저닝 - 지정된 작업 제출을 위해 주문형 컴퓨팅을 만들고 있습니다.
준비 중 - 실행 환경이 준비 중이며 다음 두 단계 중 하나입니다.
Docker 이미지 빌드
conda 환경 설정
대기 중 - 작업이 컴퓨팅 대상에서 큐에 대기됩니다. 예를 들어 BatchAI에서 작업은 큐에 대기 상태입니다.
요청된 모든 노드가 준비될 때까지 기다리는 동안 대기 상태입니다.
실행 중 - 컴퓨팅 대상에서 작업이 실행되기 시작했습니다.
Finalizing - 사용자 코드 실행이 완료되었으며 실행이 사후 처리 단계에 있습니다.
CancelRequested - 작업에 대한 취소가 요청되었습니다.
완료됨 - 실행이 성공적으로 완료되었습니다. 여기에는 사용자 코드 실행 및 실행이 모두 포함됩니다.
사후 처리 단계입니다.
Failed - 실행이 실패했습니다. 일반적으로 실행의 오류 속성은 이유에 대한 세부 정보를 제공합니다.
Canceled - 취소 요청을 따르고 실행이 성공적으로 취소되었음을 나타냅니다.
NotResponding - 하트비트를 사용하도록 설정한 실행의 경우 최근에 하트비트를 보내지 않았습니다.
반환
작업의 상태.
반환 형식
studio_url
type
Azure SDK for Python