hotchpotch/bekko-embedding-v1-a8m-GGUF

🤗 Hugging Face sourcefeature-extractionmit555 MBGGUFChecksums witnessedupdated today
No torrent yet

bekko-embedding-v1-a8m-GGUF

GGUF release of hotchpotch/bekko-embedding-v1-a8m, an ultra-compact multilingual text embedding model with 7.7M active parameters.

llama.cpp

The GGUF contains a compatible Gemma2 SentencePiece vocabulary and runs on the standard llama.cpp runtime with ModernBERT embedding support:

# GPU or Apple Silicon: use BF16
llama-server \
  -hf hotchpotch/bekko-embedding-v1-a8m-GGUF:BF16 \
  --embedding --pooling mean --embd-normalize 2 --ctx-size 8192
curl http://localhost:8080/v1/embeddings \
  -H 'Content-Type: application/json' \
  -d '{"model":"bekko","input":["What is the tallest mountain in Japan?","Mount Fuji is the tallest mountain in Japan."]}'

For CPU inference, replace :BF16 with :Q8_0. If the selector is unavailable in your llama.cpp version, download the desired GGUF file and pass it with --model:

hf download \
  hotchpotch/bekko-embedding-v1-a8m-GGUF \
  bekko-embedding-v1-a8m-Q8_0.gguf \
  --local-dir .

llama-server \
  --model ./bekko-embedding-v1-a8m-Q8_0.gguf \
  --embedding --pooling mean --embd-normalize 2 --ctx-size 8192

Ollama

The default Ollama tag is BF16 and is recommended for GPU and Apple Silicon users:

ollama pull hotchpotch/bekko-embedding-v1-a8m
curl http://localhost:11434/api/embed \
  -d '{"model":"hotchpotch/bekko-embedding-v1-a8m","input":"What is the tallest mountain in Japan?"}'

For CPU inference, select the Q8_0 tag explicitly:

ollama pull hotchpotch/bekko-embedding-v1-a8m:q8_0

The available tags are latest (BF16), bf16, f16, and q8_0. The registry artifact has been verified as an embedding model with 384 dimensional, L2-normalized output.

Model contract

  • Architecture: ModernBERT encoder
  • Context length: 8192 tokens
  • Embedding dimension: 384
  • Matryoshka dimensions: 256, 128, 64
  • Pooling: mean
  • Similarity: cosine or dot product after L2 normalization
  • Query/document prefixes: none
  • Languages: 100+

Use the same unprefixed encoding function for queries and documents.

Quantization quality

Q8_0 was compared with the revision-pinned SentenceTransformers source using the same unprefixed queries and documents:

Benchmark HF source Q8_0 Delta
NanoMIRACL-ja NDCG@10 0.667374 0.675283 +0.007908
NanoMIRACL-en NDCG@10 0.641952 0.645472 +0.003520
NanoCoIR representative mean NDCG@10 0.886194 0.886992 +0.000798

The mean cosine similarity to the HF embeddings is 0.999695 over five ordinary multilingual samples. Small positive retrieval deltas should be treated as ranking noise, not as an improvement caused by quantization.

Faster CPU inference

GGUF is intended for portable llama.cpp and Ollama deployment. On a fast x86 CPU, the optimized OpenVINO export is generally faster than llama.cpp GGUF and should be preferred when maximum throughput is the priority. It is available in the hotchpotch/bekko-embedding-v1-a8m source repository when maximum throughput is the priority. The source model also provides the original SentenceTransformers model and its full model card.

from sentence_transformers import SentenceTransformer

model = SentenceTransformer(
    "hotchpotch/bekko-embedding-v1-a8m",
    backend="openvino",
)
embeddings = model.encode(["What is the tallest mountain in Japan?"], normalize_embeddings=True)

Choosing a GGUF format

The repository publishes BF16, F16, and Q8_0. Use BF16 on GPUs and Apple Silicon; use Q8_0 on CPUs, especially CPUs without native BF16 arithmetic. F16 is provided for runtimes or hardware that prefer FP16 explicitly.

Q8_0 remains the best quantized portable trade-off found in our BF16/Q8_0/Q6_K/Q5_K_M/Q4_K_M/IQ4_XS comparison:

  • Lower-bit K-quants provide almost no size reduction because the 384-wide tensors fall back to Q5_0 or Q8_0. Q4_K_M is only 1.9% smaller than Q8_0.
  • Lower-bit embeddings have larger cosine drift. IQ4_XS loses 0.0195 mean NDCG@10 on the representative NanoCoIR tasks.
  • Q8_0 is the fastest quality-preserving quantization on Raspberry Pi 5. Q4_K_M and Q5_K_M reach only 41% and 39% of Q8_0 throughput respectively.
  • Q6_K has the same size, embeddings, benchmark scores, and effectively the same fallback tensor types as Q8_0, so publishing both would be redundant.
Requested quant Size MiB Cosine vs HF NanoCoIR delta Pi 5 speed vs Q8_0
Q8_0 113.14 0.999695 +0.000798 1.000x
Q6_K 113.14 0.999695 +0.000798 0.984x
Q5_K_M 111.39 0.997407 +0.002598 0.389x
Q4_K_M 111.03 0.996615 +0.006042 0.408x
IQ4_XS 109.49 0.986278 -0.019549 0.953x

Positive benchmark deltas in this small evaluation are ranking noise rather than evidence that lower numerical precision improves the model.

Files and reproducibility

File Purpose
bekko-embedding-v1-a8m-BF16.gguf Recommended for GPU and Apple Silicon
bekko-embedding-v1-a8m-F16.gguf FP16 compatibility option
bekko-embedding-v1-a8m-Q8_0.gguf Recommended for CPU inference
conversion.json Source revision, llama.cpp revision, checksums, and config checks

This repository is generated from an immutable source revision. See conversion.json for the exact revision, llama.cpp revision, SHA-256 hash, and release-critical config validation.

For benchmark results, training details, license, and limitations, refer to the source model card.