Downloads · 30 days
10
23% of all-time downloads
Kova-Mind/emotion-v1
emotion-v1 is a text classification model from Kova-Mind. Use it when you need a label for a piece of text. It is set up for transformers. The card lists the license as apache-2.0.
A 10-class emotion classifier fine-tuned for conversational AI memory systems. Uses an Inside Out 2 inspired taxonomy optimized for the Kova Mind agent memory pipeline.
Downloads · 30 days
10
23% of all-time downloads
All-time downloads
44
Public
Parameters
125M
499 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors499 MB · 99%
From the Hugging Face model README
A 10-class emotion classifier fine-tuned for conversational AI memory systems. Uses an Inside Out 2 inspired taxonomy optimized for the Kova Mind agent memory pipeline.
Head-to-head on a 53-sentence curated evaluation set covering 9 of the 10 classes (A40 GPU, FP32):
| Metric | Baseline (SamLowe/roberta-base-go_emotions, 28→10 mapped) | KovaMind Emotion v1 |
|---|---|---|
| Accuracy | 73.6% (39/53) | 96.2% (51/53) |
| Avg inference latency | 42 ms | 7 ms |
+22.6 percentage points and ~6× faster inference — from direct 10-class head + domain-adapted weights, without a post-hoc label mapping.
| Class | Correct | Accuracy |
|---|---|---|
| joy | 10/10 | 100% |
| sadness | 8/8 | 100% |
| anger | 6/7 | 85.7% |
| fear | 6/6 | 100% |
| disgust | 5/5 | 100% |
| anxiety | 5/5 | 100% |
| embarrassment | 3/4 | 75.0% |
| ennui | 3/3 | 100% |
| neutral | 5/5 | 100% |
(The envy bucket was not exercised by this eval set — production monitoring tracks it separately.)
The 10 emotion buckets:
| ID | Label |
|---|---|
| 0 | joy |
| 1 | sadness |
| 2 | anger |
| 3 | fear |
| 4 | disgust |
| 5 | anxiety |
| 6 | embarrassment |
| 7 | envy |
| 8 | ennui |
| 9 | neutral |
This taxonomy is inspired by Pixar's Inside Out 2 — extending the original five (joy, sadness, anger, fear, disgust) with anxiety, embarrassment, envy, and ennui, plus a neutral bucket. It was chosen because it maps cleanly onto the emotions that drive behavioral memory encoding in conversational contexts.
simplified config, 28 labels remapped to the 10 Inside Out classes (priority order: rarest-label-wins for multi-label cases)Prior to this fine-tune we benchmarked microsoft/deberta-v3-large fine-tuned on GoEmotions. It showed no meaningful gain over the RoBERTa-base baseline for our 10-class downstream task. The real win came from three choices:
Larger model ≠ better when the bottleneck is label quality + domain match.
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
tokenizer = AutoTokenizer.from_pretrained("Kova-Mind/emotion-v1")
model = AutoModelForSequenceClassification.from_pretrained("Kova-Mind/emotion-v1")
model.eval()
text = "I just got the job!"
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True, max_length=256)
with torch.no_grad():
logits = model(**inputs).logits
probs = torch.softmax(logits, dim=-1)
pred_id = torch.argmax(probs, dim=-1).item()
print(f"{model.config.id2label[pred_id]} ({probs[0, pred_id]:.3f})")
Or with the pipeline API:
from transformers import pipeline
clf = pipeline("text-classification", model="Kova-Mind/emotion-v1", top_k=None)
print(clf("I have a huge presentation tomorrow and I can't stop overthinking it."))
# → anxiety (top class)
@misc{capo2026kovamindemotion,
author = {Capo, Alejandro},
title = {KovaMind Emotion v1: Domain-Specific Fine-Tuning Beats Larger Models for Conversational Emotion Classification},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/Kova-Mind/emotion-v1}}
}
kovamind.io — private, customer-owned AI memory infrastructure.