使用
重要
此功能目前以公共预览版提供。
ai_query是一种常规用途AI 函数,可用于直接从 SQL 或Python查询任何受支持的 AI 模型。 与专为单个任务构建和优化的任务特定 AI 函数不同,ai_query 让您可以完全控制模型、提示和参数。
有关完整语法和参数引用,请参阅 ai_query 函数。
何时使用 ai_query
Databricks 建议从 任务特定的 AI 函数 开始,当一个与目标匹配时。 当任务特定的函数不满足你的需求时使用 ai_query 。 例如,当您需要时:
- 更准确地控制提示、模型参数或输出格式
- 查询自定义、微调或外部模型
- 需要灵活地进一步优化吞吐量或质量
最佳做法
- 使用 Databricks 托管的模型。 使用 Databricks 托管的基础模型终结点(前缀为
databricks-),而不是预配的吞吐量终结点。 这些端点完全托管并自动扩展,无需资源准备或配置。 - 选择针对批处理推理优化的模型。 Databricks 针对高吞吐量批处理工作负荷优化特定模型。 使用非优化模型可能会导致吞吐量降低,作业完成时间更长。 有关批处理优化模型的完整列表,请参阅 支持的模型 。
- 在单个查询中提交完整的数据集。 AI 函数会自动处理并行化、重试和缩放。 手动将数据拆分成小批可以减少吞吐量。
- 将
failOnError设置为false以适应大型工作负荷。 这使作业可以完成并返回失败行的错误消息,因此,无需重新处理整个数据集即可保留成功的结果。
支持的模型
ai_query 支持 Databricks 托管的模型、预配的吞吐量模型、自定义模型和外部模型。
下表汇总了支持的模型类型、关联的模型和为每个模型提供终结点配置要求的模型。
| 类型 | 说明 | 支持的模型 | 要求 |
|---|---|---|---|
| Databricks 托管的模型 | Azure Databricks托管这些基础模型,并提供可以使用 ai_query查询的预配置终结点。 请参阅 马赛克 AI 模型服务所支持的基础模型,了解每个模型服务功能支持的具体模型及其在各个区域的可用性。 |
有关模型服务上支持的基础模型的完整列表,请参阅 马赛克 AI 模型服务 上支持的基础模型。 支持和优化这些模型,以便开始使用批处理推理和生产工作流:
其他Azure Databricks托管的模型可用于 AI Functions,但不建议大规模批量推理生产工作流。 这些其他模型可通过 基础模型 API 实现按令牌计费的实时推理。 |
使用此功能需要 Databricks Runtime 15.4 LTS 或更高版本。 不需要终结点预配或配置。 这些模型的使用受 适用的模型术语 和 AI Functions 区域可用性的约束。 |
| 预配的吞吐量模型 | AI Functions 适用于在模型服务上部署的预配吞吐量模型。 |
|
|
| 自定义模型和外部模型 | 你可以自带自定义模型或外部模型,并使用 AI Functions 对其进行查询。 AI Functions 提供了灵活性,因此你可以查询模型以查找实时推理或批处理推理方案。 |
|
|
与ai_query一起使用基础模型
以下示例演示如何将 ai_query 与由 Azure Databricks 托管的基础模型配合使用。
- 有关语法详细信息和参数,请参阅
ai_query函数 。 - 有关 多模式输入查询示例,请参阅多模式输入 。
- 有关如何为高级用例配置参数的指导,请参阅 高级方案的示例 ,例如:
-
使用
failOnError处理错误 - 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 模型批处理推理示例。