candding

Roadmap

The families candding adds phase by phase, what each phase brings, and the work planned around the catalog.

The phases are ordered by what a retrieval stack needs first: the dense encoders that ship today, then the decoder-based embedders that lead the multilingual benchmarks, which is why Qwen3-Embedding and EmbeddingGemma come before the remaining encoder families, the rerankers, the sparse and late-interaction models, and the image models. A phase lands as a family implementation, golden references, parity on the supported backends, a family page and a regenerated catalog.

PhaseFamilyExample modelsStatus
0BERTthe 13 catalog modelsverified
1Qwen3Qwen/Qwen3-Embedding-0.6B, 4B, 8Bplanned
1Gemma3google/embeddinggemma-300mplanned
2XLM-RoBERTaintfloat/multilingual-e5-large, base, small, BAAI/bge-m3planned
2MPNetsentence-transformers/paraphrase-multilingual-mpnet-base-v2, all-mpnet-base-v2planned
2JinaBERTjinaai/jina-embeddings-v2-small-en, base-en, base-de, base-es, base-zh, base-codeplanned
2NomicBERTnomic-ai/nomic-embed-text-v1, v1.5, Snowflake/snowflake-arctic-embed-m-longplanned
2ModernBERTAlibaba-NLP/gte-modernbert-baseplanned
2GTE (new)Alibaba-NLP/gte-multilingual-base, gte-base-en-v1.5planned
3Rerankerscross-encoder/ms-marco-MiniLM-L-6-v2, BAAI/bge-reranker-base, bge-reranker-v2-m3, jinaai/jina-reranker-v1-tiny-en, Qwen/Qwen3-Reranker-0.6B, 4B, 8B, jinaai/jina-reranker-v2-base-multilingualplanned
4Sparseprithivida/Splade_PP_en_v1, Qdrant/bm25, Qdrant/bm42-all-minilm-l6-v2-attentions, Qdrant/minicoil-v1, BAAI/bge-m3 sparseplanned
5Late interactioncolbert-ir/colbertv2.0, answerdotai/answerai-colbert-small-v1, jinaai/jina-colbert-v2, vidore/colpali-v1.3planned
6Image and othersopenai/clip-vit-base-patch32, jinaai/jina-clip-v1, ResNet50, Unicom ViT-B/16 and B/32, sentence-transformers/sentence-t5-base, gtr-t5-base, jinaai/jina-embeddings-v3, Qwen3-Embedding GGUFplanned

Phase 0, the catalog's first family, is BERT: one architecture behind every model shipped today. Phase 1 brings the two decoder-based families the project exists for, with last-token pooling, instruction templates and Matryoshka truncation, all of which the pipeline already supports. Phase 2 is the rest of the encoders, each with its own position scheme. Phases 3 to 6 widen the API surface rather than the encoder list: reranking, sparse and late-interaction vectors, and image embeddings.

Also planned

  • CUDA verification for the catalog, which is what the cuda column of the catalog table is waiting for; the models are expected to pass, and the column stays untested until a run says so.
  • Flash attention on CUDA, as a third kernel behind the one attention function, in the same place candle's Metal kernel is chosen today.
  • A benchmarks page with numbers from release builds, per model, device and batch size.
  • Publication on crates.io, which is what turns the git dependency in getting started into a version requirement.

On this page