Share via


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

environment_variables
Dict[str, str]

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.