Mosaic AI Vector Search: コスト管理ガイド
プレビュー
この機能は パブリック プレビュー段階です。
この記事では、 Mosaic AI Vector Searchを使用する際のコストを効果的に管理する方法について説明します。 内容は次のとおりです。
- ベクトル検索インデックスとエンドポイントの基本。
- 請求と使用状況のモニタリング。
- 同期モード。
- コストを最適化するためのベスト プラクティス。
Mosaic AI Vector Search の基本
Mosaic AI Vector Searchは、次のもので構成されています。
- ベクトル検索インデックス: インデックスには、検索と取得のためにベクトルが格納されます。
- ベクトル検索エンドポイント: 各エンドポイントは、クエリを処理するための 1 つ以上のインデックスをホストします。1 つのエンドポイントで複数のインデックスを提供でき、1 つのエンドポイントで最大 50 のインデックスを提供できます。多くの場合、小さなワークロードを 1 つのエンドポイントに組み合わせて、総コストを削減できます。
ベクトル検索の料金体系
1つのベクトル検索ユニットは、次元768(または同等のもの)の最大200万のベクトルをカバーします。たとえば、次元 1536 のベクトルが 100 万個ある場合、それも 1 単位としてカウントされます。各エンドポイントには基本価格があり、配信するインデックスの合計サイズに合わせて自動的にスケールアップされます。ただし、エンドポイントは自動的にスケールダウンされません。ベクトルを削除したり、インデックスのサイズを小さくしたりしても、手動操作を実行するまで、より高い容量に対して支払いが継続されます。
エンドポイントは自動的にスケールダウンされません。ベクトル数が大幅に減少した場合 (たとえば、400 万から 150 万ベクトル)、エンドポイントを削除して新しいエンドポイントを作成するまで、より高い容量 (この例では 2 つのベクトル検索ユニット) に対して引き続き料金が発生します。
使用状況とコストを監視する方法
Databricks には、ベクトル検索の使用状況とコストを監視するのに役立つ課金利用テーブル、使用状況ダッシュボード、および予算ポリシーが用意されています。
課金利用テーブル
以下は、課金利用テーブルのクエリの例です。
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;
課金利用テーブルの詳細については、 課金利用 システムテーブル リファレンスを参照してください。
その他のクエリーは以下のノートブックの例にあります。
ベクトル検索システムテーブルクエリノートブック
使用状況ダッシュボード
ベクトル検索の使用量など、コスト要因を把握するためにインポートできる使用量ダッシュボードに関する情報については、「 使用量ダッシュボード」を参照してください。
予算ポリシー
予算ポリシー を使用すると、管理者はすべての Databricks サーバレス製品の請求レコードをグループ化およびフィルタリングし、支出を追跡するための専用 UI を提供できます。 予算ポリシー をベクトル検索エンドポイントに適用する方法については、「 Mosaic AI Vector Search: 予算ポリシー」を参照してください。 一般的な情報と予算ポリシーの作成・管理方法については、 サーバレス 予算ポリシーによる属性の使用を参照してください。
インデックス同期のコストを管理する方法
インデックスを更新するように構成するには、次の 2 つの方法があります。
- トリガーされた同期 : API または Python SDK を呼び出して、インデックスの更新をトリガーします。これは最も費用対効果の高いオプションです。
- Continuous Sync : インデックスは、ソース Delta テーブルからの変更で自動的に更新され、ほぼリアルタイムの待機時間が長くなります。これは、ストリーミング クラスタリングが同期を処理するためのプロビジョニングであるため、コストが高くなります。数秒の遅延を伴うほぼリアルタイムの更新が重要でない場合は、Triggered Sync を使用してコストを削減することを検討してください。
コスト管理のベスト プラクティス
- ワークロードを 1 つのエンドポイントで組み合わせ る: すべてのインデックスで ~150 QPS 未満と予想される場合は、インデックスを 1 つのエンドポイントで組み合わせて、複数の基本エンドポイントのコストを回避できます。
- 使用状況の監視 : システム請求テーブルと組み込みの使用状況ダッシュボードを使用して、容量、使用状況、コストを追跡します。
- 手動でスケールダウン する: 上で説明したように、ベクトル数が不要になった以前の容量しきい値を下回った場合は、エンドポイントを削除して再作成する必要があります。
- 適切な同期モードを選択する : ストリーミング コストを削減するために、可能な場合は Continuous Sync の代わりに Triggered Sync を使用します。
追加のリソース
- Mosaic AI Vector Searchの価格について
- 使用状況ダッシュボードと手順
- 使用量の予測や、ワークロードに固有のコスト見積もりツールの活用に関する追加のガイダンスが必要な場合は、Databricks アカウント チームにお問い合わせください。