MostoHF's picture
Update README.md
06a006c verified

A newer version of the Streamlit SDK is available: 1.45.1

Upgrade
metadata
title: Article Sphere Classification
emoji: 🐠
colorFrom: indigo
colorTo: blue
sdk: streamlit
sdk_version: 1.44.1
app_file: app.py
pinned: false
short_description: Define article sphere by it's name and abstract

Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference

Article Theme Classifier

Описание

Данный проект представляет собой модель для классификации тем статей, исходя из их названия и аннотации (abstract). Одно из этих полей обязательно для работы программы. Модель позволяет выбрать кумулятивный threshold для предсказания наиболее вероятных тем.

Архитектура модели

В качестве основы для классификации была использована модель distilbert-base-cased. На эту модель был добавлен классификатор, состоящий из двух линейных слоев:

  1. Линейный слой (с размером выходного пространства 256), за которым следует активация ReLU.
  2. Линейный слой (с выходом на 8 классов), с активацией LogSoftmax.

Используемая loss функция

Для обучения модели была использована loss функция `nn.KLDivLoss'. Дообучал только добавленные слои.

Также пробавал обучить всю модель с MSE loss. При этом модель запомнила средние вероятности и не меняла предсказания от изменения входных данных.

Датасет

Модель обучалась на предложенном Kaggle датасете "neelshah18/arxivdataset".

Проблемы и ограничение модели

Несмотря на использование сильной основы, результаты модели оказались не очень хорошими. Возможные причины:

  1. Выбор модели: Использованная модель distilbert-base-cased является сравнительно небольшой и может не иметь достаточной мощности для более сложных задач классификации.
  2. Размер входных данных: Для модели был установлен небольшой MAX_LENGTH, что ограничивает количество информации, которую модель может обработать.
  3. Выбор loss функции: KLDivLoss не всегда является оптимальным выбором для классификационных задач. Возможно, использование другой loss функции, например, CrossEntropyLoss, улучшило бы результаты.