transformers-devops / README.md
blunt-octopus's picture
Update README.md
c78e9ad
metadata
title: Transformers Devops
emoji: 😻
colorFrom: red
colorTo: indigo
sdk: streamlit
sdk_version: 1.2.0
app_file: app.py
pinned: false
license: unlicense

Лабораторная какая-то, часть какая-то по ML-2.

Автор: Антон Белецкий.

Парсинг данных и обучение моделей находится в models.ipynb

Обученная модель состоит из файлов config.json и pytorch_model.bin.

Токенайзер также сохранен локально (так как в какой-то момент были проблемы с его автоматической сборкой).

Слайдер Verbosity отвечает за границу суммарной вероятности выводимых предсказаний. Если он стоит на 70, то будут выведены столько первых предсказаний, сколько потребуется чтобы их суммарная вероятность перевалила за 70. По умолчанию он стоит на 95, как и требуется в лабораторной, но с этим значением он выводит достаточно много низковероятностного мусора. Результаты выглядят гораздо приятнее если поставить слайдер на 70-80.

В процессе поиска оптимального варианта для классификации (таксономизации) статей были использованы следующие подходы:

  • Стандартный distilbert на датасете, предоставленном нам "по умолчанию"
  • Специальная версия той же архитектуры, но изначально тренировавшаяся на научных статьях в качестве текстов (allenai/scibert_scivocab_uncased). В том числе эта модель использует специализированный токенайзер. В итоге эта модель не дала существенного прироста в качестве, при этом ее обучение требовало почти в 2 раза больше времени на эпоху, поэтому в итоговой версии она не используется.
  • Сбор дополнительных данных: использовался датасет отсюда. В итоге были использованы 100 000 статей оттуда. Эти данные отличались гораздо большим разнообразием и сбалансированностью тем, поэтому дали огромный прирост к качеству (без них классификатор обучился предсказывать cs.AI примерно всему).

Чтобы получить полный список тегов, используемых арксивом, я распарсил официальную страницу с таксономизацией с помощью beautiful soup (все это можно найти в models.ipynb).