1.MoE模型训练中,如果不对专家的路由进行适当干预,可能会遇到什么问题,有什么解决方法?
MoE使用多个并行的expert,每次推理只选择其中的一小部分expert使用。
如果让模型完全自行学习,有可能出现routing collapse的问题,也就是模型倾向于总是选择那几个常用的专家。
而这些常用的专家由于使用得更多,训练得更好,又会提升被路由到的概率,导致大部分模型参数几乎没有被用上。
一般可以通过增加一个负载平衡的loss来缓解。负载平衡loss有不同的设计和计算方式,但是大致的思路都是迫使模型均匀地使用不同的专家,如果出现某些专家被选中的概率过高,就会进行惩罚。
2.Bert的预训练方式是MLM,通过[Mask] token对部分输入进行掩盖,要求模型预测。为什么要使用[Mask] token而不直接修改attention mask矩阵?
直接修改attention mask矩阵也可以让模型看不到对应位置的输入,但是相比使用[Mask] token缺少了位置编码的信息。
另外使用[Mask] token掩盖要预测的值这种做法在实现上相对方便,只需要对输入数据进行处理即可,而不需要修改modeling的内容,更加通用。