Актуальное состояние проекта: В настоящий момент удалось набрать score 0.61930 на лидерборде в kaggle (2 место)
Протестированные модели:
ru-en-RoSBERTa (В настоящий момент показала лучший результат)
xlm-roberta-base
rugpt3small_based_on_gpt2
ruRoberta-large
ru-t5-large
Emotion Classification
Big Ducks v.3
Проект на github
Классификация Задача решается как Multilabel классификация. Лосс-функция — BCEWithLogitsLoss, которая хорошо подходит для Multilabel задач
Предобученная языковая модель (Transformer Encoder): В качестве основы берем предобученную модель ru-en-RoSBERTa. Модель преобразует входной текст в эмбединг Используем стандартная токенизация и механизм внимания
Big Ducks v.3
Используемые методы Предобработка данных
На данном этапе предобработка данных включает базовые шаги предобработки
Планируем исследовать влияние очистка данных и исправления ошибок с помощью ai-forever/sage
Предобработка и постобработка
Предварительная очистка текста от неалфавитных символов и лишних пробелов
Токенизация до фиксированной длины (padding/truncation)
Кодирование в one-hot формат
Получив предсказания на valid и test — примененяем оптимальный Threshold для улучшения качества
Подбор порога Мы перебираем серию порогов для максимизации F1, что повышает качество распознавания
Архитектура модели
Проверка влияния Stratified K Fold Cross Validation:
Для повышения стабильности и обобщающей способности модели.
Проверили. Не дало положительного результата.
Дальнейшее расширение датасета:
За счёт интеграции других релевантных датасетов, например, ru-go-emotions
Проверили. Были расширены все классы кроме joy и neutral, удалены дубликаты
(см. extend_dataset.ipynb)
Тестирование различных моделей из лидерборда на русском языке:
Исследование моделей лидерборда HuggingFace на предмет их эффективности для нашей задачи
Проверили. Лучшая модель по нашему тестированию ai-forever/ru-en-RoSBERTa
Гипотезы по улучшению модели
Big Ducks v.3
Оптимизация предобработки данных:
Внедрение методов очистки данных от шума и ошибок для улучшения качества обучения.
Проверили. В итоге наилучшим методом оказалось простая очистка данных(убрать лишние пробелы, символы и т.д)
4
3
2
1
Big Ducks v.3
Структура Проекта
Новая структура
data/: Исходные данные. Включая расширение датасета train_extended.csv
cryptonite.ipynb: Основной код обучения
extend_dataset.ipynb: Код расширения датасета
outputs/: Результаты работы, включая сабмишны
requirements.txt: Зависимости проекта.
README.md: Описание проекта.
Установка
Клонируйте репозиторий.
Перейдите в директорию проекта.
Установите зависимости:
pip install -r requirements.txt
Запуск
Убедитесь, что данные находятся в директории data/.
Запустите все ячейки последовательно в cryptonite.ipynb
Результаты Результаты сабмишна будут сохранены в submission_trainer.csv.