链载Ai

标题: Qwen1.5-MoE模型:2.7B的激活参数量达到7B模型的性能 [打印本页]

作者: 链载Ai    时间: 昨天 09:29
标题: Qwen1.5-MoE模型:2.7B的激活参数量达到7B模型的性能

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门控策略选择专家不同,主要进行以下改进:

实验效果

在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模型推理如下所示:

fromtransformersimportAutoModelForCausalLM,AutoTokenizer
device="cuda"#thedevicetoloadthemodelonto

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="Givemeashortintroductiontolargelanguagemodel."
messages=[
{"role":"system","content":"Youareahelpfulassistant."},
{"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):]forinput_ids,output_idsinzip(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模型有些投机取巧的意味,狗头保命。






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5