查看原文
其他

Qwen1.5-MoE模型:2.7B的激活参数量达到7B模型的性能

刘聪NLP NLP工作站 2024-04-07

Qwen1.5-MoE模型:2.7B的激活参数量达到7B模型的性能

写在前面

今天阿里放了MOE的模型,总参数量14.3B,具有64个专家,每次激活8个,在仅激活2.7B参数情况下,效果可以与Qwen1.5-7B模型媲美,并且训练陈本降低75%,推理速度提升1.74倍。同时阿里开源了Base版本模型和Chat版本模型。

博客:https://qwenlm.github.io/zh/blog/qwen-moe/
HF:https://huggingface.co/Qwen/Qwen1.5-MoE-A2.7B
HF:https://huggingface.co/Qwen/Qwen1.5-MoE-A2.7B-Chat

注意:以下内容来自参考Qwen官方博客。

模型结构

与Mistral-MOE配置8个专家采用Top-2门控策略选择专家不同,主要进行以下改进:

  • 细粒度专家细分:将一个完整的FFN拆分成数个部分,每一部分作为一个独立的专家。
  • 模型初始化优化:利用Qwen-1.8B模型初始化Qwen1.5-MoE-A2.7B参数,并在在初始化阶段引入了随机参数,不仅加速了模型的收敛速度,还提升了预训练过程中整体性能。
  • 共享路由机制:实现共享专家与路由专家的融合,模型始终存在4个共享专家处于激活状态,并从剩余的60个路由专家中选择激活的4个专家。
来自Deepseek-MOE

实验效果

在MMLU、GSM8K、HumanEval和Multilingual榜单上评论了Qwen1.5-MoE-A2.7B模型的语言理解、数学、代码和多语言能力。在MT-Bench榜单上测试了Chat模型的能力。发现Qwen1.5-MoE-A2.7B效果可以媲美最佳的7B模型。

尽管MOE模型的总参数了较大,但实际激活参数远小于7B模型,并由于初始化方法无需过多数据进行模型训练,从而显著降低了模型75%的训练成本。

并且在A100-80G显卡上,利用vllm框架测试Qwen1.5-7B和Qwen1.5-MoE-A2.7B模型的推理性能,保持输入输出token均为1k情况下,具体TPS如下,可以发现Qwen1.5-MoE-A2.7B模型与Qwen1.5-7B模型相比,推理速度提高了约1.74倍。

模型推理

利用transformers进行Qwen1.5-MoE-A2.7B模型推理如下所示:

from transformers import AutoModelForCausalLM, AutoTokenizer
device = "cuda" # the device to load the model onto

model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen1.5-MoE-A2.7B-Chat",
    torch_dtype="auto",
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen1.5-MoE-A2.7B-Chat")

prompt = "Give me a short introduction to large language model."
messages = [
    {"role""system""content""You are a helpful assistant."},
    {"role""user""content": prompt}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(device)

generated_ids = model.generate(
    model_inputs.input_ids,
    max_new_tokens=512
)
generated_ids = [
    output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]

response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]

写在最后

开源的MOE模型越来越多,最近老马的Grok-1模型是MOE,DBRX的132B模型也是MOE,今天千问也开源了MOE。

但总觉得如论MOE模型有些投机取巧的意味,狗头保命。

PS:给公众号添加【星标⭐️】不迷路!您的点赞在看关注是我坚持的最大动力!

欢迎多多关注公众号「NLP工作站」,加入交流群,交个朋友吧,一起学习,一起进步!

我们的口号是“生命不止,学习不停”!

往期推荐:

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存