1.MoE
来路¶
随着大模型scale up,dense model有一个不可能三角浮现: - performance - size - cost
所以MoE模型从三点解决这个问题: 1. 本质上,MoE是把size和cost解耦,也就是cost不会像dense model一样,随着size增加。activate参数才是决定cost的地方。 2. 目前认为,知识是存在FFN里面的,所以不同专家会学到不同的知识。并且MoE可以做大参数,存储更多知识。 3. sparse: 本质上,从数据中找一些低维的pattern,MoE就像卷积层,采集这些pattern。
MoE架构实际上是一些小的FFN,并且存在于每个MoE Layer中(可能一共有十几个layer)
有多好¶
对于1B激活参数,7B总参数的MoE Model,表现比7B的dense model要好。同时MoE架构是Sample Efficient的,训练速度也更快,消耗更少token。
有哪些可调的¶
专家数量¶
如下switch transformer with MoE论文中,相同的training step上,MoE远远好于Dense,同时e(experts)的数量越大,表现一样越好,也即MoE也可以scale up,但是具有边际效应,存在sweet point。
专家架构设置¶
而在deepseek技术报告中,他们将N个experts,与2N个大小约为一半的experts(同时topk值加倍,多选择1倍),与引入一个必选的shared expert进行对比。
Routing¶
传统方法是,token选择top-k适合进入的expert,有的expert可能没被分配输入,导致学不到东西。解决办法很简单,Expert Choice会从expert出发,每个expert选择最适合自己的top-k个token,如下右所示。但是会有两个问题: - 一是有的token根本没有expert选 - 二是自回归生成没办法看到后面的token
只是token choice还是表现好,所以一般不用expert choice。