0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ARM版Windowsで近似最近傍探索ライブラリfaissが使えなかった話

Posted at

経緯

先日、今後の知見向上も兼ねて、ノートPCの買い替えで、Snapdragon X EliteのARM版WindowsPCを購入。

RAGを試すためのコードをpythonで、faissで書いていたのですが、動かなくなり、最終的にAnnoyを使用することにしたので備忘録。

slackもzoomも、ARM用のアプリケーションを出しているし、大企業が提供するライブラリは、当たり前に、ARMでも簡単に使えると思っていましたが、考えが甘かったです。

近似最近傍探索ライブラリについて

試したのは下記の3つ。できるだけ大手のものを試そうと。

下記は、Perplexityのまとめです。

Annoy、Faiss、ScaNNのどれが優れているかは、具体的な用途や要件によって異なります。以下にそれぞれの特徴をまとめて比較します。

Annoy

  • 特徴: AnnoyはSpotifyによって開発されたライブラリで、高次元空間での近似最近傍探索に特化しています。ツリー構造を利用して高速な検索を実現し、特に大規模なデータセットにおいて効率的です。
  • 利点:
    • メモリ効率が高く、軽量
    • 簡単に統合可能
    • 静的ファイルとしてインデックスを扱える
  • 欠点:
    • GPUのサポートがない
    • バッチ処理のサポートがない
    • インクリメンタルなデータ追加ができない

Faiss

  • 特徴: FaissはMeta(旧Facebook)のAI研究チームによって開発されたライブラリで、密なベクトルの類似性検索とクラスタリングに特化しています。大規模なデータセットの処理に優れ、GPUを利用した高速処理が可能です。
  • 利点:
    • 高性能で、GPUアクセラレーションによりさらに効率的
    • 大規模なベクトルセットを扱うのに適している
    • オープンソースで広く利用されている
  • 欠点:
    • 主にベクトル操作に特化しており、他のデータベース操作には不向き
    • 技術的な知識が必要

ScaNN

  • 特徴: ScaNNはGoogle Researchによって開発されたライブラリで、大規模データセットに対する近傍探索を効率的に行います。TensorFlowと相性が良く、高精度なベクトル検索を提供します。
  • 利点:
    • 高性能で、TensorFlowと統合しやすい
    • 大規模データセットに効率的
  • 欠点:
    • セットアップとチューニングが複雑

結論
どのライブラリが最適かは、以下の要素に依存します。

  • 速度と精度: FaissはGPUを活用した高速な処理が可能で、精度も高いです。Annoyは軽量で高速ですが、精度が若干劣る可能性があります。ScaNNは高精度な検索が可能ですが、設定が複雑です。
  • スケーラビリティ: FaissとScaNNは大規模データセットに対してスケーラブルです。Annoyはメモリ効率が高いですが、非常に大きなデータセットには不向きです。
  • 使いやすさ: Annoyは簡単に統合でき、軽量なアプリケーションに適しています。FaissとScaNNはより高度な設定が必要です。

用途や環境に応じて、これらのライブラリの中から最適なものを選ぶと良いでしょう。

結論

faissは、ImportError: cannot import name '_swigfaiss_avx2' from 'faiss'を解決できず。

ScaNNは、jitterや、tiktokenにエラーが出て、コツコツ解決していきましたが、最終的に、AttributeError: module 'scann' has no attribute 'ScannBuilder'を解決できず。

最終的には、Annoyでうまくいきました。性能や精度はこれから試してみます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?