从Mixtral-8x7B到LLaMA MOE再到DeepSeek-MoE

1,118次阅读
没有评论

通过增加参数和计算预算来扩大语言模型规模可以得到更强大的模型。然而,与之相关的问题是极高的计算成本。为了解决这个问题,不少工作使用了Mixture-of-Experts(MoE)架构,该架构可以在保持计算成本适度的情况下实现参数扩展。

而从Mixtral 8x7B推出以来,目前已经陆续出现了许多“跟风”之作,本文主要介绍了这不到一个月以来出现的四个moe现有模型,供大家参考。

一、Mixtral-8x7B

Mixtral 8x7B是一个稀疏专家混合模型(SMoE),开放权重,在模型结构上是一个仅解码器的模型,其中前馈块从一组8个不同的参数组中进行选择。在每一层,对于每个标记,一个路由器网络选择这些组中的两个(“专家”)来处理该标记并相加它们的输出。

可处理32k个标记的上下文,可处理英语、法语、意大利语、德语和西班牙语;在代码生成方面表现不错;

从Mixtral-8x7B到LLaMA MOE再到DeepSeek-MoEimage

地址:https://mistral.ai/news/mixtral-of-experts/

二、Chinese-Mixtral-8x7B

中文扩词表增量预训练混合专家模型Chinese-Mixtral-8x7B,其提出动机在于:Mixtral-8x7B词表不支持中文,因此对中文的编解码效率较低,限制了中文场景下的实用性。 因此,基于Mixtral-8x7B进行了中文扩词表增量预训练,项目地址在:https://github.com/HIT-SCIR/Chinese-Mixtral-8x7B

在词表扩充上,使用sentencepiece在12G知乎数据和2G悟道数据上训练中文BPE词表;

在训练策略上,使用QLoRA对模型进行训练;

在训练数据上:

中文使用Skywork/SkyPile-150B(https://huggingface.co/datasets/Skywork/SkyPile-150B),总量30B,仅使用2022 + 2023年的数据;

英文使用DKYoon/SlimPajama-6B(https://huggingface.co/datasets/DKYoon/SlimPajama-6B),总量12B,数据集重复2个Epoch。

地址:https://github.com/HIT-SCIR/Chinese-Mixtral-8x7B

三、LLaMA-MoE

LLaMA-MoE《LLaMA-MoE: Building Mixture-of-Experts from LLaMA with Continual Pre-training》是基于LLaMA系列和SlimPajama的MoE模型,实现很简单:将LLaMA的FFNs划分为稀疏专家,并为每层专家插入top-K个gate,使用来自Sheared LLaMA 的优化数据采样权重和来自SlimPajama的过滤数据集持续预训练初始化的MoE模型。

从Mixtral-8x7B到LLaMA MOE再到DeepSeek-MoEimage

其具体实现架构如下:

从Mixtral-8x7B到LLaMA MOE再到DeepSeek-MoEimage

开源模型上:

从Mixtral-8x7B到LLaMA MOE再到DeepSeek-MoEimage

一个有趣的问题:

Q:问moe模型的构建是通过多个llama模型还是1个llama模型呢?

A:LLaMA-MoE基于一个完整的llama模型进行切分。

Q:这个repo的用途是将1个llama模型的FFN层通过不同的切分方法,切分为多个FFN来扮演多个专家。然后将llama模型的其余模型层和权重与切分后的FFN和gate进行拼接变成moe模型嘛?

A:是的。我们只切分了llama的FFN层,之后再加一个gate进行token路由。

Q:是否支持将多个llama结构模型的FFN层合并,基于一个base 的llama模型结构构建Moe呢?

A:目前不支持。不过这个想法基于同构模型,我想是比较容易实现的

地址:https://github.com/pjlab-sys4nlp/llama-moe

四、DeepSeek-MoE

但现有的MoE架构可能存在知识混杂(Knowledge Hybridity)和知识冗余(Knowledge Redundancy)的问题,限制了专家的专业化。

在实现思想上,DeepSeek-MoE采用两个主要策略:

从Mixtral-8x7B到LLaMA MOE再到DeepSeek-MoEimage

一个是Fine-Grained Expert Segmentation-细粒度的专家分割,通过细化FFN中间隐藏维度,维持参数数量不变的同时激活更多细粒度的专家,使得激活的专家更加灵活和适应性更强;

另一个是Shared Expert Isolation-共享专家隔离,将某些专家隔离为共享专家,始终激活,旨在捕捉和巩固不同上下文中的共同知识。

在验证实验上,从2B参数的规模开始验证了DeepSeekMoE架构的可行性,将模型参数扩展到16B,仅使用大约40%的计算资源就能达到与DeepSeek 7B和LLaMA2 7B相媲美的性能。将DeepSeekMoE扩展到145B,其与DeepSeek 67B相媲美的性能,仅使用28.5%(可能甚至是18.2%)的计算资源。

在训练数据上,该模型是在2T中英文token上从头开始训练。

报告地址:https://arxiv.org/pdf/2401.06066.pdf

地址:https://github.com/deepseek-ai/DeepSeek-MoE

总结

本文主要介绍了moe的四个现有模型,后后面有进展的,我们进一步跟踪,供大家一起参考。

参考文献

1、https://www.zhihu.com/question/639062017/answer/3360042351

 2、https://github.com/deepseek-ai/DeepSeek-MoE 

3、https://github.com/HIT-SCIR/Chinese-Mixtral-8x7B 

4、https://mistral.ai/news/mixtral-of-experts/

关于作者

老刘,刘焕勇,NLP开源爱好者与践行者,主页:https://liuhuanyong.github.io。


从Mixtral-8x7B到LLaMA MOE再到DeepSeek-MoE

我是朋克又极客AI算法小姐姐rumor北航本硕,NLP算法工程师,谷歌开发者专家欢迎关注我,带你学习带你肝

一起在人工智能时代旋转跳跃眨巴眼

 

Read More 

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 
评论(没有评论)
Generated by Feedzy