RadarTopicsBuildersWeeklyReads
Open Source Radar
qdrant/

fastembed

GitHubWebsite

FastEmbed is a lightweight Python library for embedding generation using ONNX Runtime, with multiple model options and GPU support via separate package. It supports text, sparse, and multimodal embeddings and provides Qdrant integration examples.

3.1kstars
219forks
103issues
Apache-2.0license
2023since
Star historydaily snapshots by VibeCrowd

Collecting history — the radar snapshots this repo daily. The trend line appears after 3 days of data (1 so far).

Alternatives & relatedmatched by topic overlap
Reviewgenerated from repository data · Aug 5, 2026

What it is

FastEmbed is a lightweight, fast, Python library built for embedding generation. It supports popular text models and includes Dense, Sparse, Late Interaction (ColBERT), and multimodal embeddings, with examples for integration with Qdrant.

How it works

The library uses ONNX Runtime to perform embeddings, aiming to be fast and lightweight with optional GPU support via a separate package. It exposes a TextEmbedding interface and allows adding custom models. It includes modules for dense text embeddings, sparse embeddings, late-interaction models, and multimodal embeddings, along with a reranker (cross-encoder) component.

Getting started

Installation:

pip install fastembed

# or with GPU support
pip install fastembed-gpu

Quickstart:

from fastembed import TextEmbedding

documents = [
    "This is built to be faster and lighter than other embedding libraries e.g. Transformers, Sentence-Transformers, etc.",
    "fastembed is supported by and maintained by Qdrant.",
]

embedding_model = TextEmbedding()
print("The model BAAI/bge-small-en-v1.5 is ready to use.")

embeddings_generator = embedding_model.embed(documents)
embeddings_list = list(embedding_model.embed(documents))

Dense text embedding example:

from fastembed import TextEmbedding

model = TextEmbedding(model_name="BAAI/bge-small-en-v1.5")
embeddings = list(model.embed(documents))

Custom model example:

TextEmbedding.add_custom_model(
    model="intfloat/multilingual-e5-small",
    pooling=PoolingType.MEAN,
    normalization=True,
    sources=ModelSource(hf="intfloat/multilingual-e5-small"),
    dim=384,
    model_file="onnx/model.onnx",
)
model = TextEmbedding(model_name="intfloat/multilingual-e5-small")
embeddings = list(model.embed(documents))

Recent releases

  • v0.8.0 (2026-03-23): Features include using CUDA if available and addition of colmodernvbert; Fixes include update to ColBERT de.
  • v0.7.4 (2025-12-05): Features include avoiding network calls when model loaded from cache and exposing enable_cpu_mem_arena onnx session option; Fixes include related to padding token embeddings.
  • v0.7.2 (2025-08-25): Features include MUVERA post processing module.
  • v0.7.1 (2025-06-16): Features include improved warnings for model changes, and raising exceptions for incorrect pooling in custom models.
  • v0.7.0 (2025-05-13): Features include a new sparse embeddings model with semantic understanding: MiniCOIL.

Traction

Stars: 3124

Behind the repo

Qdrant maintains the project and it has open-source community contributions.

Caveats

License: Apache-2.0 Created: 2023-07-14 Last push: 2026-07-22 Open issues: 103 Languages: Python Topics: embeddings, openai, rag, retrieval, retrieval-augmented-generation, vector-search

SharePost on XLinkedIn
All trending reposRevenue-verified startups →