HyperAIHyperAI

Command Palette

Search for a command to run...

NVIDIA cuVSで加速するFaissのGPU対応ベクトル検索、高速化とコスト削減を実現

大規模な非構造化データの増加と大規模言語モデル(LLM)の普及に伴い、情報検索の高速化とスケーラビリティが急務となっている。特に、リトリーバー・オーガナイズド・ジェネレーション(RAG)などの高度な手法は、テラバイトやペタバイト規模のデータ処理に数時間乃至数日を要するケースも少なくない。また、広告推薦などのリアルタイム検索システムでは、CPUでは十分な速度を確保できず、数千台のCPUを用意する必要があり、コストが膨らむ問題がある。 こうした課題を解決するため、NVIDIAのcuVS(CUDA Vector Search)をMetaのFaissライブラリと統合する手法が注目されている。cuVSはGPUを活用して、ベクトル検索のインデックス構築と検索処理を大幅に高速化。Faiss v1.10.0以降では、IVF-PQ、IVF-Flat、Flat(ブルートフォース)、CAGRA(GPU専用のグラフベースインデックス)などに対応し、GPUによる高速処理が可能になった。 特に注目すべきは、CAGRAインデックス。これはGPUに最適化された固定次数のグラフ構造で、CPUで構築するHNSWに比べて最大12倍の高速化が実現。さらに、CAGRAで作成したインデックスはHNSW形式に変換でき、GPUで高速に構築した後、CPUで検索を実行するハイブリッドアーキテクチャが可能になる。 ベンチマーク結果では、Deep100M(96次元)とOpenAIテキスト埋め込み(1,536次元)の2つのデータセットで検証。GPU搭載のH100とCPUのXeonを用いて測定したところ、cuVS搭載のFaissは、インデックス構築時間の短縮と、検索レイテンシの低下を同時に達成。特にCAGRAは、Deep100Mデータで検索速度が最大4.7倍向上し、バッチ処理では数百万件/秒の処理が可能となった。 また、CPUとGPU間のシームレスな相互運用性も実現。GPUでインデックス構築後、CPUで検索を実行できるため、既存のシステムへの導入も容易だ。 導入方法としては、condaやnightlyビルドでfaiss-gpu-cuvsパッケージをインストール。Pythonコードでは、GPUリソースを設定し、cuVS対応のIVFPQやCAGRAインデックスを簡単に構築可能。特に、既存のCPUインデックスをGPUにクローンする機能もあり、変更コードなしで高速化が享受できる。 この統合により、企業は膨大なベクトルデータを高速かつ低コストで処理できるようになり、AIアプリケーションの開発・運用がより迅速かつ信頼性高く実現可能となる。

関連リンク