fastembed
Qdrant 团队开源的极速文本嵌入库,ONNX 驱动、支持 50+语言、开箱即用
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Qdrant 团队开源的极速文本嵌入库,ONNX 驱动、支持 50+语言、开箱即用
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
一个清晨,产品经理对你说:"我们要给搜索加上语义理解,用户搜'手机',也要能找到'iPhone'和'智能手机'相关内容。"传统的关键词匹配做不到,但文本嵌入(Text Embedding) 可以——它将文字转换为向量,让语义相似的文本在向量空间中彼此接近。然而市面上的方案要么太慢、要么太重、要么太贵。FastEmbed 正是 Qdrant 团队交出的答卷:一款以"极速"命名的 Python 嵌入生成库。

在 RAG(检索增强生成)系统中,向量嵌入扮演着承上启下的角色:录入阶段,文档被切分成 Chunk,每个 Chunk 通过 embedding 模型转换为向量,存入向量数据库(如 Qdrant、ChromaDB);检索阶段,用户问题同样被转换为向量,在向量空间中找出最相似的 Top-K 个 Chunk,送给 LLM 作为上下文生成答案。
这条链路中,embedding 模型的质量直接影响最终回答的相关性,而 embedding 的生成速度则决定了系统的吞吐上限。传统的 Hugging Face sentence-transformers 方案依赖 PyTorch,体积庞大、冷启动慢;OpenAI 的 text-embedding-3-large 虽强,但每次调用都要付费,且数据必须上云。FastEmbed 站在这两个极端之间:本地运行、性能极致、数据隐私完全自主。
FastEmbed 的性能优势来自两个关键技术选型。
第一,ONNX Runtime 作为推理引擎。 与 PyTorch 的动态图执行不同,ONNX 采用静态图优化(常量折叠、算子融合、内存规划),在推理时省去了 Python 解释器的开销。对于 embedding 这类批量、静默、大吞吐的推理任务,ONNX 的优化效果尤为显著。FastEmbed 依赖 onnxruntime 作为核心依赖,模型以 ONNX 格式存储,所有推理计算发生在 ONNX Runtime 的 C++ 运行时中。
第二,默认使用 Flag Embedding 模型。 FastEmbed 默认使用 Flag Embedding(阿里 MTEB 排行榜冠军方案),专门针对中文和英文的检索任务优化。它原生支持 query 和 passage 前缀标记,在 RAG 场景下的检索效果优于通用 sentence-transformers 模型。开发者无需自己选型、对比、配置,官方已经做好默认选择。
from fastembed import TextEmbedding
# 默认加载 Flag Embedding(支持 50+ 语言,含中文)
embedding_model = TextEmbedding(model_name="Qdrant/FastEmbed-MMTEB")
# 支持批量处理
documents = ["文本1", "文本2", "文本3"]
embeddings = list(embedding_model.embed(documents))
FastEmbed 的野心不止于稠密向量(Dense Embedding)生成。项目源码结构揭示了更丰富的能力:
| 模块 | 说明 |
|---|---|
text/ | 文本稠密向量生成(核心) |
image/ | 图像嵌入生成 |
sparse/ | SPLADE 稀疏向量(结合稠密+稀疏可做混合搜索) |
rerank/ | 重排序模型(两阶段检索后再排序) |
late_interaction/ | ColBERT 晚期交互模型(更精细的细粒度匹配) |
late_interaction_multimodal/ | 多模态晚期交互 |
这种模块化设计让 FastEmbed 可以支撑完整的语义搜索 pipeline:先用 FastEmbed 的稠密/稀疏向量做快速初筛,再用 rerank 做精细排序,甚至可以混合 image 模块做图文联合检索。
FastEmbed 的安装包极小:pip install fastembed 即可,无需 CUDA、不强制 GPU,CPU 推理即可达到每秒数千条文本的吞吐量。Python 版本要求 >= 3.10,核心依赖只有 numpy、onnxruntime、tokenizers、huggingface-hub——没有 PyTorch、没有 TensorFlow,是真正的"轻量级"选手。
HuggingFace Hub 集成意味着模型自动按需下载,首次使用时自动缓存到本地。对于企业内网场景,HF_HOME 环境变量可以指向内网镜像,解决了 AI 工具在内网难以落地的常见痛点。
FastEmbed 并非没有代价。由于采用 ONNX 优化,某些前沿模型(如最新的 Transformer 变体)可能比 PyTorch 原生实现精度略低——虽然 Qdrant 团队持续在 MTEB 榜单上验证质量,但重度学术研究场景可能仍需要直接用 Hugging Face 的原始模型。
此外,FastEmbed 主要面向**检索(Retrieval)**场景优化,对于生成任务、对话任务则不适用。如果你的场景不是 RAG/向量搜索,而是需要一个通用的语言模型,FastEmbed 帮不上忙——它只负责"把文本变成数字"这一步。
Qdrant 团队开发 FastEmbed 绝非偶然——作为向量数据库厂商,他们深知 embedding 模型的质量直接决定了数据库中数据的可用性。FastEmbed 与 Qdrant 的深度集成(官方文档有专门章节介绍"FastEmbed + Qdrant"),形成了一个从 embedding 生成到向量存储到语义检索的完整闭环。
截至 2025 年中,FastEmbed 在 GitHub 已有超过 3000 颗星,被广泛用于 RAG 系统的文档嵌入环节。它的出现降低了语义搜索的技术门槛:以前要搭一套可用的向量检索系统,需要自己选 embedding 模型、导出 ONNX、处理 HuggingFace 下载;现在只需要三行代码。
本分析基于 GitHub 仓库最新代码(截至 2025 年 11 月)。