CoolFace
Modelpublic

embedme/lightonai-colbert-zero-f16

sourceHugging Faceapache-2.0updated 7mo agoView on Hugging Face
0likes8downloads
Model Card

ColBERT-Zero (GGUF f16 + Projection)

Quantized GGUF conversion of lightonai/ColBERT-Zero for use with litembeddings.

ColBERT-Zero is SOTA on BEIR (55.43 nDCG@10) for models under 150M parameters, outperforming all other ColBERT and dense retrieval models trained on public data.

Model Details

PropertyValue
Base Modellightonai/ColBERT-Zero
ArchitectureModernBERT-base (~100M params)
Output Dimensions128 (after projection)
Context Length8,192 tokens
Quantizationf16
GGUF Size286 MB
Projection768 → 128 (PyLate Dense layer)
LicenseApache 2.0
Use CaseGeneral-purpose semantic search with late interaction (ColBERT-style MaxSim)

Available Variants

VariantSizeEmbedding Latency (11 tok / 50 tok / 150 tok)Notes
**f32**571 MB463ms / 770ms / 3062msOriginal precision
**f16**286 MB1385ms / 3642ms / 11439msSlow without FP16 hardware
**Q8_0** (recommended)153 MB97ms / 625ms / 2633msFastest on CPU, 3.7x smaller than f32
Benchmarked on QEMU vCPU with SSE4.2. Q8_0 is fastest due to integer SIMD; f16 is slowest without hardware FP16.

BEIR Benchmark (from original model)

ModelBEIR nDCG@10ParamsData
ColBERT-Zero55.43~100MPublic only
ModernColBERT-embed-base55.12~100MPublic only
GTE-ModernColBERT54.67~100MProprietary
ModernBERT-embed-supervised (dense)52.89~100MPublic only

MaxSim Score Consistency Across Quants

Queryf32f16Q8_0
Related pair9.2039.2029.191
Unrelated pair7.6437.6427.626

Negligible quality loss from quantization — Q8_0 scores within 0.1% of f32.

Files

FileSizeDescription
lightonai-colbert-zero-f16.gguf286 MBModernBERT-base encoder in GGUF f16 format
lightonai-colbert-zero-f16.projection385 KBProjection matrix (128×768, float32)

Usage with litembeddings

sql
.load ./build/litembeddings

-- Load model with projection
SELECT lembed_model('lightonai-colbert-zero-f16.gguf',
    '{"colbert_projection": "lightonai-colbert-zero-f16.projection"}');

-- Generate token embeddings
SELECT lembed_tokens('search_query: What is machine learning?');

-- Semantic search with MaxSim scoring
SELECT
    id, content,
    lembed_maxsim(lembed_tokens('search_query: error handling best practices'), tokens) AS score
FROM documents
ORDER BY score DESC
LIMIT 10;

Important: Query/Document Prefixes

ColBERT-Zero uses asymmetric prompts for best results:

  • —Queries: Prefix with search_query:
  • —Documents: Prefix with search_document:

Omitting these prefixes degrades performance by ~0.8-1.3 nDCG@10 points.

Conversion

bash
python scripts/convert_colbert_to_gguf.py lightonai/ColBERT-Zero ./models \
    --name colbert-zero --quantize f16

License: Apache 2.0