Faissとは
Facebook AI Similarity Search
Meta(旧Facebook)が開発した、高次元ベクトルの類似検索・クラスタリング向けオープンソースライブラリ
ひとことで言うと
大量のベクトルの中から似たものを高速に探し出せる、Meta製の検索ツール。
概要
Faissは、Meta AI Researchが開発したオープンソースのライブラリ。 数百万〜数十億件規模の高次元ベクトルに対する類似検索やクラスタリングを、CPU・GPUの両方で高速に実行できる。 HNSWやIVF(転置ファイルインデックス)、積み量子化(Product Quantization)など、精度・速度・メモリ使用量のトレードオフが異なる複数の近似最近傍探索アルゴリズムを実装しており、データ規模や要件に応じて使い分けられる。 PythonとC++の両方からAPIを利用でき、埋め込みモデルが出力したベクトルをそのままFaissのインデックスへ登録し、類似度検索するという使い方が一般的。 独立したライブラリとして直接組み込む形で使われるほか、Milvusなど一部のベクトルデータベース製品が内部の検索エンジンとしてFaissを利用している。
背景
埋め込みベクトルを使った類似検索の需要が増える中、大規模なベクトル集合に対して実用的な速度で検索できる、信頼性の高いオープンソースの実装が求められていた。 Faissは、Meta社内での大規模な画像・テキスト検索の実運用経験をもとに、研究から実運用まで幅広く使える汎用的なベクトル検索ライブラリとして公開された。
歴史
2017年: Facebook AI Researchがオープンソースライブラリとしてfaissを公開。 2019年: GPU対応の実装が強化され、大規模データセットでの高速な検索が可能に。 2020年代: 多くのRAGシステムやベクトルデータベース製品の内部コンポーネントとして採用が拡大。
利点
- 複数の近似最近傍探索アルゴリズムを備え、データ規模や精度要件に応じて使い分けられる
- GPU対応により、非常に大規模なベクトル集合でも高速な検索が可能
- オープンソースかつ実績が豊富で、多くのプロジェクトやベクトルデータベースの内部で採用されている
欠点
比較
- HNSW — FaissはHNSWを含む複数の近似最近傍探索アルゴリズムを実装した検索ライブラリ
- ベクトルデータベース — Faissは検索アルゴリズムのライブラリであり、永続化やAPIサーバー機能まで含む専用のベクトルデータベースとは役割が異なる
- 埋め込みモデル — Faissは、埋め込みモデルが出力したベクトルを登録・検索する用途で使われることが多い
関連用語
よくある質問
Faissとベクトルデータベースの違いは?
Faissは類似検索アルゴリズムを実装したライブラリで、永続化やAPIサーバー機能は含まない。Milvusなどのベクトルデータベースは、Faissのような検索エンジンにデータ管理やAPIの機能を組み合わせた製品にあたる。
FaissはGPUでも使える?
GPU対応の実装が用意されており、CPUだけの場合と比べて非常に大規模なベクトル集合でも高速に検索できる。
参考文献
- GitHubfacebookresearch/faiss