Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette page explique comment déployer des modèles à l’aide du Foundation Model APIs avec un débit provisionné à la demande.
Qu’est-ce que le débit provisionné à la demande ?
Lorsque vous créez un modèle de débit provisionné servant le point de terminaison sur Azure Databricks, vous allouez une capacité d’inférence dédiée pour garantir un débit cohérent pour le modèle de base que vous souhaitez servir. Les points de terminaison de service de modèle qui servent les modèles de base peuvent être provisionnés en blocs d’unités de modèle. Le nombre d’unités de modèle que vous allouez vous permet d’acheter exactement le débit nécessaire pour prendre en charge de manière fiable votre application IA de production.
Le débit provisionné à la demande n’a pas d’engagement à terme. Vous payez pour la capacité que vous allouez et pouvez la modifier ou la retirer à tout moment.
Pour obtenir la liste des architectures de modèle prises en charge pour les points de terminaison de débit approvisionnés, consultez les modèles de base pris en charge sur Model Serving.
Si vous n’avez pas besoin de capacité dédiée, Databricks recommande le paiement par jeton prioritaire pour les API Foundation Model.
Spécifications
Consultez Spécifications.
[Recommandé] Déployer des modèles de base à partir du catalogue Unity
Databricks recommande d’utiliser les modèles de base préinstallés dans le catalogue Unity. Vous trouverez ces modèles sous le catalogue system dans le schéma ai (system.ai).
Note
Si votre organisation utilise des autorisations de catalogue Unity de modèle de base pour restreindre l’accès au modèle, les points de terminaison de débit approvisionnés pour les modèles non autorisés doivent être supprimés manuellement.
Pour déployer un modèle de base :
- Accédez à
system.aidans l’Explorateur de catalogues. - Cliquez sur le nom du modèle à déployer.
- Sur la page du modèle, cliquez sur le bouton Servir ce modèle.
- La page Créer un point de terminaison de service s’affiche. Consultez pour créer votre point de terminaison de débit provisionné à l’aide de l’interface utilisateur.
Note
Pour déployer un modèle Meta Llama à partir de system.ai dans Unity Catalog, vous devez choisir la version applicable Instruct. Les versions de base des modèles Meta Llama ne sont pas prises en charge pour le déploiement à partir du system.ai Unity Catalog. Consultez les Modèles Foundation hébergés sur les variantes de modèle Meta Llama prises en charge par Databricks.
Créer votre point de terminaison avec débit provisionné en utilisant l’interface utilisateur
Une fois le modèle enregistré dans Unity Catalog, créez un point de terminaison de service avec débit provisionné en procédant comme suit :
- Accédez à l’interface utilisateur de service dans votre espace de travail.
- Sélectionnez Créer un point de terminaison de mise en service.
- Dans le champ Entité, sélectionnez votre modèle dans le catalogue Unity. Pour les modèles éligibles, l’interface utilisateur de l’entité servie affiche l’écran Débit provisionné.
- Dans la liste déroulante jusqu’à, vous pouvez configurer le nombre maximal de jetons par seconde pour votre point de terminaison.
- Les points de terminaison de débit provisionné évoluent automatiquement, vous pouvez donc sélectionner Modifier pour afficher le nombre minimum de jetons par seconde auquel votre point de terminaison peut être réduit.
Créer votre point de terminaison de débit alloué à l’aide de l’API REST
La requête d’API REST visant à créer un endpoint de débit approvisionné dépend du fait que le modèle de base mesure la capacité en paliers de débit ou en unités de modèle. Pour déterminer quelle mesure s’applique à votre modèle, voir Unités modèle en débit provisionné.
Si vous préférez Python, vous pouvez également créer un point de terminaison à l’aide du kit de développement logiciel (SDK) de déploiement MLflow.
L’exemple suivant crée un point de terminaison pour un modèle de fondation qui utilise des bandes de débit. Pour ces modèles, vous devez spécifier les min_provisioned_throughput champs et max_provisioned_throughput dans votre demande. Pour identifier la plage appropriée de débit provisionné pour votre modèle, consultez Obtenir le débit approvisionné par incréments.
import requests
import json
# Set the name of the MLflow endpoint
endpoint_name = "prov-throughput-endpoint"
# Name of the registered MLflow model
model_name = "ml.llm-catalog.foundation-model"
# Get the latest version of the MLflow model
model_version = 3
# Get the API endpoint and token for the current notebook context
API_ROOT = "<YOUR-API-URL>"
API_TOKEN = "<YOUR-API-TOKEN>"
headers = {"Content-Type": "text/json", "Authorization": f"Bearer {API_TOKEN}"}
optimizable_info = requests.get(
url=f"{API_ROOT}/api/2.0/serving-endpoints/get-model-optimization-info/{model_name}/{model_version}",
headers=headers).json()
if 'optimizable' not in optimizable_info or not optimizable_info['optimizable']:
raise ValueError("Model is not eligible for provisioned throughput")
chunk_size = optimizable_info['throughput_chunk_size']
# Minimum desired provisioned throughput
min_provisioned_throughput = 2 * chunk_size
# Maximum desired provisioned throughput
max_provisioned_throughput = 3 * chunk_size
# Send the POST request to create the serving endpoint
data = {
"name": endpoint_name,
"config": {
"served_entities": [
{
"entity_name": model_name,
"entity_version": model_version,
"min_provisioned_throughput": min_provisioned_throughput,
"max_provisioned_throughput": max_provisioned_throughput,
}
]
},
}
response = requests.post(
url=f"{API_ROOT}/api/2.0/serving-endpoints", json=data, headers=headers
)
print(json.dumps(response.json(), indent=4))
L’exemple suivant crée un point d’extrémité pour un modèle de fondation qui utilise des unités de modèle. Pour ces modèles, vous spécifiez le provisioned_model_units champ dans votre requête et envoyez la requête POST au /api/2.0/serving-endpoints/pt point de terminaison.
import requests
import json
# Set the name of the provisioned throughput endpoint
endpoint_name = "prov-throughput-endpoint"
# Name of the foundation model
model_name = "system.ai.gpt-oss-120b"
# Get the latest version of the foundation model
model_version = 1
# Get the API endpoint and token for the current notebook context
API_ROOT = "<YOUR-API-URL>"
API_TOKEN = "<YOUR-API-TOKEN>"
headers = {"Content-Type": "text/json", "Authorization": f"Bearer {API_TOKEN}"}
optimizable_info = requests.get(
url=f"{API_ROOT}/api/2.0/serving-endpoints/get-model-optimization-info/{model_name}/{model_version}",
headers=headers).json()
if 'optimizable' not in optimizable_info or not optimizable_info['optimizable']:
raise ValueError("Model is not eligible for provisioned throughput")
chunk_size = optimizable_info['model_unit_chunk_size']
# Desired provisioned throughput
desired_model_units = 2 * chunk_size
# Send the POST request to create the serving endpoint
data = {
"name": endpoint_name,
"config": {
"served_entities": [
{
"entity_name": model_name,
"entity_version": model_version,
"provisioned_model_units": desired_model_units,
}
]
},
}
response = requests.post(
url=f"{API_ROOT}/api/2.0/serving-endpoints/pt", json=data, headers=headers
)
print(json.dumps(response.json(), indent=4))
Probabilité d’enregistrement des tâches de fin de conversation
Pour les tâches d’achèvement de conversation, vous pouvez utiliser le paramètre logprobs pour fournir la probabilité logarithmique d’un jeton échantillonné dans le cadre du processus de génération d'un grand modèle de langage. Vous pouvez utiliser logprobs pour divers scénarios, notamment la classification, l’évaluation de l’incertitude du modèle et l’exécution des indicateurs d’évaluation. Voir Chat Completions API pour les détails des paramètres.
Obtenir le débit provisionné par incréments
Le débit approvisionné est disponible par incréments de jetons par seconde, les incréments spécifiques variant selon le modèle. Pour identifier la plage appropriée à vos besoins, Databricks recommande d’utiliser l’API d’informations d’optimisation du modèle au sein de la plateforme.
GET api/2.0/serving-endpoints/get-model-optimization-info/{registered_model_name}/{version}
Voici un exemple de réponse de l’API :
{
"optimizable": true,
"model_type": "llama",
"throughput_chunk_size": 1580
}
Limitation
- Le modèle de déploiement peut échouer en raison de problèmes de capacité du GPU, ce qui entraîne un dépassement du délai d’expiration lors de la création ou de la mise à jour du point de terminaison. Contactez l’équipe de votre compte Databricks afin d’obtenir de l’aide pour la résolution du problème.