Mosaic AI Vector Searchのベストプラクティス
この記事では、 Mosaic AI Vector Search を最も効果的に使用するためのヒントをいくつか紹介します。
レイテンシーの最適化に関する推奨事項
-
サービスプリンシパル 認証 フローを使用して、ネットワーク最適化ルートを活用します。 サービスプリンシパル 認証 は、パーソナルアクセストークンと比較して、クエリごとのパフォーマンスを最大 100 ミリ秒向上させることができます。
-
最新バージョンの Python SDK を使用します。
-
テストするときは、約 16 から 32 の同時実行数から始めます。 コンカレンシーが高いと、スループットは向上しません。
-
トークン単位の従量課金 基盤モデルではなく、プロビジョニング スループットで提供されるモデル (bge-large-en やファインチューンされたバージョンなど) を使用します。
-
インデックスは、すべてのクエリではなく、一度だけ取得するようにしてください。
client.get_index(...).similarity_search(...)
への通話で遅延が増加しています。代わりに、次を使用します。Python# Initialize index
index = client.get_index(...)
# Then later, for every query
index.similarity_search(...)これは、MLFlow 環境でベクトル検索インデックスを使用する場合に重要であり、エンドポイントの作成時にインデックスオブジェクトを作成し、それをクエリごとに再利用できます。
GPU を使用する場合
- CPU は、基本的なテストと小規模なデータセット (最大 100 行) にのみ使用してください。
- GPUコンピュートタイプの場合、GPU-smallまたはGPU-mediumの使用を推奨します。
- GPU コンピュートのスケールアウトの場合、コンカレンシーを増やすとインジェスト時間が短縮される可能性がありますが、データセットの合計サイズやインデックス メタデータなどの要因によって異なります。
画像、ビデオ、またはテキスト以外のデータの操作
- 埋め込みを事前に行い、自己管理型の埋め込みで Delta Sync Index を使用します。
- 画像などのバイナリ形式をメタデータとして保存すると、レイテンシーに悪影響を与えるため、保存しないでください。 代わりに、ファイルのパスをメタデータとして保存します。
エンベッディングシーケンスの長さ
- 埋め込みモデルのシーケンスの長さをチェックして、ドキュメントが切り捨てられていないことを確認します。 たとえば、BGE は 512 トークンのコンテキストをサポートします。 より長いコンテキスト要件の場合は、 gte-large-en-v1.5 を使用してください。
トリガー同期 モードを使用してコストを削減する
- ベクトル検索インデックスを更新するための最もコスト効率の高いオプションは トリガー です。 継続的 は、数秒のレイテンシーでソーステーブルの変更にインデックスを増分同期する必要がある場合にのみ選択します。どちらの同期モードも増分更新を実行し、最後の同期以降に変更されたデータのみが処理されます。