Skip to content

Проектная работа по курсу Advanced NLP. Transformer encoder с заменой MLP-блока на MOE для задачи MLM

Notifications You must be signed in to change notification settings

marulyanova/Mixture-of-Experts

Repository files navigation

Mixture-of-Experts

Проектная работа по курсу Advanced NLP. Transformer encoder с заменой MLP-блока на MOE для задачи MLM

Архитектура

Реализована архитектура трансформер-энкодера с заменой FFN на MoE блок

GShard paper

Switch Transformers paper

TopK выбор экспертов

Кроме того был выбран Sparse MoE подход и реализован topK выбор экспертов по принципу статьи Mixtral of Experts

Guide for mixture of experts
* из-за ограниченности ресурсов обучали top-1

Запуск эскпериментов

  • для получения пояснений к параметрам введите опцию --help

1. Запуск формирования датасета

python data_processors/load_dataset.py --config-name dataset_params.yaml

2. Запуск процесса маскирования датасетов сформированных на предыдущем шаге

python data_processors/dataset.py --config-dataset dataset_params.yaml --config-model model_params.yaml

3. Запуск обучения

python train/train.py --config-model model_params.yaml --config-dataset dataset_params.yaml --config-train train_params.yaml

4. Запуск инференса

python inference/inference.py --config-model model_params.yaml --config-dataset dataset_params.yaml --config-train train_params.yaml --save_path process_exp_results/results

или с параметрами по умолчанию

python inference/inference.py

Aim для отслеживания экспериментов

Установить, если не установлен

pip install aim

Поднять UI

aim up

Запуск обучения с логированием эксперимента в Aim

python train/train.py --tag name

Результаты экспериментов

Обученные модели

  1. seg_len=64 mask_prob=0.15 - красная (тег kaggle)
  2. seg_len=64 mask_prob=0.05 - розовая (тег kaggle-0.05)
  3. seg_len=128 mask_prob=0.1 - фиолетовая (тег kaggle-128-0.1)
  4. seg_len=128 mask_prob=0.3 - зеленая (тег kaggle-128-0.3)
  5. seg_len=64 mask_prob=0.15 - темно-синяя (тег kaggle-64-0.15-2)
    модель 5) обучена на данных выбранных с учетом других тестируемых топиков

seg_len - максимальная длина последовательности
mask_prob - процент замаскированных токенов в одной последовательности длины seg_len

Гистограммы активаций экспертов на тестируемых топиках


seg_len=64 mask_prob=0.15

seg_len=64 mask_prob=0.15

seg_len=64 mask_prob=0.05

seg_len=64 mask_prob=0.05

seg_len=128 mask_prob=0.1

seg_len=128 mask_prob=0.1

seg_len=128 mask_prob=0.3

seg_len=128 mask_prob=0.3

Выводы

  • Для достижения наилучшего результата при маскировании данных необходимо найти золотую середину между длиной последовательности и процентом замаскированных токенов:

    • хуже всего обучилась модель с 5% замаскированных токенов, то есть от 1 до 3 токенов в последовательности из 64
    • наилучший результат достигла модель с 15% замаскированными токенами от длины последовательности 64
  • Не выявлено разительных отличий в активации экспертов на разные топики, скорее всего это связано с качетвом датасета - стиль повествования и тексты у разных топиков не сильно отличаются. Кроме того, при воссоздании архитектуры были изучены другие исследования, в которых отмечено, что эксперты скорее регируют больше на "технические" особенности текста, например подмечают особую пунктуацию, а не тематику текста

About

Проектная работа по курсу Advanced NLP. Transformer encoder с заменой MLP-блока на MOE для задачи MLM

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •