3 ポイント 投稿者 GN⁺ 2024-05-30 | まだコメントはありません。 | WhatsAppで共有
  • CohereがWikipedia全体をベクトルとして埋め込んだデータセットを公開
  • このデータセットにより、個人でもWikipediaの意味ベースのベクトルインデックスを作成できるようになった

難しい点

  • データセットのサイズ(英語コーパスだけで180GB)自体が問題なのではない
  • 既存のベクトルデータベースは、メモリより大きいデータセットをインデックス化できなかった
  • JVectorライブラリは圧縮ベクトルを使うことで、メモリより大きいデータセットをインデックス化できるようにする

要件

  • LinuxまたはMacOSが必要(WindowsはChronicleMapの制約により利用不可)
  • データセット用に180GBの空き容量と、インデックス用に90GBの容量が必要
  • インデックス構築時に、36GBのヒープ領域を持つJVMを実行できる十分なRAMが必要
  • インデックス構築前にスワップを無効化する必要がある

インデックス構築と検索

  • プロジェクトをクローン: $ git clone https://github.com/jbellis/coherepedia-jvector
  • データセットをダウンロード: python download.py
  • インデックスを構築: ./mvnw compile exec:exec@buildindex
  • 検索サーバーを起動: ./mvnw compile exec:exec@serve の後、ブラウザで http://localhost:4567 にアクセス

仕組み

  • JVectorでベクトルインデックスを作成し、Chronicle Mapで記事データを保存
  • ベクトル圧縮のためにLocally-Adaptive Quantization (LVQ) を使用
  • 並列ストリームを使ってデータを並列処理

結論

  • JVectorライブラリのおかげで、ノートPC上で英語版Wikipedia全体をインデックス化することが現実的になった
  • DataStax Astraサービスと組み合わせれば、リアルタイムの挿入・更新・削除をサポートする強力なインデックス機能を活用できる

GN⁺の意見

  • JVectorの革新性: JVectorは、大規模データセットをメモリ制約なしでインデックス化できるようにすることで、データサイエンスや検索エンジン分野に大きな革新をもたらす可能性がある。
  • 実用性: 個人でもノートPCでWikipedia全体をインデックス化できるようになり、研究者や開発者が大規模データセットをより簡単に活用できるようになる。
  • 技術的な考慮事項: この技術を導入する際には、十分なディスク容量とメモリ、さらにスワップ無効化などのシステム設定が必要となる。
  • 代替技術: 類似機能を提供する他のオープンソースプロジェクトとして、FAISS(Facebook AI Similarity Search) や Annoy(Approximate Nearest Neighbors Oh Yeah) がある。
  • 性能最適化: 並列処理とベクトル圧縮技術によって性能を最適化できるが、システムリソース管理には注意が必要。

まだコメントはありません。

まだコメントはありません。