活用: ai_query
プレビュー
この機能は現在パブリックプレビュー版です。地域ごとのAIおよび機械学習機能の提供状況については、こちらをご覧ください。
ai_query これは汎用的なAI関数であり、サポートされている任意のAIモデルに対してSQLまたはPythonから直接クエリを実行できます。単一タスク専用に構築され最適化されたタスク固有のAI Functionsとは異なり、 ai_query使用すると、モデル、プロンプト、および権を完全に制御できます。
完全な構文とリファレンスについては、 ai_query function」を参照してください。
いつ使用するか ai_query
Databricksは、目的に合致するタスク固有のAI関数が見つかった場合は、まずその関数から始めることを推奨しています。タスク固有の関数がニーズを満たさない場合は、 ai_query使用してください。例えば、次のような場合:
- プロンプト、モデル、または出力形式をより正確に制御します
- カスタムモデル、ファインチューニングモデル、または外部モデルを照会する
- スループットや品質をさらに最適化するための柔軟性が必要
ベストプラクティス
- Databricksでホストされているモデルを使用してください。 プロビジョニングされたスループットエンドポイントの代わりに、Databricksがホストする基盤モデルエンドポイント(
databricks-で始まるもの)を使用してください。これらのエンドポイントはフルマネージドであり、プロビジョニングや構成を必要とせずに自動的に拡張されます。 - バッチ推論に最適化されたモデルを選択してください。 Databricksは、高スループットのバッチワークロード向けに特定のモデルを最適化します。最適化されていないモデルを使用すると、スループットが減少し、ジョブの完了時間が長くなる可能性があります。 バッチ処理に最適化されたモデルの全リストについては、 「サポートされているモデル」を参照してください。
- データセット全体を単一のクエリで送信してください。 AI Functions並列処理、再試行、スケーリングを自動的に処理します。 データを手動で小さなバッチに分割すると、スループットが低下する可能性があります。
- ワークロードが大きい場合は、
failOnErrorからfalseに設定してください。 これにより、処理が失敗した行についてはジョブが完了してエラーメッセージが返されるため、データセット全体を再処理することなく、正常な結果を保持できます。
対応モデル
ai_query Databricksホスト型モデル、プロビジョニング済みスループットモデル、カスタムモデル、および外部モデルをサポートします。
次の表は、サポートされているモデル タイプ、関連モデル、およびそれぞれのモデルサービング エンドポイント構成要件をまとめたものです。
Type | 説明 | 対応モデル | 要件 |
|---|---|---|---|
Databricksでホストされているモデル | Databricks はこれらの基盤モデルをホストし、 | Mosaic AI Model Servingでサポートされる基盤モデル」を参照してください。 これらのモデルは、バッチ推論と本番運用ワークフローを開始するためにサポートされ、最適化されています。
他のDatabricksホスト モデルはAI Functionsで使用できますが、大規模なバッチ推論本番運用ワークフローには推奨されません。 これらの他のモデルは、基盤モデルAPIsによる単位の従量課金を使用して推論に利用できるようになります。 | この機能を使用するには、Databricks Runtime 15.4 LTS以降が必要です。エンドポイントのプロビジョニングや設定は不要です。これらのモデルの使用は、適用されるモデル利用規約およびAI Functions地域的な利用可能性に従うものとします。 |
プロビジョニングされたスループットモデル | AI Functionsモデルサービングに展開されたプロビジョニング スループット モデルと連携します。 |
|
|
カスタムモデルと外部モデル | 独自のカスタムモデルや外部モデルを持ち込んで、 AI Functionsを使用してクエリを実行できます。 AI Functionsは柔軟性を備えているため、リアルタイム推論やバッチ推論のシナリオに合わせてモデルをクエリできます。 |
|
|
プラットフォームモデルではai_queryを使用します
次の例は、Databricks でホストされている基盤モデルでai_queryを使用する方法を示しています。
- 構文の詳細と問題については、
ai_query関数を参照してください。 - マルチモーダル入力クエリの例については、 「マルチモーダル入力」を参照してください。
- 次のような高度なユースケースに合わせて を構成する方法については、高度なシナリオの例を参照してください。
- エラーを処理するには
failOnError - Databricksの構造化出力に関するドキュメントでは、クエリ応答の構造化出力を指定する方法について説明しています。
- エラーを処理するには
- SQL
- Python
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;
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 従来のMLモデルに加え、完全カスタムモデルもサポートしています。 これらのモデルは、モデルサービングエンドポイントにデプロイする必要があります。構文の詳細と問題については、 ai_query function」を参照してください。
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モデルのバッチ推論の例を示しています。