Comprendre et créer des points de terminaison de traitement par lots

Effectué

Pour obtenir un modèle pour générer des prédictions par lots, vous pouvez déployer le modèle sur un point de terminaison de traitement par lots.

Vous allez découvrir comment utiliser des points de terminaison de lot pour le scoring par lots asynchrone.

Prédictions par lots

Pour obtenir des prédictions par lots, vous pouvez déployer un modèle sur un point de terminaison. Un point de terminaison est un point de terminaison HTTPS que vous pouvez appeler pour déclencher un travail de scoring par lots. L’avantage d’un tel point de terminaison est que vous pouvez déclencher le travail de scoring par lots à partir d’un autre service, tel qu’Azure Synapse Analytics ou Azure Databricks. Un point de terminaison batch vous permet d’intégrer le scoring par lots à un pipeline d’ingestion et de transformation de données existant.

Chaque fois que le point de terminaison est appelé, une tâche de calcul par lots est soumise à l'espace de travail Azure Machine Learning. Le travail utilise généralement un cluster de calcul pour évaluer plusieurs entrées. Les résultats peuvent être stockés dans un magasin de données connecté à l’espace de travail Azure Machine Learning.

Créer un point de terminaison de traitement par lots

Pour déployer un modèle sur un point de terminaison par lot, vous devez d'abord créer ce point de terminaison.

Pour créer un point de terminaison de lot, vous allez utiliser la classe BatchEndpoint. Les noms de points de terminaison Batch doivent être uniques dans une région Azure.

Pour créer un point de terminaison, utilisez la commande suivante :

# create a batch endpoint
endpoint = BatchEndpoint(
    name="endpoint-example",
    description="A batch endpoint",
)

ml_client.batch_endpoints.begin_create_or_update(endpoint)

Conseil

Découvrez la documentation de référence pour créer un point de terminaison avec le kit SDK Python v2.

Déployer un modèle sur un point de terminaison de lot

Vous pouvez déployer plusieurs modèles sur un point de terminaison de traitement par lots. Chaque fois que vous appelez le point de terminaison de lot, ce qui déclenche un travail de scoring par lots, le déploiement par défaut est utilisé, sauf indication contraire.

Capture d’écran de la page détails d’un point de terminaison de lot, montrant le déploiement par défaut.

Utiliser des clusters de calcul pour les déploiements par lots

Le calcul idéal à utiliser pour les déploiements par lots est le cluster de calcul Azure Machine Learning. Si vous souhaitez que le travail de scoring par lots traite les nouvelles données dans des lots parallèles, vous devez provisionner un cluster de calcul avec plusieurs instances maximales.

Pour créer un cluster de calcul, vous pouvez utiliser la classe AMLCompute.

from azure.ai.ml.entities import AmlCompute

cpu_cluster = AmlCompute(
    name="aml-cluster",
    type="amlcompute",
    size="STANDARD_DS11_V2",
    min_instances=0,
    max_instances=4,
    idle_time_before_scale_down=120,
    tier="Dedicated",
)

cpu_cluster = ml_client.compute.begin_create_or_update(cpu_cluster)