# MoE **Repository Path**: wangpin-code/MoE ## Basic Information - **Project Name**: MoE - **Description**: 简短实现的MoE - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-02-14 - **Last Updated**: 2025-03-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简单MOE复现和测评 ## MoE实现 1. 在基本卷积神经网络基础上添加了MoE分类头 2. 分类头的形状为全连接,实验中可以调整 3. TODO:目前未能添加基于平均化MoE工作量的Loss ## 实验数据集 1. Animals-10数据集,为10种动物图片,须手动构建数据集。 2. 已经处理好的数据集网址:TODO:添加网址 ## 对比实验 MoE在moe_net.py,其对比试验在prim_net.py moe_net和prim_net结构完全相同,其中prim_net的全连接层分类头使用MoE进行了替换 ## 实验结果 MoE实验结果 epoch=2 lr等为AdamW默认值 ``` 100%|█████████████████████████████████████████████████████| 1146/1146 [05:14<00:00, 3.65it/s] 100%|███████████████████████████████████████████████████████| 246/246 [00:47<00:00, 5.19it/s] train_loss:0.13000819764664542 train_correct:0.24642506276607357 test_loss:0.1147156033434658 test_correct:0.3370643602136861 100%|█████████████████████████████████████████████████████| 1146/1146 [06:27<00:00, 2.96it/s] 100%|███████████████████████████████████████████████████████| 246/246 [00:59<00:00, 4.13it/s] train_loss:0.10695394326760616 train_correct:0.3922060910380963 test_loss:0.09730029073540293 test_correct:0.45255660137369624 ``` 对比试验结果 epoch=2 lr等为AdamW默认值 ``` 100%|█████████████████████████████████████████████████████| 1146/1146 [06:22<00:00, 3.00it/s] 100%|███████████████████████████████████████████████████████| 246/246 [01:07<00:00, 3.64it/s] train_loss:0.14005518936848044 train_correct:0.19675799585198123 test_loss:0.13746654947912137 test_correct:0.2526074790129738 100%|█████████████████████████████████████████████████████| 1146/1146 [05:08<00:00, 3.71it/s] 100%|███████████████████████████████████████████████████████| 246/246 [00:50<00:00, 4.91it/s] train_loss:0.13581654754427763 train_correct:0.2788996834406724 test_loss:0.13487835110553012 test_correct:0.29407275502416685 ``` 任务分配:多个专家头的任务数量(实验采用了10个专家头) ``` [316, 1399, 261, 762, 897, 1081, 518, 2362, 103, 163] ``` 可以看出,MoE架构起到了效果,但是专家任务分配不均匀。 ## 问题说明:为什么准确率低 1. 因为本人电脑没有GPU,只用CPU训练了2个epoch。 2. 因为animals-10数据集本身难度大,而且图片不是很多。(不是每个animal都在图片正中央且覆盖全图)。 3. 因为确实没有仔细调参。 ## 未来工作 1. 实现MoE的基于任务分布不均匀造成的损失 2. 近期将会实现基于Transformer的MoE架构 3. 建议使用GPU进行训练,可以考虑**恒源云**