重要
この機能はパブリック プレビュー段階にあります。
この記事では、Azure Databricks AI Functions とサポートされる関数について説明します。
AI 関数とは
AI 関数は、Databricks に格納されているデータに、テキスト翻訳や感情分析などの AI を適用するために使用できる組み込みの関数です。 Databricks SQL、ノートブック、Lakeflow Spark 宣言パイプライン、ワークフローなど、Databricks 上のどこからでも実行できます。
AI Functions は、使いやすく、高速でスケーラブルです。 アナリストはこれらを使用して独自のデータにデータ インテリジェンスを適用できます。一方、データ サイエンティストや機械学習エンジニアは、それらを使用して運用グレードのバッチ パイプラインを構築できます。
AI Functions は、タスク固有の汎用関数を提供します。
- タスク固有の関数は、テキストの要約や翻訳などのタスクに対して高度な AI 機能を提供します。 これらのタスク固有の関数は、Databricks によってホストおよび管理される最先端の生成 AI モデルを利用します。 サポートされている関数とモデルについては、 タスク固有の AI 関数 を参照してください。
-
ai_queryは、任意の種類の AI モデルをデータに適用できる汎用関数です。 汎用関数:ai_queryを参照してください。
タスク固有の AI 関数
タスク固有の関数は特定のタスクを対象としているため、簡単なサマリーやクイック翻訳などの日常的なアクションを自動化できます。 Databricks では、Databricks によって管理されている最先端の生成 AI モデルを呼び出し、カスタマイズを必要としないため、これらの関数を開始することをお勧めします。
例については、 AI Functions を使用した顧客レビューの分析 を参照してください。
次の表に、サポートされている関数と、それらが実行するタスクを示します。
| 機能 | 説明 |
|---|---|
| AI感情分析 | 最先端の生成 AI モデルを使用して、入力テキストに対して感情分析を実行します。 |
| ai_classify | 最先端の生成 AI モデルを使用して、指定したラベルに従って入力テキストを分類します。 |
| ai_extract | 最先端の生成 AI モデルを使用して、テキストからラベルによって指定されたエンティティを抽出します。 |
| AIによる文法修正 | 最先端の生成 AI モデルを使用して、テキストの文法エラーを修正します。 |
| ai_gen | 最先端の生成 AI モデルを使用して、ユーザーが指定したプロンプトに応答します。 |
| ai_mask | 最先端の生成 AI モデルを使用して、指定されたエンティティをテキストでマスクします。 |
| ai_parse_document | 最先端の生成 AI モデルを使用して、構造化されていないドキュメントから構造化コンテンツを抽出します。 |
| ai_similarity | 最先端の生成 AI モデルを使用して、2 つの文字列を比較し、セマンティック類似性スコアを計算します。 |
| ai_summarize | SQL と最先端の生成 AI モデルを使用して、テキストの概要を生成します。 |
| ai_translate | 最先端の生成 AI モデルを使用して、テキストを指定されたターゲット言語に翻訳します。 |
| ai_forecast | 指定した期間までのデータを予測します。 このテーブル値関数は、時系列データを将来に推定するように設計されています。 |
| vector_search | 最先端の生成 AI モデルを使用して 、モザイク AI ベクター検索 インデックスを検索してクエリを実行します。 |
汎用関数: ai_query
ai_query()関数を使用すると、情報の抽出、コンテンツの要約、不正行為の特定、収益の予測など、生成型 AI タスクと従来の ML タスクの両方のデータに任意の AI モデルを適用できます。 構文の詳細とパラメーターについては、 ai_query 関数を参照してください。
次の表は、サポートされているモデルの種類、関連するモデル、および各エンドポイント構成要件に対応するモデルをまとめたものです。
| タイプ | 説明 | サポートされているモデル | 必要条件 |
|---|---|---|---|
| 事前デプロイ済みモデル | これらの基盤モデルは Databricks によってホストされ、 ai_queryを使用してクエリを実行できる構成済みのエンドポイントを提供します。 各モデル サービス機能とそのリージョンの可用性に対してサポートされるモデルについては、 Mosaic AI Model Serving でサポートされている基礎モデルを参照してください。 |
これらのモデルは、バッチ推論と運用ワークフローの使用を開始するためにサポートされ、最適化されています。
他の Databricks でホストされるモデルは、AI Functions で使用できますが、大規模なバッチ推論運用ワークフローには推奨されません。 これらの他のモデルは、 Foundation Model API の従量課金制を使用したリアルタイム推論で使用できます。 |
この機能を使用するには、Databricks Runtime 15.4 LTS 以降が必要です。 エンドポイントのプロビジョニングや構成は必要ありません。 これらのモデルの使用には、 該当するモデル開発者ライセンスと使用条件、 および AI Functions リージョンの可用性が適用されます。 |
| 独自のモデルを持ち込む | 独自のモデルを持ち込み、AI Functions を使用してクエリを実行できます。 AI Functions は柔軟性を備え、モデルに対してクエリを実行してリアルタイム推論またはバッチ推論のシナリオを実行できます。 |
|
|
基礎モデルでai_queryを使用する
次の例では、Databricks によってホストされる基盤モデルを使用して ai_query を使用する方法を示します。
- 構文の詳細とパラメーターについては、
ai_query関数を参照してください。 - マルチモーダル入力クエリの例については、マルチモーダル入力を参照してください。
- 次のような 高度な ユース ケースのパラメーターを構成する方法のガイダンスについては、高度なシナリオの例を参照してください。
-
を使用してエラーを処理する
failOnError - クエリ応答の構造化出力を指定する方法に関する Azure Databricks の構造化出力。
-
を使用してエラーを処理する
SELECT text, ai_query(
"databricks-meta-llama-3-3-70b-instruct",
"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;
ノートブックの例: バッチ推論と構造化データ抽出
次のノートブック例では、 ai_query を使用して基本的な構造化データ抽出を実行し、自動抽出手法を使用して、未加工の非構造化データを整理された使用可能な情報に変換する方法を示します。 このノートブックでは、Mosaic AI エージェント評価を活用し、典拠とする真偽データを使用して精度を評価する方法も示します。
バッチ推論と構造化データ抽出ノートブック
従来の ML モデルで ai_query を使用する
ai_query は、完全にカスタムの ML モデルを含む従来の ML モデルをサポートしています。 これらのモデルは、Model Serving エンドポイントにデプロイする必要があります。 構文の詳細とパラメーターについては、関数関数ai_query参照してください。
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 モデルバッチ推論の例を示しています。
名前付きエンティティ認識ノートブックに BERT を使用したバッチ推論
既存の Python ワークフローで AI 関数を使用する
AI 関数は、既存の Python ワークフローに簡単に統合できます。
次に、 ai_query の出力を出力テーブルに書き込みます。
df_out = df.selectExpr(
"ai_query('databricks-meta-llama-3-3-70b-instruct', 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')
次に、要約されたテキストをテーブルに書き込みます。
df_summary = df.selectExpr("ai_summarize(text) as summary")
df_summary.write.mode('overwrite').saveAsTable('summarized_table')
運用ワークフローで AI 関数を使用する
大規模なバッチ推論の場合は、タスク固有の AI 関数、または汎用関数 ai_query を、Lakeflow Spark 宣言パイプライン、Databricks ワークフロー、構造化ストリーミングなどの運用ワークフローに統合できます。 これにより、大規模な生産グレードの処理が可能になります。 例と詳細については、 バッチ推論パイプラインのデプロイ に関するページを参照してください。
AI Functions の進行状況を監視する
完了または失敗した推論の数を理解し、パフォーマンスのトラブルシューティングを行うには、クエリ プロファイル機能を使用して AI Functions の進行状況を監視できます。
Databricks Runtime 16.1 ML 以降では、ワークスペースの SQL エディター クエリ ウィンドウから次の手順を実行します。
- リンクを選択し、[未加工の結果] ウィンドウの下部にある [実行---] を選択します。 右側に パフォーマンス ウィンドウが表示されます。
- [ クエリ プロファイルの表示 ] をクリックして、パフォーマンスの詳細を表示します。
- [ AI クエリ ] をクリックすると、完了した推論と失敗した推論の数、要求の完了にかかった合計時間など、その特定のクエリのメトリックが表示されます。
AI 関数ワークロードのコストを表示する
AI 関数のコストは、MODEL_SERVING オファリングの種類の下にBATCH_INFERENCE製品の一部として記録されます。 クエリの例については、「 バッチ推論ワークロードのコストを表示 する」を参照してください。
注
ai_parse_documentコストについては、AI_FUNCTIONS製品の一部として記録されます。 クエリの例については、「ai_parse_document実行のコストを表示する」を参照してください。
バッチ推論ワークロードのコストを表示する
次の例は、ジョブ、コンピューティング、SQL ウェアハウス、Lakeflow Spark 宣言パイプラインに基づいてバッチ推論ワークロードをフィルター処理する方法を示しています。
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 Spark 宣言パイプラインを示します。
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";