Roadmap
The families candding adds phase by phase, the output modes and quantized variants each model offers, and the runtime work around the catalog.
A phase is verified when its family has an implementation, golden references, parity on the supported backends, a family page and a regenerated catalog, which has every model's status per device and dtype.
| Phase | Family | Example models | Status |
|---|---|---|---|
| 0 | BERT | 13 models: bge (4), MiniLM (2), gte (2), mixedbread-ai/mxbai-embed-large-v1, Snowflake Arctic (4) | verified |
| 1 | Qwen3 | Qwen/Qwen3-Embedding-0.6B, 4B, 8B | verified |
| 1 | Gemma3 | google/embeddinggemma-300m | verified |
| 2 | XLM-RoBERTa | intfloat/multilingual-e5-large, base, BAAI/bge-m3, sentence-transformers/paraphrase-multilingual-mpnet-base-v2 | verified |
| 2 | BERT | intfloat/multilingual-e5-small, a BERT checkpoint by its own model_type | verified |
| 2 | MPNet | sentence-transformers/all-mpnet-base-v2 | verified |
| 2 | JinaBERT | jinaai/jina-embeddings-v2-small-en, base-en, base-de, base-es, base-zh, base-code | verified |
| 2 | NomicBERT | nomic-ai/nomic-embed-text-v1, v1.5, Snowflake/snowflake-arctic-embed-m-long | verified |
| 2 | ModernBERT | Alibaba-NLP/gte-modernbert-base | verified |
| 2 | GTE (new) | Alibaba-NLP/gte-multilingual-base, gte-base-en-v1.5 | verified |
| 3 | Sparse | prithivida/Splade_PP_en_v1, BAAI/bge-m3, naver/splade-code-06B, Qdrant/minicoil-v1, Qdrant/all_miniLM_L6_v2_with_attentions, Qdrant/bm25 | verified |
| 4 | Multi-vector and late interaction | BAAI/bge-m3, colbert-ir/colbertv2.0, answerdotai/answerai-colbert-small-v1, jinaai/jina-colbert-v2 | verified |
| 5 | Rerankers | cross-encoder/ms-marco-MiniLM-L6-v2, jinaai/jina-reranker-v1-tiny-en, BAAI/bge-reranker-base, bge-reranker-v2-m3, Qwen/Qwen3-Reranker-0.6B, 4B, 8B, jinaai/jina-reranker-v2-base-multilingual | verified |
| 6 | Image and others | openai/clip-vit-base-patch32, jinaai/jina-clip-v1, vidore/colpali-v1.3, sentence-transformers/sentence-t5-base, gtr-t5-base, jinaai/jina-embeddings-v3, Qwen/Qwen3-Embedding-0.6B-GGUF | planned |
| 7 | Constella | NovaSearch/stella_en_400M_v5 as the document side, Qdrant/constella-zero, Qdrant/constella-nano | planned |
Planned phases
- Phase 6 will add image input, so that text queries can search images and document pages:
openai/clip-vit-base-patch32, thenjinaai/jina-clip-v1, thenvidore/colpali-v1.3, which embeds a page as one vector per patch. It will also add the two T5 encoders,jinaai/jina-embeddings-v3with its five task adapters, kept out of CI by its CC-BY-NC licence, andQwen/Qwen3-Embedding-0.6B-GGUFthrough the quantized path. - Phase 7 will add Qdrant's MIT-licensed Constella family: a document encoder and two query encoders writing into one normalized space, so that a collection indexed once with the document side can be searched with either query side.
Qdrant/constella-nanowill land once its weights are published as safetensors rather than ONNX. - ResNet50 and the Unicom ViT models are not planned, since they are published only as ONNX graphs.
Output modes
Every shipped model offers one output, except the first four below; a dash means the model does not offer that output.
| Model | Dense | Sparse | Multi-vector | Rerank | Image |
|---|---|---|---|---|---|
| BAAI/bge-m3 | ships | ships | ships | — | — |
| sentence-transformers/all-MiniLM-L6-v2 | ships | ships, BM42 | — | — | — |
| jinaai/jina-embeddings-v2-small-en | ships | ships, miniCOIL | — | — | — |
| Alibaba-NLP/gte-multilingual-base | ships | planned | — | — | — |
| openai/clip-vit-base-patch32, jinaai/jina-clip-v1 | planned | — | — | — | planned |
| vidore/colpali-v1.3 | — | — | planned | — | planned |
| every other phase 6 and 7 model | planned | — | — | — | — |
gte-multilingual-base's sparse output is a token-classification head that only the repository's own script uses; see GTE (new).
Quantized weights
Planned after the remaining output modes: a quantized loading path for every model with published quantized weights, from the vendor or a well-known community conversion, verified against the model's F32 reference at a tolerance of its own. Only the matmul projections will run quantized.
| Published quantized weights | Models |
|---|---|
| Official GGUF | Qwen/Qwen3-Embedding-0.6B, 4B and 8B, nomic-ai/nomic-embed-text-v1 and v1.5 |
| Official quantization-aware safetensors, gated | google/embeddinggemma-300m, q4_0 and q8_0, with GGUF conversions from ggml-org |
| Community GGUF only | every other catalog model with weights, except the four below |
| None | Alibaba-NLP/gte-multilingual-base, naver/splade-code-06B, answerdotai/answerai-colbert-small-v1, jinaai/jina-colbert-v2 |
candle reads the classic GGML types and the k-quants but neither the IQ nor the TQ types, and a GGUF of BAAI/bge-m3 carries neither side head, so its quantized path will be dense only.
Other open work
| Item | What it is and why | Status |
|---|---|---|
| Pipelines around the catalog | chunking, document parsing and vector-database inserts, from documents to a populated collection | planned last |
| Video | the image models over frames the caller samples, the frame vectors pooled or kept as a multi-vector | after the image models |
| Audio | a CLAP-style encoder, or Whisper transcription then text embedding; which one is open | investigating |
| Late chunking | one pass over a long document, its token states pooled per chunk, so each chunk keeps the whole document's context | planned |
| Static embeddings | model2vec-style lookup tables with mean pooling and no attention; Qdrant/constella-zero is the first | planned |
| Servers and hosted endpoints | a network service is a different product from a library | out of scope |
| Large-model runs | F32 of Qwen/Qwen3-Reranker-4B, Qwen3-Embedding-8B and Qwen3-Reranker-8B, and the 8B reranker's Metal F16, all waiting for a machine with the memory | planned |
| Half precision on the CPU | an F32-accumulating F16 path and a BF16 upcast, to lift the half-precision refusals on the CPU | investigating |
| Long inputs and flash attention on CUDA | chunked attention, and flash attention as a third kernel, to lift the Qwen3 models' 8192-token default that quadratic attention memory sets | planned |
| CUDA verification | F32 and F16 are verified on an NVIDIA T4 for every entry but the cells testing lists; BF16 waits for a GPU of sm_80 or newer, and the 4B and 8B models' larger cells for one with more memory | in progress |
| CUDA wheels for Python | a candding-cu12 package for Linux x86-64, built for sm_80 and newer with NVIDIA's CUDA 12 runtime packages as dependencies, so pip install needs only the driver; today CUDA from Python takes a source build | planned |
| Benchmarks page | release-build numbers per model, device and batch size | planned |