若鸟的博客

模型的几个估算问题

Published at 2026-05-10 | Last Update 2026-05-10



有几个数据是需要在模型 学习中必须要搞清楚的

1. 模型的结构

以Qwen/Qwen3.6-35B-A3B-FP8为例, 是一个Moe的多模态模型,以下为模型的config结构

Qwen3_5MoeConfig {
  "architectures": [
    "Qwen3_5MoeForConditionalGeneration"
  ],
  "image_token_id": 248056,
  "model_type": "qwen3_5_moe",
  "quantization_config": {
    "activation_scheme": "dynamic",
    "fmt": "e4m3",
    "modules_to_not_convert": [
	 .......
    ],
    "quant_method": "fp8",
    "weight_block_size": [
      128,
      128
    ]
  },
  "text_config": {
    "attention_bias": false,
    "attention_dropout": 0.0,
    "attn_output_gate": true,
    "bos_token_id": 248044,
    "dtype": "bfloat16",
    "eos_token_id": 248044,
    "full_attention_interval": 4,
    "head_dim": 256,
    "hidden_act": "silu",
    "hidden_size": 2048,
    "initializer_range": 0.02,
    "layer_types": [
		......
    ],
    "linear_conv_kernel_dim": 4,
    "linear_key_head_dim": 128,
    "linear_num_key_heads": 16,
    "linear_num_value_heads": 32,
    "linear_value_head_dim": 128,
    "mamba_ssm_dtype": "float32",
    "max_position_embeddings": 262144,
    "model_type": "qwen3_5_moe_text",
    "moe_intermediate_size": 512,
    "mtp_num_hidden_layers": 1,
    "mtp_use_dedicated_embeddings": false,
    "num_attention_heads": 16,
    "num_experts": 256,
    "num_experts_per_tok": 8,
    "num_hidden_layers": 40,
    "num_key_value_heads": 2,
    "output_router_logits": false,
    "pad_token_id": null,
    "partial_rotary_factor": 0.25,
    "rms_norm_eps": 1e-06,
    "rope_parameters": {
      "mrope_interleaved": true,
      "mrope_section": [
        11,
        11,
        10
      ],
      "partial_rotary_factor": 0.25,
      "rope_theta": 10000000,
      "rope_type": "default"
    },
    "router_aux_loss_coef": 0.001,
    "shared_expert_intermediate_size": 512,
    "tie_word_embeddings": false,
    "use_cache": true,
    "vocab_size": 248320
  },
  "tie_word_embeddings": false,
  "transformers_version": "5.8.0",
  "video_token_id": 248057,
  "vision_config": {
    "deepstack_visual_indexes": [],
    "depth": 27,
    "hidden_act": "gelu_pytorch_tanh",
    "hidden_size": 1152,
    "in_channels": 3,
    "initializer_range": 0.02,
    "intermediate_size": 4304,
    "model_type": "qwen3_5_moe_vision",
    "num_heads": 16,
    "num_position_embeddings": 2304,
    "out_hidden_size": 2048,
    "patch_size": 16,
    "spatial_merge_size": 2,
    "temporal_patch_size": 2
  },
  "vision_end_token_id": 248054,
  "vision_start_token_id": 248053
}
大体流程是
输入文本 
   Tokenizer (转成 ID)  ——>
   token_embedding (嵌入层,模型入口)  ——> 
   视觉编码层(ViT, 27层)  ——> 
   投影层 (Projector/Merger)    ——> 
   Transformer × N  (核心计算,混合注意力/MoE等)  ——>
   lm_head (语言模型头,模型出口)  ——>
   Softmax (生成词表概率分布)  ——>
   输出下一个 Token

参数量 = vision + text_moe
其中 text_moe = 层数 * 每层参数量
其中层数 = num_hidden_layers = 40
每层参数量 = Attention + MoeFFN(expert + share expert) + Router +LayerNorm 
Attention(注意这里不是标准的MHA或者GQA,而是MLA)= Q + K + V + O = 

2. 权重占用量

3. 模型计算量

4. 显存传输量

5. GPU间的带宽

理论带宽

实际带宽

6. KV cache计算

7. 理论最大req并发数

8. 理论最大生成速度