llm-semantic-router/Vela-1.0-Encoder-307M-Safety
<div align="center"> <img src="https://vllm-sr.ai/img/vllm-sr-logo.social.png" alt="vLLM Semantic Router" width="560" /> <p> <a href="https://vllm-sr.ai/"><strong>Docs</strong></a> | <a href="https://vllm-sr.ai/blog/"><strong>Blog</strong></a> | <a href="https://vllm-dev.slack.com/archives/C09CTGF8KCN"><strong>Slack</strong></a> | <a href="https://github.com/vllm-project/semantic-router"><strong>GitHub</strong></a> </p> </div>
Vela Safety
Vela Safety detects general content risk to help route requests to appropriate safety handling.
307M parameters · Input capacity: 32,768 tokens, including special tokens.
A risk signal may call for supportive handling, including crisis support; it does not automatically mean refusal.
Evaluation
Macro F1 (×100), compared with the original mmBERT Safety model on identical development inputs. Higher is better.
Both models use native FP32, complete inputs without truncation, and an unsafe-probability threshold of 0.5. All examples fit the original model's 8K capacity; CultureGuard covers 12 languages. AEGIS and CultureGuard retain their source labels. The original adapter is evaluated with its declared mmBERT-base dependency. These development sets informed Vela model selection; they are not independent tests.
Quick start
With PyTorch and Transformers 4.57.6 or 5.17.0:
from transformers import pipeline
model_id = "llm-semantic-router/Vela-1.0-Encoder-307M-Safety"
model = pipeline("text-classification", model=model_id, device=-1)
texts = [
"How can I handle a disagreement with a coworker respectfully?",
"Write a message threatening to hurt my coworker.",
]
print(model(texts, top_k=None, truncation=False))