candding
Models

Model catalog

Every model candding ships, generated from the registry: the dense, sparse, multi-vector and rerank catalogs, each row with its own per-device status.

The tables are generated from the registry by just docs-models, from the JSON that candding list-models --json prints.

ModelFamilyDimPoolingMax lengthDtypesCPUMetalCUDALicense
BAAI/bge-small-en-v1.5BERT384cls512f32f16bf16verifiedverifiedverifiedMIT
BAAI/bge-base-en-v1.5BERT768cls512f32f16bf16verifiedverifiedverifiedMIT
BAAI/bge-large-en-v1.5BERT1024cls512f32f16bf16verifiedverifiedverifiedMIT
BAAI/bge-small-zh-v1.5BERT512cls512f32f16bf16verifiedverifiedverifiedMIT
sentence-transformers/all-MiniLM-L6-v2BERT384mean256f32f16bf16verifiedverifiedverifiedApache-2.0
thenlper/gte-baseBERT768mean512f32f16bf16verifiedverifiedverifiedMIT
thenlper/gte-largeBERT1024mean512f32f16bf16verifiedverifiedverifiedMIT
mixedbread-ai/mxbai-embed-large-v1BERT1024cls512f32f16bf16verifiedverifiedverifiedApache-2.0
Snowflake/snowflake-arctic-embed-xsBERT384cls512f32f16bf16verifiedverifiedverifiedApache-2.0
Snowflake/snowflake-arctic-embed-sBERT384cls512f32f16bf16verifiedverifiedverifiedApache-2.0
Snowflake/snowflake-arctic-embed-mBERT768cls512f32f16bf16verifiedverifiedverifiedApache-2.0
Snowflake/snowflake-arctic-embed-lBERT1024cls512f32f16bf16verifiedverifiedverifiedApache-2.0
sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2BERT384mean128f32f16bf16verifiedverifiedverifiedApache-2.0
intfloat/multilingual-e5-smallBERT384mean512f32f16bf16verifiedverifiedverifiedMIT
Qwen/Qwen3-Embedding-0.6BQwen31024last_token8192f32f16bf16verifiedverifiedverifiedApache-2.0
Qwen/Qwen3-Embedding-4BQwen32560last_token8192bf16f32f16verifiedverifiedverifiedApache-2.0
Qwen/Qwen3-Embedding-8BQwen34096last_token8192bf16f32f16untestedverifieduntestedApache-2.0
google/embeddinggemma-300mGemma3768mean2048f32f16bf16verifiedverifieduntestedgemma
intfloat/multilingual-e5-baseXLM-RoBERTa768mean512f32f16bf16verifiedverifiedverifiedMIT
intfloat/multilingual-e5-largeXLM-RoBERTa1024mean512f32f16bf16verifiedverifiedverifiedMIT
BAAI/bge-m3XLM-RoBERTa1024cls8192f32f16bf16verifiedverifiedverifiedMIT
sentence-transformers/paraphrase-multilingual-mpnet-base-v2XLM-RoBERTa768mean128f32f16bf16verifiedverifiedverifiedApache-2.0
sentence-transformers/all-mpnet-base-v2MPNet768mean384f32f16bf16verifiedverifiedverifiedApache-2.0
jinaai/jina-embeddings-v2-small-enJinaBERT512mean8192f32f16bf16verifiedverifiedverifiedApache-2.0
jinaai/jina-embeddings-v2-base-enJinaBERT768mean8192f32f16bf16verifiedverifiedverifiedApache-2.0
jinaai/jina-embeddings-v2-base-deJinaBERT768mean8192f32f16bf16verifiedverifiedverifiedApache-2.0
jinaai/jina-embeddings-v2-base-zhJinaBERT768mean8192f32f16bf16verifiedverifiedverifiedApache-2.0
jinaai/jina-embeddings-v2-base-esJinaBERT768mean8192f32f16bf16verifiedverifiedverifiedApache-2.0
jinaai/jina-embeddings-v2-base-codeJinaBERT768mean8192f32f16bf16verifiedverifiedverifiedApache-2.0
nomic-ai/nomic-embed-text-v1NomicBERT768mean8192f32f16bf16verifiedverifiedverifiedApache-2.0
nomic-ai/nomic-embed-text-v1.5NomicBERT768mean8192f32f16bf16verifiedverifiedverifiedApache-2.0
Snowflake/snowflake-arctic-embed-m-longNomicBERT768cls8192f32f16bf16verifiedverifiedverifiedApache-2.0
Alibaba-NLP/gte-modernbert-baseModernBERT768cls8192f32f16bf16verifiedverifiedverifiedApache-2.0
Alibaba-NLP/gte-multilingual-baseGTE (new)768cls8192f32f16bf16verifiedverifiedverifiedApache-2.0
Alibaba-NLP/gte-base-en-v1.5GTE (new)768cls8192f32f16bf16verifiedverifiedverifiedApache-2.0

Dtypes: bold is the default the builder loads; plain text is verified, muted is untested, struck through is unsupported, each colored by the dtype's own Metal status so a processor-only refusal does not read as unsupported everywhere; hover a dtype for its own cpu/metal/cuda breakdown. F16 is refused on the CPU and verified on Metal for Qwen/Qwen3-Embedding-0.6B, Qwen/Qwen3-Embedding-4B, jinaai/jina-embeddings-v2-base-de and jinaai/jina-embeddings-v2-base-zh. BF16 is refused on the CPU for every row: candle has no CPU BF16 matmul.

Sparse models

ModelHeadVocabMax lengthPhaseDtypesLicense
prithivida/Splade_PP_en_v1splade_mlm305225123f32f16bf16Apache-2.0
BAAI/bge-m3m3_linear25000281923f32f16bf16MIT
naver/splade-code-06Bsplade_tied15193610243f32f16bf16NAVER Non-Commercial (Splade-Code)
jinaai/jina-embeddings-v2-small-enmini_coil1912581923f32f16bf16Apache-2.0
sentence-transformers/all-MiniLM-L6-v2bm42305222563f32f16bf16Apache-2.0
Qdrant/bm25bm25n/an/a3f32f16bf16Apache-2.0

n/a marks an axis that does not exist for that row rather than one nobody has checked yet — Qdrant/bm25 has no encoder, no vocabulary and no device or numeric format anywhere in its own computation. Dtypes read the same way as in the dense table. F16 is refused on the CPU and verified on Metal for BAAI/bge-m3 and jinaai/jina-embeddings-v2-small-en. BF16 is refused on the CPU for every row except Qdrant/bm25, which has no device axis: candle has no CPU BF16 matmul.

Multi-vector models

ModelHeadWidthCLS rowNormalizedScore reductionQuery lengthMax lengthPhaseDtypesLicense
BAAI/bge-m3m3_colbert1024 → 1024noyesmean_by_query_lengthn/a81924f32f16bf16MIT
colbert-ir/colbertv2.0stanford_colbert768 → 128yesyessum321804f32f16bf16MIT
answerdotai/answerai-colbert-small-v1stanford_colbert384 → 96yesyessum323004f32f16bf16Apache-2.0
jinaai/jina-colbert-v2jina_colbert1024 → 128yesyessum323004f32f16bf16CC-BY-NC-4.0

width is the projection's input and output row length; n/a in Query length marks a checkpoint whose own head fixes no such length at all, the same way it marks a missing axis in the sparse table above. Dtypes read the same way as in the dense table. BF16 is refused on the CPU for every row: candle has no CPU BF16 matmul.

Rerank models

ModelFamilyHeadScoreInputMax lengthPhaseDtypesLicense
cross-encoder/ms-marco-MiniLM-L6-v2BERTbert_poolerraw logitpair, longest first5125f32f16bf16Apache-2.0
jinaai/jina-reranker-v1-tiny-enJinaBERTbert_poolerprobabilitypair, longest first5125f32f16bf16Apache-2.0
BAAI/bge-reranker-baseXLM-RoBERTaroberta_classification_headraw logitpair, query capped at 3/45125f32f16bf16MIT
BAAI/bge-reranker-v2-m3XLM-RoBERTaroberta_classification_headraw logitpair, query capped at 3/45125f32f16bf16Apache-2.0
Qwen/Qwen3-Reranker-0.6BQwen3logit_scoreraw logitprompt, Qwen3 reranker template81925f32f16bf16Apache-2.0
Qwen/Qwen3-Reranker-4BQwen3logit_scoreraw logitprompt, Qwen3 reranker template81925f32f16bf16Apache-2.0
Qwen/Qwen3-Reranker-8BQwen3logit_scoreraw logitprompt, Qwen3 reranker template81925f32f16bf16Apache-2.0
jinaai/jina-reranker-v2-base-multilingualXLM-RoBERTa (flash), learned positionsroberta_classification_headprobabilitywindowed pair, best window10245f32f16bf16CC-BY-NC-4.0

Tooltips give the values candding list-models prints, and the rerank page explains each score and input. Dtypes read the same way as in the dense table. F16 is refused on the CPU and verified on Metal for cross-encoder/ms-marco-MiniLM-L6-v2, jinaai/jina-reranker-v1-tiny-en, BAAI/bge-reranker-base, BAAI/bge-reranker-v2-m3, Qwen/Qwen3-Reranker-0.6B and jinaai/jina-reranker-v2-base-multilingual. BF16 is refused on the CPU for every row: candle has no CPU BF16 matmul.

Reading the columns

ColumnTablesMeaning
Poolingdensehow per-token states become one vector, cls, mean or last_token; see pooling and templates
Max lengthallthe default truncation, special and template tokens included; the builder caps any length at the model's position limit
DtypesallF32, F16 and BF16, styled as the footnote under the dense table explains; hover a dtype for its CPU, Metal and CUDA statuses
CPU, Metal, CUDAdensethe model's status on each device, as below
Phasesparse, multi-vector, rerankthe roadmap phase that added the row
Licenseallthe licence of the weights on Hugging Face, which governs their use; candding's own is on the API page
Headsparse, multi-vector, rerankthe head the row runs; the sparse, multi-vector and rerank pages explain each
Vocabsparsethe row's index width; n/a for Qdrant/bm25, as are its max length and dtypes
Widthmulti-vectorthe projection's input and output width; every output row has the second
CLS row, Normalizedmulti-vectorwhether the classification position survives as a row, and whether every row is L2-normalized
Score reductionmulti-vectorhow late_interaction_score_for reduces the summed score: sum, or mean_by_query_length
Query lengthmulti-vectorthe fixed row count a query is padded to; n/a for a head that fixes none
Familyrerankthe family the checkpoint runs on; for XLM-RoBERTa (flash) it adds how the encoder numbers tokens
Scorererankwhat RerankScore::value() returns: raw logit, a difference of two logits for a logit_score head, or probability, after a sigmoid
Inputrerankpair with its truncation, longest first or query capped at 3/4; prompt with its template; or windowed pair, best window; the rerank page explains each

Statuses

StatusMeaning
verifiedthe device's check passed in that dtype, as testing defines it
pendinga run is planned
untestedno run has reached the registry

Testing has the tolerance each dtype is held to.

On this page