Aller au contenu principal

Surveiller les coûts de mise à disposition de modèles

Cet article fournit des exemples d'utilisation des tables système pour surveiller le coût des endpoints Model Serving dans votre compte Databricks.

Exigences

  • Pour accéder aux tables système, votre Workspace doit être activé pour Unity Catalog. Pour plus d'informations, consultez Activer les tables système.

Référence SKU de la table système d'utilisation de la facturation

Vous pouvez suivre les coûts de service de modèle dans Databricks à l'aide de la table système d'utilisation facturable. Une fois la table système d'utilisation de la facturation activée, la table se remplit automatiquement avec la dernière utilisation de votre compte Databricks. Les coûts apparaissent dans la table system.billing.usage avec la colonne sku_name comme l'un des éléments suivants :

sku_name

Description

<tier>_SERVERLESS_REAL_TIME_INFERENCE_LAUNCH_<region>

Ce SKU inclut toutes les DBU accumulées lorsqu'un Endpoint start après une mise à l'échelle à zéro.

<tier>_SERVERLESS_REAL_TIME_INFERENCE_<region>

Tous les autres coûts de service de modèle sont regroupés sous ce SKU. Où tier correspond au niveau de votre plateforme Databricks et region correspond à la région cloud de votre déploiement Databricks.

sku_name

Description

<tier>_SERVERLESS_REAL_TIME_INFERENCE_LAUNCH_<region>

Ce SKU inclut toutes les DBU accumulées lorsqu'un Endpoint start après une mise à l'échelle à zéro.

<tier>_SERVERLESS_REAL_TIME_INFERENCE_<region>

Tous les autres coûts de service de modèle sont regroupés sous ce SKU. Où tier correspond au niveau de votre plateforme Databricks et region correspond à la région cloud de votre déploiement Databricks.

Query et visualiser l'utilisation

Vous pouvez query la table system.billing.usage pour agréger toutes les DBU (Databricks Units) associées au Model Serving. Voici un exemple de query qui agrège les DBU de Model Serving par jour pour les 30 derniers jours à l'aide de SQL :

SQL

SELECT SUM(usage_quantity) AS model_serving_dbus,
usage_date
FROM system.billing.usage
WHERE sku_name LIKE '%SERVERLESS_REAL_TIME_INFERENCE%'
GROUP BY(usage_date)
ORDER BY usage_date DESC

LIMIT 30

Utilisation des charges de travail d’inférence par batch

Vous pouvez interroger la table system.billing.usage afin d'isoler les DBU (Databricks Units) qui ont été utilisés pour les charges de travail d'inférence par lots.

SQL

SELECT *
FROM system.billing.usage u
WHERE u.workspace_id = <workspace_id>
AND u.billing_origin_product = "MODEL_SERVING"
AND u.product_features.model_serving.offering_type = "BATCH_INFERENCE"

Pour obtenir la liste de tous les endpoints de service de modèles qui gèrent des charges de travail d'inférence par batch, utilisez la commande suivante :

SQL

SELECT DISTINCT(usage_metadata.endpoint_name)
FROM system.billing.usage
WHERE u.workspace_id = <workspace_id>
AND u.billing_origin_product = "MODEL_SERVING"
AND u.product_features.model_serving.offering_type = "BATCH_INFERENCE";

Consultez Afficher les coûts des workloads d'inférence par batch pour des exemples supplémentaires.

Tableau de bord d’observabilité des coûts

Pour vous aider à start le monitoring de vos coûts de déploiement de modèle, download l'exemple de tableau de bord d'attribution des coûts depuis GitHub. Consultez le tableau de bord d'attribution des coûts de Model Serving.

Après avoir download le fichier JSON, importez le tableau de bord dans votre workspace. Pour obtenir des instructions sur l'importation de tableaux de bord, consultez Importer un fichier de tableau de bord.

Comment utiliser ce tableau de bord

Ce tableau de bord est alimenté par AI/BI et vous devez avoir accès aux tables système. Il fournit des insights sur les coûts et l'utilisation de vos Endpoint de service au niveau du Workspace.

Les étapes suivantes vous permettent de start :

  1. Saisissez l'ID du workspace.
  2. Sélectionnez la date de start et la date de fin.
  3. Filtrez le tableau de bord en sélectionnant le nom d'endpoint spécifique dans la liste déroulante (si vous êtes intéressé par un endpoint particulier).
  4. Séparément, saisissez la clé de tag si vous utilisez des tags personnalisés pour votre Endpoint.

Vous pouvez également utiliser des budgets pour gérer les alertes.

remarque

Model Serving applique des limites par default au workspace pour s'assurer qu'il n'y a pas de dépenses excessives. Voir les limites et les régions de Model Serving.

Graphiques que vous pouvez utiliser

Les graphiques suivants sont inclus dans ce tableau de bord. Ceux-ci sont censés être un point de départ pour que vous puissiez créer votre propre version personnalisée du tableau de bord d'attribution des coûts de service de modèle.

  • Consommation principale d'Endpoint des 7 derniers jours

  • Utilisation quotidienne totale de DBU

  • Coûts de Model Serving par type d'Endpoint

    • Paiement par jeton
    • CPU/GPU
    • Modèle de fondation
  • Consommation quotidienne par type de Model Serving

  • Les 10 Endpoint de service les plus coûteux

  • Les 10 Endpoint de paiement par jeton les plus coûteux

  • Affinement des LLM : Dépenses des 7 derniers jours

  • Dépenses d'affinement de LLM par e-mail

Utilisez des tags pour surveiller les coûts

Initialement, les coûts agrégés pourraient être suffisants pour observer les coûts globaux de Model Serving. Cependant, à mesure que le nombre d'Endpoints augmente, vous pourriez vouloir ventiler les coûts en fonction du cas d'utilisation, de l'unité commerciale ou d'autres identifiants personnalisés. La diffusion de modèles prend en charge la création de balises personnalisées qui peuvent être appliquées à vos Endpoint de diffusion de modèles.

Tous les tags personnalisés appliqués aux Endpoint de service de modèles se propagent à la table system.billing.usage sous la colonne custom_tags et peuvent être utilisés pour agréger et visualiser les coûts. Databricks recommande d'ajouter des étiquettes descriptives à chaque Endpoint pour un suivi précis des coûts.

Exemples de requêtes

Principaux Endpoint par coût :

SQL

SELECT
usage_metadata.endpoint_name AS endpoint_name,
SUM(usage_quantity) AS model_serving_dbus
FROM
system.billing.usage
WHERE
sku_name LIKE '%SERVERLESS_REAL_TIME_INFERENCE%'
AND usage_metadata.endpoint_name IS NOT NULL
GROUP BY endpoint_name
ORDER BY model_serving_dbus DESC
LIMIT 30;

Coût avec des tags (« business_unit » : « data science ») au fil du temps :

SQL

SELECT
SUM(usage_quantity) AS model_serving_dbus,
usage_date
FROM
system.billing.usage
WHERE sku_name LIKE '%SERVERLESS_REAL_TIME_INFERENCE%'
AND custom_tags['business_unit'] = 'data science'
GROUP BY usage_date
ORDER BY usage_date DESC

LIMIT 30

Ressources supplémentaires

Pour des exemples sur la façon de surveiller le coût des Jobs dans votre compte, consultez Surveiller les coûts et les performances des Jobs avec les tables système.