Поделиться через


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]

Идентификатор или экземпляр компонента команды или задания, которые будут выполняться для шага.

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

Удостоверение, которое задание команды будет использовать при выполнении на вычислительных ресурсах.

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

Создайте новый словарь с ключами из итерируемых значений и значениями со значением value.

get

Возвращает значение для ключа, если ключ находится в словаре, в противном случае значение по умолчанию.

items
keys
pop

Если ключ не найден, верните значение по умолчанию, если оно задано. в противном случае создайте keyError.

popitem

Удалите и верните пару (ключ, значение) в виде двух кортежей.

Пары возвращаются в порядке LIFO (последний вход, первый выход). Вызывает ошибку keyError, если дикт пуст.

set_limits

Задайте ограничения для command.

set_queue_settings

Задайте QueueSettings для задания.

set_resources

Задайте ресурсы для параметра Command.

setdefault

Вставьте ключ со значением по умолчанию, если ключ отсутствует в словаре.

Возвращает значение для ключа, если ключ находится в словаре, в противном случае значение по умолчанию.

sweep

Преобразует команду в узел очистки с дополнительным параметром запуска очистки. Компонент команды в текущем командном узле будет использоваться в качестве пробного компонента. Командный узел может выполнять очистку несколько раз, а созданный узел очистки будет использовать один и тот же пробный компонент.

update

Если E присутствует и имеет метод .keys(), то выполняет: для k в E: D[k] = E[k] Если E присутствует и отсутствует метод .keys(), то выполняет: для k, v в E: D[k] = v В любом случае за этим следует: для k в 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.

Исключения

Возникает, если dest — это путь к файлу, а файл уже существует.

Возникает, если dest является открытым файлом и файл не поддерживает запись.

fromkeys

Создайте новый словарь с ключами из итерируемых значений и значениями со значением value.

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

Удалите и верните пару (ключ, значение) в виде двух кортежей.

Пары возвращаются в порядке LIFO (последний вход, первый выход). Вызывает ошибку keyError, если дикт пуст.

popitem()

set_limits

Задайте ограничения для command.

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

Задайте ресурсы для параметра 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

Параметры

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

Тип вычислительного экземпляра, на который выполняется задание. Если этот параметр не указан, задание будет выполняться в целевом объекте вычислений по умолчанию.

instance_count
Optional[int]

Количество экземпляров, на которых выполняется задание. Если этот параметр не указан, задание будет выполняться в одном экземпляре.

locations
Optional[list[str]]

Список расположений, в которых будет выполняться задание. Если этот параметр не указан, задание будет выполняться в целевом объекте вычислений по умолчанию.

properties
Optional[dict]

Свойства задания.

docker_args
Optional[str]

Аргументы Docker для задания.

shm_size
Optional[str]

Размер блока общей памяти контейнера Docker. Оно должно быть в формате (число)(единица), где число должно быть больше 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]]

Удостоверение, которое будет использоваться заданием при выполнении на вычислительных ресурсах.

queue_settings
Optional[QueueSettings]

Параметры очереди для задания.

job_tier
Optional[str]

Экспериментальные Уровень заданий. Допустимые значения: Spot, Basic, Standard или Premium.

priority
Optional[str]

Экспериментальные Приоритет вычислений. Допустимые значения: "низкий", "средний" и "высокий".

Возвращаемое значение

Узел очистки с компонентом из текущего узла Command в качестве пробного компонента.

Возвращаемый тип

Примеры

Создание узла очистки из задания command.


   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(), то выполняет: для k в E: D[k] = E[k] Если E присутствует и отсутствует метод .keys(), то выполняет: для k, v в E: D[k] = v В любом случае за этим следует: для k в 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

Идентификатор или экземпляр компонента команды или задания, которые будут выполняться для шага.

Возвращаемое значение

Идентификатор или экземпляр компонента команды или задания, которые будут выполняться для шага.

Возвращаемый тип

creation_context

Контекст создания ресурса.

Возвращаемое значение

Метаданные создания для ресурса.

Возвращаемый тип

distribution

Конфигурация компонента или задания распределенной команды.

Возвращаемое значение

Конфигурация для распределенных заданий.

Возвращаемый тип

id

Идентификатор ресурса.

Возвращаемое значение

Глобальный идентификатор ресурса, идентификатор Resource Manager Azure (ARM).

Возвращаемый тип

identity

Удостоверение, которое будет использоваться заданием при выполнении на вычислительных ресурсах.

Возвращаемое значение

Удостоверение, которое будет использоваться заданием при выполнении на вычислительных ресурсах.

Возвращаемый тип

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 — началась обработка запуска в облаке. На этом этапе вызывающий объект имеет идентификатор запуска.

  • Подготовка — вычислительные ресурсы по запросу создаются для заданной отправки задания.

  • Подготовка — среда выполнения подготавливается и находится в одном из двух этапов:

    • Сборка образа Docker

    • настройка среды conda.

  • В очереди— задание помещается в очередь в целевом объекте вычислений. Например, в BatchAI задание находится в состоянии очереди.

    ожидая готовности всех запрошенных узлов.

  • Выполнение — задание запущено для целевого объекта вычислений.

  • Завершение — выполнение пользовательского кода завершено, и выполнение выполняется на этапах постобработки.

  • CancelRequested — для задания запрошена отмена.

  • Завершено — выполнение успешно завершено. Сюда входит выполнение пользовательского кода и выполнение.

    пользовательского кода и запуска.

  • Failed — сбой запуска. Подробное описание причины как правило предоставляет свойство Error.

  • Canceled — применяется после запроса отмены и указывает, что выполнение теперь успешно отменено.

  • NotResponding — для запусков с включенными пульсами недавно не отправлялся пульс.

Возвращаемое значение

Состояние задания.

Возвращаемый тип

studio_url

Конечная точка Студии машинного обучения Azure.

Возвращаемое значение

URL-адрес страницы сведений о задании.

Возвращаемый тип

type

Тип задания.

Возвращаемое значение

Тип задания.

Возвращаемый тип