Views
No views yet
Aniemore/rubert-base-emotion-russian-cedr-m7 — multi-label emotion recognition for Russian text over seven classes: anger, disgust, enthusiasm, fear, happiness, neutral, sadness.| subfolder | scheme | weights | ROC AUC (macro) | macro-F1 | WA | UA |
|---|---|---|---|---|---|---|
| (original repo) | fp32 | 679 MiB | 0.8879 | 0.6327 | 0.8167 | 0.6368 |
int8 | W8A16 | 440 MiB | 0.8883 | 0.6319 | 0.8172 | 0.6370 |
fp8 | W8A16-float | 438 MiB | 0.8877 | 0.6345 | 0.8183 | 0.6388 |
int4 | W4A16_ASYM | 399 MiB | 0.8981 | 0.6270 | 0.8103 | 0.6297 |
Linear layers are quantized. In a BERT classifier the embedding matrix is not one of them, and on the smaller models it is most of the checkpoint — so the saving here scales with the encoder rather than with the parameter count. The large model compresses well; rubert-tiny barely moves, and the table above says so rather than quoting a ratio from the layers that did shrink.1import torch
2from transformers import AutoModelForSequenceClassification, AutoTokenizer
3
4repo = "Aniemore/rubert-base-emotion-russian-cedr-m7-quantized"
5model = AutoModelForSequenceClassification.from_pretrained(
6 repo, subfolder="int8").eval() # or "fp8", "int4"
7tok = AutoTokenizer.from_pretrained(repo, subfolder="int8")
8
9x = tok("мне сегодня очень грустно", return_tensors="pt")
10with torch.no_grad():
11 # multi-label: sigmoid per class, not softmax over classes
12 probs = model(**x).logits.sigmoid()[0]
13print({model.config.id2label[i]: round(p.item(), 3) for i, p in enumerate(probs)})ai-forever/ruBert-base; the licence follows the base model.