ParallelRunConfig Klas
Hiermee definieert u de configuratie voor een ParallelRunStep object.
Zie het notebook https://aka.ms/batch-inference-notebooksvoor een voorbeeld van het gebruik van ParallelRunStep.
Zie voor de handleiding https://aka.ms/prstsgvoor probleemoplossing. Meer verwijzingen vindt u hier.
Initialiseer het configuratieobject.
- Overname
-
azureml.pipeline.core._parallel_run_config_base._ParallelRunConfigBaseParallelRunConfig
Constructor
ParallelRunConfig(environment, entry_script, error_threshold, output_action, compute_target, node_count, process_count_per_node=None, mini_batch_size=None, source_directory=None, description=None, logging_level='INFO', run_invocation_timeout=60, run_max_try=3, append_row_file_name=None, allowed_failed_count=None, allowed_failed_percent=None, partition_keys=None, environment_variables=None)
Parameters
Name | Description |
---|---|
environment
Vereist
|
De omgevingsdefinitie waarmee de Python-omgeving wordt geconfigureerd. Deze kan worden geconfigureerd voor het gebruik van een bestaande Python-omgeving of voor het instellen van een tijdelijke omgeving voor het experiment. De omgevingsdefinitie is verantwoordelijk voor het definiëren van de vereiste toepassingsafhankelijkheden, zoals conda- of pip-pakketten. |
entry_script
Vereist
|
Gebruikersscript dat parallel op meerdere knooppunten wordt uitgevoerd. Dit is opgegeven als een lokaal bestandspad. Als |
error_threshold
Vereist
|
Het aantal recordfouten voor TabularDataset en bestandsfouten hiervoor FileDataset moet tijdens de verwerking worden genegeerd. Als het aantal fouten boven deze waarde komt, wordt de taak afgebroken. De foutdrempelwaarde geldt voor de volledige invoer en niet voor afzonderlijke minibatches die zijn verzonden naar de methode run(). Het bereik is [-1, int.max]. -1 geeft aan dat alle fouten tijdens de verwerking worden genegeerd. |
output_action
Vereist
|
Hoe de uitvoer moet worden georganiseerd. Huidige ondersteunde waarden zijn 'append_row' en 'summary_only'.
|
compute_target
Vereist
|
AmlCompute of
str
Rekendoel dat moet worden gebruikt voor de uitvoering van ParallelRunStep. Deze parameter kan worden opgegeven als een rekendoelobject of de naam van een rekendoel in de werkruimte. |
node_count
Vereist
|
Het aantal knooppunten in het rekendoel dat wordt gebruikt voor het uitvoeren van de ParallelRunStep. |
process_count_per_node
|
Het aantal werkprocessen per knooppunt om het invoerscript parallel uit te voeren.
Voor GPU-machine is de standaardwaarde 1.
Voor de CPU-machine is de standaardwaarde het aantal kernen.
Een werkproces roept herhaaldelijk aan Default value: None
|
mini_batch_size
|
Voor FileDataset-invoer is dit veld het aantal bestanden dat een gebruikersscript kan verwerken in één run()-aanroep. Voor TabularDataset-invoer is dit veld de geschatte grootte van de gegevens die het gebruikersscript kan verwerken in één run()-aanroep. Voorbeeldwaarden zijn 1024, 1024 kB, 10 MB en 1 GB. (optioneel, de standaardwaarde is 10 bestanden voor FileDataset en 1 MB voor TabularDataset.) Default value: None
|
source_directory
|
Pad naar de map met de Default value: None
|
description
|
Een beschrijving voor de batchservice die wordt gebruikt voor weergavedoeleinden. Default value: None
|
logging_level
|
Een tekenreeks van de naam van het logboekregistratieniveau, die is gedefinieerd in 'logboekregistratie'. Mogelijke waarden zijn WAARSCHUWING, INFO en FOUTOPSPORING. (optioneel, standaardwaarde is 'INFO'.) Default value: INFO
|
run_invocation_timeout
|
Time-out in seconden voor elke aanroep van de methode run(). (optioneel, standaardwaarde is 60.) Default value: 60
|
run_max_try
|
Het maximum aantal pogingen voor een mislukte of time-out minibatch. Het bereik is [1, int.max]. De standaardwaarde is 3. Een minibatch met een groter aantal wachtrijen dan dit wordt niet opnieuw verwerkt en wordt direct verwijderd. Default value: 3
|
append_row_file_name
|
De naam van het uitvoerbestand als de Default value: None
|
allowed_failed_count
|
Het aantal mislukte minibatches dat tijdens de verwerking moet worden genegeerd. Als het aantal mislukte items hoger is dan deze waarde, wordt de taak afgebroken. Deze drempelwaarde geldt voor de volledige invoer in plaats van voor de afzonderlijke minibatch die is verzonden naar de run()-methode. Het bereik is [-1, int.max]. -1 geeft aan dat alle fouten tijdens de verwerking worden genegeerd. Een minibatch kan mislukken bij de eerste keer dat deze wordt verwerkt en slaagt bij de tweede poging. Controleren tussen de eerste en tweede keer wordt als mislukt geteld. Als u na de tweede keer controleert, wordt het niet als mislukt geteld. Het argument –error_threshold, –allowed_failed_count en –allowed_failed_percent kunnen samenwerken. Als er meer dan één is opgegeven, wordt de taak afgebroken als deze een van de opgegeven taken overschrijdt. Default value: None
|
allowed_failed_percent
|
Het percentage mislukte minibatches dat tijdens de verwerking moet worden genegeerd. Als het percentage mislukt boven deze waarde komt, wordt de taak afgebroken. Deze drempelwaarde geldt voor de volledige invoer in plaats van voor de afzonderlijke minibatch die is verzonden naar de run()-methode. Het bereik is [0, 100]. 100 of 100.0 geeft aan dat alle fouten tijdens de verwerking worden genegeerd. De controle wordt gestart nadat alle minibatches zijn gepland. Het argument –error_threshold, –allowed_failed_count en –allowed_failed_percent kunnen samenwerken. Als er meer dan één is opgegeven, wordt de taak afgebroken als deze een van de opgegeven taken overschrijdt. Default value: None
|
partition_keys
|
De sleutels die worden gebruikt voor het partitioneren van de gegevensset in minibatches. Indien opgegeven, worden de gegevens met dezelfde sleutel gepartitioneerd in dezelfde minibatch. Als zowel partition_keys als mini_batch_size zijn opgegeven, treedt er een fout op. Het moet een lijst met str-elementen zijn die elk een sleutel zijn die wordt gebruikt om de invoergegevensset te partitioneren. Als u echter wordt gepromoveerd naar PipelineParameter, moeten de standaardwaarden de json-dump-str van de lijst zijn, omdat het lijsttype momenteel niet wordt ondersteund in PipelineParameter. De invoer(en) moeten gepartitioneerde gegevenssets zijn en de partition_keys moet een subset van de sleutels van elke invoergegevensset zijn om dit te laten werken. Default value: None
|
environment_variables
|
Een woordenlijst met namen en waarden van omgevingsvariabelen. Deze omgevingsvariabelen worden ingesteld voor het proces waarin het gebruikersscript wordt uitgevoerd. Default value: None
|
environment
Vereist
|
De omgevingsdefinitie waarmee de Python-omgeving wordt geconfigureerd. Deze kan worden geconfigureerd voor het gebruik van een bestaande Python-omgeving of voor het instellen van een tijdelijke omgeving voor het experiment. De omgevingsdefinitie is verantwoordelijk voor het definiëren van de vereiste toepassingsafhankelijkheden, zoals conda- of pip-pakketten. |
entry_script
Vereist
|
Gebruikersscript dat parallel op meerdere knooppunten wordt uitgevoerd. Dit is opgegeven als een lokaal bestandspad. Als |
error_threshold
Vereist
|
Het aantal recordfouten voor TabularDataset en bestandsfouten hiervoor FileDataset moet tijdens de verwerking worden genegeerd. Als het aantal fouten boven deze waarde komt, wordt de taak afgebroken. De foutdrempelwaarde geldt voor de volledige invoer en niet voor afzonderlijke minibatches die zijn verzonden naar de methode run(). Het bereik is [-1, int.max]. -1 geeft aan dat alle fouten tijdens de verwerking worden genegeerd. |
output_action
Vereist
|
Hoe de uitvoer moet worden georganiseerd. Huidige ondersteunde waarden zijn 'append_row' en 'summary_only'.
|
compute_target
Vereist
|
AmlCompute of
str
Rekendoel dat moet worden gebruikt voor de uitvoering van ParallelRunStep. Deze parameter kan worden opgegeven als een rekendoelobject of de naam van een rekendoel in de werkruimte. |
node_count
Vereist
|
Het aantal knooppunten in het rekendoel dat wordt gebruikt voor het uitvoeren van de ParallelRunStep. |
process_count_per_node
Vereist
|
Het aantal werkprocessen per knooppunt om het invoerscript parallel uit te voeren.
Voor een GPU-machine is de standaardwaarde 1.
Voor een CPU-machine is de standaardwaarde het aantal kernen.
Een werkproces roept herhaaldelijk aan |
mini_batch_size
Vereist
|
Voor FileDataset-invoer is dit veld het aantal bestanden dat een gebruikersscript kan verwerken in één run()-aanroep. Voor TabularDataset-invoer is dit veld de geschatte grootte van de gegevens die het gebruikersscript kan verwerken in één run()-aanroep. Voorbeeldwaarden zijn 1024, 1024 kB, 10 MB en 1 GB. (optioneel, de standaardwaarde is 10 bestanden voor FileDataset en 1 MB voor TabularDataset.) |
source_directory
Vereist
|
Pad naar de map met de |
description
Vereist
|
Een beschrijving voor de batchservice die wordt gebruikt voor weergavedoeleinden. |
logging_level
Vereist
|
Een tekenreeks van de naam van het logboekregistratieniveau, die is gedefinieerd in 'logboekregistratie'. Mogelijke waarden zijn WAARSCHUWING, INFO en FOUTOPSPORING. (optioneel, standaardwaarde is 'INFO'.) |
run_invocation_timeout
Vereist
|
Time-out in seconden voor elke aanroep van de methode run(). (optioneel, standaardwaarde is 60.) |
run_max_try
Vereist
|
Het maximum aantal pogingen voor een mislukte of time-out minibatch. Het bereik is [1, int.max]. De standaardwaarde is 3. Een minibatch met een groter aantal wachtrijen dan dit wordt niet opnieuw verwerkt en wordt direct verwijderd. |
append_row_file_name
Vereist
|
De naam van het uitvoerbestand als de |
allowed_failed_count
Vereist
|
Het aantal mislukte minibatches dat tijdens de verwerking moet worden genegeerd. Als het aantal mislukte items hoger is dan deze waarde, wordt de taak afgebroken. Deze drempelwaarde geldt voor de volledige invoer in plaats van voor de afzonderlijke minibatch die is verzonden naar de run()-methode. Het bereik is [-1, int.max]. -1 geeft aan dat alle fouten tijdens de verwerking worden genegeerd. Een minibatch kan mislukken bij de eerste keer dat deze wordt verwerkt en slaagt bij de tweede poging. Controleren tussen de eerste en tweede keer wordt als mislukt geteld. Als u na de tweede keer controleert, wordt het niet als mislukt geteld. Het argument –error_threshold, –allowed_failed_count en –allowed_failed_percent kunnen samenwerken. Als er meer dan één is opgegeven, wordt de taak afgebroken als deze een van de opgegeven taken overschrijdt. |
allowed_failed_percent
Vereist
|
Het percentage mislukte minibatches dat tijdens de verwerking moet worden genegeerd. Als het percentage mislukt boven deze waarde komt, wordt de taak afgebroken. Deze drempelwaarde geldt voor de volledige invoer in plaats van voor de afzonderlijke minibatch die is verzonden naar de run()-methode. Het bereik is [0, 100]. 100 of 100.0 geeft aan dat alle fouten tijdens de verwerking worden genegeerd. De controle wordt gestart nadat alle minibatches zijn gepland. Het argument –error_threshold, –allowed_failed_count en –allowed_failed_percent kunnen samenwerken. Als er meer dan één is opgegeven, wordt de taak afgebroken als deze een van de opgegeven taken overschrijdt. |
partition_keys
Vereist
|
De sleutels die worden gebruikt voor het partitioneren van de gegevensset in minibatches. Indien opgegeven, worden de gegevens met dezelfde sleutel gepartitioneerd in dezelfde minibatch. Als zowel partition_keys als mini_batch_size zijn opgegeven, treedt er een fout op. Het moet een lijst met str-elementen zijn die elk een sleutel zijn die wordt gebruikt om de invoergegevensset te partitioneren. Als u echter wordt gepromoveerd naar PipelineParameter, moeten de standaardwaarden de json-dump-str van de lijst zijn, omdat het lijsttype momenteel niet wordt ondersteund in PipelineParameter. De invoer(en) moeten gepartitioneerde gegevenssets zijn en de partition_keys moet een subset van de sleutels van elke invoergegevensset zijn om dit te laten werken. |
environment_variables
Vereist
|
Een woordenlijst met namen en waarden van omgevingsvariabelen. Deze omgevingsvariabelen worden ingesteld voor het proces waarin het gebruikersscript wordt uitgevoerd. |
Opmerkingen
De klasse ParallelRunConfig wordt gebruikt om configuratie voor de ParallelRunStep klasse te bieden. ParallelRunConfig en ParallelRunStep kunnen samen worden gebruikt voor het parallel verwerken van grote hoeveelheden gegevens. Veelvoorkomende toepassingen zijn het trainen van een ML-model of het uitvoeren van offline deductie om voorspellingen te genereren voor een batch van waarnemingen. Bij ParallelRunStep worden uw gegevens opgedeeld in batches die parallel worden verwerkt. De batchgrootte, het aantal knooppunten en andere instelbare parameters om uw parallelle verwerking te versnellen, kunnen worden beheerd met de ParallelRunConfig klasse . ParallelRunStep kan werken met TabularDataset of FileDataset als invoer.
ParallelRunStep en ParallelRunConfig gebruiken:
Maak een ParallelRunConfig -object om op te geven hoe batchverwerking wordt uitgevoerd, met parameters voor het beheren van de batchgrootte, het aantal knooppunten per rekendoel en een verwijzing naar uw aangepaste Python-script.
Maak een ParallelRunStep-object dat gebruikmaakt van het object ParallelRunConfig en de invoer en uitvoer voor de stap definieert.
Gebruik het geconfigureerde ParallelRunStep-object in een Pipeline , net als bij andere typen pijplijnstappen.
In de volgende artikelen worden voorbeelden besproken van het werken met de klassen ParallelRunStep en ParallelRunConfig voor batchdeductie:
Zelfstudie: Een Azure Machine Learning-pijplijn maken voor batchscores. In dit artikel wordt beschreven hoe u deze twee klassen gebruikt voor asynchrone batchscores in een pijplijn en hoe u een REST-eindpunt activeert om de pijplijn uit te voeren.
Batchdeductie uitvoeren voor grote hoeveelheden gegevens met Azure Machine Learning. In dit artikel wordt beschreven hoe u grote hoeveelheden gegevens asynchroon en parallel verwerkt met een aangepast deductiescript en een vooraf getraind model voor afbeeldingsclassificatie voor de MNIST-gegevensset.
from azureml.pipeline.steps import ParallelRunStep, ParallelRunConfig
parallel_run_config = ParallelRunConfig(
source_directory=scripts_folder,
entry_script=script_file,
mini_batch_size="5", # or partition_keys=["key1", "key2"], which is another way to partition the
# input to mini-batches, refer to the parameter description for details
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
run_max_try=3,
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
)
Zie het notebook https://aka.ms/batch-inference-notebooksvoor meer informatie over dit voorbeeld.
Methoden
load_yaml |
Configuratiegegevens van parallelle uitvoering laden vanuit een YAML-bestand. |
save_to_yaml |
Exporteer configuratiegegevens voor parallelle uitvoering naar een YAML-bestand. |
load_yaml
Configuratiegegevens van parallelle uitvoering laden vanuit een YAML-bestand.
static load_yaml(workspace, path)
Parameters
Name | Description |
---|---|
workspace
Vereist
|
De werkruimte waaruit de configuratiegegevens moeten worden gelezen. |
path
Vereist
|
Het pad waaruit de configuratie moet worden geladen. |
save_to_yaml
Exporteer configuratiegegevens voor parallelle uitvoering naar een YAML-bestand.
save_to_yaml(path)
Parameters
Name | Description |
---|---|
path
Vereist
|
Het pad om het bestand op te slaan. |