article_classifier / report.md
asriel14's picture
Upload 9 files
2f97561 verified
|
Raw History Blame Contribute Delete
3.11 kB
# Отчёт по проекту: классификатор тематик научных статей
## 1. Задача
Построен веб-сервис для классификации научных статей по title и abstract. Пользователь вводит заголовок статьи и, при наличии, abstract, после чего сервис возвращает наиболее вероятные тематики статьи и набор top-95% классов.
## 2. Почему выбран этот проект
Эта задача напрямую соответствует формулировке задания и покрывает полный NLP/MLOps pipeline: сбор данных, обучение трансформера, сохранение артефактов, онлайн-инференс, веб-интерфейс и деплой.
## 3. Данные
Данные были собраны через arXiv API по 8 укрупнённым направлениям:
cs, econ, eess, math, physics, q-bio, q-fin, stat.
На финальном запуске использовалось примерно по 1500 статей на класс. После удаления дубликатов был получен датасет примерно на 11 тысяч объектов.
Для обучения использовался объединённый текст:
[TITLE] {title} [ABSTRACT] {abstract}
Если abstract отсутствует, сервис работает только по title.
## 4. Модель
Использована модель distilbert-base-cased в постановке single-label multiclass classification.
## 5. Обучение
Использовалась библиотека Hugging Face transformers и стандартный Trainer.
Шаги:
1. сбор данных через arXiv API;
2. очистка текста;
3. stratified split на train и validation;
4. токенизация;
5. fine-tuning DistilBERT;
6. подсчёт метрик.
## 6. Итоговые метрики
На validation были получены следующие метрики:
- accuracy = 0.7380
- macro F1 = 0.7354
- weighted F1 = 0.7371
## 7. Инференс
Во время инференса:
1. текст собирается из title и abstract;
2. модель выдаёт logits;
3. применяется softmax;
4. классы сортируются по вероятности;
5. выбирается минимальный набор классов, чья суммарная вероятность достигает не менее 95%.
## 8. Интерфейс
Интерфейс реализован на Streamlit. Он содержит поля для title и abstract, кнопку запуска, примеры, таблицу вероятностей, вывод top-95% классов и обработку ошибок.
## 9. Деплой
Проект подготовлен для деплоя в Hugging Face Spaces через Docker.