监视模型服务成本

本文提供了使用系统表监视 Azure Databricks 帐户中 Mosaic AI 模型服务终结点成本的示例。

要求

  • 要访问系统表,必须为 Unity Catalog 启用你的工作区。 有关详细信息,请参阅启用系统表架构

计费使用情况系统表 SKU

可使用计费使用情况系统表跟踪 Azure Databricks 中的模型服务成本。 启用计费使用情况系统表后,该表会自动填充 Databricks 帐户中的最新使用情况。 成本显示在 system.billing.usage 表中,其中列 sku_name 为下列其中一项:

sku_name 说明
<tier>_SERVERLESS_REAL_TIME_INFERENCE_LAUNCH_<region> 该 SKU 包括当终结点在缩放到零后开始时应计的所有 DBU。
<tier>_SERVERLESS_REAL_TIME_INFERENCE_<region> 所有其他模型服务成本均分组在此 SKU 下。 其中 tier 对应于 Azure Databricks 平台层,而 region 对应于 Azure Databricks 部署的云区域。

查询和可视化使用情况

可以查询 system.billing.usage 表以聚合与 Mosaic AI 模型服务关联的所有 DBU (Databricks Units)。 下面是一个示例查询,该查询使用 SQL 聚合过去 30 天内每天的模型服务 DBU:


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

成本可观测性仪表板

为便于开始监视模型服务成本,请从 Github 下载示例成本归因仪表板。 请参阅模型服务成本归因仪表板

下载 JSON 文件后,请将仪表板导入工作区。 有关导入仪表板的说明,请参阅导入仪表板文件

如何使用仪表板

此仪表板由 AI/BI 提供支持,需拥有权限才能访问系统表。 它提供了有关工作区级别的服务终结点成本和使用情况的见解。

下列步骤可帮助你入门:

  1. 输入工作区 ID。
  2. 选择开始日期和结束日期。
  3. 在下拉列表中选择特定的终结点名称(如果对特定终结点感兴趣),筛选仪表板。
  4. 另外,如果对终结点使用任何自定义标记,请输入标记密钥。

注意

模型服务对工作区强制实施默认限制,确保不会出现支出失控的情况。 请参阅模型服务限制和区域

可用图表

此仪表板中包含以下图表: 这些是您构建自定义版本的模型服务成本归因仪表板的起点。

  • 过去 7 天最高终结点消耗量
  • 每日 $DBU 使用总量
  • 按终结点类型划分的模型服务成本
    • 按令牌付费
    • CPU/GPU
    • 基础模型
  • 按模型服务类型划分的每日消耗量
  • 成本最高的 10 个服务终结点
  • 成本最高的 10 个按令牌付费终结点
  • LLM 微调过去 7 天支出
  • LLM 微调每封电子邮件支出

使用标记监视成本

起初,聚合成本可能足以观察整体模型服务成本。 但是,随着终结点数的增加,你可能希望根据用例、业务部门或其他自定义标识符来细分成本。 模型服务支持创建自定义标记,这些标记可应用于模型服务终结点。

应用于模型服务终结点的所有自定义标记都会传播到 custom_tags 列下的 system.billing.usage 表,并可用于聚合和可视化成本。 Databricks 建议向每个终结点添加描述性标记,以便精确跟踪成本。

示例查询

成本靠前的终结点:


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;

带标记 ("business_unit":"data science") 的成本随时间推移的变化:


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

其他资源

有关如何监视帐户中作业成本的示例,请参阅使用系统表监视作业成本