ozonize's picture
Update artifacts from notebook 11: README.md
7031244 verified
---
language:
- ru
license: cc-by-4.0
tags:
- text-classification
- intent-classification
- russian
- dialogsum
- rubert
- thesis
datasets:
- d0rj/dialogsum-ru
base_model: DeepPavlov/rubert-base-cased-conversational
pipeline_tag: text-classification
---
# DialogSum-RU intent RuBERT
Артефакты магистерской ВКР НИУ ИТМО
**«Семантический анализ русскоязычных диалогов для задачи распознавания
намерений с улучшением на базе предобученных моделей»**.
Модель и сопутствующие материалы получены из ноутбука
`notebooks/11_neural_multitask_intent_topic_dialogsum_ru.ipynb` репозитория
[russian-dialogue-intent-thesis](https://github.com/0z0nize/russian-dialogue-intent-thesis).
## Описание
- **Задача:** classification реплик русскоязычных диалогов на 14 классов
речевых актов (intent), плюс auxiliary topic / coarse-topic головы в
multi-task варианте.
- **База:** `DeepPavlov/rubert-base-cased-conversational` (RuBERT
conversational, ~178M параметров).
- **Данные:** DialogSum-RU (`d0rj/dialogsum-ru`) с **weak rule-based**
intent-разметкой и тематическими кластерами из эмбеддинговой
кластеризации (см. ноутбуки `07``10`).
- **Лучшая конфигурация:** single-task RuBERT, 10 эпох, early stopping
по `val_intent_f1_macro`, batch=16, max_len=128, lr=2e-5,
`class_weight_mode='sqrt'`. Multi-task с `lambda_topic = 0.1` отстаёт
примерно на 0.019 по macro-F1.
## Метрики (тест, актуальный прогон)
См. файлы из `results/` после выгрузки.
## Intent-классы
- `arrangement`
- `complaint`
- `confirmation`
- `farewell`
- `greeting`
- `informational_request`
- `opinion_or_preference`
- `other`
- `problem_report`
- `purchase_or_booking_request`
- `rejection`
- `service_request`
- `suggestion_or_recommendation`
- `thanks`
## Ожидаемые артефакты
- `single_task_intent_model.pt`**лучшая** intent-модель (state_dict).
- `multitask_intent_topic_model.pt` — multi-task модель (intent + topic + coarse).
- `intent_label_encoder.joblib`, `topic_label_encoder.joblib`,
`coarse_topic_label_encoder.joblib` — sklearn `LabelEncoder` для каждой головы.
- `multitask_config.json` — гиперпараметры и метаданные запуска.
- `results/*.csv` — метрики, training history, predictions,
top-confusions, error examples, per-cluster metrics,
active learning кандидаты, label-noise кандидаты.
- `figures/*.png` — confusion matrices.
## Использование
```python
import joblib
import torch
from huggingface_hub import hf_hub_download
repo_id = "ozonize/dialogsum-ru-intent-rubert"
ckpt_path = hf_hub_download(repo_id=repo_id, filename="single_task_intent_model.pt")
enc_path = hf_hub_download(repo_id=repo_id, filename="intent_label_encoder.joblib")
intent_encoder = joblib.load(enc_path)
state_dict = torch.load(ckpt_path, map_location="cpu")
# архитектуру модели см. в ячейке 5 ноутбука 11
```
Артефакты используются веб-приложением
[`dialogsum_intent_webapp`](https://github.com/0z0nize/russian-dialogue-intent-thesis/tree/main/dialogsum_intent_webapp).
## Ограничения
- Weak rule-based intent-разметка содержит шум: для production-сценариев
необходима manual validation (см. ноутбук `10` и
`..._active_learning_diverse_top100.csv`).
- Topic-задача ограничена качеством эмбеддинговой кластеризации `08`;
fine-topic accuracy ≈ 0.21, coarse-topic ≈ 0.51.
- Класс `other` размыт по определению и тянет macro-F1 вниз; в отчётах
отдельно публикуется `intent_f1_macro_without_other`.
- Домен — DialogSum-RU (бытовые/сервисные диалоги). Перенос на другие
домены (медицина, юриспруденция и т.п.) требует дообучения.
## Цитирование
```bibtex
@mastersthesis{dialogsum_ru_intent_thesis,
title = {Семантический анализ русскоязычных диалогов для задачи распознавания намерений с улучшением на базе предобученных моделей},
author = {0z0nize},
school = {НИУ ИТМО, магистратура «Аналитика данных»},
year = {2026}
}
```