ベクトル検索エンジンの性能評価ツールsearch-ann-benchmarkで、Elasticsearch 9.2で追加されたDiskBBQ(bbq_disk)インデックスタイプの評価を追加しました。
DiskBBQとは
DiskBBQは、Elasticsearch 9.2で導入された新しいベクトルインデックスタイプです。従来のBBQ(Better Binary Quantization)がメモリベースのHNSWグラフを使用するのに対し、DiskBBQはディスクベースで動作します。
これにより、メモリ使用量を抑えつつ大規模なベクトルデータを扱えるようになります。ただし、ディスクアクセスが発生するため、検索速度とのトレードオフがあります。
search-ann-benchmarkの変更内容
主な変更点は以下の3つです。
CLIオプションの追加
--quantizationオプションにbbq_diskを追加しました。これで、コマンドラインからDiskBBQを使用したベンチマークを実行できます。
search-ann-benchmark run elasticsearch \
--target 100k-768-m32-efc200-ef100-ip \
--version 9.2.3 \
--quantization bbq_disk
インデックス作成ロジックの調整
DiskBBQは従来のHNSWパラメータ(m、ef_construction)をサポートしないため、インデックス作成時にこれらのパラメータを除外するように修正しました。
GitHub Actionsワークフローの追加
DiskBBQ専用のベンチマークワークフローを追加しました。Elasticsearch 9.2.3を使用して、100k、1M、5Mのデータセットに対してテストできます。
大規模データセットでの効果
DiskBBQは、メモリ使用量の削減が主な目的のため、小規模なデータセットでは従来のbbq_hnswとの差があまり出ないかもしれません。5M以上のベクトルを扱うような大規模なデータセットで、メモリ効率の違いがより明確になると思います。