candding 0.1.0

Pure candle embeddings for Rust with no ONNX: dense, sparse, multi-vector and rerank models today, image models on the roadmap
Documentation
use crate::models::MultiVectorHead;
use crate::multi_vector::MaskedRowFill;
use crate::multi_vector::ScoreReduction;
use crate::registry::DtypeSupport;
use crate::registry::Family;
use crate::registry::Support;
use crate::registry::WeightsFormat;
use crate::registry::multi_vector::entry::MultiVectorEntry;

/// `BAAI/bge-m3`'s `colbert_linear.pt`: a biased `Linear(1024, 1024)` that drops the classification row, scored as
/// FlagEmbedding does. F16 misses its cosine floor on both devices and BF16 on Metal, so both are unsupported.
pub(super) const BGE_M3_MULTI_VECTOR: MultiVectorEntry = MultiVectorEntry {
  id: "BAAI/bge-m3",
  family: Family::XlmRoberta,
  head: MultiVectorHead::M3Colbert,
  default_max_length: 8192,
  keeps_cls_row: false,
  projection_in: 1024,
  projection_out: 1024,
  projection_bias: true,
  normalize: true,
  score_reduction: ScoreReduction::MeanByQueryLength,
  query_marker: None,
  document_marker: None,
  query_length: None,
  attends_to_mask_tokens: false,
  masked_document_row_fill: MaskedRowFill::Zero,
  position_scheme: None,
  cpu: Support::Verified,
  metal: Support::Verified,
  cuda: Support::Verified,
  dtypes: DtypeSupport {
    f32: Support::Verified,
    f16: Support::Unsupported,
    bf16: Support::Unsupported,
  },
  license: "MIT",
  size_gb: 2.27,
  phase: 4,
  weights: WeightsFormat::Pickle,
  gated: false,
  accel_only_dtypes: &[],
  cell_exceptions: &[],
};