Share via


Command Klasse

Basisklasse für Befehlsknoten, die für die Verwendung der Befehlskomponentenversion verwendet wird.

Sie sollten diese Klasse nicht direkt instanziieren. Stattdessen sollten Sie sie mit der Generatorfunktion erstellen: command().

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

Konstruktor

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)

Parameter

component
Union[str, CommandComponent]

Die ID oder instance der Befehlskomponente oder des Auftrags, die für den Schritt ausgeführt werden soll.

compute
Optional[str]

Das Computeziel, auf dem der Auftrag ausgeführt wird.

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

Eine Zuordnung von Eingabenamen zu Eingabedatenquellen, die im Auftrag verwendet werden.

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

Eine Zuordnung von Ausgabenamen zu ausgabedatenquellen, die im Auftrag verwendet werden.

limits
CommandJobLimits

Die Grenzwerte für die Befehlskomponente oder den Auftrag.

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

Die Identität, die der Befehlsauftrag während der Ausführung auf compute verwendet.

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

Die Konfiguration für verteilte Aufträge.

environment
Optional[Union[str, Environment]]

Die Umgebung, in der der Auftrag ausgeführt wird.

environment_variables
Optional[dict[str, str]]

Ein Wörterbuch mit Namen und Werten von Umgebungsvariablen. Diese Umgebungsvariablen werden für den Prozess festgelegt, in dem das Benutzerskript ausgeführt wird.

resources
Optional[JobResourceConfiguration]

Die Computeressourcenkonfiguration für den Befehl.

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

Die interaktiven Dienste für den Knoten. Dies ist ein experimenteller Parameter, der sich jederzeit ändern kann. Unter https://aka.ms/azuremlexperimental finden Sie weitere Informationen.

queue_settings
Optional[QueueSettings]

Warteschlangeneinstellungen für den Auftrag.

Methoden

clear
copy
dump

Gibt den Auftragsinhalt in einer Datei im YAML-Format ab.

fromkeys

Erstellen Sie ein neues Wörterbuch mit Schlüsseln aus iterierbar und Werten, die auf Wert festgelegt sind.

get

Gibt den Wert für key zurück, wenn key im Wörterbuch vorhanden ist, andernfalls standard.

items
keys
pop

Wenn der Schlüssel nicht gefunden wird, geben Sie den Standardwert zurück, sofern angegeben. Lösen Sie andernfalls einen KeyError aus.

popitem

Entfernen Sie ein Paar (Schlüssel, Wert) und geben Sie es als 2-Tupel zurück.

Paare werden in LIFO-Reihenfolge (last-in, first-out) zurückgegeben. Löst KeyError aus, wenn das Diktat leer ist.

set_limits

Legen Sie Grenzwerte für Command fest.

set_queue_settings

Legen Sie QueueSettings für den Auftrag fest.

set_resources

Legen Sie Ressourcen für Command fest.

setdefault

Fügen Sie einen Schlüssel mit dem Standardwert ein, wenn der Schlüssel nicht im Wörterbuch enthalten ist.

Gibt den Wert für key zurück, wenn key im Wörterbuch vorhanden ist, andernfalls standard.

sweep

Wandelt den Befehl in einen Sweepknoten mit zusätzlicher Einstellung für die Sweepausführung um. Die Befehlskomponente im aktuellen Befehlsknoten wird als Testkomponente verwendet. Ein Befehlsknoten kann mehrmals sweepen, und der generierte Sweepknoten verwendet dieselbe Testkomponente.

update

Wenn E vorhanden ist und über eine .keys()-Methode verfügt, dann: für k in E: D[k] = E[k] Wenn E vorhanden ist und keine .keys()-Methode vorhanden ist, dann: für k, v in E: D[k] = v In beiden Fällen folgt: für k in F: D[k] = F[k] = F[k]

values

clear

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

copy

copy() -> a shallow copy of D

dump

Gibt den Auftragsinhalt in einer Datei im YAML-Format ab.

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

Parameter

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

Der lokale Pfad oder Dateistream, in den der YAML-Inhalt geschrieben werden soll. Wenn dest ein Dateipfad ist, wird eine neue Datei erstellt. Wenn dest eine geöffnete Datei ist, wird die Datei direkt in geschrieben.

kwargs
dict

Zusätzliche Argumente, die an das YAML-Serialisierungsprogramm übergeben werden sollen.

Ausnahmen

Wird ausgelöst, wenn dest ein Dateipfad ist und die Datei bereits vorhanden ist.

Wird ausgelöst, wenn dest eine geöffnete Datei ist und die Datei nicht beschreibbar ist.

fromkeys

Erstellen Sie ein neues Wörterbuch mit Schlüsseln aus iterierbar und Werten, die auf Wert festgelegt sind.

fromkeys(value=None, /)

Parameter

type
Erforderlich
iterable
Erforderlich
value
Standardwert: None

get

Gibt den Wert für key zurück, wenn key im Wörterbuch vorhanden ist, andernfalls standard.

get(key, default=None, /)

Parameter

key
Erforderlich
default
Standardwert: 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

Wenn der Schlüssel nicht gefunden wird, geben Sie den Standardwert zurück, sofern angegeben. Lösen Sie andernfalls einen KeyError aus.

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

popitem

Entfernen Sie ein Paar (Schlüssel, Wert) und geben Sie es als 2-Tupel zurück.

Paare werden in LIFO-Reihenfolge (last-in, first-out) zurückgegeben. Löst KeyError aus, wenn das Diktat leer ist.

popitem()

set_limits

Legen Sie Grenzwerte für Command fest.

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

Parameter

timeout
int

Das Timeout für den Auftrag in Sekunden.

Beispiele

Festlegen eines Timeoutlimits von 10 Sekunden für einen Befehl.


   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

Legen Sie QueueSettings für den Auftrag fest.

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

Parameter

job_tier
Optional[str]

Die Auftragsebene. Akzeptierte Werte sind "Spot", "Basic", "Standard" oder "Premium".

priority
Optional[str]

Die Priorität des Auftrags auf der Compute-Instanz. Der Standardwert ist "Mittel".

Beispiele

Konfigurieren von Warteschlangeneinstellungen für einen Befehl.


   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

Legen Sie Ressourcen für Command fest.

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

Parameter

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

Der Typ der Compute-instance, für die der Auftrag ausgeführt werden soll. Wenn nicht angegeben, wird der Auftrag auf dem Standardcomputeziel ausgeführt.

instance_count
Optional[int]

Die Anzahl der Instanzen, auf denen der Auftrag ausgeführt werden soll. Wenn nicht angegeben, wird der Auftrag auf einem einzelnen instance ausgeführt.

locations
Optional[list[str]]

Die Liste der Speicherorte, an denen der Auftrag ausgeführt wird. Wenn nicht angegeben, wird der Auftrag auf dem Standardcomputeziel ausgeführt.

properties
Optional[dict]

Die Eigenschaften des Auftrags.

docker_args
Optional[str]

Die Docker-Argumente für den Auftrag.

shm_size
Optional[str]

Die Größe des freigegebenen Speicherblocks des Docker-Containers. Dies sollte im Format (Zahl)(Einheit) vorliegen, wobei die Zahl größer als 0 sein muss und die Einheit eine von b(Bytes), k(Kilobytes), m(Megabytes) oder g(Gigabytes) sein kann.

Beispiele

Festlegen von Ressourcen für einen Befehl.


   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

Fügen Sie einen Schlüssel mit dem Standardwert ein, wenn der Schlüssel nicht im Wörterbuch enthalten ist.

Gibt den Wert für key zurück, wenn key im Wörterbuch vorhanden ist, andernfalls standard.

setdefault(key, default=None, /)

Parameter

key
Erforderlich
default
Standardwert: None

sweep

Wandelt den Befehl in einen Sweepknoten mit zusätzlicher Einstellung für die Sweepausführung um. Die Befehlskomponente im aktuellen Befehlsknoten wird als Testkomponente verwendet. Ein Befehlsknoten kann mehrmals sweepen, und der generierte Sweepknoten verwendet dieselbe Testkomponente.

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

Parameter

primary_metric
str

Die primäre Metrik des Sweep-Ziels , z. B. AUC (Area Under the Curve). Die Metrik muss beim Ausführen der Testkomponente protokolliert werden.

goal
str

Das Ziel des Sweep-Ziels. Akzeptierte Werte sind "minimieren" oder "maximieren".

sampling_algorithm
str

Der Samplingalgorithmus, der innerhalb des Suchbereichs verwendet werden soll. Zulässige Werte sind "random", "grid" oder "bayesian". Der Standardwert ist "random".

compute
Optional[str]

Die Zielcompute, auf der der Knoten ausgeführt werden soll. Wenn nicht angegeben, wird die Compute-Instanz des aktuellen Knotens verwendet.

max_total_trials
Optional[int]

Die maximale Anzahl der auszuführenden Testversionen. Dieser Wert überschreibt den Wert in CommandJob.limits, sofern angegeben.

max_concurrent_trials
Optional[int]

Die maximale Anzahl gleichzeitiger Testversionen für den Sweep-Auftrag.

timeout
Optional[int]

Die maximale Ausführungsdauer in Sekunden, nach der der Auftrag abgebrochen wird.

trial_timeout
Optional[int]

Der Timeoutwert für die Sweepauftragstestversion in Sekunden.

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

Die Richtlinie für vorzeitige Beendigung des Sweepknotens. Zulässige Werte sind "bandit", "median_stopping" oder "truncation_selection". Der Standardwert ist „None“.

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

Die Identität, die der Auftrag während der Ausführung auf Compute verwendet.

queue_settings
Optional[QueueSettings]

Die Warteschlangeneinstellungen für den Auftrag.

job_tier
Optional[str]

Experimentelle Die Auftragsebene. Akzeptierte Werte sind "Spot", "Basic", "Standard" oder "Premium".

priority
Optional[str]

Experimentelle Die Computepriorität. Akzeptierte Werte sind "niedrig", "mittel" und "hoch".

Gibt zurück

Ein Sweep-Knoten mit der Komponente aus dem aktuellen Befehlsknoten als Testkomponente.

Rückgabetyp

Beispiele

Erstellen eines Sweep-Knotens aus einem Befehlsauftrag.


   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

Wenn E vorhanden ist und über eine .keys()-Methode verfügt, dann: für k in E: D[k] = E[k] Wenn E vorhanden ist und keine .keys()-Methode vorhanden ist, dann: für k, v in E: D[k] = v In beiden Fällen folgt: für k in F: D[k] = F[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

Attribute

base_path

Der Basispfad der Ressource.

Gibt zurück

Der Basispfad der Ressource.

Rückgabetyp

str

code

Der Quellcode zum Ausführen des Auftrags.

Rückgabetyp

command

Legt den auszuführenden Befehl fest.

Rückgabetyp

component

Die ID oder instance der Befehlskomponente oder des Auftrags, die für den Schritt ausgeführt werden soll.

Gibt zurück

Die ID oder instance der Befehlskomponente oder des Auftrags, die für den Schritt ausgeführt werden soll.

Rückgabetyp

creation_context

Der Erstellungskontext der Ressource.

Gibt zurück

Die Erstellungsmetadaten für die Ressource.

Rückgabetyp

distribution

Die Konfiguration für die Verteilte Befehlskomponente oder den Auftrag.

Gibt zurück

Die Konfiguration für verteilte Aufträge.

Rückgabetyp

id

Die Ressourcen-ID.

Gibt zurück

Die globale ID der Ressource, eine Arm-ID (Azure Resource Manager).

Rückgabetyp

identity

Die Identität, die der Auftrag während der Ausführung auf Compute verwendet.

Gibt zurück

Die Identität, die der Auftrag während der Ausführung auf Compute verwendet.

Rückgabetyp

inputs

Rufen Sie die Eingaben für das -Objekt ab.

Gibt zurück

Ein Wörterbuch, das die Eingaben für das -Objekt enthält.

Rückgabetyp

log_files

Auftragsausgabedateien.

Gibt zurück

Das Wörterbuch der Protokollnamen und URLs.

Rückgabetyp

name

Rufen Sie den Namen des Knotens ab.

Gibt zurück

Der Name des Knotens.

Rückgabetyp

str

outputs

Rufen Sie die Ausgaben des -Objekts ab.

Gibt zurück

Ein Wörterbuch, das die Ausgaben für das -Objekt enthält.

Rückgabetyp

parameters

MLFlow-Parameter, die während des Auftrags protokolliert werden sollen.

Gibt zurück

Die MLFlow-Parameter, die während des Auftrags protokolliert werden sollen.

Rückgabetyp

queue_settings

Die Warteschlangeneinstellungen für die Befehlskomponente oder den Auftrag.

Gibt zurück

Die Warteschlangeneinstellungen für die Befehlskomponente oder den Auftrag.

Rückgabetyp

resources

Die Computeressourcenkonfiguration für die Befehlskomponente oder den Auftrag.

Rückgabetyp

services

Die interaktiven Dienste für den Knoten.

Dies ist ein experimenteller Parameter, der sich jederzeit ändern kann. Unter https://aka.ms/azuremlexperimental finden Sie weitere Informationen.

Rückgabetyp

status

Der Status des Auftrags.

Zu den häufig zurückgegebenen Werten zählen „Running“ (Wird ausgeführt), „Completed“ (Abgeschlossen) und „Failed“ (Fehlgeschlagen). Alle möglichen Werte sind:

  • NotStarted: Dies ist ein temporärer Zustand, in dem sich clientseitige Run-Objekte vor der Cloudübermittlung befinden.

  • Starting: Die Verarbeitung der Ausführung in der Cloud hat begonnen. Die aufrufende Funktion besitzt zu diesem Zeitpunkt eine Ausführungs-ID.

  • Bereitstellung: Bedarfsgesteuerte Computeressourcen werden für eine bestimmte Auftragsübermittlung erstellt.

  • Vorbereiten: Die Ausführungsumgebung wird vorbereitet und befindet sich in einer von zwei Phasen:

    • Docker-Imagebuild

    • Einrichten der Conda-Umgebung

  • In die Warteschlange: Der Auftrag wird auf dem Computeziel in die Warteschlange gestellt. In BatchAI befindet sich der Auftrag beispielsweise in der Warteschlange.

    während darauf gewartet wird, dass alle angeforderten Knoten bereit sind.

  • Wird ausgeführt: Der Auftrag wurde auf dem Computeziel ausgeführt.

  • Abgeschlossen: Die Ausführung des Benutzercodes wurde abgeschlossen, und die Ausführung befindet sich in den Phasen nach der Verarbeitung.

  • CancelRequested: Für den Auftrag wurde ein Abbruch angefordert.

  • Abgeschlossen: Die Ausführung wurde erfolgreich abgeschlossen. Dies schließt sowohl die Ausführung von Benutzercode als auch die Ausführung ein.

    Nachbearbeitungsphasen der Ausführung ein.

  • Failed: Die Ausführung ist fehlgeschlagen. In der Regel liefert die Eigenschaft „Error“ einer Ausführung Details zur Ursache.

  • Canceled: Folgt einer Abbruchanforderung und gibt an, dass die Ausführung jetzt erfolgreich abgebrochen wurde.

  • „NotResponding“ (Reagiert nicht): Für eine Ausführung, für die Heartbeats aktiviert ist, wurde vor Kurzem kein Heartbeat gesendet.

Gibt zurück

Status des Auftrags.

Rückgabetyp

studio_url

Azure ML Studio-Endpunkt.

Gibt zurück

Die URL zur Auftragsdetailseite.

Rückgabetyp

type

Der Typ des Auftrags.

Gibt zurück

Der Typ des Auftrags.

Rückgabetyp