Aller au contenu principal

APIs de modèle de fondation avec throughput provisionné

Cet article montre comment déployer des modèles à l'aide du throughput provisionné des APIs de modèle de fondation. Databricks recommande le throughput provisionné pour les workloads de production, et il fournit une inférence optimisée pour les modèles de fondation avec des garanties de performance.

Qu'est-ce que le throughput provisionné ?

Lorsque vous créez un endpoint de mise en 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 mise en service de modèles qui servent des modèles de fondation peuvent être provisionnés par blocs d'unités de modèle. Le nombre d'unités de modèle que vous allouez vous permet d'acheter précisément le throughput requis pour prendre en charge de manière fiable votre application GenAI de 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.

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).

remarque

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 :

  1. Accédez à system.ai dans l'Explorateur de catalogue.
  2. Cliquez sur le nom du modèle à déployer.
  3. Sur la page du modèle, cliquez sur le bouton Serve this model .
  4. La page **Créer un Endpoint de service** s'affiche. Consultez Créer votre Endpoint de throughput provisionné à l'aide de l'interface utilisateur.
remarque

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 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 :

  1. Accédez à l'**interface utilisateur de diffusion** dans votre Workspace.
  2. Sélectionnez Créer un endpoint de service .
  3. 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é .
  4. Dans le menu déroulant **Jusqu'à**, vous pouvez configurer le throughput maximal de jetons par seconde pour votre Endpoint.
    1. 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.

Throughput provisionné

Créez votre endpoint de throughput provisionné à l'aide de l'API REST

Pour déployer votre modèle en mode de throughput provisionné à l'aide de l'API REST, vous devez spécifier les champs min_provisioned_throughput et max_provisioned_throughput dans votre requête. Si vous préférez Python, vous pouvez également créer un endpoint à l'aide du SDK de déploiement MLflow.

Pour identifier la plage appropriée de throughput provisionné pour votre modèle, consultez Obtenir le throughput provisionné par incréments.

Python
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 = {"Context-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))

Probabilité de log pour les tâches d'achèvement de chat

Pour les tâches d'achèvement de chat, vous pouvez utiliser le parameter logprobs pour fournir la probabilité logarithmique d'un jeton échantillonné dans le cadre du processus de génération du grand modèle linguistique. Vous pouvez utiliser logprobs pour une variété de scénarios, y compris la classification, l'évaluation de l'incertitude du modèle et l'exécution de métriques d'évaluation. Consultez l' API Chat Completions pour les détails des paramètres.

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.

Bash
GET api/2.0/serving-endpoints/get-model-optimization-info/{registered_model_name}/{version}

Voici un exemple de réponse de l'API :

JSON
{
"optimizable": true,
"model_type": "llama",
"throughput_chunk_size": 980
}
JSON
{
"optimizable": true,
"model_type": "gte",
"throughput_chunk_size": 980
}

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.