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.BaseNodeCommandazure.ai.ml.entities._job.pipeline._io.mixin.NodeWithGroupInputMixinCommand
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.
Um mapeamento de nomes de entrada para fontes de dados de entrada usadas no trabalho.
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.
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
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
- iterable
- value
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
- 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
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
A camada de trabalho. Os valores aceitos são "Spot", "Basic", "Standard" ou "Premium".
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
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.
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.
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.
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
- default
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".
A computação de destino na qual executar o nó. Se não for especificado, a computação do nó atual será usada.
O número máximo de avaliações totais a serem executadas. Esse valor substituirá o valor em CommandJob.limits, se especificado.
O número máximo de avaliações simultâneas para o trabalho de Varredura.
A duração máxima da execução em segundos, após a qual o trabalho será cancelado.
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.
Experimental A camada de trabalho. Os valores aceitos são "Spot", "Basic", "Standard" ou "Premium".
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
code
command
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
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
Azure SDK for Python