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アプリケーションを構築するすべての人にとって実用的なツールです。特殊なハードウェアを必要とせず、高速で軽量な埋め込み生成を実現します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト