qdrant/fastembed
Fast, Accurate, Lightweight Python library to make State of the Art Embedding
FastEmbed — 快速、轻量的嵌入生成工具
它是什么
FastEmbed 是一个 Python 库,能将文本、图像和文档转换为 嵌入 (embeddings) — 即捕捉输入内容 意义 的长数列。这些嵌入是语义搜索、检索增强生成 (RAG) 和推荐系统的基石。
核心理念
大多数嵌入库都很笨重:它们需要 GPU、下载数 GB 的 PyTorch 依赖项,且运行速度缓慢。FastEmbed 采取了不同的方法:
- 使用 ONNX Runtime 取代 PyTorch — 一个更精简、更快速的执行引擎
- 无需 GPU — 可在普通 CPU 上运行,适合 AWS Lambda 等无服务器环境
- 依赖项少 — 安装轻量
- 数据并行处理 — 可通过跨核心分配工作,更快速地处理大型数据集
功能特色
FastEmbed 支持多种模型:
| 类型 | 用途 | 示例模型 |
|---|---|---|
| 稠密文本嵌入 | 标准语义搜索 — 每段文本成为一个向量 | BAAI/bge-small-en-v1.5 (384 维度) |
| 稀疏文本嵌入 | 关键词风格匹配,突显重要词汇 | SPLADE++ |
| 晚期交互 (ColBERT) | 细粒度的 Token 层级匹配,以获得更高准确度 | colbert-ir/colbertv2.0 |
| 图像嵌入 | 将图像转换为向量 | CLIP 视觉模型 |
| 多模态晚期交互 (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 支持: 可选的
fastembed-gpu包,用于 CUDA 加速 - 简单 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 应用程序的人所设计的实用工具 — 它让嵌入生成变得快速、轻量且无需特殊硬件即可访问。
相关
- 项目
- 项目
- 项目
- 项目
- 项目