ai_query
を使用したバッチ LLM 推論の実行
プレビュー
この機能はパブリックプレビュー段階です。
この記事では、組み込み Databricks SQL 関数を使用してバッチ推論を実行する方法ai_query
、 プロビジョニング スループット APIs 基盤モデルを使用するエンドポイントで説明します。 この記事の例とガイダンスは、大規模言語モデル (LLM) を使用して複数の入力を処理するバッチ推論ワークロードに推奨されます。
ai_query
を SQL または PySpark と共に使用して、バッチ推論ワークロードを実行できます。データに対してバッチ推論を実行するには、 ai_query
で次のように指定します。
Unity Catalog の入力テーブルと出力テーブル
プロビジョニングされたスループットエンドポイント名
モデル プロンプトと任意のモデル パラメーター
この AI 関数の詳細については、ai_query 関数 を参照してください。
要件
次のいずれか一つ。
コンピュートサイズ
i3.2xlarge
以上のコンピュート Databricks Runtime 15.4 ML LTS 以上で、ワーカーが2人以上いる万能コンピュート。SQLウェアハウス 中規模以上。
既存のモデルサービング エンドポイント。 プロビジョニング スループット エンドポイントを作成するには、プロビジョニング スループット 基盤モデル APIs を参照してください。
使用するデータを含む Unity Catalog の Delta テーブルに対するクエリ アクセス許可。
テーブルプロパティの
pipelines.channel
を「プレビュー」に設定して、ai_query()
を使用します。 サンプル・ クエリの例を参照してください 。
ai_query
と SQL を使用する
次に、 ai_query
と SQL を使用したバッチ推論の例を示します。 この例には、max_tokens
とtemperature
を含むmodelParameters
が含まれており、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)