ベクトル検索の性能比較一覧

codelibs/search-ann-benchmark でANNでのベクトル検索プロダクトの性能を確認できるようにしているけど、GitHub Actionsで実行している結果をここで一覧できるようにしました。GitHub Actionsで実行した結果を一日一回収集して、そのページにまとめて簡単に確認できるようにした感じです。

上位10件と上位100件を取得した場合の平均応答時間と精度になります。ここで言う精度というのは、近似的な近傍検索なので、上位K件が期待するものとは限らないので、厳密な距離計算をしたときに得られるK件と比較してどれだけ一致しているか?というPrecision@Kの値です。10件取得して、正解と9件しか一致していなければ、0.9のようになります。

応答速度と精度のバランスが取れるように各種設定を調整していますが、実行しているコードはGitHubに置いてあるので、より良い値があれば、プルリクなどいただければと思います。一応、HNSWで統一してあるので、mやefなどのパラメーターは一緒にしてあります。

Qdrantが安定して、速さを保っている感じで、ElasticsearchやOpenSearchのLucene系は着実に追い上げてきている感じです。ただ、Lucene系は取得件数が多くなると、他と比べて、応答速度の劣化が大きいです。PGVectorは量子化対応されないと、応答時間での差は埋めるのはしばらく難しい気がします。

という感じで、ベクトル検索まわりの調査等々をしてきて、いろいろと知見はあるので、何かあれば、CodeLibs, Inc.までご相談いただければと。

CodeBuildのAmazonLinux2023でmysqlクライアントを使う

CodeBuildでmysqlコマンドを利用したかったのだが、標準では入っていないので、入れる必要がある。aws/codebuild/amazonlinux2-aarch64-standard:3.0みたいなAmazonLinux 2023のイメージを使うと入っていないので、インストールする必要があるけど、buildspec.ymlには以下のような感じで書いておけば良い。

phases:
install:
commands:
- dnf install -y mariadb105

mysqlを入れるのではなくて、mariadb105を入れておけば、mysqlコマンドが使えるようになった。

Fess 14.13.0のリリース

Fess 14.13.0をリリースしました。今回は、特に大きな変更はなく、OpenSearch 2.13に対応したくらいでしょうか。あとは、依存しているライブラリたちを細々と更新してあります。

ちょっと変更した点としては、フォーラムで上がっていた話で、クロール設定からクロールジョブを作ると、スクリプトにsessionIdの指定が入るのですが、これをすると、データストアクロールで前回クロールデータを削除することができないので、sessionIdが入らないようにテンプレートを修正したりしました。

その他、何かあれば、フォーラムをご利用ください。