Partager via


Configurer l’optimisation du routage sur les points de terminaison de service

Cet article explique comment configurer l’optimisation du routage sur vos points de terminaison de mise en service de modèles ou de mise en service de fonctionnalités et comment les interroger. Les points de terminaison de service optimisés pour le routage réduisent considérablement la latence de surcharge et permettre des améliorations substantielles du débit pris en charge par votre point de terminaison.

L’optimisation du routage est recommandée pour les charges de travail à haut débit ou sensibles à la latence.

Spécifications

  • Pour l’optimisation du routage sur un point de terminaison de mise en service de modèles, consultez Configuration requise.
  • Pour l’optimisation du routage sur un point de terminaison de mise en service de fonctionnalités, consultez Configuration requise.

Activer l’optimisation du routage sur un point de terminaison de service de modèles

Spécifiez le paramètre route_optimized lors de la création du point de terminaison de service du modèle pour configurer votre point de terminaison pour l’optimisation du routage. Vous ne pouvez spécifier ce paramètre que lors de la création du point de terminaison, vous ne pouvez pas mettre à jour les points de terminaison existants pour qu’ils soient optimisés.

POST /api/2.0/serving-endpoints

{
  "name": "my-endpoint",
  "config":{
    "served_entities": [{
      "entity_name": "ads1",
      "entity_version": "1",
      "workload_type": "CPU",
      "workload_size": "Small",
      "scale_to_zero_enabled": true,
    }],
  },
  "route_optimized": true
}

Vous pouvez activer l’optimisation de l’itinéraire pour un point de terminaison dans l’interface utilisateur de mise en service. Si vous utilisez Python, vous pouvez utiliser le notebook suivant pour créer un point de terminaison de mise en service optimisé pour le routage.

Créer un point de terminaison de mise en service optimisé pour le routage à l’aide du notebook Python

Obtenir le notebook

Activer l’optimisation du routage sur un point de terminaison de mise en service de fonctionnalités

Pour utiliser l’optimisation du routage pour la mise en service des fonctionnalités et fonctions, spécifiez le nom complet de la spécification de fonctionnalité dans le champ entity_name pour traiter les demandes de création de point de terminaison. Le entity_version n’est pas nécessaire pour FeatureSpecs.


POST /api/2.0/serving-endpoints

{
  "name": "my-endpoint",
  "config": {
    "served_entities": [
      {
        "entity_name": "catalog_name.schema_name.feature_spec_name",
        "workload_type": "CPU",
        "workload_size": "Small",
        "scale_to_zero_enabled": true
      }
    ]
  },
  "route_optimized": true
}

Interroger des points de terminaison de service optimisés pour le routage de requête

Les étapes suivantes montrent comment tester la requête d’un point de terminaison de mise en service de modèles optimisés pour le routage.

Pour une utilisation en production, comme l’utilisation de votre point de terminaison optimisé pour le routage dans une application, vous devez créer un jeton OAuth. Les étapes suivantes montrent comment extraire un jeton dans l’interface utilisateur de mise en service. Pour les flux de travail programmatiques, consultez Extraire un jeton OAuth par programmation.

  1. Procédez à l’extraction d’un jeton OAuth à partir de l’interface utilisateur de Mise en service de votre espace de travail.
    1. Cliquez sur Mise en service dans la barre latérale pour afficher l’interface utilisateur de mise en service.
    2. Sur la page des points de terminaison de mise en service, sélectionnez votre point de terminaison optimisé pour afficher les détails du point de terminaison.
    3. Dans la page de détails du point de terminaison, cliquez sur le bouton Point de terminaison de requête.
    4. Sélectionnez l’onglet Extraire le jeton.
    5. Sélectionnez le bouton Récupérer le jeton OAuth. Ce jeton est valide pendant 1 jours. Récupérez un nouveau jeton si votre jeton actuel expire.
  2. Obtenez l’URL de votre point de terminaison de mise en service de modèles à partir de la page de détails du point de terminaison, à partir de l’interface utilisateur de Mise en service.
  3. Utilisez le jeton OAuth de l’étape 1 et l’URL du point de terminaison de l’étape 2 pour remplir l’exemple de code suivant qui interroge le point de terminaison optimisé pour le routage.

url="your-endpoint-url"
OAUTH_TOKEN=xxxxxxx

curl -X POST -H 'Content-Type: application/json' -H "Authorization: Bearer $OAUTH_TOKEN" -d@data.json $url

Pour qu’un Kit de développement logiciel (SDK) Python interroge un point de terminaison optimisé pour le routage, contactez votre équipe de compte Databricks.

Extraire un jeton OAuth par programmation

Authentifier l’accès à Azure Databricks avec un principal de service à l’aide d’OAuth (OAuth M2M) fournit des conseils sur la façon de récupérer un jeton OAuth par programmation. En plus de ces étapes, vous devez spécifier authorization_details dans la requête.

  • Remplacez <token-endpoint-URL> par l’URL de point de terminaison du jeton précédent.
  • Remplacez <client-id> par l’ID client du principal de service, également appelé ID d’application.
  • Remplacez <client-secret> par le secret OAuth du principal de service que vous avez créé.
  • Remplacez <endpoint-id> par l’ID de point de terminaison du point de terminaison optimisé pour le routage. Vous pouvez extraire cette valeur à partir de hostName dans l’URL du point de terminaison.
  • Remplacez <action> par l’autorisation d’action donnée au principal de service. L’action peut être query_inference_endpoint ou manage_inference_endpoint.

Par exemple :

      export CLIENT_ID=<client-id>
      export CLIENT_SECRET=<client-secret>
      export ENDPOINT_ID=<endpoint-id>
      export ACTION=<action>

      curl --request POST \
      --url <token-endpoint-URL> \
      --user "$CLIENT_ID:$CLIENT_SECRET" \
      --data 'grant_type=client_credentials&scope=all-apis'
      --data-urlencode 'authorization_details=[{"type":"workspace_permission","object_type":"serving-endpoints","object_path":"'"/serving-endpoints/$ENDPOINT_ID"'","actions": ["'"$ACTION"'"]}]'

Limites

  • L’optimisation de l’itinéraire est disponible uniquement pour les points de terminaison de mise en service de modèles personnalisés et les points de terminaison de mise en service de fonctionnalités. Les API Foundation Model et les modèles externes ne sont pas pris en charge.
  • Les jetons OAuth internes Databricks sont la seule authentification prise en charge pour l’optimisation du routage. Les jetons d’accès personnels ne sont pas pris en charge.
  • L’optimisation du routage n’applique aucune restriction de réseau Private Link que vous avez configurée dans votre espace de travail Azure Databricks. Si vous avez besoin que le trafic de mise en service de modèles soit lié par ces contrôles, n’activez pas l’optimisation du routage. Si vous avez de telles exigences réseau et que vous souhaitez toujours essayer d’acheminer la mise en service de modèles optimisée, contactez votre équipe de compte Databricks.
  • L’optimisation du routage n’est pas disponible dans certaines régions. Si vous ne voyez pas l’option permettant d’activer l’optimisation du routage dans l’interface utilisateur de mise en service, contactez votre équipe de compte Databricks.