다음을 통해 공유


Command 클래스

명령 구성 요소 버전 사용에 사용되는 명령 노드의 기본 클래스입니다.

이 클래스를 직접 인스턴스화해서는 안 됩니다. 대신 작성기 함수 command()를 사용하여 만들어야 합니다.

상속
azure.ai.ml.entities._builders.base_node.BaseNode
Command
azure.ai.ml.entities._job.pipeline._io.mixin.NodeWithGroupInputMixin
Command

생성자

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.

compute
Optional[str]

작업이 실행될 컴퓨팅 대상입니다.

inputs
Optional[dict[str, Union[ Input, str, bool, int, float, <xref:Enum>]]]

입력 이름을 작업에 사용되는 입력 데이터 원본에 매핑합니다.

outputs
Optional[dict[str, Union[str, Output]]]

작업에 사용되는 출력 데이터 원본에 대한 출력 이름의 매핑입니다.

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]]

작업이 실행될 환경입니다.

environment_variables
Optional[dict[str, str]]

환경 변수 이름 및 값의 사전입니다. 이러한 환경 변수는 사용자 스크립트가 실행되는 프로세스에서 설정됩니다.

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

매개 변수

dest
Union[<xref:PathLike>, str, IO[AnyStr]]
필수

YAML 콘텐츠를 쓸 로컬 경로 또는 파일 스트림입니다. dest가 파일 경로인 경우 새 파일이 만들어집니다. dest가 열려 있는 파일인 경우 파일이 직접 에 기록됩니다.

kwargs
dict

YAML serializer에 전달할 추가 인수입니다.

예외

dest가 파일 경로이고 파일이 이미 있는 경우 발생합니다.

dest가 열려 있는 파일이고 파일을 쓸 수 없는 경우 발생합니다.

fromkeys

반복 가능의 키와 값이 값으로 설정된 새 사전을 만듭니다.

fromkeys(value=None, /)

매개 변수

type
필수
iterable
필수
value
기본값: None

get

키가 사전에 있으면 키 값을 반환하고, 그렇지 않으면 기본값을 반환합니다.

get(key, default=None, /)

매개 변수

key
필수
default
기본값: None

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

매개 변수

job_tier
Optional[str]

작업 계층입니다. 허용되는 값은 "Spot", "Basic", "Standard" 또는 "Premium"입니다.

priority
Optional[str]

컴퓨팅에서 작업의 우선 순위입니다. 기본값은 "보통"입니다.

예제

명령에서 큐 설정을 구성합니다.


   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_type
Optional[Union[str, list[str]]]

작업을 실행할 컴퓨팅 instance 유형입니다. 지정하지 않으면 작업이 기본 컴퓨팅 대상에서 실행됩니다.

instance_count
Optional[int]

작업을 실행할 인스턴스 수입니다. 지정하지 않으면 작업이 단일 instance 실행됩니다.

locations
Optional[list[str]]

작업이 실행될 위치 목록입니다. 지정하지 않으면 작업이 기본 컴퓨팅 대상에서 실행됩니다.

properties
Optional[dict]

작업의 속성입니다.

docker_args
Optional[str]

작업에 대한 Docker 인수입니다.

shm_size
Optional[str]

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
기본값: None

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"입니다.

compute
Optional[str]

노드를 실행할 대상 컴퓨팅입니다. 지정하지 않으면 현재 노드의 컴퓨팅이 사용됩니다.

max_total_trials
Optional[int]

실행할 총 평가판의 최대 수입니다. 이 값은 지정된 경우 CommandJob.limits의 값을 덮어씁니다.

max_concurrent_trials
Optional[int]

스윕 작업에 대한 최대 동시 평가판 수입니다.

timeout
Optional[int]

작업이 취소되는 최대 실행 기간(초)입니다.

trial_timeout
Optional[int]

스윕 작업 평가판 제한 시간 값(초)입니다.

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]

작업에 대한 큐 설정입니다.

job_tier
Optional[str]

실험 작업 계층입니다. 허용되는 값은 "Spot", "Basic", "Standard" 또는 "Premium"입니다.

priority
Optional[str]

실험 컴퓨팅 우선 순위입니다. 허용되는 값은 "low", "medium" 및 "high"입니다.

반환

현재 명령 노드의 구성 요소를 평가판 구성 요소로 사용하는 스윕 노드입니다.

반환 형식

예제

명령 작업에서 스윕 노드 만들기


   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

리소스의 기본 경로입니다.

반환

리소스의 기본 경로입니다.

반환 형식

str

code

작업을 실행할 소스 코드입니다.

반환 형식

command

실행할 명령을 설정합니다.

반환 형식

component

단계에 대해 실행할 명령 구성 요소 또는 작업의 ID 또는 instance.

반환

단계에 대해 실행할 명령 구성 요소 또는 작업의 ID 또는 instance.

반환 형식

creation_context

리소스의 만들기 컨텍스트입니다.

반환

리소스에 대한 만들기 메타데이터입니다.

반환 형식

distribution

분산 명령 구성 요소 또는 작업에 대한 구성입니다.

반환

분산 작업에 대한 구성입니다.

반환 형식

id

리소스 ID입니다.

반환

리소스의 전역 ID인 ARM(Azure Resource Manager) ID입니다.

반환 형식

identity

컴퓨팅에서 실행하는 동안 작업이 사용할 ID입니다.

반환

컴퓨팅에서 실행하는 동안 작업이 사용할 ID입니다.

반환 형식

inputs

개체에 대한 입력을 가져옵니다.

반환

개체에 대한 입력을 포함하는 사전입니다.

반환 형식

log_files

작업 출력 파일.

반환

로그 이름 및 URL의 사전입니다.

반환 형식

name

노드의 이름을 가져옵니다.

반환

노드의 이름입니다.

반환 형식

str

outputs

개체의 출력을 가져옵니다.

반환

개체의 출력을 포함하는 사전입니다.

반환 형식

parameters

작업 중에 기록할 MLFlow 매개 변수입니다.

반환

작업 중에 기록할 MLFlow 매개 변수입니다.

반환 형식

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

Azure ML 스튜디오 엔드포인트.

반환

작업 세부 정보 페이지의 URL입니다.

반환 형식

type

작업의 형식입니다.

반환

작업의 형식입니다.

반환 형식