ベクトルインデックス作成の GPU アクセラレーション - Amazon OpenSearch Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ベクトルインデックス作成の GPU アクセラレーション

GPU アクセラレーションは、大規模なベクトルデータベースをより迅速かつ効率的に構築するのに役立ちます。この機能は、新規または既存の OpenSearch ドメインと OpenSearch Serverless OpenSearch コレクションで有効にできます。この機能は GPU アクセラレーションを使用して、データをベクトルインデックスにインデックス化するために必要な時間を短縮します。

GPU アクセラレーションを使用すると、インデックス作成コストの 4 分の 10Xに増やすことができます。

前提条件

GPU アクセラレーションは、OpenSearch バージョン 3.1以降を実行している OpenSearch ドメインと OpenSearch Serverless コレクションでサポートされています。詳細については、Amazon OpenSearch Service ドメインのアップグレード「」、UpdateDomainConfig」、およびUpdateCollection API」を参照してください。 APIs

仕組み

ベクトルインデックスは、階層ナビゲーション可能スモールワールド (HNSW) グラフなどのデータ構造を構築するために、大量のコンピューティングリソースを必要とします。ドメインまたはコレクションで GPU アクセラレーションを有効にすると、OpenSearch はインデックスビルドを高速化する機会を自動的に検出し、インデックスビルドを GPU インスタンスにオフロードします。OpenSearch Service はユーザーに代わって GPU インスタンスを管理し、必要に応じてドメインまたはコレクションに割り当てます。つまり、使用率を管理したり、アイドル時間の料金を支払ったりすることはありません。

Compute Units (OCU) - Vector Acceleration による有用な処理に対してのみ料金が発生します。各 Vector Acceleration OCU は、約 8 GiB の CPU メモリ、2 つの vCPUs、6 GiB の GPU メモリの組み合わせです。詳細については、「 GPU アクセラレーションの料金」を参照してください。

ドメインまたはコレクションの GPU アクセラレーションを有効にするには、「」を参照してくださいGPU アクセラレーションの有効化

GPU アクセラレーションの料金

AWS は、OpenSearch がドメインまたはコレクションのインデックス構築ワークロードを高速化する機会を検出したときに課金します。各 Vector Acceleration OCU は、約 8 GiB の CPU メモリ、2 つの vCPUs、6 GiB の GPU メモリの組み合わせです。

AWS は OCU に第 2 レベルの粒度で請求します。アカウントステートメントには、コンピューティングのエントリが OCU 時間で表示されます。

例えば、2 つの vCPU と 1 GiB の GPU メモリを使用して 1 時間 GPU アクセラレーターを使用してインデックスを作成すると、1 OCU が請求されます。GPU アクセラレーターの使用中に 9 GiB の CPU メモリを使用する場合は、2 OCU が請求されます。

OpenSearch Serverless は、コレクションをサポートするのに必要な処理能力とストレージに基づいて 1 OCU 単位で追加の OCU を追加します。コストを抑えるために、アカウントの OCU の最大数を設定できます。

注記

プロビジョニングされる OCU 数は随時変動し、正確ではありません。時間の経過とともに、OpenSearch と OpenSearch Serverless が使用するアルゴリズムは引き続き改善され、システムの使用が最小限に抑えられます。

料金の詳細については、「Amazon OpenSearch Service の料金」を参照してください。

GPU アクセラレーションと書き込みオペレーション

OpenSearch のベクトル取り込みレート (MB/秒) が範囲内にある場合、GPU 加速がアクティブ化されます。OpenSearch ドメインでは、 index.knn.remote_index_build.size.minと を使用してこの範囲を柔軟に設定できますindex.knn.remote_index_build.size.max。例えば、下限のデフォルトが 50 MB の場合、更新間隔の間に 768 ディメンションを持つ 15,000 個の全精度ベクトルを書き込むと、デフォルトで GPU アクセラレーションがトリガーされます。

データは、次の API オペレーションで書き込まれます。

GPU アクセラレーションは、自動セグメントマージと手動セグメントマージの両方でアクティブ化されます。

サポートされているインデックス設定

Faiss エンジンは GPU アクセラレーションをサポートしています。

以下の設定は GPU アクセラレーションをサポートしていません。

ベストプラクティス

ベクトル検索ワークロードの GPU アクセラレーションの利点を最大化するには、次のベストプラクティスに従ってください。

  • インデックスクライアントを増やす - インデックス構築中に GPUs を最大限に活用するには、OpenSearch にデータを取り込むインデックスクライアントの数を増やします。これにより、GPU リソースの並列化と使用率が向上します。

  • おおよそのしきい値を調整する - index.knn.advanced.approximate_threshold設定を変更して、セグメントインデックスのビルドが小さくならないようにします。これにより、取り込みの全体的な速度が向上します。10,000 の値は良い出発点です。コレクションの場合、この設定に値を明示的に指定する必要があります。

  • シャードサイズの最適化 - 少なくとも 100 万のドキュメントを含むシャードを作成してみてください。このドキュメント数より少ないシャードでは、GPU アクセラレーションによる全体的なメリットが得られない場合があります。