qdrant/fastembed

Fast, Accurate, Lightweight Python library to make State of the Art Embedding

FastEmbed — 高速で軽量な埋め込み生成ライブラリ

FastEmbedとは

FastEmbedは、テキスト、画像、ドキュメントを 埋め込み (embeddings) — 入力データの 意味 を捉えた数値のリスト — に変換するPythonライブラリです。これらの埋め込みは、セマンティック検索、検索拡張生成 (RAG)、およびレコメンデーションシステムの構成要素となります。

コアコンセプト

多くの埋め込みライブラリは、GPUを必要とし、数GBのPyTorch依存関係をダウンロードする必要があり、動作が遅いという課題があります。FastEmbedは異なるアプローチを採用しています:

  • ONNX Runtimeを使用 — PyTorchの代わりに、より軽量で高速な実行エンジンを採用
  • GPU不要 — 一般的なCPU上で動作するため、AWS Lambdaのようなサーバーレス環境に適しています
  • 依存関係が少ない — 軽量なインストールが可能
  • データ並列処理 — コア間で作業を分割することで、大規模なデータセットをより高速に処理可能

サポートされている機能

FastEmbedは複数のモデルタイプをサポートしています:

タイプ 用途 モデル例
密ベクトル埋め込み 標準的なセマンティック検索 — 各テキストが1つのベクトルに BAAI/bge-small-en-v1.5 (384次元)
疎ベクトル埋め込み 重要な単語を強調するキーワードスタイルのマッチング SPLADE++
Late interaction (ColBERT) 高精度なトークンレベルのマッチング colbert-ir/colbertv2.0
画像埋め込み 画像をベクトルに変換 CLIP ビジョンモデル
マルチモーダル Late interaction (ColPali) 画像とテキストを同時にマッチング — PDFのスクリーンショット内検索など Qdrant/colpali-v1.3-fp16
リランカー (Rerankers) クエリに対するドキュメントの関連性をスコアリングし、検索結果を並べ替え Xenova/ms-marco-MiniLM-L-6-v2

なぜ重要なのか

埋め込みは現代のAI検索の基盤です。FastEmbedは、生成プロセスを高速かつ低コストにすることで、サーバーレス関数を含むあらゆる場所での実行を可能にします。また、ベクトルデータベース Qdrant と直接統合できるため、埋め込みの保存と大規模な検索が容易になります。

主な詳細

  • デフォルトモデル: Flag Embedding (BAAI/bge-small-en-v1.5)。MTEBベンチマークで優れたパフォーマンスを発揮
  • 精度: OpenAIのAda-002埋め込みモデルよりも優れた精度
  • カスタムモデル: 事前サポートされているリストだけでなく、独自のONNXモデルを追加可能
  • GPUサポート: CUDAアクセラレーション用のオプションパッケージ fastembed-gpu を提供
  • シンプルなAPI: 数行のPythonコードでドキュメントや画像の埋め込み、結果のリランクが可能

使用例 (テキスト)

from fastembed import TextEmbedding

documents = ["This is a document about AI.", "Another document about search."]
model = TextEmbedding()  # 初回使用時にデフォルトモデルをダウンロード
embeddings = list(model.embed(documents))  # 各ドキュメントが384次元のベクトルに変換される

まとめ

FastEmbedは、セマンティック検索、RAGパイプライン、またはベクトルベースのAIアプリケーションを構築するすべての人にとって実用的なツールです。特殊なハードウェアを必要とせず、高速で軽量な埋め込み生成を実現します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト