AI Search のコスト管理ガイド

AI Search では、取得用のベクターを格納するインデックスと、クエリを提供するエンドポイントという 2 つのリソースに対して課金されます。 このページでは、次のトピックについて説明します。

  • AI Search インデックスとエンドポイントの基本。
  • 課金と使用状況の監視。
  • 同期モード。
  • コストを最適化するためのベスト プラクティス。

クエリ トラフィックを受信しないインデックスを持つエンドポイントを検索するには、「 未使用の AI 検索エンドポイントを識別する」を参照してください。

Databricks AI Search には、次のものが含まれます。

  • AI 検索インデックス: インデックスには、検索と取得のためのベクターが格納されます。
  • AI 検索エンドポイント: 各エンドポイントは、クエリを提供するための 1 つ以上のインデックスをホストします。 1 つのエンドポイントで複数のインデックスを提供でき、1 つのエンドポイントで最大 50 個のインデックスを提供できます。 多くの場合、1 つのエンドポイントで小規模なワークロードを組み合わせて合計コストを削減できます。

AI Search の価格

Databricks には、次の 2 つのエンドポイント オプションがあります。

  • 標準エンドポイント。 1 つのベクトル検索ユニットは、次元 768 の最大 200 万のベクトル (またはそれに相当するもの) をカバーします。 たとえば、ディメンション 1536 の 100 万のベクトルがある場合、これは 1 つの単位としてもカウントされます。

  • ストレージ最適化エンドポイント。 1 つのベクトル検索ユニットは、次元 768 の最大 6,400 万ベクトル (またはそれに相当するもの) をカバーします。

どちらのオプションでも、各エンドポイントには基本価格があり、サービスされているインデックスの合計サイズに合わせて自動的にスケールアップされます。 インデックスが削除されると、エンドポイントは自動的にスケールダウンされます。 エンドポイントの最小サイズは、1 つのベクター検索単位です。

AI Search エンドポイントは、インデックスが作成された後にのみ課金され、エンドポイントから最後のインデックスが削除されてから 24 時間後にエンドポイントに料金が発生しなくなります。

使用状況とコストを監視する方法

Databricks には、AI Search の使用状況とコストを監視するのに役立つ課金対象の使用状況テーブル、使用状況ダッシュボード、使用状況ポリシーが用意されています。

課金対象の使用状況テーブル

課金対象の使用状況テーブルのクエリの例を次に示します。

WITH all_vector_search_usage AS (
  SELECT *,
         CASE WHEN usage_metadata.endpoint_name IS NULL THEN 'ingest'
              WHEN usage_type = "STORAGE_SPACE" THEN 'storage'
              ELSE 'serving'
         END as workload_type
    FROM system.billing.usage
   WHERE billing_origin_product = 'VECTOR_SEARCH'
),

daily_dbus AS (
  SELECT
    workspace_id,
    cloud,
    usage_date,
    workload_type,
    usage_metadata.endpoint_name as vector_search_endpoint,
    CASE WHEN workload_type = 'serving' THEN SUM(usage_quantity)
         WHEN workload_type = 'ingest' THEN SUM(usage_quantity)
         ELSE null
         END as dbus,
    CASE WHEN workload_type = 'storage' THEN SUM(usage_quantity)
         ELSE null
         END as dsus
  FROM all_vector_search_usage
  GROUP BY 1,2,3,4,5
  ORDER BY 1,2,3,4,5 DESC
)
SELECT * FROM daily_dbus;

課金対象の使用状況テーブルの詳細については、 課金対象の使用状況システム テーブルのリファレンスを参照してください

追加のクエリは、次のノートブック例にあります。

AI Search システムのテーブル、クエリ、ノートブック

ノートブックを入手

使用状況ダッシュボード

AI 検索の使用状況など、コスト 要因に関する分析情報を得るためにインポートできる使用状況ダッシュボードについては、「 使用状況ダッシュボード」を参照してください。

使用ポリシー

使用状況ポリシーを使用すると、管理者はすべてのAzure Databricksサーバーレス製品の課金レコードをグループ化してフィルター処理し、支出を追跡するための専用 UI を提供できます。 AI Search エンドポイントに使用ポリシーを適用する方法については、「 AI Search の使用ポリシー」を参照してください。 使用ポリシーを作成および管理する方法に関する一般的な情報と詳細については、「 サーバーレス使用ポリシーを使用した属性の使用」を参照してください。

インデックス同期コストを管理する方法

インデックスを更新するように構成するには、次の 2 つの方法があります。

  • Triggered Sync: API または Python SDK を呼び出してインデックスの更新をトリガーします。 これは最もコスト効率の高いオプションです。
  • 継続的同期: インデックスは、ほぼリアルタイムの待機時間でソース Delta テーブルからの変更で自動的に更新されます。 同期を処理するためにストリーミング クラスターがプロビジョニングされるため、コストが高くなります。待機時間が数秒のほぼリアルタイムの更新が重要でない場合は、トリガーされた同期を使用してコストを削減することを検討してください。

コスト管理のベスト プラクティス

  • 1 つのエンドポイントでワークロードを結合する: すべてのインデックスで低い QPS が予想される場合は、1 つのエンドポイントでインデックスを組み合わせて、複数のベース エンドポイント コストを回避できます。 詳細については、 AI Search パフォーマンス ガイド を参照してください。
  • 使用状況の監視: システム課金テーブルと組み込みの使用状況ダッシュボードを使用して、容量、使用量、コストを追跡します。 QPS が高い場合は、エンドポイントのコストが増加します。
  • 適切な同期モードを選択します。可能な場合は、継続的同期ではなくトリガーされた同期を使用して、ストリーミング コストを削減します。
  • 未使用のエンドポイントを特定する: クエリ トラフィックを受信しないインデックスを持つエンドポイントでは、サービス コストが引き続き発生します。 監査ログを利用して見つけることができます。 「未使用の AI 検索エンドポイントを識別する」を参照してください。

その他のリソース