Bektur756/rubert-tiny2-russian-sentiment
021
Russian Sentiment Classifier
Классификатор тональности русскоязычных пользовательских текстов.
Classes
0: Neutral1: Positive2: Negative
Base model
cointegrated/rubert-tiny2
Модель была полностью дообучена для классификации текста на три класса.
Dataset
MonoHime/ru_sentiment_dataset
После очистки и удаления дубликатов:
- Train: 180,853
- Validation: 9,642
- Test: 9,642
Training
- Epochs: 3
- Maximum sequence length: 128
- Learning rate: 2e-5
- Train batch size: 64
- Weighted Cross Entropy: enabled
- Best model metric: Negative F1
- GPU: Tesla T4
Class weights:
- Neutral: 1.3124
- Positive: 0.7020
- Negative: 1.2292
Test metrics
Latency
End-to-end latency includes preprocessing, tokenization and inference. Batch size is 1.
Usage
import torch
from transformers import (
AutoModelForSequenceClassification,
AutoTokenizer,
)
MODEL_NAME = "Bektur756/rubert-tiny2-russian-sentiment"
tokenizer = AutoTokenizer.from_pretrained(
MODEL_NAME
)
model = (
AutoModelForSequenceClassification
.from_pretrained(MODEL_NAME)
)
text = "Отличный сервис, всё понравилось."
inputs = tokenizer(
text,
return_tensors="pt",
truncation=True,
max_length=128,
)
with torch.inference_mode():
logits = model(**inputs).logits
probabilities = torch.softmax(
logits,
dim=-1,
)[0]
predicted_id = int(
probabilities.argmax()
)
print(model.config.id2label[predicted_id])
print(probabilities.tolist())
## Limitations
В исходном датасете присутствуют шумные и неоднозначные метки.
Слабее всего модель распознаёт нейтральный класс.
