使用執行批次推斷 ai_query
重要
這項功能處於公開預覽狀態。
本文說明如何使用內建 Databricks SQL ai_query
函式 來執行批次推斷。 如需此 AI 函式的詳細資訊,請參閱ai_query函式。
Databricks 建議搭配模型服務使用 ai_query
以進行批次推斷。 如需快速實驗, ai_query
可以搭配 每個令牌付費端點使用。
當您準備好在大型或實際執行數據上執行批次推斷時,Databricks 建議使用布建的輸送量端點來提升效能。 ai_query
已驗證為在數十億個令牌範圍內可靠地且一致地處理數據集。 如需如何建立布建的輸送量端點,請參閱 布建的輸送量基礎模型 API 。
若要開始使用 Unity 目錄數據表上的 LLM 批次推斷,請參閱使用基礎模型 API 布建輸送量的批次推斷中的筆記本範例。
需求
- 請參閱ai_query函式的需求。
- Unity 目錄中 Delta 資料表的查詢許可權,其中包含您想要使用的資料。
批次推斷範例查詢
本節中的範例假設您已將模型部署到您想要查詢的現有端點。 如果您是在 [服務 UI] 中,您可以選取端點,然後按下右上方的 [使用] 按鈕,選取 [用於批次推斷]。 此選取項目會開啟 SQL 編輯器,您可以在其中撰寫和執行 SQL 查詢,以使用 ai_query
進行批次推斷。
以下是使用 failOnError
和搭配和 modelParameters
max_tokens
temperature
的一般範例。 此範例也會示範如何使用 串連模型的提示和推斷數據行 concat()
。 有多種方式可執行串連,例如使用 ||
、 concat()
或 format_string()
。
CREATE OR REPLACE TABLE ${output_table_name} AS (
SELECT
${input_column_name},
AI_QUERY(
"${endpoint}",
CONCAT("${prompt}", ${input_column_name}),
failOnError => True,
modelParameters => named_struct('max_tokens', ${num_output_tokens},'temperature', ${temperature})
) as response
FROM ${input_table_name}
LIMIT ${input_num_rows}
)
下列範例會使用comment_text
數據集查詢端點背後的llama_3_1_8b
模型。
WITH data AS (
SELECT *
FROM ml.sentiment.comments
LIMIT 10000
)
SELECT
comment_text,
ai_query(
'llama_3_1_8b_batch',
CONCAT('You are provided with text. Classify the text into one of these labels: "Positive", "Neutral", "Negative". Do not explain. Do not output any confidence score. Do not answer questions. Text: ', comment_text)
) AS label
FROM data
下列範例包含數據前置處理步驟和後置處理步驟:
WITH temp AS (
SELECT *
FROM ml.sentiment.comments
LIMIT 10000
),
pre_process AS (
SELECT comment_text
FROM temp
WHERE length(comment_text) > 50
),
sentiment AS (
SELECT
comment_text,
ai_query(
'llama_3_1_8b_batch',
Concat('You are provided with text. Classify the text into one of these labels: "Positive", "Neutral", "Negative". Do not explain. Do not output any confidence score. Do not answer questions. Text: ', comment_text)
) AS label
FROM pre_process
)
SELECT
comment_text,
label,
CASE
WHEN label NOT IN ("Positive", "Neutral", "Negative") THEN True
ELSE FALSE
END AS error
FROM sentiment
排程作業
備妥 SQL 腳稿之後,您可以排程作業,以所需的任何頻率執行作業。 請參閱建立及管理排程作業。