FAISSとは
FAISS
読み: フェイス
FAISSとは、Meta(旧Facebook)が開発したオープンソースのベクトル類似度検索ライブラリである
読み: フェイス
かんたんに言うと
膨大な数のベクトル(数値の配列)の中から、指定したベクトルに最も似ているものを高速に見つけ出すための専門ツールである。図書館の蔵書検索に例えると、全冊を1冊ずつ比べるのではなく、カテゴリや棚の位置で絞り込んでから探す仕組みとなる。
アーキテクチャと主要アルゴリズム
FAISSは複数のインデックスタイプを提供する。Flat(全件比較)、IVF(逆ファイルインデックス)、HNSW(階層型近傍グラフ)、PQ(積量子化)が代表的である。IVFはベクトル空間をクラスタに分割して検索範囲を絞り、PQはベクトルを圧縮してメモリ消費を削減する。
GPU対応により、CPUの数十倍の速度で検索を実行できる。CUDA環境があれば、数億件のベクトルに対しても1ミリ秒以下の検索が可能となる。
RAGパイプラインでの活用
RAGシステムでは、ユーザーの質問をエンベディングに変換し、FAISSで類似ドキュメントを検索し、その結果をLLMのコンテキストに注入する。LangChainやLlamaIndexがFAISSをバックエンドとしてサポートしており、数行のコードでRAGパイプラインに組み込める。
