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.BaseNodeCommandazure.ai.ml.entities._job.pipeline._io.mixin.NodeWithGroupInputMixinCommand
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.
Eine Zuordnung von Eingabenamen zu Eingabedatenquellen, die im Auftrag verwendet werden.
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.
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
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
- iterable
- value
get
Gibt den Wert für key zurück, wenn key im Wörterbuch vorhanden ist, andernfalls standard.
get(key, default=None, /)
Parameter
- 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
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
Die Auftragsebene. Akzeptierte Werte sind "Spot", "Basic", "Standard" oder "Premium".
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
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.
Die Anzahl der Instanzen, auf denen der Auftrag ausgeführt werden soll. Wenn nicht angegeben, wird der Auftrag auf einem einzelnen instance ausgeführt.
Die Liste der Speicherorte, an denen der Auftrag ausgeführt wird. Wenn nicht angegeben, wird der Auftrag auf dem Standardcomputeziel ausgeführt.
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
- default
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".
Die Zielcompute, auf der der Knoten ausgeführt werden soll. Wenn nicht angegeben, wird die Compute-Instanz des aktuellen Knotens verwendet.
Die maximale Anzahl der auszuführenden Testversionen. Dieser Wert überschreibt den Wert in CommandJob.limits, sofern angegeben.
Die maximale Anzahl gleichzeitiger Testversionen für den Sweep-Auftrag.
Die maximale Ausführungsdauer in Sekunden, nach der der Auftrag abgebrochen wird.
- 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.
Experimentelle Die Auftragsebene. Akzeptierte Werte sind "Spot", "Basic", "Standard" oder "Premium".
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
code
command
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
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
type
Azure SDK for Python
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für