Spaces:
Sleeping
Sleeping
|
Download report.md from asriel14/article_classifier: direct link, hf CLI and curl.
- Browser
- Download file 3.11 kB
-
https://huggingface.co/spaces/asriel14/article_classifier/resolve/main/report.md
- Command line
-
hf download hf://spaces/asriel14/article_classifier/report.md
-
curl -L -o report.md https://huggingface.co/spaces/asriel14/article_classifier/resolve/main/report.md
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. | |