ホームへ戻る

向量資料庫與 AI 基礎設施

Qdrant 1.19.1、プリフェッチとバッチ SIMD で量子化ベクトル検索パスを刷新

Qdrant 1.19.1では、TurboQuantのスコアリングにプリフェッチとバッチ化されたSIMDを導入し、HNSW検索およびクエリプレーンでの余分なメモリ割り当てを削減した。シャード転送の障害復旧も強化されたが、プロセッサやデータセットの違いを網羅する総合的な性能比較は、公式にはまだ公表されていない。

RI2AI · CC BY-SA 4.0 · Image source
zh-Hant

Qdrant 1.19.1の焦点は、新しい検索インターフェースの追加ではなく、ベクトル検索のホットパスの書き換えにある。公式の変更履歴によると、量子化スコアリングではメモリ帯域幅の利用効率を高めるためにデータをプリフェッチするようになり、4-bit TurboQuantのSIMD実装もバッチ処理へと変更された。HNSW検索では複数のスコアリング処理をまとめ、無効な項目を早期にスキップするとともに、結果の後処理における一部のpoint ID解析を省いている。これらはいずれも、大規模なRAGインデックスで一般的なボトルネックを狙った変更だ。計算量を削減すると、積和演算命令よりも先に、ランダムメモリアクセス、メモリ割り当て、分岐のオーバーヘッドがスループットを制限することが多い。

TurboQuantはまず高速回転によってベクトルの各次元に含まれる情報を再配分し、その後、値を低ビット表現へ圧縮する。Qdrant 1.19では、各次元を4 bitのみで保存し、サイズを`float32`のおよそ8分の1に抑える`turbo4`ストレージ型がすでに提供されている。1.19.1では、主にその実際のスコアリング効率が改善された。これは、元のベクトルを保持したまま量子化コピーを作成する方式とは異なる。`turbo4`はストレージ容量と読み取りトラフィックをさらに削減できる一方、完全精度のベクトルを使って候補結果を再ランキングすることはできない。エンジニアリングチームは圧縮率だけで方式を選ぶのではなく、自社のembedding分布を用いてrecallを測定する必要がある。

分散システムの信頼性にも実質的な変更が加えられた。replica状態の設定、reshardingの終了、transferの再開といった操作がcrash-safeになり、コンセンサス状態の不整合リスクが軽減された。大量のpayloadを含むshard transferではraw payloadを送信する方式に変更され、プロジェクトによれば1.5倍高速化できるという。このほか、CoW segmentがpayload indexの作成前にflushされていなかった整合性の問題を修正し、`.`および`..`をcollection名として使用することも禁止した。今後は、異なるAVX/ARMプラットフォーム、ベクトル次元数、filter比率、並行度におけるエンドツーエンドのp95レイテンシを検証する必要がある。現時点のリリースノートに記載されているのは局所的な最適化であり、あらゆるデプロイ環境で同じ比率の高速化が得られると結論付けるには不十分だ。

出典

  1. Release v1.19.1 · qdrant/qdrant
  2. Quantization
  3. Vectors: Turbo4