当前位置:   article > 正文

Qwen1.5-MoE: Matching 7B Model Performance with 1/3 Activated Parameters_qwen1.5-moe-a2.7b

qwen1.5-moe-a2.7b

大模型太卷了,总感觉天天出新的模型。今天看公众的号,看到阿里Qwen发布一款总模型7B,推理时,激活参数2.7B的大模型。仔细看了一下他的技术报告,记录一下。
技术博客:Qwen1.5-MoE: Matching 7B Model Performance with 1/3 Activated Parameters

优点:

Qwen1.5-MoE-A2.7B。它仅拥有27亿个激活参数,但其性能却能与当前最先进的70亿参数模型,如Mistral 7B和Qwen1.5-7B相媲美。相较于包含65亿个Non-Embedding参数的Qwen1.5-7B,Qwen1.5-MoE-A2.7B只有20亿个Non-Embedding参数,约为原模型大小的三分之一。此外,相比Qwen1.5-7B,Qwen1.5-MoE-A2.7B的训练成本降低了75%,推理速度则提升至1.74倍。

性能:

在这里插入图片描述

激活参数对比:

在这里插入图片描述

模型参数计算:

参考资料:huggingface

{
  "architectures": [
    "Qwen2MoeForCausalLM"
  ],
  "attention_dropout": 0.0,
  "bos_token_id": 151643,
  "eos_token_id": 151643,
  "hidden_act": "silu",
  "hidden_size": 2048,
  "initializer_range": 0.02,
  "intermediate_size": 5632,
  "max_position_embeddings": 8192,
  "max_window_layers": 21,
  "model_type": "qwen2_moe",
  "num_attention_heads": 16,
  "num_hidden_layers": 24,
  "num_key_value_heads": 16,
  "rms_norm_eps": 1e-06,
  "rope_theta": 1000000.0,
  "sliding_window": 32768,
  "tie_word_embeddings": false,
  "torch_dtype": "bfloat16",
  "transformers_version": "4.39.0.dev0",
  "use_cache": true,
  "use_sliding_window": false,
  "vocab_size": 151936,
  "decoder_sparse_step": 1,
  "moe_intermediate_size": 1408,
  "shared_expert_intermediate_size": 5632,
  "num_experts_per_tok": 4,
  "num_experts": 60,
  "norm_topk_prob": false,
  "output_router_logits": false,
  "router_aux_loss_coef": 0.001
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

模型主要参数包括:

词汇表,多头注意力机制, FFN

  • 词汇表:
    151936*2048=311164928≈0.3B
  • 多头注意力机制:
    模型层数矩阵大小矩阵数量
    24 * (2048*2048) *4=402653184≈0.4B
  • FFN:通常为GLU结构即三个相同结构的矩阵,并且这里是MoE所有会有多个相同的专家,即8个FFN,这里先默认是8个头,具体模型结构略有一些差异,不过模型参数计算是一致的。
    矩阵大小 * GLU* 专家数量 * 模型层数
    5632 * 2048 * 3 * 8 * 24= 6.64377754 × 1 0 9 6.64377754\times10^{9} 6.64377754×109 ≈6.4B
    中间会省略一些参数,如RMSNorm的参数,以及矩阵的bias。

模型结构:

主要方面创新: Finegrained experts,初始化,新的routing机制

  • Finegrained experts
    DeepSeek-MoE和DBRX已经证明了finegrained experts的有效性。从FFN层过渡到MoE层时,我们一般只是简单地复制多次FFN来实现多个expert。而finegrained experts的目标是在不增加参数数量的前提下生成更多expert。为了实现这一点,我们将单个FFN分割成几个部分,每个部分作为一个独立的expert。我们设计了具有总共64个expert的的MoE,对比其他配置,我们认为这个实现能达到效果和效率的最优。
    我理解的意思就是,常规的MoE是8个专家,但是Qwen则是64个专家,怎么增加专家的数量,并且不增加参数量,那就是分割专家,对每个专家进行纵向切割,切割成8个专家,这么就会形成64个专家。
  • 初始化
    模型初始化阶段至关重要。初步实验表明,从零开始训练MoE模型可能效率低下,且难以提升至预期的最优性能水平。因此,我们首先利用已有的Qwen-1.8B,将其改造为Qwen1.5-MoE-A2.7B。此外,在初始化阶段引入随机性可以显著加快收敛速度,并在整个预训练过程中带来更好的整体性能表现。
  • 新的routing机制
    整合了4个总是被激活的共享expert和每次只激活其中4个的60个routing expert。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/679312
推荐阅读
相关标签
  

闽ICP备14008679号