File size: 3,066 Bytes
49e968d
 
 
 
 
 
 
 
 
 
 
 
97c6f33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
---
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