A compact BERT phishing detector distilled with Specific AI.
It classifies email content as phishing or not, for use in email agents and
security-aware inbox workflows.
Task
Single-label text classification
Base model
bert-base-uncased
Training data
~15,000 examples
License
MIT
Input format
Examples were trained on emails formatted as plain text with From, Subject,
and body (blank line between the headers and the body):
text
1From: <from>
2Subject: <subject>
34<body>
Pass inputs in this same shape at inference time for best results.
Labels
Label
Meaning
True
Phishing detected
False
Phishing was not detected
Evaluation
Compared against gpt-5.4-mini as a teacher / baseline on the same evaluation set:
Metric
gpt-5.4-mini
SpecificAI
Accuracy
0.971
0.975
Precision
0.976
0.975
Recall
0.971
0.975
F1 score
0.972
0.975
Repository contents
This card ships both a full Hugging Face checkpoint and GGUF-ready artifacts:
Full BertForSequenceClassification weights (model.safetensors) + tokenizer
Head layers as NumPy files (pooler_*.npy, classifier_*.npy) for GGUF / Lemonade fusion
Encoder GGUF: bert-base-only.gguf (CLS pooling; use with raw / unnormalized embeddings)
Quick start — Transformers
python
1from transformers import AutoTokenizer, AutoModelForSequenceClassification
2import torch
34model_id ="specific-AI/email-agent-phishing-detection"5tokenizer = AutoTokenizer.from_pretrained(model_id)6model = AutoModelForSequenceClassification.from_pretrained(model_id)7model.eval()89text ="""From: security@paypa1-support.com
10Subject: Your account will be locked
1112Verify your password at http://example-phish.test/login to keep access."""13inputs = tokenizer(text, return_tensors="pt", truncation=True)14with torch.no_grad():15 logits = model(**inputs).logits
16pred = model.config.id2label[int(logits.argmax(-1))]17print(pred)# "True" or "False"
Quick start — Lemonade + specific-ai-tools
When running the GGUF encoder through Lemonade Server:
pip install specific-ai-tools
python
1from specific_ai_tools.embedding_heads import LemonadeEmbeddingClassifier
23classifier = LemonadeEmbeddingClassifier(4 lemonade_model_name="user.email-agent-phishing-detection",5 checkpoint="specific-AI/email-agent-phishing-detection:bert-base-only.gguf",6 lemonade_base_url="http://localhost:13305",7)89text ="""From: noreply@secure-mail-alert.com
10Subject: Reset your password now
1112Click here to reset your password immediately."""13result = classifier.predict_one(text)14print(result.predicted_labels, result.predicted_confidences)
See the Specific AI toolkit docs for llama-cpp and other embedding backends.
Intended use
Email / inbox agents that need a fast on-device or CPU phishing signal
Pre-filter or assistive scoring alongside other security controls
Out of scope: sole authority for blocking, quarantine, or legal determinations.
Treat outputs as a high-throughput classifier signal and keep human / policy review
in the loop for high-impact actions.
About Us
Specific AI is the automatic SLM distillation platform
that turns task prompts into production-grade small language models in days —
not weeks — so your subject matter experts can ship models without waiting on
scarce data-science bandwidth.
We help enterprises move agentic AI from prototype to production with SLMs that
are typically 1,000×–10,000× smaller than teacher LLMs, run in
milliseconds on CPUs or edge devices, and deliver the same or better
task quality at a fraction of the cost — self-hosted on your cloud or
downloaded for your own inference stack.
Prompt → Distill → Deploy. Bring your prompt and data, drop them into
Specific AI, and get a validated small model ready to test and ship.