Compartir a través de


Command Clase

Clase base para el nodo de comandos, que se usa para el consumo de versión del componente de comandos.

No debe crear instancias de esta clase directamente. En su lugar, debe crearlo con la función builder: command().

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

Constructor

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]

Identificador o instancia del componente de comando o trabajo que se va a ejecutar para el paso.

compute
Optional[str]

Destino de proceso en el que se ejecutará el trabajo.

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

Asignación de nombres de entrada a orígenes de datos de entrada usados en el trabajo.

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

Asignación de nombres de salida a orígenes de datos de salida usados en el trabajo.

limits
CommandJobLimits

Límites para el componente de comando o el trabajo.

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

Identidad que usará el trabajo de comando mientras se ejecuta en proceso.

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

Configuración de trabajos distribuidos.

environment
Optional[Union[str, Environment]]

Entorno en el que se ejecutará el trabajo.

environment_variables
Optional[dict[str, str]]

Diccionario de nombres y valores de variables de entorno. Estas variables de entorno se establecen en el proceso donde se ejecuta el script de usuario.

resources
Optional[JobResourceConfiguration]

Configuración del recurso de proceso para el comando .

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

Servicios interactivos para el nodo. Se trata de un parámetro experimental y puede cambiar en cualquier momento. Consulte https://aka.ms/azuremlexperimental para más información.

queue_settings
Optional[QueueSettings]

Configuración de cola para el trabajo.

Métodos

clear
copy
dump

Volca el contenido del trabajo en un archivo en formato YAML.

fromkeys

Cree un nuevo diccionario con claves de valores iterables y establecidos en value.

get

Devuelve el valor de la clave si la clave está en el diccionario; de lo contrario, devuelve el valor predeterminado.

items
keys
pop

Si no se encuentra la clave, devuelva el valor predeterminado si se da; De lo contrario, genere un elemento KeyError.

popitem

Quite y devuelva un par (clave, valor) como una tupla de 2.

Los pares se devuelven en orden LIFO (último en entrar, primero en salir). Genera KeyError si el dict está vacío.

set_limits

Establezca límites para Command.

set_queue_settings

Establezca QueueSettings para el trabajo.

set_resources

Establezca los recursos para Command.

setdefault

Inserte la clave con un valor predeterminado si la clave no está en el diccionario.

Devuelve el valor de la clave si la clave está en el diccionario; de lo contrario, devuelve el valor predeterminado.

sweep

Convierte el comando en un nodo de barrido con una configuración adicional de ejecución de barrido. El componente de comando del nodo de comandos actual se usará como componente de prueba. Un nodo de comandos puede barrir varias veces y el nodo de barrido generado compartirá el mismo componente de prueba.

update

Si E está presente y tiene un método .keys(), entonces hace lo siguiente: para k en E: D[k] = E[k] Si E está presente y carece de un método .keys(), entonces lo hace: para k, v en E: D[k] = v En cualquier caso, esto va seguido de: para k en F: D[k] = F[k]

values

clear

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

copy

copy() -> a shallow copy of D

dump

Volca el contenido del trabajo en un archivo en formato YAML.

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

Parámetros

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

Ruta de acceso local o secuencia de archivos en la que se va a escribir el contenido de YAML. Si dest es una ruta de acceso de archivo, se creará un nuevo archivo. Si dest es un archivo abierto, el archivo se escribirá directamente.

kwargs
dict

Argumentos adicionales para pasar al serializador YAML.

Excepciones

Se genera si dest es una ruta de acceso de archivo y el archivo ya existe.

Se genera si dest es un archivo abierto y el archivo no se puede escribir.

fromkeys

Cree un nuevo diccionario con claves de valores iterables y establecidos en value.

fromkeys(value=None, /)

Parámetros

type
Requerido
iterable
Requerido
value
valor predeterminado: None

get

Devuelve el valor de la clave si la clave está en el diccionario; de lo contrario, devuelve el valor predeterminado.

get(key, default=None, /)

Parámetros

key
Requerido
default
valor predeterminado: 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

Si no se encuentra la clave, devuelva el valor predeterminado si se da; De lo contrario, genere un elemento KeyError.

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

popitem

Quite y devuelva un par (clave, valor) como una tupla de 2.

Los pares se devuelven en orden LIFO (último en entrar, primero en salir). Genera KeyError si el dict está vacío.

popitem()

set_limits

Establezca límites para Command.

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

Parámetros

timeout
int

Tiempo de espera del trabajo en segundos.

Ejemplos

Establecer un límite de tiempo de espera de 10 segundos en un 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

Establezca QueueSettings para el trabajo.

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

Parámetros

job_tier
Optional[str]

Nivel de trabajo. Los valores aceptados son "Spot", "Basic", "Standard" o "Premium".

priority
Optional[str]

Prioridad del trabajo en el proceso. El valor predeterminado es "Medium".

Ejemplos

Configuración de las opciones de cola en un 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

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

Tipo de instancia de proceso en la que se va a ejecutar el trabajo. Si no se especifica, el trabajo se ejecutará en el destino de proceso predeterminado.

instance_count
Optional[int]

Número de instancias en las que se va a ejecutar el trabajo. Si no se especifica, el trabajo se ejecutará en una sola instancia.

locations
Optional[list[str]]

Lista de ubicaciones donde se ejecutará el trabajo. Si no se especifica, el trabajo se ejecutará en el destino de proceso predeterminado.

properties
Optional[dict]

Propiedades del trabajo.

docker_args
Optional[str]

Argumentos de Docker para el trabajo.

shm_size
Optional[str]

El tamaño del bloque de memoria compartida del contenedor docker. Debe estar en el formato de (número)(unidad) donde el número debe ser mayor que 0 y la unidad puede ser uno de b(bytes), k(kilobytes), m(megabytes) o g(gigabytes).

Ejemplos

Establecer recursos en un 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

Inserte la clave con un valor predeterminado si la clave no está en el diccionario.

Devuelve el valor de la clave si la clave está en el diccionario; de lo contrario, devuelve el valor predeterminado.

setdefault(key, default=None, /)

Parámetros

key
Requerido
default
valor predeterminado: None

sweep

Convierte el comando en un nodo de barrido con una configuración adicional de ejecución de barrido. El componente de comando del nodo de comandos actual se usará como componente de prueba. Un nodo de comandos puede barrir varias veces y el nodo de barrido generado compartirá el mismo componente de prueba.

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

La métrica principal del objetivo de barrido, por ejemplo, AUC (área bajo la curva). La métrica se debe registrar mientras se ejecuta el componente de prueba.

goal
str

Objetivo del objetivo De barrido. Los valores aceptados son "minimizar" o "maximizar".

sampling_algorithm
str

Algoritmo de muestreo que se va a usar dentro del espacio de búsqueda. Los valores aceptables son "random", "grid" o "bayesian". El valor predeterminado es "random".

compute
Optional[str]

Proceso de destino en el que se va a ejecutar el nodo. Si no se especifica, se usará el proceso del nodo actual.

max_total_trials
Optional[int]

Número máximo de pruebas totales que se van a ejecutar. Este valor sobrescribirá el valor en CommandJob.limits si se especifica.

max_concurrent_trials
Optional[int]

Número máximo de pruebas simultáneas para el trabajo de barrido.

timeout
Optional[int]

Duración máxima de la ejecución en segundos, después de la cual se cancelará el trabajo.

trial_timeout
Optional[int]

Valor de tiempo de espera de prueba del trabajo de barrido, en segundos.

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

Directiva de terminación anticipada del nodo de barrido. Los valores aceptables son "bandit", "median_stopping" o "truncation_selection". El valor predeterminado es None.

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

La identidad que usará el trabajo mientras se ejecuta en el proceso.

queue_settings
Optional[QueueSettings]

La configuración de cola del trabajo.

job_tier
Optional[str]

Experimental Nivel de trabajo. Los valores aceptados son "Spot", "Basic", "Standard" o "Premium".

priority
Optional[str]

Experimental Prioridad de proceso. Los valores aceptados son "low", "medium" y "high".

Devoluciones

Un nodo De barrido con el componente del nodo Command actual como componente de prueba.

Tipo de valor devuelto

Ejemplos

Crear un nodo De barrido desde un trabajo 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

Si E está presente y tiene un método .keys(), entonces hace lo siguiente: para k en E: D[k] = E[k] Si E está presente y carece de un método .keys(), entonces lo hace: para k, v en E: D[k] = v En cualquier caso, esto va seguido de: para k en 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

Ruta de acceso base del recurso.

Devoluciones

Ruta de acceso base del recurso.

Tipo de valor devuelto

str

code

Código fuente para ejecutar el trabajo.

Tipo de valor devuelto

command

Establece el comando que se va a ejecutar.

Tipo de valor devuelto

component

Identificador o instancia del componente de comando o trabajo que se va a ejecutar para el paso.

Devoluciones

Identificador o instancia del componente de comando o trabajo que se va a ejecutar para el paso.

Tipo de valor devuelto

creation_context

Contexto de creación del recurso.

Devoluciones

Metadatos de creación del recurso.

Tipo de valor devuelto

distribution

Configuración del componente de comando distribuido o del trabajo.

Devoluciones

Configuración de trabajos distribuidos.

Tipo de valor devuelto

id

El identificador del recurso.

Devoluciones

Identificador global del recurso, un identificador de Azure Resource Manager (ARM).

Tipo de valor devuelto

identity

La identidad que usará el trabajo mientras se ejecuta en el proceso.

Devoluciones

La identidad que usará el trabajo mientras se ejecuta en el proceso.

Tipo de valor devuelto

inputs

Obtenga las entradas del objeto .

Devoluciones

Diccionario que contiene las entradas del objeto .

Tipo de valor devuelto

log_files

Archivos de salida del trabajo.

Devoluciones

Diccionario de nombres de registro y direcciones URL.

Tipo de valor devuelto

name

Obtenga el nombre del nodo.

Devoluciones

El nombre del nodo.

Tipo de valor devuelto

str

outputs

Obtiene las salidas del objeto .

Devoluciones

Diccionario que contiene las salidas del objeto .

Tipo de valor devuelto

parameters

Parámetros de MLFlow que se registrarán durante el trabajo.

Devoluciones

Parámetros de MLFlow que se registrarán durante el trabajo.

Tipo de valor devuelto

queue_settings

La configuración de la cola para el componente de comando o el trabajo.

Devoluciones

La configuración de la cola para el componente de comando o el trabajo.

Tipo de valor devuelto

resources

Configuración del recurso de proceso para el componente de comando o el trabajo.

Tipo de valor devuelto

services

Servicios interactivos para el nodo.

Se trata de un parámetro experimental y puede cambiar en cualquier momento. Consulte https://aka.ms/azuremlexperimental para más información.

Tipo de valor devuelto

status

El estado del trabajo.

Los valores comunes devueltos incluyen "Running", "Completed" y "Failed". Todos los valores posibles son:

  • NotStarted: se trata de un estado temporal en el que se encuentran los objetos Run del lado cliente antes del envío en la nube.

  • Starting: la ejecución ha empezado a procesarse en la nube. El autor de la llamada tiene un identificador de ejecución en este momento.

  • Aprovisionamiento: el proceso a petición se está creando para un envío de trabajo determinado.

  • Preparación: el entorno de ejecución se está preparando y se encuentra en una de estas dos fases:

    • Compilación de imágenes de Docker

    • configuración del entorno Conda

  • En cola: el trabajo se pone en cola en el destino de proceso. Por ejemplo, en BatchAI, el trabajo está en estado en cola.

    mientras espera a que todos los nodos solicitados estén listos.

  • En ejecución: el trabajo se ha iniciado para ejecutarse en el destino de proceso.

  • Finalización: la ejecución del código de usuario se ha completado y la ejecución está en fases posteriores al procesamiento.

  • CancelRequested: se ha solicitado la cancelación del trabajo.

  • Completado: la ejecución se ha completado correctamente. Esto incluye tanto la ejecución del código de usuario como la ejecución

    posteriores al procesamiento de la ejecución.

  • Failed: error en la ejecución. Normalmente, la propiedad Error de una ejecución proporcionará detalles sobre por qué se produjo el error.

  • Canceled: sigue a una solicitud de cancelación e indica que la ejecución se ha cancelado correctamente.

  • NotResponding: en el caso de las ejecuciones que tienen los latidos habilitados, no se ha enviado recientemente ningún latido.

Devoluciones

Estado del trabajo.

Tipo de valor devuelto

studio_url

Punto de conexión de Azure ML Studio.

Devoluciones

Dirección URL de la página de detalles del trabajo.

Tipo de valor devuelto

type

Tipo del trabajo.

Devoluciones

Tipo del trabajo.

Tipo de valor devuelto