Downloads · 30 days
114
14% of all-time downloads
Mike0021/pulpie-orange-small-gguf
pulpie-orange-small-gguf is a token classification model from Mike0021. Use it when you need labels on individual words, such as names. The card lists the license as cc-by-nc-4.0.
GGUF conversion of feyninc/pulpie-orange-small, a 210M parameter EuroBERT token-classification model for Pulpie HTML main-content extraction.
Downloads · 30 days
114
14% of all-time downloads
All-time downloads
806
Public
Repo size
1.4 GB
Likes
0
Public
Click a slice to open those files.
.gguf1.4 GB · 100%
From the Hugging Face model README
GGUF conversion of feyninc/pulpie-orange-small, a 210M parameter EuroBERT token-classification model for Pulpie HTML main-content extraction.
This is an encoder classifier, not a causal LM. The GGUF files expose per-token other/main classifier logits via llama-embedding, not llama-cli generation.
| Quant | Size | Notes |
|---|---|---|
| F16 | 431 MB | Full precision baseline |
| Q8_0 | 233 MB | 8-bit, verified accurate |
| Q6_K | 182 MB | |
| Q5_K_M | 169 MB | |
| Q4_K_M | 157 MB | |
| Q3_K_M | 143 MB | |
| Q2_K | 130 MB | Most aggressive quantization |
| Variant | Max diff vs PyTorch | E2E extraction | Prediction agreement |
|---|---|---|---|
| F16 | 0.070 | ✅ 3 main blocks | 100% |
| Q8_0 | 0.072 | ✅ 3 main blocks | 100% |
| Q6_K – Q2_K | not tested | not tested | — |
Note: Only F16 and Q8_0 were numerically verified against the original PyTorch model. Lower quants (Q6_K → Q2_K) passed load + inference checks but output consistency was not validated. Use F16 or Q8_0 for production.
Full results: verification_report.json
llama-embedding \
--model pulpie-orange-small-Q8_0.gguf \
--prompt "<html><body><p>Hello world</p></body></html><|sep|>" \
--pooling none \
--embd-normalize -1 \
--embd-output-format json
Each output row is [other_logit, main_logit]. Pulpie classifies at <|sep|> token positions and keeps blocks where main_logit > other_logit.
llama-cli can load the files but cannot generate — these GGUFs have no causal LM head.
import json, re, subprocess
out = subprocess.check_output([
"llama-embedding", "-m", "pulpie-orange-small-Q8_0.gguf",
"-p", html_chunk,
"--pooling", "none",
"--embd-normalize", "-1",
"--embd-output-format", "json",
], text=True)
data = json.loads(re.search(r'\{.*\}', out, re.S).group(0))
logits = [row["embedding"] for row in data["data"]]
Stock llama.cpp supports EuroBERT embeddings but not EuroBertForTokenClassification. A 103-line patch was applied to:
EuroBertForTokenClassification in the HF converterclassifier.weight/classifier.bias → GGUF cls.output.*["other", "main"] with embedding_length_out=2Quantization was done with llama-quantize from the patched build.