AI 函数是内置函数,可用于对存储在Azure Databricks上的数据应用 LLM 或最先进的研究技术,以便进行数据转换和扩充。 它们可以从 Databricks SQL、笔记本、Lakeflow 管道和工作流中运行。
AI 功能使用简单、速度快、可缩放。 分析师可以使用它们将数据智能应用于其专有数据,而数据工程师、数据科学家和机器学习工程师可以使用它们生成生产级批处理管道。
Requirements
- AI 函数在 Pro 或经典 SQL 仓库上不可用。
- 笔记本和工作流:需要 无服务器计算 。 经典计算群集不支持 AI 函数。
- 需要 Databricks Runtime 18.2 或更高版本。
专用于任务和通用用途
AI 函数具有特定任务的函数和通用函数:
- 特定于任务的 AI 函数 - 针对特定任务进行优化的用途构建函数,例如文档分析、实体提取、分类和情绪分析。 这些功能由Azure Databricks托管的研究备份系统提供支持。 某些函数包括 UI 体验。 有关支持的函数和模型,请参阅 特定于任务的 AI 函数 。
-
ai_query— 任务和模型灵活性的常规用途函数。 提供提示并选择任何受支持的基础模型 API。 请参阅 “使用ai_query”。
若要限制组织可以访问哪些特定于任务的 AI 函数,请参阅 AI Functions Unity 目录权限。
特定任务型 AI 功能
特定于任务的函数适用于特定任务,因此可以自动执行例程转换,例如实体提取、翻译和分类。 Databricks 建议这些函数入门,因为它们调用 Databricks 维护的最先进的研究技术,并且不需要任何自定义。
有关示例,请参阅 使用 AI Functions 分析客户评论 。
以下函数按任务分组。
| 功能 | DESCRIPTION |
|---|---|
| ai_parse_document | 使用最先进的研究技术分析非结构化文档的结构化内容(文本、表格、图说明)和布局。 |
| ai_extract | 使用定义的架构从文档或文本中提取结构化字段。 |
| ai_classify | 根据你提供的标签对输入文本进行分类,使用最先进的研究技术。 |
| ai_prep_search (Beta) | 将解析后的文档输出转换为面向 AI 搜索和 RAG 流程优化的可搜索分块。 |
转换文本:
| 功能 | DESCRIPTION |
|---|---|
| ai_fix_grammar | 使用最前沿的生成式 AI 模型,纠正文本中的语法错误。 |
| ai_translate | 使用最前沿的生成式 AI 模型,将文本翻译成指定的目标语言。 |
| ai_summarize | 使用 SQL 和最先进的生成 AI 模型生成文本摘要。 |
| ai_mask | 使用最前沿的生成式 AI 模型,掩码文本中的指定实体。 |
分析文本:
| 功能 | DESCRIPTION |
|---|---|
| ai_analyze_sentiment | 使用最前沿的生成式 AI 模型对输入文本执行情绪分析。 |
| ai_similarity | 使用最前沿的生成式 AI 模型,比较两个字符串并计算出语义相似度分数。 |
生成内容。 有关自定义提示或特定模型,请参阅使用 ai_query:
| 功能 | DESCRIPTION |
|---|---|
| ai_gen | 使用最先进的生成 AI 模型回答用户提供的提示。 |
预测时序:
| 功能 | DESCRIPTION |
|---|---|
| ai_forecast | 预测最远到指定边际的数据。 该 TVF 用于推断未来的时间序列数据。 |
使用 AI 搜索嵌入进行搜索:
| 功能 | DESCRIPTION |
|---|---|
| vector_search | 使用最先进的生成 AI 模型搜索和查询 AI 搜索 索引。 |
在生产工作流中使用 AI 函数
对于大规模批处理推理,可以将特定于任务的 AI 函数或常规用途函数 ai_query 集成到生产工作流中,例如 Lakeflow 管道、Databricks 工作流和结构化流式处理。 这样可实现大规模的生产级处理。
在生产环境中 AI 功能的最佳做法:
让 AI Functions 大规模处理工作负荷: AI Functions 会自动管理并行化、重试和缩放。 建议在单个查询中提交完整的数据集,而不是手动将其拆分为小批。 性能可能不会从非常小的工作负荷线性缩放到大规模工作负荷。
使用 Databricks 托管的基础模型: 使用 ai_query AI 函数时,请使用 Databricks 托管的基础模型(以 databricks 为前缀),而不是预配的吞吐量。 这些无预配终结点是完全托管的,最适合批处理。
有关示例和详细信息,请参阅 “部署批处理推理管道 ”。
监视 AI 函数进度
若要了解有多少推理已完成或失败并排查性能问题,可以使用查询配置文件功能监视 AI Functions 的进度。
在 Databricks Runtime 16.1 ML 及更高版本中,从工作区中的 SQL 编辑器查询窗口:
- 选择链接,正在原始结果窗口底部运行。 性能窗口显示在右侧。
- 点击查看查询配置文件,查看性能详细信息。
- 点击“AI 查询”查看特定查询的指标,其中包括已完成或已失败的推理数量和完成请求花费的总时间。
查看 AI 函数工作负载的成本
AI 函数成本被记录为 MODEL_SERVING 产品类型下的 BATCH_INFERENCE 产品的一部分。 有关示例查询,请参阅 查看批处理推理工作负荷的成本 。
注释
对于 ai_parse_document、ai_extract 和 ai_classify,成本记录为 AI_FUNCTIONS 产品的一部分。 有关示例查询,请参阅查看 ai_parse_document 运行的成本。
查看批处理推理工作负荷的成本
以下示例演示如何基于作业、计算、SQL 仓库和 Lakeflow 管道筛选批处理推理工作负荷。
有关如何查看使用 AI Functions 的批处理推理工作负荷的成本的常规示例,请参阅 Monitor 模型提供服务成本 。
Jobs
以下查询显示了使用 system.workflow.jobs 系统表进行批量推理的作业。 请参阅 使用系统表监视作业成本和性能。
SELECT *
FROM system.billing.usage u
JOIN system.workflow.jobs x
ON u.workspace_id = x.workspace_id
AND u.usage_metadata.job_id = x.job_id
WHERE u.usage_metadata.workspace_id = <workspace_id>
AND u.billing_origin_product = "MODEL_SERVING"
AND u.product_features.model_serving.offering_type = "BATCH_INFERENCE";
计算
下面显示了哪些群集通过系统表 system.compute.clusters 用于批处理推理。
SELECT *
FROM system.billing.usage u
JOIN system.compute.clusters x
ON u.workspace_id = x.workspace_id
AND u.usage_metadata.cluster_id = x.cluster_id
WHERE u.usage_metadata.workspace_id = <workspace_id>
AND u.billing_origin_product = "MODEL_SERVING"
AND u.product_features.model_serving.offering_type = "BATCH_INFERENCE";
Lakeflow Spark 声明性管道
下面显示了哪些 Lakeflow 管道被用于使用 system.lakeflow.pipelines 系统表进行批量推理。
SELECT *
FROM system.billing.usage u
JOIN system.lakeflow.pipelines x
ON u.workspace_id = x.workspace_id
AND u.usage_metadata.dlt_pipeline_id = x.pipeline_id
WHERE u.usage_metadata.workspace_id = <workspace_id>
AND u.billing_origin_product = "MODEL_SERVING"
AND u.product_features.model_serving.offering_type = "BATCH_INFERENCE";
SQL 仓库
下面显示了哪些 SQL 仓库正用于使用系统表进行 system.compute.warehouses 批量推理。
SELECT *
FROM system.billing.usage u
JOIN system.compute.clusters x
ON u.workspace_id = x.workspace_id
AND u.usage_metadata.cluster_id = x.cluster_id
WHERE u.workspace_id = <workspace_id>
AND u.billing_origin_product = "MODEL_SERVING"
AND u.product_features.model_serving.offering_type = "BATCH_INFERENCE";
查看 ai_parse_document 运行的成本
以下示例演示如何查询计费系统表以查看 ai_parse_document 的运行成本。
SELECT *
FROM system.billing.usage u
WHERE u.workspace_id = <workspace_id>
AND u.billing_origin_product = "AI_FUNCTIONS"
AND u.product_features.ai_functions.ai_function = "AI_PARSE_DOCUMENT";