使用已启用 AI 网关的推理表监视服务的模型

重要说明

此功能目前以公共预览版提供。

重要说明

本文介绍适用于外部模型、预配吞吐量工作负荷或代理模型的推理表的主题。 有关 自定义模型的信息,请参阅 推理表,以用于监视和调试模型。

本文介绍支持 AI 网关的推理表,用于监视服务模型。 推理表会自动捕获终结点的传入请求和传出响应,并将其记录为 Unity 目录 Delta 表。 可以使用此表中的数据来监视、评估、比较和微调机器学习模型。

什么是已启用 AI 网关的推理表?

启用了 AI 网关的推理表通过持续记录来自马赛克 AI 模型服务终结点的请求输入和响应(预测),并将其保存到 Unity 目录中的 Delta 表,从而简化模型的监视和诊断。 然后,可以使用 Databricks 平台的所有功能,例如 Databricks SQL 查询和笔记本来监视、调试和优化模型。

可以在现有或新创建的模型服务终结点上启用推理表,然后会自动将该终结点的请求记录到 Unity 目录中的表。

推理表的一些常见应用程序如下:

  • 创建训练库。 通过将推理表与地面真实标签联接,可以创建一个训练库,可用于重新训练或微调和改进模型。 使用 Databricks 任务,您可以建立一个持续反馈循环并自动化重新训练过程。
  • 监视数据和模型质量。 可以使用 Lakehouse Monitoring 持续监视模型性能和数据偏移。 Lakehouse Monitoring 自动生成可与利益干系人共享的数据和模型质量仪表板。 此外,还可以启用警报,了解何时需要根据传入数据的变化重新训练模型,或减少模型性能。
  • 调试生产问题。 推理表记录的数据包括 HTTP 状态代码、请求和响应的 JSON 代码、模型运行时间,以及模型运行时的 跟踪输出。 可以使用此性能数据进行调试。 还可以使用推理表中的历史数据来比较历史请求的模型性能。

要求

  • 只有使用预配吞吐量或服务外部模型的终结点支持已启用 AI 网关的推理表。

  • 以下任一项中的 Databricks 工作区:

  • 对于在 Unity Catalog 存储帐户上配置了专用连接的工作区,请按照 从无服务器计算环境配置专用连接的步骤进行操作。

  • Databricks 建议 启用预测优化 来优化推理表的性能。

  • 工作区必须启用 Unity Catalog。

  • 终结点创建者和修改者都必须对终结点具有“可管理”权限。 请参阅访问控制列表

  • 终结点创建者和修改者都必须在 Unity Catalog 中具有以下权限

    • 对指定目录的 USE CATALOG 权限。
    • 对指定架构的 USE SCHEMA 权限。
    • 架构中的 CREATE TABLE 权限。

警告

如果执行以下任一操作,推理表可能会停止记录数据或发生损坏:

  • 更改表架构。
  • 更改表名称。
  • 删除表。
  • 失去对 Unity Catalog 目录或架构的权限。

启用和禁用推理表

本部分介绍如何使用服务 UI 启用或禁用推理表。 推理表的所有者是创建终结点的用户。 表上的所有访问控制列表(ACL)都遵循标准 Unity 目录权限,并可由表所有者修改。

若要在创建终结点期间启用推理表,请执行以下步骤:

  1. 在 Databricks Mosaic AI UI 中,单击“服务”
  2. 单击 创建服务终结点
  3. 在“AI 网关”部分中,选择“启用推理表”

还可以在现有终结点上启用推理表。 若要编辑现有终结点配置,请执行以下作:

  1. 在“AI 网关”部分中,单击 编辑 AI 网关
  2. 选择 启用推理表

按照以下说明禁用推理表:

  1. 导航到终结点页。
  2. 单击 编辑 AI 网关
  3. 单击“启用推理表”以移除勾选标记
  4. 对 AI 网关规范感到满意后,再单击“更新”

在推理表中查询和分析结果

服务模型准备就绪后,向模型发出的所有请求及其响应都会自动记录到推理记录表中。 可以在 UI 中查看表、从 Databricks SQL 或笔记本查询表,或使用 REST API 查询表。

若要查看 UI 中的表: 在终结点页面上,单击推断表的名称以在目录资源管理器中打开该表。

指向终结点页上推理表名称的链接

若要从 Databricks SQL 或 Databricks 笔记本查询表: 可以运行类似于以下内容的代码来查询推理表。

SELECT * FROM <catalog>.<schema>.<payload_table>

** 若要将推理表数据与终结点上提供的基础模型的详细信息联接:**基础模型详细信息记录在 system.serving.served_entities 系统表中。

SELECT * FROM <catalog>.<schema>.<payload_table> payload
JOIN system.serving.served_entities se on payload.served_entity_id = se.served_entity_id

已启用 AI 网关的推理表架构

使用 AI 网关启用的推理表具有以下架构:

列名称 说明 类型
request_date 接收模型服务请求的 UTC 日期。 DATE
databricks_request_id 附加到所有模型服务请求的 Azure Databricks 生成的请求标识符。 STRING
request_time 接收请求的时间戳。 TIMESTAMP
status_code 从模型返回的 HTTP 状态代码。 INT
sampling_fraction 向下采样请求时在事件使用的采样分数。 此值介于 0 和 1 之间,其中 1 表示包含了 100% 的传入请求%。 DOUBLE
execution_duration_ms 模型执行推理的时间(以毫秒为单位)。 这不包括开销网络延迟,仅表示模型生成预测所花费的时间。 BIGINT
request 发送到模型服务终结点的原始请求 JSON 正文。 STRING
response 模型服务端点返回的响应 JSON 原始正文。 STRING
served_entity_id 服务实体的唯一 ID。 STRING
logging_error_codes 无法记录数据时发生的错误。 错误代码包括 MAX_REQUEST_SIZE_EXCEEDEDMAX_RESPONSE_SIZE_EXCEEDED ARRAY
requester 对服务终结点的调用请求使用其权限的用户或服务主体的 ID。 STRING

限制

  • 预配的吞吐量工作负荷:

    • 如果创建一个新的使用预配吞吐量的模型服务终结点,则只有已启用 AI 网关的推理表受支持。
    • 如果你有一个使用预配吞吐量的现有模型服务终结点,并且它以前从未配置过推理表,则可以将其更新为使用已启用 AI 网关的推理表。
    • 如果你有一个使用预配吞吐量的现有模型服务终结点,并且它当前或以前配置过推理表,则不可以将其更新为使用已启用 AI 网关的推理表。
    • 对于流式 AI 代理响应日志,仅聚合与 ChatCompletion 兼容的字段和轨迹。
  • 推理表日志传递目前为尽最大努力,但可以预计日志将在请求后的 1 小时内可用。 有关详细信息,请联系 Databricks 帐户团队。

  • 记录的最大请求和响应大小为 1 MiB(1,048,576 字节)。 超过此值的请求和响应有效负载被记录为 null,且 logging_error_codesMAX_REQUEST_SIZE_EXCEEDEDMAX_RESPONSE_SIZE_EXCEEDED填充。

有关特定于 AI 网关的限制,请参阅限制。 有关常规模型服务的终结点限制,请参阅 模型服务限制及地区