前提条件
Python 3.9 以上(PyPI 版 1.11.0 が公式に対応)
CPU 版は Linux/macOS/Windows に公式ホイールあり。
GPU 版は Linux x86-64 限定。CUDA ドライバ・ツールキットのバージョン整合が必須。
公式推奨は conda 経由の導入 – 特に GPU 版は依存解決が容易です。faiss.ai
1. pip でのインストール
ポイント
-
公式 PyPI パッケージは CPU のみ(v1.7.3 以降 GPU ホイール廃止)。GPU が必要な場合は
-
サードパーティ製ホイール(
faiss-gpu-cuXX) -
あるいは ソースからビルド(
pip install --no-binary :all: faiss-cpu+FAISS_ENABLE_GPU=ON環境変数)
を選択します。pypi.org
-
-
Linux 以外で GPU を使う場合はビルド必須です(Windows/macOS 公式サポートなし)。
-
インストール後の動作確認:
2. conda でのインストール
| 目的 | 推奨コマンド | 説明 |
|---|---|---|
| CPU 版(公式推奨) | conda install -c pytorch faiss-cpu |
依存する BLAS を自動解決。faiss.ai |
| GPU 版 | conda install -c pytorch faiss-gpu cudatoolkit=12.1 |
パッケージ内部で FAISS + 対応版 CUDA をバンドル。anaconda.org |
| コンダフォージ派生 | conda install -c conda-forge faiss |
CPU ビルドのみ(v1.9.0 など)。anaconda.org |
推奨ワークフロー
-
CPU↔GPU を同一環境に共存させない
faiss-gpuはfaiss-cpuの上位互換です。どちらか一方だけインストールしてください。faiss.ai -
複数 GPU/異なる CUDA バージョンを扱う場合は環境を分けるとトラブルを避けられます。
3. よくある問題と対策
| 現象 | 主な原因 | 解決策 |
|---|---|---|
GLIBCXX などのシンボルが見つからない |
古い GNU C++ ランタイム | conda update libstdcxx-ng または OS パッケージ更新 |
libopenblas.so が見つからない |
BLAS/LAPACK が未リンク | conda 版なら自動解決。pip 版は OS パッケージ(libopenblas-dev 等)を導入 |
No module named faiss |
仮想環境切替忘れ/パッケージ衝突 | `pip list |
| GPU 初期化エラー | ドライバ≠CUDA ランタイムのバージョン不一致 | nvidia-smi と nvcc --version を確認し同一メジャーに揃える |
4. まとめ
-
手軽さ重視:CPU 版なら
pip install faiss-cpu、GPU 版も含め依存を丸ごと解決したいなら conda が安全。 -
最新機能 + GPU:
conda install -c pytorch faiss-gpu(CUDA 11/12 系を指定)。 -
細かいビルドオプションや macOS/Windows GPU:ソースビルド一択。
これで Python 環境への FAISS の導入は完了です。開発プロジェクトに組み込む前に、必ず簡単な検索テストを行い、CPU/GPU のどちらで動作しているかを確認してください。
ChatGPT4o 生成日:2025/06/18