Instructions to use Quazim0t0/Byrne-Embed with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Quazim0t0/Byrne-Embed with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("feature-extraction", model="Quazim0t0/Byrne-Embed", trust_remote_code=True)# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("Quazim0t0/Byrne-Embed", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
license: apache-2.0
language:
- en
library_name: transformers
tags:
- sentence-embeddings
- feature-extraction
- sentence-similarity
- spikewhale
pipeline_tag: feature-extraction
model-index:
- name: Byrne-Embed
results:
- task:
type: Classification
name: MTEB AmazonCounterfactualClassification
dataset:
type: mteb/AmazonCounterfactualClassification
name: MTEB AmazonCounterfactualClassification
config: default
split: test
metrics:
- type: accuracy
value: 80.12
- task:
type: Clustering
name: MTEB ArXivHierarchicalClusteringP2P
dataset:
type: mteb/ArXivHierarchicalClusteringP2P
name: MTEB ArXivHierarchicalClusteringP2P
config: default
split: test
metrics:
- type: v_measure
value: 53.15
- task:
type: Clustering
name: MTEB ArXivHierarchicalClusteringS2S
dataset:
type: mteb/ArXivHierarchicalClusteringS2S
name: MTEB ArXivHierarchicalClusteringS2S
config: default
split: test
metrics:
- type: v_measure
value: 50.39
- task:
type: Retrieval
name: MTEB ArguAna
dataset:
type: mteb/ArguAna
name: MTEB ArguAna
config: default
split: test
metrics:
- type: ndcg_at_10
value: 37.67
- task:
type: Reranking
name: MTEB AskUbuntuDupQuestions
dataset:
type: mteb/AskUbuntuDupQuestions
name: MTEB AskUbuntuDupQuestions
config: default
split: test
metrics:
- type: map_at_1000
value: 52.88
- task:
type: STS
name: MTEB BIOSSES
dataset:
type: mteb/BIOSSES
name: MTEB BIOSSES
config: default
split: test
metrics:
- type: cosine_spearman
value: 75.56
- task:
type: Classification
name: MTEB Banking77Classification
dataset:
type: mteb/Banking77Classification
name: MTEB Banking77Classification
config: default
split: test
metrics:
- type: accuracy
value: 74.64
- task:
type: Clustering
name: MTEB BiorxivClusteringP2P.v2
dataset:
type: mteb/BiorxivClusteringP2P.v2
name: MTEB BiorxivClusteringP2P.v2
config: default
split: test
metrics:
- type: v_measure
value: 33.73
- task:
type: Retrieval
name: MTEB CQADupstackGamingRetrieval
dataset:
type: mteb/CQADupstackGamingRetrieval
name: MTEB CQADupstackGamingRetrieval
config: default
split: test
metrics:
- type: ndcg_at_10
value: 37.14
- task:
type: Retrieval
name: MTEB CQADupstackUnixRetrieval
dataset:
type: mteb/CQADupstackUnixRetrieval
name: MTEB CQADupstackUnixRetrieval
config: default
split: test
metrics:
- type: ndcg_at_10
value: 23.48
- task:
type: Retrieval
name: MTEB ClimateFEVERHardNegatives
dataset:
type: mteb/ClimateFEVERHardNegatives
name: MTEB ClimateFEVERHardNegatives
config: default
split: test
metrics:
- type: ndcg_at_10
value: 13.6
- task:
type: Retrieval
name: MTEB FEVERHardNegatives
dataset:
type: mteb/FEVERHardNegatives
name: MTEB FEVERHardNegatives
config: default
split: test
metrics:
- type: ndcg_at_10
value: 28.7
- task:
type: Retrieval
name: MTEB FiQA2018
dataset:
type: mteb/FiQA2018
name: MTEB FiQA2018
config: default
split: test
metrics:
- type: ndcg_at_10
value: 11.38
- task:
type: Retrieval
name: MTEB HotpotQAHardNegatives
dataset:
type: mteb/HotpotQAHardNegatives
name: MTEB HotpotQAHardNegatives
config: default
split: test
metrics:
- type: ndcg_at_10
value: 30.47
- task:
type: Classification
name: MTEB ImdbClassification
dataset:
type: mteb/ImdbClassification
name: MTEB ImdbClassification
config: default
split: test
metrics:
- type: accuracy
value: 60.97
- task:
type: Classification
name: MTEB MTOPDomainClassification
dataset:
type: mteb/MTOPDomainClassification
name: MTEB MTOPDomainClassification
config: default
split: test
metrics:
- type: accuracy
value: 92.29
- task:
type: Classification
name: MTEB MassiveIntentClassification
dataset:
type: mteb/MassiveIntentClassification
name: MTEB MassiveIntentClassification
config: default
split: test
metrics:
- type: accuracy
value: 63.23
- task:
type: Classification
name: MTEB MassiveScenarioClassification
dataset:
type: mteb/MassiveScenarioClassification
name: MTEB MassiveScenarioClassification
config: default
split: test
metrics:
- type: accuracy
value: 73.05
- task:
type: Clustering
name: MTEB MedrxivClusteringP2P.v2
dataset:
type: mteb/MedrxivClusteringP2P.v2
name: MTEB MedrxivClusteringP2P.v2
config: default
split: test
metrics:
- type: v_measure
value: 32.7
- task:
type: Clustering
name: MTEB MedrxivClusteringS2S.v2
dataset:
type: mteb/MedrxivClusteringS2S.v2
name: MTEB MedrxivClusteringS2S.v2
config: default
split: test
metrics:
- type: v_measure
value: 29.04
- task:
type: Reranking
name: MTEB MindSmallReranking
dataset:
type: mteb/MindSmallReranking
name: MTEB MindSmallReranking
config: default
split: test
metrics:
- type: max_over_subqueries_map_at_1000
value: 28.07
- task:
type: Retrieval
name: MTEB SCIDOCS
dataset:
type: mteb/SCIDOCS
name: MTEB SCIDOCS
config: default
split: test
metrics:
- type: ndcg_at_10
value: 10.15
- task:
type: STS
name: MTEB SICK-R
dataset:
type: mteb/SICK-R
name: MTEB SICK-R
config: default
split: test
metrics:
- type: cosine_spearman
value: 69.08
- task:
type: STS
name: MTEB STS12
dataset:
type: mteb/STS12
name: MTEB STS12
config: default
split: test
metrics:
- type: cosine_spearman
value: 64.88
- task:
type: STS
name: MTEB STS13
dataset:
type: mteb/STS13
name: MTEB STS13
config: default
split: test
metrics:
- type: cosine_spearman
value: 72.08
- task:
type: STS
name: MTEB STS14
dataset:
type: mteb/STS14
name: MTEB STS14
config: default
split: test
metrics:
- type: cosine_spearman
value: 67.76
- task:
type: STS
name: MTEB STS15
dataset:
type: mteb/STS15
name: MTEB STS15
config: default
split: test
metrics:
- type: cosine_spearman
value: 77.13
- task:
type: STS
name: MTEB STS17
dataset:
type: mteb/STS17
name: MTEB STS17
config: default
split: test
metrics:
- type: cosine_spearman
value: 83.23
- task:
type: STS
name: MTEB STS22.v2
dataset:
type: mteb/STS22.v2
name: MTEB STS22.v2
config: default
split: test
metrics:
- type: cosine_spearman
value: 60.53
- task:
type: STS
name: MTEB STSBenchmark
dataset:
type: mteb/STSBenchmark
name: MTEB STSBenchmark
config: default
split: test
metrics:
- type: cosine_spearman
value: 77.08
- task:
type: PairClassification
name: MTEB SprintDuplicateQuestions
dataset:
type: mteb/SprintDuplicateQuestions
name: MTEB SprintDuplicateQuestions
config: default
split: test
metrics:
- type: max_ap
value: 86.47
- task:
type: Clustering
name: MTEB StackExchangeClustering.v2
dataset:
type: mteb/StackExchangeClustering.v2
name: MTEB StackExchangeClustering.v2
config: default
split: test
metrics:
- type: v_measure
value: 41.93
- task:
type: Clustering
name: MTEB StackExchangeClusteringP2P.v2
dataset:
type: mteb/StackExchangeClusteringP2P.v2
name: MTEB StackExchangeClusteringP2P.v2
config: default
split: test
metrics:
- type: v_measure
value: 35.22
- task:
type: Summarization
name: MTEB SummEvalSummarization.v2
dataset:
type: mteb/SummEvalSummarization.v2
name: MTEB SummEvalSummarization.v2
config: default
split: test
metrics:
- type: cosine_spearman
value: 22.39
- task:
type: Retrieval
name: MTEB TRECCOVID
dataset:
type: mteb/TRECCOVID
name: MTEB TRECCOVID
config: default
split: test
metrics:
- type: ndcg_at_10
value: 29.3
- task:
type: Retrieval
name: MTEB Touche2020Retrieval.v3
dataset:
type: mteb/Touche2020Retrieval.v3
name: MTEB Touche2020Retrieval.v3
config: default
split: test
metrics:
- type: ndcg_at_10
value: 24.5
- task:
type: Classification
name: MTEB ToxicConversationsClassification
dataset:
type: mteb/ToxicConversationsClassification
name: MTEB ToxicConversationsClassification
config: default
split: test
metrics:
- type: accuracy
value: 62.94
- task:
type: Classification
name: MTEB TweetSentimentExtractionClassification
dataset:
type: mteb/TweetSentimentExtractionClassification
name: MTEB TweetSentimentExtractionClassification
config: default
split: test
metrics:
- type: accuracy
value: 57.29
- task:
type: Clustering
name: MTEB TwentyNewsgroupsClustering.v2
dataset:
type: mteb/TwentyNewsgroupsClustering.v2
name: MTEB TwentyNewsgroupsClustering.v2
config: default
split: test
metrics:
- type: v_measure
value: 22.39
- task:
type: PairClassification
name: MTEB TwitterSemEval2015
dataset:
type: mteb/TwitterSemEval2015
name: MTEB TwitterSemEval2015
config: default
split: test
metrics:
- type: max_ap
value: 53.19
- task:
type: PairClassification
name: MTEB TwitterURLCorpus
dataset:
type: mteb/TwitterURLCorpus
name: MTEB TwitterURLCorpus
config: default
split: test
metrics:
- type: max_ap
value: 82.55
Byrne-Embed
Byrne-Embed is a compact 85M-parameter sentence-embedding model. It maps text to 768-dimensional unit-norm vectors suitable for semantic similarity, retrieval, clustering, and reranking.
The backbone is a custom SpikeWhale decoder (the "Byrne" line). A mean-pooled representation of its last hidden state is projected to 768 dimensions by a learned head and unit-normalized, so cosine similarity between two embeddings is just a dot product.
Benchmark vs. EmbeddingGemma-300M
We benchmarked Byrne-Embed against Google's EmbeddingGemma-300M on 4,000 held-out sentences spanning educational web text, encyclopedic text, and instruction/chat text. Byrne-Embed's embedding geometry tracks closely with EmbeddingGemma's at roughly 1/3.5 the parameter count:
| Metric (Byrne-Embed vs EmbeddingGemma) | Result |
|---|---|
| Mean per-sentence cosine | 0.9415 (median 0.945, p10 0.912) |
| Sentences within 0.90 cosine | 94.7% |
| Similarity-structure agreement (Pearson) | 0.9702 |
| Similarity-structure agreement (Spearman) | 0.9599 |
| Per-anchor neighbour-ranking correlation | 0.9494 |
| Retrieval top-1 nearest-neighbour agreement | 72.8% |
| Retrieval Recall@10 overlap | 78.2% |
Reading the numbers. The two most important measures — how closely the two models agree on which sentences are similar — land at Pearson 0.97 / Spearman 0.96: when EmbeddingGemma judges two sentences similar, Byrne-Embed agrees almost identically. 94.7% of all sentences sit within 0.90 cosine. The lower top-1 retrieval number is expected and not a quality gap: in a dense pool of real sentences many neighbours are near-ties (0.88 vs 0.87), so the single #1 slot flips easily between near-duplicates — which is why Recall@10 stays at ~78% and the neighbour-ranking correlation is 0.95. Both models find the same neighbourhood; they just occasionally swap rank 1 and rank 2 among near-identical candidates.
Reproduce these numbers with the bundled run_tests.py (it loads both
models and prints the full table).
MTEB English Benchmark — MTEB(eng, v2)
Evaluated with the official mteb library on the full MTEB(eng, v2) suite (41/41 tasks). Raw results are in mteb_results/; machine-readable scores are in the model-index metadata above.
Overall MTEB(eng, v2) mean: 50.79
| Category | Mean | Tasks |
|---|---|---|
| STS | 71.93 | 9 |
| Classification | 70.57 | 8 |
| PairClassification | 74.07 | 3 |
| Clustering | 37.32 | 8 |
| Reranking | 40.48 | 2 |
| Retrieval | 24.64 | 10 |
| Summarization | 22.39 | 1 |
STS
| Task | Score |
|---|---|
| BIOSSES | 75.56 |
| SICK-R | 69.08 |
| STS12 | 64.88 |
| STS13 | 72.08 |
| STS14 | 67.76 |
| STS15 | 77.13 |
| STS17 | 83.23 |
| STS22.v2 | 60.53 |
| STSBenchmark | 77.08 |
Classification
| Task | Score |
|---|---|
| AmazonCounterfactualClassification | 80.12 |
| Banking77Classification | 74.64 |
| ImdbClassification | 60.97 |
| MTOPDomainClassification | 92.29 |
| MassiveIntentClassification | 63.23 |
| MassiveScenarioClassification | 73.05 |
| ToxicConversationsClassification | 62.94 |
| TweetSentimentExtractionClassification | 57.29 |
PairClassification
| Task | Score |
|---|---|
| SprintDuplicateQuestions | 86.47 |
| TwitterSemEval2015 | 53.19 |
| TwitterURLCorpus | 82.55 |
Clustering
| Task | Score |
|---|---|
| ArXivHierarchicalClusteringP2P | 53.15 |
| ArXivHierarchicalClusteringS2S | 50.39 |
| BiorxivClusteringP2P.v2 | 33.73 |
| MedrxivClusteringP2P.v2 | 32.70 |
| MedrxivClusteringS2S.v2 | 29.04 |
| StackExchangeClustering.v2 | 41.93 |
| StackExchangeClusteringP2P.v2 | 35.22 |
| TwentyNewsgroupsClustering.v2 | 22.39 |
Reranking
| Task | Score |
|---|---|
| AskUbuntuDupQuestions | 52.88 |
| MindSmallReranking | 28.07 |
Retrieval
| Task | Score |
|---|---|
| ArguAna | 37.67 |
| CQADupstackGamingRetrieval | 37.14 |
| CQADupstackUnixRetrieval | 23.48 |
| ClimateFEVERHardNegatives | 13.60 |
| FEVERHardNegatives | 28.70 |
| FiQA2018 | 11.38 |
| HotpotQAHardNegatives | 30.47 |
| SCIDOCS | 10.15 |
| TRECCOVID | 29.30 |
| Touche2020Retrieval.v3 | 24.50 |
Summarization
| Task | Score |
|---|---|
| SummEvalSummarization.v2 | 22.39 |
Usage
The model loads with standard transformers via trust_remote_code (the projection head
is fused into the weights, so a single from_pretrained loads everything):
import torch
from transformers import AutoModel, AutoTokenizer
tok = AutoTokenizer.from_pretrained("Quazim0t0/Byrne-Embed", trust_remote_code=True)
model = AutoModel.from_pretrained("Quazim0t0/Byrne-Embed", trust_remote_code=True).eval()
texts = ["The cat sat on the windowsill.", "A feline rested by the window."]
enc = tok(texts, return_tensors="pt", padding=True, truncation=True, max_length=128)
with torch.no_grad():
emb = model(**enc).last_hidden_state # (2, 768), L2-normalized
print(float(emb[0] @ emb[1])) # cosine similarity ~ 0.83
forward() returns L2-normalized 768-dim sentence embeddings, so cosine similarity is
just a dot product.
Files
| File | Purpose |
|---|---|
model.safetensors, config.json |
fused SpikeWhale backbone + projection head + config |
modeling_byrne_embed.py |
self-contained custom AutoModel class (SpikeWhale arch inlined; loaded via trust_remote_code) |
tokenizer.json, tokenizer_config.json, spike_tokenizer.py |
byte-level SpikeTokenizer + its code |
Limitations
- English-centric evaluation; non-English performance is untested.
- The single residual weak spot observed during evaluation is finance/economics paraphrase retrieval; general semantic similarity is strong.
- Custom architecture: load via the bundled
byrne_embedder.py(local modeling code — no remote code execution).
Citation
If you use Byrne-Embed, please cite:
@misc{byrne2026byrneembed,
title = {Byrne-Embed: A Compact 85M Sentence-Embedding Model},
author = {Byrne, Dean},
year = {2026},
howpublished = {\url{https://huggingface.co/Quazim0t0/Byrne-Embed}},
}
License
Apache-2.0.