Compartilhar via


Command Classe

Classe base para nó de comando, usada para consumo de versão do componente de comando.

Você não deve instanciar essa classe diretamente. Em vez disso, você deve criá-lo usando a função de construtor: command().

Herança
azure.ai.ml.entities._builders.base_node.BaseNode
Command
azure.ai.ml.entities._job.pipeline._io.mixin.NodeWithGroupInputMixin
Command

Construtor

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)

Parâmetros

component
Union[str, CommandComponent]

A ID ou instância do componente de comando ou trabalho a ser executado para a etapa.

compute
Optional[str]

O destino de computação em que o trabalho será executado.

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

Um mapeamento de nomes de entrada para fontes de dados de entrada usadas no trabalho.

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

Um mapeamento de nomes de saída para as fontes de dados de saída usadas no trabalho.

limits
CommandJobLimits

Os limites para o componente de comando ou trabalho.

identity
Optional[Union[ dict[str, str], ManagedIdentityConfiguration, AmlTokenConfiguration, UserIdentityConfiguration]]

A identidade que o trabalho de comando usará durante a execução na computação.

distribution
Optional[Union[dict, PyTorchDistribution, MpiDistribution, TensorFlowDistribution, RayDistribution]]

A configuração para trabalhos distribuídos.

environment
Optional[Union[str, Environment]]

O ambiente no qual o trabalho será executado.

environment_variables
Optional[dict[str, str]]

Um dicionário de nomes e valores de variáveis de ambiente. Essas variáveis de ambiente são definidas no processo em que o script do usuário está sendo executado.

resources
Optional[JobResourceConfiguration]

A configuração de recurso de computação para o comando .

services
Optional[dict[str, Union[JobService, JupyterLabJobService, SshJobService, TensorBoardJobService, VsCodeJobService]]]

Os serviços interativos para o nó. Esse é um parâmetro experimental e pode ser alterado a qualquer momento. Consulte https://aka.ms/azuremlexperimental para obter mais informações.

queue_settings
Optional[QueueSettings]

Configurações de fila para o trabalho.

Métodos

clear
copy
dump

Despeja o conteúdo do trabalho em um arquivo no formato YAML.

fromkeys

Crie um novo dicionário com chaves de iteráveis e valores definidos como valor.

get

Retornará o valor da chave se a chave estiver no dicionário, caso contrário, padrão.

items
keys
pop

Se a chave não for encontrada, retorne o padrão, se for dado; caso contrário, gere um KeyError.

popitem

Remova e retorne um par (chave, valor) como uma tupla de 2.

Os pares são retornados na ordem LIFO (última entrada, primeiro a sair). Aciona KeyError se o dict estiver vazio.

set_limits

Defina limites para Command.

set_queue_settings

Defina QueueSettings para o trabalho.

set_resources

Defina recursos para Command.

setdefault

Insira a chave com um valor padrão se a chave não estiver no dicionário.

Retorne o valor da chave se a chave estiver no dicionário, caso contrário, padrão.

sweep

Transforma o comando em um nó de varredura com configuração de execução de varredura extra. O componente de comando no nó de comando atual será usado como componente de avaliação. Um nó de comando pode varrer várias vezes e o nó de varredura gerado compartilhará o mesmo componente de avaliação.

update

Se E estiver presente e tiver um método .keys(), o fará: para k em E: D[k] = E[k] Se E estiver presente e não tiver um método .keys(), o fará: para k, v em E: D[k] = v Em ambos os casos, isso é seguido por: para k em F: D[k] = F[k]

values

clear

clear() -> None.  Remove all items from D.

copy

copy() -> a shallow copy of D

dump

Despeja o conteúdo do trabalho em um arquivo no formato YAML.

dump(dest: str | PathLike | IO, **kwargs) -> None

Parâmetros

dest
Union[<xref:PathLike>, str, IO[AnyStr]]
Obrigatório

O caminho local ou o fluxo de arquivos no qual gravar o conteúdo YAML. Se dest for um caminho de arquivo, um novo arquivo será criado. Se dest for um arquivo aberto, o arquivo será gravado diretamente.

kwargs
dict

Argumentos adicionais a serem passados para o serializador YAML.

Exceções

Gerado se dest for um caminho de arquivo e o arquivo já existir.

Gerado se dest for um arquivo aberto e o arquivo não for gravável.

fromkeys

Crie um novo dicionário com chaves de iteráveis e valores definidos como valor.

fromkeys(value=None, /)

Parâmetros

type
Obrigatório
iterable
Obrigatório
value
valor padrão: None

get

Retornará o valor da chave se a chave estiver no dicionário, caso contrário, padrão.

get(key, default=None, /)

Parâmetros

key
Obrigatório
default
valor padrão: 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

Se a chave não for encontrada, retorne o padrão, se for dado; caso contrário, gere um KeyError.

pop(k, [d]) -> v, remove specified key and return the corresponding value.

popitem

Remova e retorne um par (chave, valor) como uma tupla de 2.

Os pares são retornados na ordem LIFO (última entrada, primeiro a sair). Aciona KeyError se o dict estiver vazio.

popitem()

set_limits

Defina limites para Command.

set_limits(*, timeout: int, **kwargs) -> None

Parâmetros

timeout
int

O tempo limite do trabalho em segundos.

Exemplos

Definir um limite de tempo limite de 10 segundos em um Comando.


   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

Defina QueueSettings para o trabalho.

set_queue_settings(*, job_tier: str | None = None, priority: str | None = None) -> None

Parâmetros

job_tier
Optional[str]

A camada de trabalho. Os valores aceitos são "Spot", "Basic", "Standard" ou "Premium".

priority
Optional[str]

A prioridade do trabalho na computação. O padrão é "Médio".

Exemplos

Definindo configurações de fila em um Comando.


   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

Defina recursos para Command.

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

Parâmetros

instance_type
Optional[Union[str, list[str]]]

O tipo de instância de computação em que executar o trabalho. Se não for especificado, o trabalho será executado no destino de computação padrão.

instance_count
Optional[int]

O número de instâncias em que executar o trabalho. Se não for especificado, o trabalho será executado em uma única instância.

locations
Optional[list[str]]

A lista de locais em que o trabalho será executado. Se não for especificado, o trabalho será executado no destino de computação padrão.

properties
Optional[dict]

As propriedades do trabalho.

docker_args
Optional[str]

Os argumentos do Docker para o trabalho.

shm_size
Optional[str]

O tamanho do bloco de memória compartilhada do contêiner do docker. Isso deve estar no formato de (número)(unidade) em que o número deve ser maior que 0 e a unidade pode ser um dos b(bytes), k(kilobytes), m(megabytes) ou g(gigabytes).

Exemplos

Definindo recursos em um Comando.


   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

Insira a chave com um valor padrão se a chave não estiver no dicionário.

Retorne o valor da chave se a chave estiver no dicionário, caso contrário, padrão.

setdefault(key, default=None, /)

Parâmetros

key
Obrigatório
default
valor padrão: None

sweep

Transforma o comando em um nó de varredura com configuração de execução de varredura extra. O componente de comando no nó de comando atual será usado como componente de avaliação. Um nó de comando pode varrer várias vezes e o nó de varredura gerado compartilhará o mesmo componente de avaliação.

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

Parâmetros

primary_metric
str

A métrica primária do objetivo de varredura – por exemplo, AUC (Área Sob a Curva). A métrica deve ser registrada durante a execução do componente de avaliação.

goal
str

O objetivo do objetivo de Varredura. Os valores aceitos são "minimizar" ou "maximizar".

sampling_algorithm
str

O algoritmo de amostragem a ser usado dentro do espaço de pesquisa. Os valores aceitáveis são "aleatório", "grid" ou "bayesian". O padrão é "aleatório".

compute
Optional[str]

A computação de destino na qual executar o nó. Se não for especificado, a computação do nó atual será usada.

max_total_trials
Optional[int]

O número máximo de avaliações totais a serem executadas. Esse valor substituirá o valor em CommandJob.limits, se especificado.

max_concurrent_trials
Optional[int]

O número máximo de avaliações simultâneas para o trabalho de Varredura.

timeout
Optional[int]

A duração máxima da execução em segundos, após a qual o trabalho será cancelado.

trial_timeout
Optional[int]

O valor do tempo limite da avaliação do Trabalho de Varredura, em segundos.

early_termination_policy
Optional[Union[BanditPolicy, TruncationSelectionPolicy, MedianStoppingPolicy, str]]

A política de término antecipado do nó de varredura. Os valores aceitáveis são "bandido", "median_stopping" ou "truncation_selection". Assume o valor padrão de Nenhum.

identity
Optional[Union[ ManagedIdentityConfiguration, AmlTokenConfiguration, UserIdentityConfiguration]]

A identidade que o trabalho usará durante a execução na computação.

queue_settings
Optional[QueueSettings]

As configurações de fila para o trabalho.

job_tier
Optional[str]

Experimental A camada de trabalho. Os valores aceitos são "Spot", "Basic", "Standard" ou "Premium".

priority
Optional[str]

Experimental A prioridade de computação. Os valores aceitos são "baixo", "médio" e "alto".

Retornos

Um nó De varredura com o componente do nó de Comando atual como seu componente de avaliação.

Tipo de retorno

Exemplos

Criando um nó De varredura de um trabalho de comando.


   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

Se E estiver presente e tiver um método .keys(), o fará: para k em E: D[k] = E[k] Se E estiver presente e não tiver um método .keys(), o fará: para k, v em E: D[k] = v Em ambos os casos, isso é seguido por: para k em 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

Atributos

base_path

O caminho base do recurso.

Retornos

O caminho base do recurso.

Tipo de retorno

str

code

O código-fonte para executar o trabalho.

Tipo de retorno

command

Define o comando a ser executado.

Tipo de retorno

component

A ID ou instância do componente de comando ou trabalho a ser executado para a etapa.

Retornos

A ID ou instância do componente de comando ou trabalho a ser executado para a etapa.

Tipo de retorno

creation_context

O contexto de criação do recurso.

Retornos

Os metadados de criação para o recurso.

Tipo de retorno

distribution

A configuração do trabalho ou componente de comando distribuído.

Retornos

A configuração para trabalhos distribuídos.

Tipo de retorno

id

A ID do recurso.

Retornos

A ID global do recurso, uma ID do ARM (Resource Manager do Azure).

Tipo de retorno

identity

A identidade que o trabalho usará durante a execução na computação.

Retornos

A identidade que o trabalho usará durante a execução na computação.

Tipo de retorno

inputs

Obtenha as entradas para o objeto .

Retornos

Um dicionário que contém as entradas para o objeto .

Tipo de retorno

log_files

Arquivos de saída do trabalho.

Retornos

O dicionário de nomes de log e URLs.

Tipo de retorno

name

Obtenha o nome do nó.

Retornos

O nome do nó.

Tipo de retorno

str

outputs

Obter as saídas do objeto .

Retornos

Um dicionário que contém as saídas para o objeto .

Tipo de retorno

parameters

Parâmetros do MLFlow a serem registrados durante o trabalho.

Retornos

Os parâmetros do MLFlow a serem registrados durante o trabalho.

Tipo de retorno

queue_settings

As configurações de fila para o componente de comando ou trabalho.

Retornos

As configurações de fila para o componente de comando ou trabalho.

Tipo de retorno

resources

A configuração de recurso de computação para o componente de comando ou trabalho.

Tipo de retorno

services

Os serviços interativos para o nó.

Esse é um parâmetro experimental e pode ser alterado a qualquer momento. Consulte https://aka.ms/azuremlexperimental para obter mais informações.

Tipo de retorno

status

O status do trabalho.

Os valores comuns retornados incluem "Running", "Completed" e "Failed". Todos os valores possíveis são:

  • NotStarted - Esse é um estado temporário em que os objetos Run do lado do cliente estão antes do envio à nuvem.

  • Starting – A Execução começou a ser processada na nuvem. O chamador tem uma ID de execução neste ponto.

  • Provisionamento – a computação sob demanda está sendo criada para um determinado envio de trabalho.

  • Preparando – o ambiente de execução está sendo preparado e está em um dos dois estágios:

    • Build de imagem do Docker

    • conda environment setup

  • Enfileirado – o trabalho está na fila no destino de computação. Por exemplo, no BatchAI, o trabalho está em um estado enfileirado

    enquanto aguarda que todos os nós solicitados estejam prontos.

  • Em execução – o trabalho começou a ser executado no destino de computação.

  • Finalização – a execução do código do usuário foi concluída e a execução está em estágios de pós-processamento.

  • CancelRequested – O cancelamento foi solicitado para o trabalho.

  • Concluído – a execução foi concluída com êxito. Isso inclui a execução e a execução do código do usuário

    estágios de pós-processamento.

  • Failed – A execução falhou. Normalmente, a propriedade de Erro em uma execução fornecerá detalhes sobre o motivo.

  • Canceled – Segue uma solicitação de cancelamento e indica que a execução foi cancelada com êxito.

  • NotResponding – Para execuções que têm Pulsações habilitadas, nenhuma pulsação foi enviada recentemente.

Retornos

Status do trabalho.

Tipo de retorno

studio_url

Ponto de extremidade do Estúdio do Azure ML.

Retornos

A URL para a página de detalhes do trabalho.

Tipo de retorno

type

O tipo do trabalho.

Retornos

O tipo do trabalho.

Tipo de retorno