AI Functions は、データ変換とエンリッチメントのために、Azure Databricksに格納されているデータに LLM または最先端の研究手法を適用するために使用できる組み込み関数です。 これらは、Databricks SQL、ノートブック、Lakeflow パイプライン、ワークフローから実行できます。
AI Functions は、使いやすく、高速でスケーラブルです。 アナリストはそれらを使用して独自のデータにデータ インテリジェンスを適用できます。一方、データ エンジニア、データ サイエンティスト、機械学習エンジニアは、それらを使用して運用グレードのバッチ パイプラインを構築できます。
AI関数を呼び出すと、クエリはSQLウェアハウス、ノートブック、クラスタ、パイプラインなど、提出元で実行されます。 関数によっては、モデル推論は計算に加えて請求される別々のDatabricks管理インフラ上で動作する場合があります。 「 AI Functionワークロードのコスト表示」を参照してください。
Requirements
- AI関数はクラシックSQLウェアハウスでは利用できません。
- Databricks Runtime 15.4 LTS以上のものが必要です。 最高のパフォーマンスと最新機能へのアクセスのために、Databricks Runtime 18.2以上が推奨されます。
タスク固有および汎用
AI Functions には、タスク固有の汎用関数があります。
- タスク固有の AI 関数 — ドキュメント解析、エンティティ抽出、分類、センチメント分析など、特定のタスク用に最適化された専用の関数。 これらの関数は、Azure Databricksによって管理される、研究支援のシステムによって動作します。 一部の関数には UI エクスペリエンスが含まれます。 サポートされている関数とモデルについては、 タスク固有の AI 関数 を参照してください。
-
ai_query— タスクとモデルの柔軟性のための汎用関数。 プロンプトを表示し、サポートされている Foundation Model API を選択します。 「ai_queryの使用」を参照してください。
組織がアクセスできるタスク固有の AI Functions を制限するには、 AI Functions Unity カタログのアクセス許可を参照してください。
タスク固有の AI 関数
タスク固有の関数は特定のタスクを対象としているため、エンティティの抽出、翻訳、分類などのルーチン変換を自動化できます。 Databricks では、Databricks によって維持される最先端の研究手法を呼び出し、カスタマイズを必要としないため、これらの関数の使用を開始することをお勧めします。
例については、 AI Functions を使用した顧客レビューの分析 を参照してください。
次の関数はタスクごとにグループ化されます。
| 機能 | 説明 |
|---|---|
| ai_parse_document | 最新の研究技術を使用して、非構造化ドキュメントから構造化されたコンテンツ (テキスト、テーブル、図の説明) とレイアウトを解析します。 |
| ai_extract | 定義したスキーマを使用して、ドキュメントまたはテキストから構造化フィールドを抽出します。 |
| ai_classify | 最先端の研究手法を使用して、指定したラベルに従って入力テキストを分類します。 |
| ai_prep_search (ベータ) | 解析された文書やプレーンテキスト、マークダウンを、AI検索やRAGパイプラインに最適化された検索可能なチャンクに変換します。 |
| ai_search (ベータ版) | ランク付けされた重複除去された文書と、1つ以上の知識源に関する自然言語の質問に対する根拠のある回答を取得できます。 |
テキストの変換:
| 機能 | 説明 |
|---|---|
| AIによる文法修正 | 最先端のAIモデルを用いてテキストの文法誤りを修正します。 |
| ai_translate | 最先端のAIモデルを使って、指定されたターゲット言語にテキストを翻訳します。 |
| ai_summarize | SQLと最先端のAIモデルを使ってテキストの要約を生成します。 |
| ai_mask | 最先端のAIモデルを使って、指定されたエンティティをテキスト内でマスクします。 |
テキストの分析:
| 機能 | 説明 |
|---|---|
| AI感情分析 | 最先端のAIモデルを用いて入力テキストの感情分析を行います。 |
| ai_similarity | 2つの文字列を比較し、最先端のAIモデルを使って意味的類似度スコアを計算します。 |
コンテンツを生成します。 カスタム プロンプトまたは特定のモデルについては、「ai_queryを使用する」を参照してください。
| 機能 | 説明 |
|---|---|
| ai_gen | 最先端のAIモデルを使ってユーザー提供のプロンプトに答えましょう。 |
予測時系列:
| 機能 | 説明 |
|---|---|
| ai_forecast | 指定した期間までのデータを予測します。 このテーブル値関数は、時系列データを将来に推定するように設計されています。 |
メトリックの変更を分析する:
| 機能 | 説明 |
|---|---|
| ai_top_drivers (ベータ) | コントロール グループとテスト グループの間のメトリックの変更に最も影響するディメンション値をランク付けします。 |
| 機能 | 説明 |
|---|---|
| vector_search | 最先端のAIモデルを使って AI検索 インデックスを検索し検索・クエリします。 |
運用ワークフローで AI 関数を使用する
大規模なバッチ推論では、タスク固有の AI Functions、または汎用関数 ai_query を、Lakeflow パイプライン、Databricks ワークフロー、構造化ストリーミングなどの運用ワークフローに統合できます。 これにより、大規模な生産グレードの処理が可能になります。
運用環境での AI 関数のベスト プラクティス:
AI Functions がワークロードを大規模に処理できるようにします。 AI Functions は、並列処理、再試行、スケーリングを自動的に管理します。 手動で小さなバッチに分割するのではなく、1 つのクエリで完全なデータセットを送信することをお勧めします。 パフォーマンスは、非常に小さなワークロードから大規模なワークロードに線形的にスケーリングされない場合があります。
Databricks でホストされる基盤モデルを使用する: ai_query AI 関数を使用する場合は、プロビジョニングされたスループットではなく、Databricks でホストされる基盤モデル (プレフィックスとして databricks-) を使用します。 これらのプロビジョニングなしのエンドポイントはフル マネージドであり、バッチ処理に最適です。
例と詳細については、 バッチ推論パイプラインのデプロイ に関するページを参照してください。
AI Functions の進行状況を監視する
完了または失敗した推論の数を理解し、パフォーマンスのトラブルシューティングを行うには、クエリ プロファイル機能を使用して AI Functions の進行状況を監視できます。
Databricks Runtime 16.1 ML 以降では、ワークスペースの SQL エディター クエリ ウィンドウから次の手順を実行します。
- リンクを選択し、[未加工の結果] ウィンドウの下部にある [実行---] を選択します。 右側に パフォーマンス ウィンドウが表示されます。
- [ クエリ プロファイルの表示 ] をクリックして、パフォーマンスの詳細を表示します。
- [ AI クエリ ] をクリックすると、完了した推論と失敗した推論の数、要求の完了にかかった合計時間など、その特定のクエリのメトリックが表示されます。
AI 関数ワークロードのコストを表示する
クエリを実行するコンピュートは常に請求されます。例えばSQLウェアハウスやジョブクラスターなどです。 追加のモデル推論コストが存在するかどうかは、関数によって異なります:
-
タスク固有の関数 (例:
ai_classify、ai_summarize、ai_translate)は、 モデルサービングを通じてDatabricks管理のサーバーレスGPUインフラ上で推論を実行します。 このインフラはあなたがプロビジョニングするわけではありませんが、クエリ計算に加えて請求されます。 -
ai_queryは指定した モデル・サービングエンドポイント に対して請求されます。 Databricksでホストされる基礎モデルのエンドポイントは、タスク固有の関数と同様に請求されます。カスタムモデルおよびプロビジョニングされたスループットエンドポイントは、それぞれ専用のサービング計算で動作し、それに応じて請求されます。 -
ai_forecastとai_top_driversは、これらの送信元となるコンピュート上で完全に実行され、別途推論コストはかかりません。 -
vector_searchDatabricks 管理の AI Search サービスを通じて、AI Search インデックスをクエリします。
AI 関数のコストは、MODEL_SERVING オファリングの種類の下にある BATCH_INFERENCE 製品の一部として記録されます。 クエリの例については、「 バッチ推論ワークロードのコストを表示 する」を参照してください。
注
ai_parse_document、ai_extract、およびai_classifyコストは、AI_FUNCTIONS製品の一部として記録されます。 クエリの例については、「ai_parse_document実行のコストを表示する」を参照してください。
バッチ推論ワークロードのコストを表示する
次の例では、ジョブ、コンピューティング、SQL ウェアハウス、Lakeflow パイプラインに基づいてバッチ推論ワークロードをフィルター処理する方法を示します。
AI Functions を使用するバッチ推論ワークロードのコストを表示する方法の一般的な例については、「 モデル サービス コストの監視」 を参照してください。
Jobs
次のクエリは、 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 宣言型パイプライン
次に、 system.lakeflow.pipelines システム テーブルを使用したバッチ推論に使用されている Lakeflow パイプラインを示します。
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 Warehouse
次に、 system.compute.warehouses システム テーブルを使用したバッチ推論に使用されている SQL ウェアハウスを示します。
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";