FlechasDB

サーバーレスと相性のよいベクトルデータベースを意のままに

FlechasDBサーバーレスと相性のよいベクトルデータベース1です。

1

What is a Vector Database? by Pinecone. ベクトルデータベースに関するウィキペディアページが見当たらないのは驚きでした。

特徴

  1. データベースファイルをAmazon S3バケットに保存・読込
  2. Amazon Linux 22で動く

今後の機能向上にもご期待ください!

2

Amazon Linux 2はこの記事を書いている時点でAWS Lambdaインスタンスの標準オペレーティングシステムです。

始め方

コアライブラリのflechasdbとAmazon S3拡張のflechasdb-s3はそれぞれ以下のGitHubレポジトリで入手できます。

Amazon Linux 2用のカスタムLambdaランタイムに組み込むことで、flechasdbflechasdb-s3AWS Lambdaで利用できます。 flechasdbflechasdb-s3Rustで記述されていますので、cargo-lambdaを使うと便利でしょう。 flechasdbflechasdb-s3を使うLambda関数をAWS Cloud Development Kit (CDK)でデプロイする例が、以下のGitHubレポジトリにあります。

FlechasDBの実例

Mumbleは検索機能を実現するのにFlechasDBを使っています。 投稿(ゴニョゴニョ)に対して計算したOpenAIのエンべディングからFlechasDBのデータベースを構築し、Amazon S3バケットにデータベースファイルを格納しています。 KikuoのMumbleプロフィールで試すことができます。

similarity search demo

背景

PineconeMilvusなど、世の中にはもっと優れたプロダクトやサービスがあります。 Faissはベクトルサーチではデファクトのライブラリでflechasdbよりよほど高速で信頼性も高いでしょう。

正直、この「車輪の再発明」は私(Kikuo)の興味本位で行ったものです。

  • IVFPQインデクシングの仕組み3
  • Rustオプティマイザによる自動ベクトル化を使いこなす方法4
  • AsyncなRustの書き方

しかし、小規模なプロジェクトにとってFlechasDBは最安のソリューションのひとつではないかと思いますので、 ベクトルデータベースのフィージビリティスタディにFlechasDBを検討してみてはいかがでしょうか?

3

Product Quantizers for k-NN Tutorial Part 2 - https://mccormickml.com/2017/10/22/product-quantizer-tutorial-part-2/

4

Taking Advantage of Auto-Vectorization in Rust - https://www.nickwilcox.com/blog/autovec/