ParallelRunStep Klasse
Erstellt einen Azure Machine Learning Pipeline-Schritt, um große Datenmengen asynchron und parallel zu verarbeiten.
Ein Beispiel für die Verwendung von ParallelRunStep finden Sie im Notizbuch https://aka.ms/batch-inference-notebooks.
Anleitung zur Problembehandlung finden Sie unter https://aka.ms/prstsg. Weitere Referenzen finden Sie dort.
Erstellen Sie einen Azure ML-Pipelineschritt, um große Datenmengen asynchron und parallel zu verarbeiten.
Ein Beispiel für die Verwendung von ParallelRunStep finden Sie unter dem Notizbuchlink https://aka.ms/batch-inference-notebooks.
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 Gedankenstrichen bestehen, mit einem Buchstaben beginnen und zwischen 3 und 32 Zeichen lang sein. |
|
parallel_run_config
Erforderlich
|
Ein ParallelRunConfig-Objekt, das zum Ermitteln der erforderlichen Ausführungseigenschaften verwendet wird. |
|
inputs
Erforderlich
|
Liste der Eingabedatensätze. Alle Datasets in der Liste sollten vom gleichen Typ sein. Eingabedaten werden für die parallele Verarbeitung partitioniert. Jedes Dataset in der Liste wird separat in Minibatches partitioniert, und jeder Minibatch wird in der parallelen Verarbeitung gleich behandelt. |
|
output
|
Die Ausgabeportbindung kann von späteren Pipelineschritten verwendet werden. Standardwert: None
|
|
side_inputs
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Liste der seitenseitigen Eingabereferenzdaten. 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
|
Gibt an, ob der Schritt frühere Ergebnisse wiederverwenden soll, wenn er mit denselben Einstellungen/Eingaben ausgeführt wird. Wenn dies "false" ist, wird während der Pipelineausführung immer eine neue Ausführung für diesen Schritt generiert. Standardwert: True
|
|
name
Erforderlich
|
Name des Schritts. Muss für den Arbeitsbereich eindeutig sein, nur aus Kleinbuchstaben, Zahlen oder Gedankenstrichen bestehen, mit einem Buchstaben beginnen und zwischen 3 und 32 Zeichen lang sein. |
|
parallel_run_config
Erforderlich
|
Ein ParallelRunConfig-Objekt, das zum Ermitteln der erforderlichen Ausführungseigenschaften verwendet wird. |
|
inputs
Erforderlich
|
Liste der Eingabedatensätze. Alle Datasets in der Liste sollten vom gleichen Typ sein. Eingabedaten werden für die parallele Verarbeitung partitioniert. Jedes Dataset in der Liste wird separat in Minibatches partitioniert, und jeder Minibatch wird in der parallelen Verarbeitung gleich behandelt. |
|
output
Erforderlich
|
Die Ausgabeportbindung kann von späteren Pipelineschritten verwendet werden. |
|
side_inputs
Erforderlich
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Liste der seitenseitigen Eingabereferenzdaten. Seiteneingaben werden nicht als Eingabedaten partitioniert. |
|
arguments
Erforderlich
|
Liste der Befehlszeilenargumente, die an das Python-entry_script übergeben werden sollen. |
|
allow_reuse
Erforderlich
|
Gibt an, ob der Schritt frühere Ergebnisse wiederverwenden soll, wenn er mit denselben Einstellungen/Eingaben ausgeführt wird. Wenn dies "false" ist, wird während der Pipelineausführung immer eine neue Ausführung für diesen Schritt 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 Anzahl der Batchgrößenknoten und andere tunbare Parameter zum Beschleunigen der parallelen Verarbeitung können mit der ParallelRunConfig Klasse gesteuert werden. ParallelRunStep kann entweder oder TabularDatasetFileDataset als Eingabe verwendet werden.
Verwenden Sie „ParallelRunStep“ wie folgt:
Erstellen Sie ein ParallelRunConfig Objekt, um anzugeben, wie die Batchverarbeitung 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 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 genauso Pipeline wie bei anderen Pipelineschritttypen.
Beispiele für das Arbeiten mit ParallelRunStep- und ParallelRunConfig-Klassen für batchinference 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 Notizbuch https://aka.ms/batch-inference-notebooks.
Methoden
| create_module_def |
Erstellen Sie das Moduldefinitionsobjekt, das den Schritt beschreibt. Diese Methode soll nicht direkt verwendet werden. |
| create_node |
Erstellen Sie einen Knoten für PythonScriptStep das angegebene Diagramm, und fügen Sie ihn dem angegebenen Diagramm hinzu. Diese Methode soll nicht direkt verwendet werden. Wenn eine Pipeline mit ParallelRunStep instanziiert wird, übergibt Azure Machine Learning automatisch die für diese Methode erforderlichen Parameter, damit der Schritt einem Pipelinediagramm hinzugefügt werden kann, das den Workflow darstellt. |
create_module_def
Erstellen Sie das Moduldefinitionsobjekt, das den Schritt beschreibt.
Diese Methode soll nicht direkt verwendet werden.
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 Schritt-Paramdefinitionen. Standardwert: None
|
|
create_sequencing_ports
|
Bei "true" werden Sequenzierungsports für das Modul erstellt. Standardwert: True
|
|
allow_reuse
|
Wenn true, steht das Modul zur Verfügung, das in zukünftigen Pipelines wiederverwendet werden kann. Standardwert: True
|
|
version
|
Die Version des Moduls. Standardwert: None
|
|
arguments
|
Liste mit kommentierten Argumenten, die beim Aufrufen dieses Moduls verwendet werden sollen. Standardwert: None
|
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Das Modul def-Objekt. |
create_node
Erstellen Sie einen Knoten für PythonScriptStep das angegebene Diagramm, und fügen Sie ihn dem angegebenen Diagramm hinzu.
Diese Methode soll nicht direkt verwendet werden. Wenn eine Pipeline mit ParallelRunStep instanziiert wird, übergibt Azure Machine Learning automatisch die für diese Methode erforderlichen Parameter, damit der Schritt einem Pipelinediagramm hinzugefügt werden kann, das 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>
Zusammenhang. |
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Der erstellte Knoten. |