重要
這項功能處於 公開預覽狀態。
本文說明 Azure Databricks 的人工智慧函式和支援的函式。
什麼是 AI 函式?
AI Functions 是內建的函式,可讓您在儲存在 Databricks 上的數據上套用 AI,例如文字翻譯或情感分析。 它們可以從 Databricks 上的任何位置執行,包括 Databricks SQL、筆記本、Lakeflow Spark 宣告式管線和工作流程。
AI Functions 很容易使用、快速且可調整。 分析師可以使用它們將數據智慧套用至其專屬數據,而數據科學家和機器學習工程師則可使用這些數據來建置生產等級批次管線。
AI 函數提供特定於任務和通用的功能。
- 工作特定函式為摘要文字和翻譯等工作提供高階 AI 功能。 這些特定任務功能由 Databricks 裝載和管理的最先進的生成式人工智慧模型所提供。 如需已支援的功能和模型,請參閱 特定任務的 AI 功能。
-
ai_query是一般用途的函式,可讓您在數據上套用任何類型的 AI 模型。 請參閱 一般用途函式:ai_query。
任務專用的 AI 功能
針對特定任務的函式設計可以自動化例行操作,例如簡化摘要和快速翻譯。 Databricks 建議使用這些函式來開始使用,因為它們會叫用 Databricks 維護的最先進的生成式 AI 模型,而且不需要任何自訂。
如需範例,請參閱 使用 AI Functions 分析客戶評論 。
下表列出支援的函式及其執行的工作。
| 功能 | 說明 |
|---|---|
| ai_analyze_sentiment(AI分析情感) | 使用最先進的產生 AI 模型,對輸入文字執行情感分析。 |
| ai_classify | 根據您提供的標籤,使用最先進的生成式 AI 模型對輸入文字進行分類。 |
| ai_extract | 使用最先進的產生 AI 模型,從文字擷取標籤所指定的實體。 |
| 人工智慧修正語法 | 使用最先進的產生 AI 模型,更正文字中的文法錯誤。 |
| ai_gen | 回答使用者所提供的提示,使用最先進的生成式 AI 模型。 |
| ai_mask | 使用尖端的生成式 AI 模型來遮蓋文字中指定的實體。 |
| ai_parse_document | 使用最先進的產生 AI 模型,從非結構化檔擷取結構化內容。 |
| ai_similarity | 使用最先進的產生 AI 模型,比較兩個字串並計算語意相似度分數。 |
| ai_summarize | 利用 SQL 和最先進的生成 AI 模型來產生摘要。 |
| ai_translate | 使用最先進的產生 AI 模型,將文字翻譯成指定的目標語言。 |
| ai_forecast | 將數據預測到指定的地平線。 此數據表值函式的設計目的是將時間序列數據推斷到未來。 |
| vector_search | 使用最先進的產生 AI 模型來搜尋和查詢 馬賽克 AI 向量搜尋 索引。 |
一般用途函式:ai_query
ai_query() 函式可讓您將任何 AI 模型套用至產生 AI 和傳統 ML 工作的數據,包括擷取資訊、摘要內容、識別詐騙和預測營收。 如需語法詳細數據和參數,請參閱 ai_query 函式。
下表摘要說明支援的模型類型、相關聯的模型,以及針對每個端點組態需求提供服務的模型。
| 類型 | 說明 | 支援的模型 | 需求 |
|---|---|---|---|
| 預先部署的模型 | 這些基礎模型由 Databricks 裝載,並提供預先設定的端點,您可以使用 進行查詢 ai_query。 請參閱 Mosaic AI Model Serving 上支援的基礎模型, 瞭解每個 Model Serving 功能支援哪些模型及其區域可用性。 |
這些模型支援並最佳化,以開始使用批次推論和生產工作流程:
其他 Databricks 裝載的模型可用於 AI Functions 使用,但不建議大規模批次推斷生產工作流程。 這些其他模型可用於使用 基礎模型 API 按代幣付費進行實時推論。 |
需要 Databricks Runtime 15.4 LTS 或更新版本才能使用此功能。 不需要端點布建或設定。 您使用這些模型受限於 適用的模型開發人員授權和條款, 以及 AI Functions 區域可用性。 |
| 自備模型 | 您可以自帶模型並使用 AI 函數進行查詢。 AI Functions 提供彈性,因此您可以查詢即時推論或批次推論案例的模型。 |
|
|
搭配基礎模型使用ai_query
下列範例示範如何使用 Databricks 所裝載的基礎模型來使用 ai_query。
- 如需語法詳細數據和參數,請參閱
ai_query函式 。 - 如需多模態輸入查詢範例,請參閱多模態輸入。
- 請參閱 進階案例範例, 以取得如何設定進階使用案例參數的指引,例如:
-
處理錯誤時使用
failOnError - Azure Databricks 上的結構化輸出,以指導如何指定查詢回應的結構化輸出。
-
處理錯誤時使用
SELECT text, ai_query(
"databricks-meta-llama-3-3-70b-instruct",
"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;
範例筆記本:批次推論和結構化資料擷取
下列範例筆記本示範如何執行基本結構化資料擷取 ai_query ,以透過自動擷取技術將原始、非結構化資料轉換為有組織、可用的資訊。 此筆記本也示範如何利用 Mosaic AI 代理程式評估,使用地面實況資料來評估準確性。
批次推論和結構化資料擷取筆記本
與傳統 ML 模型搭配使用ai_query
ai_query 支援傳統的 ML 模型,包括完全自定義的模型。 這些模型必須部署在模型服務端點上。 如需語法詳細數據和參數,請參閱 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 進行具名實體辨識筆記本的批次推斷
在現有的 Python 工作流程中使用 AI 函式
AI Functions 可以輕鬆地整合到現有的 Python 工作流程中。
下列會將 ai_query 的輸出寫入至輸出資料表:
df_out = df.selectExpr(
"ai_query('databricks-meta-llama-3-3-70b-instruct', 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')
下列將摘要文字寫入表格:
df_summary = df.selectExpr("ai_summarize(text) as summary")
df_summary.write.mode('overwrite').saveAsTable('summarized_table')
在生產工作流程中使用 AI 功能
針對大規模批次推斷,您可以將工作特定的 AI 函式或一般用途函式 ai_query 整合到生產工作流程中,例如 Lakeflow Spark 宣告式管線、Databricks 工作流程和結構化串流。 這可以進行大規模的生產級別處理。 如需範例和詳細資料,請參閱部署批次推論管線。
監控 AI 功能進度
若要瞭解有多少推論已完成或失敗,並針對效能進行疑難排解,您可以使用查詢設定檔功能來監控 AI 函數的進度。
在 Databricks Runtime 16.1 ML 和更新版本中,從工作區中的 SQL 編輯器查詢視窗:
- 在原始結果視窗底部選取連結正在執行---。 效能視窗會出現在右側。
- 按兩下 [查看查詢設定檔 ] 以檢視效能詳細數據。
- 按兩下 [AI 查詢 ] 以查看該特定查詢的計量,包括已完成和失敗的推斷數目,以及要求完成的總時間。
檢視 AI 函數工作負載的成本
AI 功能成本會記錄為MODEL_SERVING產品的一部分,於BATCH_INFERENCE提供類型之下。 如需範例查詢,請參閱 檢視批次推論工作負載的成本 。
備註
因為 ai_parse_document 成本記錄為產品的一部分 AI_FUNCTIONS 。 如需範例查詢,請參閱檢視執行成本ai_parse_document。
檢視批次推論工作負載的成本
下列範例示範如何根據作業、計算、SQL 倉儲和 Lakeflow Spark 宣告式管線來篩選批次推斷工作負載。
請參閱 監控模型服務成本, 以取得如何檢視使用 AI Functions 的批次推論工作負載成本的一般範例。
工作
下列查詢顯示哪些任務正在使用系統資料表進行 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";
Compute
下列顯示哪些叢集正在使用系統資料表進行 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 Spark 宣告式管線正在使用 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";