使用 ai_query

重要

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

ai_query是一种常规用途AI 函数,可用于直接从 SQL 或Python查询任何受支持的 AI 模型。 与专为单个任务构建和优化的任务特定 AI 函数不同,ai_query 让您可以完全控制模型、提示和参数。

有关完整语法和参数引用,请参阅 ai_query 函数

何时使用 ai_query

Databricks 建议从 任务特定的 AI 函数 开始,当一个与目标匹配时。 当任务特定的函数不满足你的需求时使用 ai_query 。 例如,当您需要时:

  • 更准确地控制提示、模型参数或输出格式
  • 查询自定义、微调或外部模型
  • 需要灵活地进一步优化吞吐量或质量

特定于任务的 AI 函数和ai_query决策树

最佳做法

  • 使用 Databricks 托管的模型。 使用 Databricks 托管的基础模型终结点(前缀为 databricks-),而不是预配的吞吐量终结点。 这些端点完全托管并自动扩展,无需资源准备或配置。
  • 选择针对批处理推理优化的模型。 Databricks 针对高吞吐量批处理工作负荷优化特定模型。 使用非优化模型可能会导致吞吐量降低,作业完成时间更长。 有关批处理优化模型的完整列表,请参阅 支持的模型
  • 在单个查询中提交完整的数据集。 AI 函数会自动处理并行化、重试和缩放。 手动将数据拆分成小批可以减少吞吐量。
  • failOnError设置为false以适应大型工作负荷。 这使作业可以完成并返回失败行的错误消息,因此,无需重新处理整个数据集即可保留成功的结果。

支持的模型

ai_query 支持 Databricks 托管的模型、预配的吞吐量模型、自定义模型和外部模型。

下表汇总了支持的模型类型、关联的模型和为每个模型提供终结点配置要求的模型。

类型 说明 支持的模型 要求
Databricks 托管的模型 Azure Databricks托管这些基础模型,并提供可以使用 ai_query查询的预配置终结点。 请参阅 马赛克 AI 模型服务所支持的基础模型,了解每个模型服务功能支持的具体模型及其在各个区域的可用性。 有关模型服务上支持的基础模型的完整列表,请参阅 马赛克 AI 模型服务 上支持的基础模型。 支持和优化这些模型,以便开始使用批处理推理和生产工作流:
  • databricks-qwen3-next-80b-a3b-instruct
  • databricks-claude-sonnet-4
  • databricks-gpt-oss-20b
  • databricks-gpt-oss-120b
  • databricks-gemma-3-12b
  • databricks-llama-4-maverick
  • databricks-meta-llama-3-3-70b-instruct
  • databricks-meta-llama-3-1-8b-instruct
  • databricks-qwen3-embedding-0-6b
  • databricks-gte-large-en

其他Azure Databricks托管的模型可用于 AI Functions,但不建议大规模批量推理生产工作流。 这些其他模型可通过 基础模型 API 实现按令牌计费的实时推理。
使用此功能需要 Databricks Runtime 15.4 LTS 或更高版本。 不需要终结点预配或配置。 这些模型的使用受 适用的模型术语 和 AI Functions 区域可用性的约束。
预配的吞吐量模型 AI Functions 适用于在模型服务上部署的预配吞吐量模型。
  • 在模型服务上部署的微调后的基础模型
  • 在模型服务上部署的预配吞吐量模型
自定义模型和外部模型 你可以自带自定义模型或外部模型,并使用 AI Functions 对其进行查询。 AI Functions 提供了灵活性,因此你可以查询模型以查找实时推理或批处理推理方案。

ai_query一起使用基础模型

以下示例演示如何将 ai_query 与由 Azure Databricks 托管的基础模型配合使用。

SQL

SELECT text, ai_query(
    "databricks-gpt-oss-120b",
    "Summarize the given text comprehensively, covering key points and main ideas concisely while retaining relevant details and examples. Ensure clarity and accuracy without unnecessary repetition or omissions: " || text
) AS summary
FROM uc_catalog.schema.table;

Python

df_out = df.selectExpr(
  "ai_query('databricks-gpt-oss-120b', CONCAT('Please provide a summary of the following text: ', text), modelParameters => named_struct('max_tokens', 100, 'temperature', 0.7)) as summary"
)
df_out.write.mode("overwrite").saveAsTable('output_table')

示例笔记本:批处理推理和结构化数据提取

以下示例笔记本演示如何使用ai_query将原始非结构化数据转化为有组织且可用的信息,从而进行基本的结构化数据提取自动化过程。 此笔记本还演示了如何利用代理评估,通过地面真实数据来评估准确性。

批处理推理和结构化数据提取笔记本

获取笔记本

与传统 ML(机器学习)模型一起使用ai_query

ai_query 支持包括完全自定义在内的传统机器学习模型。 这些模型必须部署在模型服务终结点上。 有关语法详细信息和参数,请参阅 ai_query 函数

SELECT text, ai_query(
  endpoint => "spam-classification",
  request => named_struct(
    "timestamp", timestamp,
    "sender", from_number,
    "text", text),
  returnType => "BOOLEAN") AS is_spam
FROM catalog.schema.inbox_messages
LIMIT 10

示例笔记本:使用 BERT 进行批处理推理来识别命名实体

以下笔记本显示了使用 BERT 的传统 ML 模型批处理推理示例。

使用 BERT 进行命名实体识别笔记本的批处理推理

获取笔记本