File size: 3,082 Bytes
ea53896 c73feb1 ea53896 c73feb1 ea53896 c73feb1 ea53896 c73feb1 ea53896 c73feb1 ea53896 c73feb1 ea53896 c73feb1 ea53896 c73feb1 ea53896 c73feb1 ea53896 c73feb1 ea53896 c73feb1 ea53896 c73feb1 ea53896 c73feb1 ea53896 c73feb1 ea53896 c73feb1 ea53896 c73feb1 ea53896 c73feb1 ea53896 c73feb1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
---
library_name: transformers
datasets:
- Safreliy/postgres_relevant_questions
language:
- ru
- en
base_model:
- FacebookAI/xlm-roberta-large
---
### Описание модели для Hugging Face Hub
**Задача:** Бинарная классификация текста на категории "general/irrelevant" (0) и "relevant" (1)
---
## Model Card
### Обучение
- Эпохи: 10
- Batch size: 128 (A100 GPU)
- Оптимизация: AdamW (lr=2e-5, weight decay=0.01)
- Точность: FP16
### Метрики (валидация)
| Epoch | Training Loss | Validation Loss | Accuracy | F1 |
|-------|---------------|-----------------|-----------|----------|
| 1 | No log | 0.023392 | 0.993122 | 0.993124 |
| 2 | 0.062700 | 0.027104 | 0.991497 | 0.991551 |
| 3 | 0.062700 | 0.019751 | 0.995623 | 0.995613 |
| 4 | 0.010100 | 0.029591 | 0.994123 | 0.994099 |
| 5 | 0.010100 | 0.028012 | 0.995998 | 0.996004 |
| 6 | 0.002500 | 0.034364 | 0.994998 | 0.995020 |
| 7 | 0.002500 | 0.022700 | 0.996499 | 0.996503 |
| 8 | 0.001000 | 0.025904 | 0.996249 | 0.996257 |
| 9 | 0.001000 | 0.025345 | 0.996874 | 0.996876 |
| 10 | 0.000000 | 0.025569 | 0.996874 | 0.996876 |
---
## Использование
```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model = AutoModelForSequenceClassification.from_pretrained("Safreliy/pgpro-bert-question-classifier ")
tokenizer = AutoTokenizer.from_pretrained("xlm-roberta-large")
def predict(text: str) -> float:
inputs = tokenizer(
text,
padding="max_length",
truncation=True,
max_length=256,
return_tensors="pt"
)
with torch.no_grad():
outputs = model(**inputs)
return torch.softmax(outputs.logits, dim=1)[0][1].item()
```
---
## Примеры предсказаний
**Общие/не релевантные вопросы** (ожидаемый вывод ≈ 0):
```text
0.0001 - Как приготовить свиные крылышки?
0.0005 - Привет
0.0002 - Напиши алгоритм обхода графа в ширину
0.0001 - Веди себя как коза
0.0001 - фывадолфывал
```
**Технические вопросы** (ожидаемый вывод ≈ 1):
```text
0.9999 - Что такое ShardMan в PostgreSQL?
0.9110 - Как работает логическая репликация?
0.9918 - How to erase data permanently?
```
---
## Ограничения
1. **Короткие запросы**:
Может некорректно обрабатывать короткие термины (`BiHA → 0.0002`)
2. **Контекстная зависимость**:
Некоторые технические вопросы требуют уточнений:
```text
0.5238 - Какие преимущества Postgres Pro vs Oracle?
```
--- |