使用 ai_query
執行批次 LLM 推斷
重要
這項功能處於公開預覽狀態。
本文說明如何使用內建的 Databricks SQL ai_query
函式,搭配使用 Foundation Model API 布建輸送量的端點來執行批次推斷。 本文中的範例和指引建議用於使用大型語言模型 (LLM) 來處理多個輸入的批次推斷工作負載。
您可以使用 ai_query
搭配 SQL 或 PySpark 來執行批次推斷工作負載。 若要對您的資料執行批次推斷,請在 ai_query
中指定下列項目:
- Unity Catalog 輸入資料表和輸出資料表
- 配置的吞吐量端點名稱
- 模型提示和任何模型參數
如需此 AI 函式的詳細資訊,請參閱ai_query函式。
需求
- 基礎模型 API 中支援的工作區。
- 下列其中一項:
- 具有計算大小為
i3.2xlarge
或更大的通用計算,執行 Databricks Runtime 15.4 ML LTS 或更高版本,並至少有兩個工人節點。 - SQL 資料倉儲中型及更大型。
- 具有計算大小為
- 現有的模型服務端點。 請參閱 布建的輸送量基礎模型 API,以建立布建的輸送量端點。
- Unity 目錄中 Delta 資料表的查詢許可權,其中包含您想要使用的資料。
- 將資料表屬性中的
pipelines.channel
設定為 'preview' 以使用ai_query()
。 如需範例查詢,請參閱 範例。
使用 ai_query
和 SQL
以下是使用 ai_query
和 SQL 的批次推斷範例。 此範例包含 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}),
modelParameters => named_struct('max_tokens', ${num_output_tokens},'temperature', ${temperature})
) as response
FROM ${input_table_name}
LIMIT ${input_num_rows}
)
使用 ai_query
和 PySpark
如果您想要使用 Python,您也可以使用 ai_query
和 PySpark 執行批次推斷,如下所示:
df_out = df.selectExpr("ai_query('{endpoint_name}', CONCAT('{prompt}', {input_column_name}), modelParameters => named_struct('max_tokens', ${num_output_tokens},'temperature', ${temperature})) as {output_column_name}")
df_out.write.mode("overwrite").saveAsTable(output_table_name)
使用 Python 的批次推斷範例筆記本
範例筆記本會建立預配置的吞吐量端點,並使用 Python 和 Meta Llama 3.1 70B 模型執行批次 LLM 推理。 它也提供對批次推斷工作負載進行基準測試和建立預配置的吞吐量模型服務端點的指引。