|
|
--- |
|
|
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? |
|
|
``` |
|
|
|
|
|
--- |