ParallelRunStep Klasse
Erstellt einen Azure Machine Learning-Pipelineschritt, um große Datenmengen asynchron und parallel zu verarbeiten.
Ein Beispiel für die Verwendung von „ParallelRunStep“ finden Sie im Notebook https://aka.ms/batch-inference-notebooks.
Einen Leitfaden zur Problembehandlung finden Sie unter https://aka.ms/prstsg. Weitere Referenzen finden Sie hier.
Erstellen Sie einen Azure ML Pipeline-Schritt, um große Datenmengen asynchron und parallel zu verarbeiten.
Ein Beispiel für die Verwendung von ParallelRunStep finden Sie im Notebooklink https://aka.ms/batch-inference-notebooks.
- Vererbung
-
azureml.pipeline.core._parallel_run_step_base._ParallelRunStepBaseParallelRunStep
Konstruktor
ParallelRunStep(name, parallel_run_config, inputs, output=None, side_inputs=None, arguments=None, allow_reuse=True)
Parameter
Name | Beschreibung |
---|---|
name
Erforderlich
|
Name des Schritts Muss für den Arbeitsbereich eindeutig sein, nur aus Kleinbuchstaben, Zahlen oder Bindestrichen bestehen, mit einem Buchstaben beginnen und zwischen 3 und 32 Zeichen lang sein. |
parallel_run_config
Erforderlich
|
Ein ParallelRunConfig-Objekt, das zum Bestimmen der erforderlichen Ausführungseigenschaften verwendet wird |
inputs
Erforderlich
|
Eine Liste der Eingabedatasets. Alle Datasets in der Liste sollten denselben Typ haben. Eingabedaten werden für die parallele Verarbeitung aufgeteilt. Jedes Dataset in der Liste wird separat in Mini-Batches unterteilt, die bei der parallelen Verarbeitung gleich behandelt werden. |
output
|
Ausgabeportbindung,die in späteren Pipelineschritten verwendet werden kann Standardwert: None
|
side_inputs
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Liste der Seiteneingabe-Verweisdaten Seiteneingaben werden nicht als Eingabedaten partitioniert. Standardwert: None
|
arguments
|
Liste der Befehlszeilenargumente, die an das Python-„entry_script“ übergeben werden sollen Standardwert: None
|
allow_reuse
|
Angabe, ob bei dem Schritt vorherige Ergebnisse wiederverwendet werden sollen, wenn er mit den gleichen Einstellungen/Eingaben ausgeführt wird. Wenn dies auf „False“ festgelegt ist, wird für diesen Schritt während der Pipelineausführung immer eine neue Ausführung generiert. Standardwert: True
|
name
Erforderlich
|
Name des Schritts Muss für den Arbeitsbereich eindeutig sein, nur aus Kleinbuchstaben, Zahlen oder Bindestrichen bestehen, mit einem Buchstaben beginnen und zwischen 3 und 32 Zeichen lang sein. |
parallel_run_config
Erforderlich
|
Ein ParallelRunConfig-Objekt, das zum Bestimmen der erforderlichen Ausführungseigenschaften verwendet wird |
inputs
Erforderlich
|
Eine Liste der Eingabedatasets. Alle Datasets in der Liste sollten denselben Typ haben. Eingabedaten werden für die parallele Verarbeitung aufgeteilt. Jedes Dataset in der Liste wird separat in Mini-Batches unterteilt, die bei der parallelen Verarbeitung gleich behandelt werden. |
output
Erforderlich
|
Ausgabeportbindung,die in späteren Pipelineschritten verwendet werden kann |
side_inputs
Erforderlich
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Liste der Seiteneingabe-Verweisdaten Seiteneingaben werden nicht als Eingabedaten partitioniert. |
arguments
Erforderlich
|
Liste der Befehlszeilenargumente, die an das Python-„entry_script“ übergeben werden sollen |
allow_reuse
Erforderlich
|
Angabe, ob bei dem Schritt vorherige Ergebnisse wiederverwendet werden sollen, wenn er mit den gleichen Einstellungen/Eingaben ausgeführt wird. Wenn dies auf „False“ festgelegt ist, wird für diesen Schritt während der Pipelineausführung immer eine neue Ausführung generiert. |
Hinweise
„ParallelRunStep“ kann für die parallele Verarbeitung großer Datenmengen verwendet werden. Häufige Anwendungsfälle sind das Trainieren eines ML-Modells oder das Ausführen von Offline-Rückschlussvorgängen, um Vorhersagen für eine Gruppe von Beobachtungen zu generieren. Bei „ParallelRunStep“ werden Ihre Daten in Gruppen (Batches) unterteilt, die parallel verarbeitet werden. Die Batchgröße, die Knotenanzahl und andere optimierbare Parameter für die Beschleunigung der Parallelverarbeitung können mit der ParallelRunConfig-Klasse gesteuert werden. Für „ParallelRunStep“ kann entweder TabularDataset oder FileDataset als Eingabe genutzt werden.
Verwenden Sie „ParallelRunStep“ wie folgt:
Erstellen Sie ein ParallelRunConfig-Objekt, um anzugeben, wie die Batchverarbeitung durchgeführt wird. Verwenden Sie die Parameter zum Steuern der Batchgröße und der Anzahl von Knoten pro Computeziel und einen Verweis auf Ihr benutzerdefiniertes Python-Skript.
Erstellen Sie ein „ParallelRunStep“-Objekt, für das das „ParallelRunConfig“-Objekt verwendet wird, und definieren Sie Ein- und Ausgaben für den Schritt.
Verwenden Sie das konfigurierte „ParallelRunStep“-Objekt in einer Pipeline, wie Sie dies auch bei anderen Pipelineschritttypen durchführen.
Beispiele für die Arbeit mit den Klassen ParallelRunStep und ParallelRunConfig für Batchrückschlüsse werden in den folgenden Artikeln erläutert:
Tutorial: Erstellen einer Azure Machine Learning-Pipeline für die Batchbewertung In diesem Artikel wird veranschaulicht, wie Sie diese beiden Klassen für die asynchrone Batchbewertung in einer Pipeline verwenden und für einen REST-Endpunkt die Ausführung der Pipeline ermöglichen.
Ausführen von Batchrückschlüssen für große Datenmengen mithilfe von Azure Machine Learning In diesem Artikel wird veranschaulicht, wie Sie große Datenmengen asynchron und parallel mit einem benutzerdefinierten Rückschlussskript und einem vortrainierten Bildklassifizierungsmodell auf Basis einer MNIST-Datenbank verarbeiten.
from azureml.pipeline.steps import ParallelRunStep, ParallelRunConfig
parallel_run_config = ParallelRunConfig(
source_directory=scripts_folder,
entry_script=script_file,
mini_batch_size="5",
error_threshold=10, # Optional, allowed failed count on mini batch items
allowed_failed_count=15, # Optional, allowed failed count on mini batches
allowed_failed_percent=10, # Optional, allowed failed percent on mini batches
output_action="append_row",
environment=batch_env,
compute_target=compute_target,
node_count=2)
parallelrun_step = ParallelRunStep(
name="predict-digits-mnist",
parallel_run_config=parallel_run_config,
inputs=[ named_mnist_ds ],
output=output_dir,
arguments=[ "--extra_arg", "example_value" ],
allow_reuse=True
)
Weitere Informationen zu diesem Beispiel finden Sie im Notebook https://aka.ms/batch-inference-notebooks.
Methoden
create_module_def |
Erstellt das Moduldefinitionsobjekt, das den Schritt beschreibt Diese Methode ist nicht zur direkten Nutzung vorgesehen. |
create_node |
Erstellt einen Knoten für PythonScriptStep und fügt ihn dem angegebenen Graphen hinzu Diese Methode ist nicht zur direkten Nutzung vorgesehen. Wenn eine Pipeline mit ParallelRunStep instanziiert wird, übergibt Azure Machine Learning die erforderlichen Parameter automatisch über diese Methode, sodass der Schritt einem Pipelinegraphen hinzugefügt werden kann, der den Workflow darstellt. |
create_module_def
Erstellt das Moduldefinitionsobjekt, das den Schritt beschreibt
Diese Methode ist nicht zur direkten Nutzung vorgesehen.
create_module_def(execution_type, input_bindings, output_bindings, param_defs=None, create_sequencing_ports=True, allow_reuse=True, version=None, arguments=None)
Parameter
Name | Beschreibung |
---|---|
execution_type
Erforderlich
|
Der Ausführungstyp des Moduls |
input_bindings
Erforderlich
|
Die Schritteingabebindungen |
output_bindings
Erforderlich
|
Die Schrittausgabebindungen |
param_defs
|
Die param-Definitionen des Schritts Standardwert: None
|
create_sequencing_ports
|
Wenn „True“ festgelegt ist, werden Sequenzierungsports für das Modul erstellt Standardwert: True
|
allow_reuse
|
Wenn „True“ festgelegt ist, kann das Modul in zukünftigen Pipelines wiederverwendet werden Standardwert: True
|
version
|
Die Version des Moduls. Standardwert: None
|
arguments
|
Liste der annotierten Argumente, die beim Aufrufen dieses Moduls verwendet werden sollen Standardwert: None
|
Gibt zurück
Typ | Beschreibung |
---|---|
Das ModuleDef-Objekt |
create_node
Erstellt einen Knoten für PythonScriptStep und fügt ihn dem angegebenen Graphen hinzu
Diese Methode ist nicht zur direkten Nutzung vorgesehen. Wenn eine Pipeline mit ParallelRunStep instanziiert wird, übergibt Azure Machine Learning die erforderlichen Parameter automatisch über diese Methode, sodass der Schritt einem Pipelinegraphen hinzugefügt werden kann, der den Workflow darstellt.
create_node(graph, default_datastore, context)
Parameter
Name | Beschreibung |
---|---|
graph
Erforderlich
|
Graph-Objekt |
default_datastore
Erforderlich
|
Standarddatenspeicher |
context
Erforderlich
|
<xref:azureml.pipeline.core._GraphContext>
Kontext. |
Gibt zurück
Typ | Beschreibung |
---|---|
Der erstellte Knoten |