混合专家模型(MoE)是一种深度学习模型结构,由多个专家网络组成,每个专家网络负责处理特定的任务或数据集。其核心思想是将一个大而复杂的任务拆分成多个小而简单的任务,让不同的专家网络负责处理不同的任务,这样能提高模型的灵活性、可扩展性,减少模型的参数量和计算量,从而提升模型的效率和泛化能力。
MoE 架构的实现通常包含以下步骤:
MoE 架构在自然语言处理、计算机视觉、语音识别等领域应用广泛。
在苹果大模型 MM1 中也应用了 MoE 架构。研究者使用三种不同类型的预训练数据,构建了参数最高可达 300 亿的多模态模型系列 MM1,它由密集模型和混合专家(MoE)变体组成,在预训练指标中实现 SOTA,在一系列已有多模态基准上监督微调后也能保持有竞争力的性能。在 MM1 的最终模型和训练方法中,通过专家混合(MoE)进行扩展,将密集语言解码器替换为 MoE 语言解码器,并采用与密集骨干相同的训练超参数和设置进行训练。
MoE(Mixture of Experts)架构是一种深度学习模型结构,由多个专家网络(Expert Network)组成,每个专家网络负责处理特定的任务或数据集。在MoE架构中,输入数据会被分配给不同的专家网络进行处理,每个专家网络会返回一个输出结果,最终的输出结果是所有专家网络输出结果的加权和。MoE架构的核心思想是将一个大的、复杂的任务拆分成多个小的、简单的任务,并让不同的专家网络负责处理不同的任务。这样做的好处是可以提高模型的灵活性和可扩展性,同时也可以减少模型的参数量和计算量,从而提高模型的效率和泛化能力。MoE架构的实现通常需要以下几个步骤:1.定义专家网络:首先需要定义多个专家网络,每个专家网络负责处理特定的任务或数据集。这些专家网络可以是不同的深度学习模型,如卷积神经网络(CNN)、循环神经网络(RNN)等。2.训练专家网络:使用有标签的训练数据对每个专家网络进行训练,以获得每个专家网络的权重和参数。3.分配数据:在训练过程中,需要将输入数据分配给不同的专家网络进行处理。分配数据的方法可以是随机分配、基于任务的分配、基于数据的分配等。4.汇总结果:将每个专家网络的输出结果进行加权求和,得到最终的输出结果。5.训练模型:使用有标签的训练数据对整个MoE架构进行训练,以获得最终的模型权重和参数。MoE架构在自然语言处理、计算机视觉、语音识别等领域都有广泛的应用。它可以提高模型的灵活性和可扩展性,同时也可以减少模型的参数量和计算量,从而提高模型的效率和泛化能力。[heading2]推荐观看和阅读:
其次,研究者使用三种不同类型的预训练数据:图像字幕、交错图像文本和纯文本数据。他们发现,当涉及少样本和纯文本性能时,交错和纯文本训练数据非常重要,而对于零样本性能,字幕数据最重要。这些趋势在监督微调(SFT)之后仍然存在,这表明预训练期间呈现出的性能和建模决策在微调后得以保留。最后,研究者构建了MM1,一个参数最高可达300亿(其他为30亿、70亿)的多模态模型系列,它由密集模型和混合专家(MoE)变体组成,不仅在预训练指标中实现SOTA,在一系列已有多模态基准上监督微调后也能保持有竞争力的性能。具体来讲,预训练模型MM1在少样本设置下的字幕和问答任务上,要比Emu2、Flamingo、IDEFICS表现更好。监督微调后的MM1也在12个多模态基准上的结果也颇有竞争力。得益于大规模多模态预训练,MM1在上下文预测、多图像和思维链推理等方面具有不错的表现。同样,MM1在指令调优后展现出了强大的少样本学习能力。
研究者收集了之前的消融结果,确定MM1多模态预训练的最终配方:图像编码器:考虑到图像分辨率的重要性,研究者使用了分辨率为378x378px的ViT-H模型,并在DFN-5B上使用CLIP目标进行预训练;视觉语言连接器:由于视觉token的数量最为重要,研究者使用了一个有144个token的VL连接器。实际架构似乎不太重要,研究者选择了C-Abstractor;数据:为了保持零样本和少样本的性能,研究者使用了以下精心组合的数据:45%图像-文本交错文档、45%图像-文本对文档和10%纯文本文档。为了提高模型的性能,研究者将LLM的大小扩大到3B、7B和30B个参数。所有模型都是在序列长度为4096、每个序列最多16幅图像、分辨率为378×378的情况下,以512个序列的批量大小进行完全解冻预训练的。所有模型均使用AXLearn框架进行训练。他们在小规模、9M、85M、302M和1.2B下对学习率进行网格搜索,使用对数空间的线性回归来推断从较小模型到较大模型的变化(见图6),结果是在给定(非嵌入)参数数量N的情况下,预测出最佳峰值学习率η:通过专家混合(MoE)进行扩展。在实验中,研究者进一步探索了通过在语言模型的FFN层添加更多专家来扩展密集模型的方法。要将密集模型转换为MoE,只需将密集语言解码器替换为MoE语言解码器。为了训练MoE,研究者采用了与密集骨干4相同的训练超参数和相同的训练设置,包括训练数据和训练token。