parallel Paket
Klassen
ParallelJob |
Paralleler Auftrag. |
RunFunction |
Führen Sie die Funktion aus. |
Functions
parallel_run_function
Erstellen Sie ein Parallel-Objekt, das in dsl.pipeline als Funktion verwendet werden kann und auch als eigenständiger paralleler Auftrag erstellt werden kann.
Ein Beispiel für die Verwendung von ParallelRunStep finden Sie im Notebook. https://aka.ms/parallel-example-notebook
from azure.ai.ml import Input, Output, parallel
parallel_run = parallel_run_function(
name="batch_score_with_tabular_input",
display_name="Batch Score with Tabular Dataset",
description="parallel component for batch score",
inputs=dict(
job_data_path=Input(
type=AssetTypes.MLTABLE,
description="The data to be split and scored in parallel",
),
score_model=Input(
type=AssetTypes.URI_FOLDER, description="The model for batch score."
),
),
outputs=dict(job_output_path=Output(type=AssetTypes.MLTABLE)),
input_data="${{inputs.job_data_path}}",
max_concurrency_per_instance=2, # Optional, default is 1
mini_batch_size="100", # optional
mini_batch_error_threshold=5, # Optional, allowed failed count on mini batch items, default is -1
logging_level="DEBUG", # Optional, default is INFO
error_threshold=5, # Optional, allowed failed count totally, default is -1
retry_settings=dict(max_retries=2, timeout=60), # Optional
task=RunFunction(
code="./src",
entry_script="tabular_batch_inference.py",
environment=Environment(
image="mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04",
conda_file="./src/environment_parallel.yml",
),
program_arguments="--model ${{inputs.score_model}}",
append_row_to="${{outputs.job_output_path}}", # Optional, if not set, summary_only
),
)
parallel_run_function(*, name: str | None = None, description: str | None = None, tags: Dict | None = None, properties: Dict | None = None, display_name: str | None = None, experiment_name: str | None = None, compute: str | None = None, retry_settings: BatchRetrySettings | None = None, environment_variables: Dict | None = None, logging_level: str | None = None, max_concurrency_per_instance: int | None = None, error_threshold: int | None = None, mini_batch_error_threshold: int | None = None, task: RunFunction | None = None, mini_batch_size: str | None = None, partition_keys: List | None = None, input_data: str | None = None, inputs: Dict | None = None, outputs: Dict | None = None, instance_count: int | None = None, instance_type: str | None = None, docker_args: str | None = None, shm_size: str | None = None, identity: ManagedIdentity | AmlToken | None = None, is_deterministic: bool = True, **kwargs) -> Parallel
Parameter
- name
- str
Name des erstellten Parallelauftrags oder der erstellten Komponente.
- description
- str
Eine freundliche Beschreibung der Parallele.
- tags
- Dict
Tags, die an diese Parallele angefügt werden sollen.
- properties
- Dict
Das Ressourceneigenschaftenverzeichnis.
- display_name
- str
Einen Anzeigenamen.
- experiment_name
- str
Name des Experiments, unter dem der Auftrag erstellt wird. Wenn Keine angegeben ist, wird der Standardwert auf den aktuellen Verzeichnisnamen festgelegt. Wird als Pipelineschritt ignoriert.
- compute
- str
Der Name des Computes, in dem der parallele Auftrag ausgeführt wird (wird nicht verwendet, wenn die Parallele als Komponente/Funktion verwendet wird).
- retry_settings
- BatchRetrySettings
Wiederholungsversuch bei paralleler Komponentenausführung fehlgeschlagen
Ein Wörterbuch mit Umgebungsvariablennamen und Werten. Diese Umgebungsvariablen werden für den Prozess festgelegt, in dem das Benutzerskript ausgeführt wird.
- logging_level
- str
Eine Zeichenfolge mit dem Namen des Protokolliergrads, der in „logging“ definiert ist. Mögliche Werte sind „WARNING“, „INFO“ und „DEBUG“. (Optional, Standardwert ist INFO.) Dieser Wert kann über PipelineParameter festgelegt werden.
- max_concurrency_per_instance
- int
Die maximale Parallelität, die jede Compute-instance hat.
- error_threshold
- int
Die Anzahl von Datensatzfehlern für tabellarische Datasets und Dateifehler für Dateidatasets, die während der Verarbeitung ignoriert werden sollten. Wenn die Fehleranzahl diesen Wert überschreitet, wird der Auftrag abgebrochen. Der Fehlerschwellenwert gilt für die gesamte Eingabe und nicht für den einzelnen Minibatch, der an die run()-Methode gesendet wird. Der Bereich ist [-1, int.max]. -1 gibt an, dass alle Fehler während der Verarbeitung ignoriert werden.
- mini_batch_error_threshold
- int
Die Anzahl von Minibatchverarbeitungsfehlern sollte ignoriert werden.
- task
- RunFunction
Die parallele Aufgabe
- mini_batch_size
- str
Bei der FileDataset-Eingabe ist dieses Feld die Anzahl der Dateien, die ein Benutzerskript in einem run()-Aufruf verarbeiten kann. Bei einer TabularDataset-Eingabe ist dieses Feld die ungefähre Größe der Daten, die ein Benutzerskript in einem run()-Aufruf verarbeiten kann. Beispielwerte sind 1.024, 1.024 KB, 10 MB und 1 GB. (Optional, der Standardwert ist 10 Dateien für FileDataset und 1 MB für TabularDataset.) Dieser Wert kann über PipelineParameter festgelegt werden.
- partition_keys
- List
Die Schlüssel, die zum Partitionieren von Datasets in Minibatches verwendet werden. Bei einer Angabe werden die Daten mit demselben Schlüssel in den gleichen Minibatch partitioniert. Wenn sowohl partition_keys als auch mini_batch_size angegeben sind, werden die Partitionsschlüssel wirksam. Die Eingabe(n) muss partitionierte Datasets sein, und die partition_keys muss eine Teilmenge der Schlüssel jedes Eingabedatasets sein, damit dies funktioniert.
- input_data
- str
Die Eingabedaten.
- inputs
- Dict
Ein Wörterbuch mit Eingaben, die von diesem Parallelauftrag verwendet werden.
- outputs
- Dict
Die Ausgaben dieser parallelen
- instance_count
- int
Optionale Anzahl von Instanzen oder Knoten, die vom Computeziel verwendet werden. Der Standardwert ist 1
- instance_type
- str
Optionaler Typ des virtuellen Computers, der vom Computeziel unterstützt wird.
- docker_args
- str
Zusätzliche Argumente, die an den run-Befehl von Docker übergeben werden sollen. Dadurch würden alle Parameter außer Kraft gesetzt, die bereits vom System oder in diesem Abschnitt festgelegt wurden. Dieser Parameter wird nur für Azure ML-Computetypen unterstützt.
- shm_size
- str
Größe des freigegebenen Speicherblocks des Docker-Containers. Dies sollte im Format (Zahl)(Einheit) vorliegen, wobei zahl als größer als 0 und die Einheit eine von b(bytes), k(kilobytes), m(megabytes) oder g(gigabytes) sein kann.
- identity
- Union[ <xref:azure.ai.ml._restclient.v2022_02_01_preview.models.ManagedIdentity>, <xref:azure.ai.ml._restclient.v2022_02_01_preview.models.AmlToken>]
Identität, die der Trainingsauftrag während der Ausführung auf Compute verwendet.
- is_deterministic
- bool
Geben Sie an, ob der Parallelauftrag bei gleicher Eingabe die gleiche Ausgabe liefern soll. Wenn eine parallele (Komponente) deterministisch ist, werden ergebnisse aus einem vorherigen übermittelten Auftrag im aktuellen Arbeitsbereich wiederverwendet, der dieselben Eingaben und Einstellungen aufweist, wenn sie als Knoten/Schritt in einer Pipeline verwendet wird. In diesem Fall wird in diesem Schritt keine Computeressource verwendet. Gibt standardmäßig True an, geben Sie is_deterministic=False an, wenn Sie ein solches Wiederverwendungsverhalten vermeiden möchten. Der Standardwert ist True.
Gibt zurück
Der parallele Knoten
Rückgabetyp
Hinweise
So verwenden Sie parallel_run_function:
Erstellen Sie ein <xref:azure.ai.ml.entities._builders.Parallel> -Objekt, um anzugeben, wie die parallele Ausführung ausgeführt wird, mit Parametern zum Steuern der Batchgröße, der Anzahl von Knoten pro Computeziel und einem Verweis auf Ihr benutzerdefiniertes Python-Skript.
Erstellen Sie eine Pipeline mit dem parallelen Objekt als Funktion. definiert Eingaben und Ausgaben für den Schritt.
Summieren Sie die auszuführende Pipeline.
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