APIs de modèle de fondation avec throughput provisionné
Cette page explique comment déployer des modèles à l'aide du throughput provisionné des APIs de modèle de fondation.
Qu'est-ce que le throughput provisionné ?
Lorsque vous créez un endpoint de service de modèle de throughput provisionné sur Databricks, vous allouez une capacité d'inférence dédiée pour assurer un throughput constant pour le modèle de fondation que vous souhaitez servir. Les Endpoint de service de modèle qui servent des modèles de fondation peuvent faire l’objet d’un provisionnement par blocs d'unités de modèle. Le nombre d'unités de modèle que vous allouez vous permet d'acheter exactement le throughput nécessaire pour prendre en charge de manière fiable votre application d'IA en production.
Pour une liste des architectures de modèles prises en charge pour les endpoints de throughput provisionné, consultez Modèles de fondation pris en charge sur Model Serving.
Si vous n'avez pas besoin de capacité dédiée, Databricks recommande les API Foundation Model avec paiement par jeton prioritaire.
Exigences
Consultez Exigences.
[Recommandé] Déployer des modèles de fondation à partir de Unity Catalog
Databricks recommande d'utiliser les modèles de base qui sont préinstallés dans Unity Catalog. Vous trouverez ces modèles sous le catalogue system dans le schéma ai (system.ai).
Si votre organisation utilise les autorisations Unity Catalog des modèles de fondation pour restreindre l'accès aux modèles, les Endpoints de throughput provisionné pour les modèles non autorisés doivent être supprimés manuellement.
Pour déployer un modèle de fondation :
- Accédez à
system.aidans l'Explorateur de catalogue. - Cliquez sur le nom du modèle à déployer.
- Sur la page du modèle, cliquez sur le bouton Serve this model .
- La page **Créer un Endpoint de service** s'affiche. Consultez Créer votre Endpoint de throughput provisionné à l'aide de l'interface utilisateur.
Pour déployer un modèle Meta Llama à partir de system.ai dans Unity Catalog, vous devez choisir la version Instruct applicable. Les versions de base des modèles Llama Meta ne sont pas prises en charge pour le déploiement à partir de Unity Catalog. Consultez les modèles de fondation hébergés sur Databricks pour connaître les variantes de modèles Meta Llama prises en charge.
Créez votre endpoint de throughput provisionné à l'aide de l'interface utilisateur
Une fois le modèle journalisé dans Unity Catalog, créez un endpoint de service de throughput provisionné en suivant les étapes suivantes :
- Accédez à l'**interface utilisateur de diffusion** dans votre Workspace.
- Sélectionnez Créer un endpoint de service .
- Dans le champ Entité , sélectionnez votre modèle à partir de Unity Catalog. Pour les modèles éligibles, l'interface utilisateur de l'entité servie affiche l'écran Throughput provisionné .
- Dans le menu déroulant **Jusqu'à**, vous pouvez configurer le throughput maximal de jetons par seconde pour votre Endpoint.
- Les endpoints de throughput provisionné montent en charge automatiquement, de sorte que vous pouvez sélectionner **Modifier** pour afficher le nombre minimal de jetons par seconde jusqu'où votre endpoint peut réduire son échelle.

Créez votre endpoint de throughput provisionné à l'aide de l'API REST
La requête API REST pour créer un endpoint de throughput provisionné dépend de la mesure de la capacité du modèle de fondation, en bandes de throughput ou en unités de modèles. Pour déterminer quelle mesure s'applique à votre modèle, consultez Unités de modèles dans le throughput provisionné.
Si vous préférez Python, vous pouvez également créer un endpoint à l'aide du SDK de déploiement MLflow.
L'exemple suivant crée un endpoint pour un modèle de fondation qui utilise des bandes de throughput . Pour ces modèles, vous devez spécifier les champs min_provisioned_throughput et max_provisioned_throughput dans votre requête. Pour identifier la plage de throughput provisionné adaptée à votre modèle, consultez Obtenir un throughput provisionné 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 endpoint pour un modèle de fondation qui utilise des unités de modèles . Pour ces modèles, vous spécifiez le champ provisioned_model_units dans votre requête et envoyez la requête POST à l'endpoint /api/2.0/serving-endpoints/pt.
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))
Obtenez un throughput provisionné par incréments
Le débit de provisionnement 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'information d'optimisation de 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 :
Limitation
- Le déploiement du modèle peut échouer en raison de problèmes de capacité GPU, ce qui entraîne un délai d'attente lors de la création ou de la mise à jour de l'endpoint. Adressez-vous à l'équipe de votre compte Databricks pour vous aider à résoudre le problème.