Command Класс
Базовый класс для командного узла, используемый для использования версии командного компонента.
Не следует создавать экземпляр этого класса напрямую. Вместо этого его следует создать с помощью функции построителя: command().
- Наследование
-
azure.ai.ml.entities._builders.base_node.BaseNodeCommandazure.ai.ml.entities._job.pipeline._io.mixin.NodeWithGroupInputMixinCommand
Конструктор
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]
Идентификатор или экземпляр компонента команды или задания, которые будут выполняться для шага.
Сопоставление входных имен с источниками входных данных, используемыми в задании.
Сопоставление имен выходных данных с источниками выходных данных, используемыми в задании.
- limits
- CommandJobLimits
Ограничения для компонента или задания команды.
- identity
- Optional[Union[ dict[str, str], ManagedIdentityConfiguration, AmlTokenConfiguration, UserIdentityConfiguration]]
Удостоверение, которое задание команды будет использовать при выполнении на вычислительных ресурсах.
- distribution
- Optional[Union[dict, PyTorchDistribution, MpiDistribution, TensorFlowDistribution, RayDistribution]]
Конфигурация для распределенных заданий.
- environment
- Optional[Union[str, Environment]]
Среда, в которой будет выполняться задание.
Словарь имен и значений переменных среды. Эти переменные среды задаются в процессе, в котором выполняется пользовательский скрипт.
- 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
Параметры
Локальный путь или файловый поток для записи содержимого YAML. Если dest — это путь к файлу, будет создан новый файл. Если dest является открытым файлом, файл будет записан напрямую.
- kwargs
- dict
Дополнительные аргументы для передачи в сериализатор YAML.
Исключения
Возникает, если dest — это путь к файлу, а файл уже существует.
Возникает, если dest является открытым файлом и файл не поддерживает запись.
fromkeys
Создайте новый словарь с ключами из итерируемых значений и значениями со значением value.
fromkeys(value=None, /)
Параметры
- type
- iterable
- value
get
Возвращает значение для ключа, если ключ находится в словаре, в противном случае значение по умолчанию.
get(key, default=None, /)
Параметры
- 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
Если ключ не найден, верните значение по умолчанию, если оно задано. в противном случае создайте 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
Параметры
Примеры
Настройка параметров очереди в команде.
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
Параметры
Тип вычислительного экземпляра, на который выполняется задание. Если этот параметр не указан, задание будет выполняться в целевом объекте вычислений по умолчанию.
Количество экземпляров, на которых выполняется задание. Если этот параметр не указан, задание будет выполняться в одном экземпляре.
Список расположений, в которых будет выполняться задание. Если этот параметр не указан, задание будет выполняться в целевом объекте вычислений по умолчанию.
Размер блока общей памяти контейнера 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
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".
Целевой вычислительный ресурс для запуска узла. Если значение не указано, будет использоваться вычисление текущего узла.
Максимальное количество запущенных пробных версий. Это значение будет перезаписывать значение в CommandJob.limits, если оно указано.
Максимальное количество одновременных испытаний для задания очистки.
Максимальная продолжительность выполнения в секундах, по истечении которой задание будет отменено.
- early_termination_policy
- Optional[Union[BanditPolicy, TruncationSelectionPolicy, MedianStoppingPolicy, str]]
Политика раннего завершения узла очистки. Допустимые значения: "бандит", "median_stopping" или "truncation_selection". Значение по умолчанию — None (Нет).
- identity
- Optional[Union[ ManagedIdentityConfiguration, AmlTokenConfiguration, UserIdentityConfiguration]]
Удостоверение, которое будет использоваться заданием при выполнении на вычислительных ресурсах.
- queue_settings
- Optional[QueueSettings]
Параметры очереди для задания.
Экспериментальные Уровень заданий. Допустимые значения: Spot, Basic, Standard или Premium.
Экспериментальные Приоритет вычислений. Допустимые значения: "низкий", "средний" и "высокий".
Возвращаемое значение
Узел очистки с компонентом из текущего узла 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
code
command
component
Идентификатор или экземпляр компонента команды или задания, которые будут выполняться для шага.
Возвращаемое значение
Идентификатор или экземпляр компонента команды или задания, которые будут выполняться для шага.
Возвращаемый тип
creation_context
Контекст создания ресурса.
Возвращаемое значение
Метаданные создания для ресурса.
Возвращаемый тип
distribution
Конфигурация компонента или задания распределенной команды.
Возвращаемое значение
Конфигурация для распределенных заданий.
Возвращаемый тип
id
Идентификатор ресурса.
Возвращаемое значение
Глобальный идентификатор ресурса, идентификатор Resource Manager Azure (ARM).
Возвращаемый тип
identity
Удостоверение, которое будет использоваться заданием при выполнении на вычислительных ресурсах.
Возвращаемое значение
Удостоверение, которое будет использоваться заданием при выполнении на вычислительных ресурсах.
Возвращаемый тип
inputs
Получение входных данных для объекта .
Возвращаемое значение
Словарь, содержащий входные данные для объекта .
Возвращаемый тип
log_files
Выходные файлы задания.
Возвращаемое значение
Словарь имен и URL-адресов журналов.
Возвращаемый тип
name
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
Azure SDK for Python