mmBERT Feedback Detector (Merged)

A multilingual 4-class user feedback classifier built on jhu-clsp/mmBERT-base. This model classifies user responses into satisfaction categories to help understand user intent in conversational AI systems.

Model Description

This is the merged model (LoRA weights merged into base model) for direct inference without PEFT. For the LoRA adapter version, see vllm-sr/mmbert-feedback-detector-lora.

Labels

Label ID Description
SAT 0 User is satisfied with the response
NEED_CLARIFICATION 1 User needs more explanation or clarification
WRONG_ANSWER 2 User indicates the response is incorrect
WANT_DIFFERENT 3 User wants alternative options or different response

Performance

Metric Score
Accuracy 96.89%
F1 Macro 96.88%
F1 Weighted 96.88%

Per-Class Performance

Class F1 Score
SAT 100.0%
NEED_CLARIFICATION 99.7%
WRONG_ANSWER 94.0%
WANT_DIFFERENT 93.8%

Multilingual Support

Thanks to mmBERT's multilingual pretraining (256k vocabulary, 100+ languages), this model achieves excellent cross-lingual transfer:

Language Accuracy
๐Ÿ‡บ๐Ÿ‡ธ English 100%
๐Ÿ‡ช๐Ÿ‡ธ Spanish 100%
๐Ÿ‡ซ๐Ÿ‡ท French 100%
๐Ÿ‡ฉ๐Ÿ‡ช German 100%
๐Ÿ‡จ๐Ÿ‡ณ Chinese 100%
๐Ÿ‡ฏ๐Ÿ‡ต Japanese 100%
๐Ÿ‡ฐ๐Ÿ‡ท Korean 100%
๐Ÿ‡ธ๐Ÿ‡ฆ Arabic 100%
๐Ÿ‡ต๐Ÿ‡น Portuguese 100%
๐Ÿ‡ท๐Ÿ‡บ Russian 100%

Usage

With Transformers

from transformers import AutoModelForSequenceClassification, AutoTokenizer
import torch

model_name = "vllm-sr/mmbert-feedback-detector-merged"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)

# Example: Classify user feedback
text = "Thanks, that's exactly what I needed!"
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=512)

with torch.no_grad():
    outputs = model(**inputs)
    probs = torch.softmax(outputs.logits, dim=-1)
    pred = probs.argmax().item()

labels = ["SAT", "NEED_CLARIFICATION", "WRONG_ANSWER", "WANT_DIFFERENT"]
print(f"Prediction: {labels[pred]} ({probs[0][pred]:.1%})")
# Output: Prediction: SAT (100.0%)

With Pipeline

from transformers import pipeline

classifier = pipeline(
    "text-classification",
    model="vllm-sr/mmbert-feedback-detector-merged"
)

# English
result = classifier("Thanks, that's helpful!")
print(result)  # [{'label': 'SAT', 'score': 0.999...}]

# Spanish (cross-lingual transfer)
result = classifier("ยกGracias, eso es muy รบtil!")
print(result)  # [{'label': 'SAT', 'score': 0.999...}]

# Chinese
result = classifier("่ฐข่ฐข๏ผŒ่ฟ™ๅพˆๆœ‰ๅธฎๅŠฉ๏ผ")
print(result)  # [{'label': 'SAT', 'score': 0.98...}]

Training Details

Use Cases

  • Conversational AI: Understand if users are satisfied with chatbot responses
  • Customer Support: Route dissatisfied users to human agents
  • Quality Monitoring: Track response quality across languages
  • Feedback Analysis: Categorize user feedback automatically

Related Models

Citation

@misc{mmbert-feedback-detector,
  title={mmBERT Feedback Detector},
  author={vLLM Semantic Router Team},
  year={2025},
  publisher={Hugging Face},
  url={https://huggingface.co/vllm-sr/mmbert-feedback-detector-merged}
}

License

Apache 2.0

Downloads last month
44
Safetensors
Model size
0.3B params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for vllm-sr/mmbert-feedback-detector-merged

Finetuned
(196)
this model

Dataset used to train vllm-sr/mmbert-feedback-detector-merged

Evaluation results