Этот репозиторий содержит переосмысление Pytorch коренного слоя MoE, описанного в бумаге, возмутительно крупных нейронных сетях для Pytorch.
from moe import MoE
import torch
# instantiate the MoE layer
model = MoE ( input_size = 1000 , output_size = 20 , num_experts = 10 , hidden_size = 66 , k = 4 , noisy_gating = True )
X = torch . rand ( 32 , 1000 )
#train
model . train ()
# forward
y_hat , aux_loss = model ( X )
# evaluation
model . eval ()
y_hat , aux_loss = model ( X )Чтобы установить выполнение требований:
pip install -r requirements.py
File example.py содержит минимальный рабочий пример, иллюстрирующий, как тренировать и оценить слой MOE с помощью фиктивных входов и целей. Чтобы запустить пример:
python example.py
Файл cifar10_example.py содержит минимальный рабочий пример набора данных Cifar 10. Он достигает точности 39% с произвольными гиперпараметрами и не полностью сходятся. Чтобы запустить пример:
python cifar10_example.py
Fastmoe: быстрое обучение смеси эксперт. Эта реализация использовалась в качестве эталонной реализации Pytorch для обучения с одним-GPU.
Код основан на реализации TensorFlow, которую можно найти здесь.
@misc{rau2019moe,
title={Sparsely-gated Mixture-of-Experts PyTorch implementation},
author={Rau, David},
journal={https://github.com/davidmrau/mixture-of-experts},
year={2019}
}