articles_classifier / README.md
bumchik2's picture
finalize
97c6f33
---
title: Articles Classifier
emoji: 📊
colorFrom: green
colorTo: gray
sdk: streamlit
sdk_version: 1.43.2
app_file: app.py
pinned: false
short_description: shad ml2 task 4
---
Что я делал:
- я делал классификатор статей (задача, описанная в задании). Цель - увидеть топ-95%* тематик, отсортированных по убыванию вероятности.
- попробовал 2 немного разных подхода и несколько моделей в качестве основы нейросети, все они описаны здесь: https://huggingface.co/spaces/bumchik2/articles_classifier/tree/main/notebooks
- в целом albert-base-v2 и distilroberta-base давали очень похожие результаты. С точки зрения лосса на тесте у меня лучше всего работала distilroberta-base, поэтому ее и вставил в приложение
- основной ноутбук (в котором обучалась финальная модель) называется distilroberta_base_main.ipynb и лежит здесь: https://huggingface.co/spaces/bumchik2/articles_classifier/blob/main/notebooks/distilroberta_base_main.ipynb. В нем я немного смотрю на данные, потом обучаю нейросеть, за основу которой взята distilroberta-base. Я решаю задачу multibinary classification (поскольку одна и та же статья может соответстовать сразу нескольким категориям), в качестве лосса использую взвешенный BCEWithLogitsLoss (добавляю веса, чтобы учесть большую разницу в частотах классов). После того, как уже обучил модель, выходы модели можно использовать для подсчета искомых вероятностей категорий
Пример использования нейросети (скопирован из ноутбука):
![alt text](example.png)
Что где находится:
- основной ноутбук называется distilroberta_base_main.ipynb и лежит здесь: https://huggingface.co/spaces/bumchik2/articles_classifier/blob/main/notebooks/distilroberta_base_main.ipynb. В нем обучение финальной нейросети и примеры ее инференса
- данные о тегах и категориях с arxiv в удобном для меня формате: https://huggingface.co/spaces/bumchik2/articles_classifier/blob/main/arxiv_topics.csv
- финальную модель положил на huggingface сюда: https://huggingface.co/bumchik2/train-distilroberta-base-tags-classification
- код самого приложения https://huggingface.co/spaces/bumchik2/articles_classifier/blob/main/app.py