AI News HubLIVE
サイト内リライト2 分で読了

Fidx – 1つのSQLiteファイルで実現するローカルセマンティック検索、クエリ時にLLM不要

Fidxは、BM25全文検索と768次元ベクトル検索を組み合わせ、すべてを1つのSQLiteファイルに格納するローカルセマンティック検索エンジンです。クエリ時にLLM呼び出しは不要で、CPU上でミリ秒単位の応答を実現します。CLI、プライベートRAG検索、エージェントメモリの検索レイヤーとして利用できます。

ソースHacker News AI著者: williamliu_ai

Fidxは、ローカルファイルやエージェント向けに設計された新しいローカルセマンティック検索エンジンです。その中核となる設計思想は、クエリパスで大規模言語モデル(LLM)を一切使用せず、高い再現率を維持しながらミリ秒単位の応答時間を実現することです。

Fidxはハイブリッド検索戦略を採用しています。全文検索(FTS5ベースのBM25)と768次元ベクトル検索(ONNX埋め込み)を組み合わせ、逆数ランク融合(RRF)で結果を統合します。この設計により、正確な名前や識別子の一致と、「あのインデックスプロジェクトについて議論した文書」のような意味的なクエリの両方を捉えることができます。

すべてのデータ(ドキュメント、BM25インデックス、ベクトル埋め込み)は単一のSQLiteデータベースファイルに保存されます。そのため、インデックスのコピー、バックアップ、削除を簡単に行えます。また、ソースを名前付きコレクションにグループ化し、特定のコレクションだけを検索することも可能です。

インストールにはPython 3.11または3.12が必要で、sqlite3がロード可能な拡張とFTS5をサポートしている必要があります。推奨されるインストーラはuvで、初回のインデックス時に埋め込みモデルがダウンロードされます(その後は完全にオフラインで使用可能)。現在、Linux x86_64、macOS arm64、Windows x86_64をサポートしています。

Fidxの使用は直感的です:CLIでディレクトリを登録し、インデックスを作成し、fidx searchで検索します。また、デーモンモードも用意されており、モデルとインデックスをホット状態に保つことで、検索遅延をさらにミリ秒単位に低減できます。エージェントやRAGツール向けには、JSON出力とドキュメント取得コマンドが用意されています。

ベンチマークでは、FidxはQMDと比較されました。4つのコーパス(docs-small、docs、chat、code)において、FidxのクエリレイテンシはQMDのLLMハイブリッドモードよりも300~1000倍高速(例:18~49ミリ秒 vs 18~36秒)であり、purity指標(noise@10とclean@10)でも全面的に優れていました。既知項目クエリでは、Fidxはdocsとcodeコーパスで再現率(R@10)でもQMDを上回りました。

ただし、Fidxの純ベクトルモードは意味的クエリ(クエリとターゲット文書に語彙の重複がほとんどない場合)でより良いパフォーマンスを発揮し、ハイブリッドモードはシナリオによっては純ベクトルモードに劣る場合があります。開発チームは、クエリ適応型重み付けを今後の改善項目として挙げています。また、92kのコードファイルに対する意味的検索は、テキスト埋め込みの限界により効果が限定的であり、Fidxのコード検索の強みは語彙一致にあります。

全体として、Fidxは軽量で高性能なローカル検索ソリューションを提供し、高速でプライベート、かつLLMを必要としないシナリオに特に適しています。個人のノート、コードベース、エージェントメモリなど、さまざまな用途で優れた検索体験を提供します。