Vibrato: A Complete System One Model for Emotion

Vibrato is a standalone, general-purpose System One (Jev-class) model that performs emotion reading as typed decisions. In a single forward pass over a sequence of dialog messages, Vibrato emits calibrated probability distributions:

  • 3 Γ— 9-bin Likert PAD distributions (Pleasure, Arousal, Dominance)
  • OCC-22 ranked emotion categories
  • Pragmatic behavioral flags (Nouls): suppressed (irony/repression) & directed_at_me (attribution target)
  • Confidence score for automatic escalation to heavy LLMs

β€œIn a string instrument, vibrato is how emotion travels through the note.”


⚑ Performance Matrix

Deployment Hardware Latency Memory / Disk Use Case
Vibrato v6 int8 (Fast Head) CPU (1 thread) 2.97 ~ 4.39 ms 2.2 MB High-throughput streaming, zero external backbone
Vibrato + GPU Head GPU 1.92 ms 7.4 MB Real-time chat servers
e5s Bundle (All-in-one) CPU (1 thread) ~15 ms 85 MB Full offline affective computing, desktop AI
Full BGE-M3 Backbone GPU ~16 ms 569 MB Maximum subtlety on affective nuance

πŸ“¦ Model Artifacts in this Repository

  • models/vibrato_v6_int8.onnx: 1.86M judgment head quantized to INT8 (2.2 MB).
  • models/vibrato_v6_fp32.onnx: Full precision judgment head (7.4 MB, bitwise-identical to PyTorch).
  • models/vibrato_e5s_int8.onnx: Adapted judgment head for e5-small (2.1 MB).
  • models/e5s_int8.onnx: Multilingual e5-small embedding backbone quantized to INT8 (118 MB).
  • checkpoints/vibrato_v6.pt & checkpoints/vibrato_e5s.pt: Original PyTorch model weights.
  • vocab.json & tokenizer/: Char-level mapping and subword tokenizer.

πŸš€ Quickstart

1. Installation

pip install onnxruntime tokenizers numpy

2. Run Inference

Clone or download this repo, then execute:

python run_inference.py

Or inside Python:

from run_inference import load_e5s, score_messages

vocab, tok, head, backbone = load_e5s()

messages = [
    {"role": "user", "message": "δ»Šε€©η΄―ζ­»ε•¦οΌŒεΏ«ζŠ±ζŠ±"}
]

pad, family, nouls, conf = score_messages(messages, vocab, head, backbone=backbone, tok=tok)

print("PAD:", pad)          # [Pleasure, Arousal, Dominance] in [-1.0, +1.0]
print("Family:", family)    # e.g., 'affectionate'
print("Nouls:", nouls)      # {'suppressed': bool, 'directed_at_me': bool}
print("Confidence:", conf)  # [0.0, 1.0]

πŸ”— Links

Downloads last month
13
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support