看看开源的大模型在config文件中都有哪些信息。

{
  "architectures": [
    "Qwen3ForCausalLM"
  ],
  "attention_bias": false,
  "attention_dropout": 0.0,
  "bos_token_id": 151643,
  "eos_token_id": 151645,
  "head_dim": 128,
  "hidden_act": "silu",
  "hidden_size": 5120,
  "initializer_range": 0.02,
  "intermediate_size": 25600,
  "max_position_embeddings": 40960,
  "max_window_layers": 64,
  "model_type": "qwen3",
  "num_attention_heads": 64,
  "num_hidden_layers": 64,
  "num_key_value_heads": 8,
  "rms_norm_eps": 1e-06,
  "rope_scaling": null,
  "rope_theta": 1000000,
  "sliding_window": null,
  "tie_word_embeddings": false,
  "torch_dtype": "bfloat16",
  "transformers_version": "4.51.0",
  "use_cache": true,
  "use_sliding_window": false,
  "vocab_size": 151936
}

一、大模型基本信息

 模型架构类型

"architectures": ["Qwen3ForCausalLM"]

表示这是一个用于因果语言建模(Causal Language Modeling)的 Qwen3 模型,即从左到右生成文本(如 GPT 系列),适用于文本生成任务。

模型的类型标识

"model_type": "qwen3"

这是 Qwen 系列的第三代模型(Qwen3),用于 Transformers 库内部识别模型类别。

生成该配置时所使用的 Hugging Face Transformers 库版本

"transformers_version": "4.51.0"

建议使用 4.51.0 或兼容版本加载该模型以避免兼容性问题。

二、词表与Token设置

模型词表大小

"vocab_size": 151936

支持 151,936 个不同的 token,包括中文、英文、符号、特殊 token 等,较大的词表有助于处理多语言和复杂字符。

Begin of Sequence(序列开始)token 的 ID

"bos_token_id": 151643

输入序列开始时使用的特殊 token ID。

End of Sequence(序列结束)token 的 ID

"eos_token_id": 151645

表示句子或生成结束的 token ID。

是否将输出层的词向量与输入嵌入共享

"tie_word_embeddings": false

false 表示不共享,即输出层有独立的权重矩阵。这在大模型中常见,以提升表达能力。

三、模型结构参数

隐藏层维度(即每个 token 的嵌入向量维度)

"hidden_size": 5120

每个 token 被表示为 5120 维的向量。

Transformer 的层数(即堆叠的 decoder 层数)

"num_hidden_layers": 64

模型共有 64 层,属于非常深的网络结构。

每个注意力头的维度。

"head_dim": 128

计算方式为 hidden_size / num_attention_heads = 5120 / 64 = 128

多头注意力机制中的“查询头”数量

"num_attention_heads": 64

使用 64 个注意力头,每个头处理 head_dim = 128 维信息(5120 / 64 = 128)。

KV(Key/Value)头的数量

"num_key_value_heads": 8

64 个查询头共享 8 个 Key/Value 头,大幅减少解码时的内存带宽需求,提升推理速度。

前馈网络(FFN)中隐藏层的维度

"intermediate_size": 25600

FFN 的第一层会将 5120 维扩展到 25600 维,再压缩回 5120。扩展比约为 5 倍(25600 / 5120)。

前馈网络中使用的激活函数

"hidden_act": "silu"

使用 SiLU(Sigmoid Linear Unit),也叫 Swish,公式为 x * sigmoid(x),在大模型中表现优于 ReLU。

四、归一化与初始化

RMSNorm(Root Mean Square Layer Normalization)中的 epsilon 值

"rms_norm_eps": 1e-06

用于数值稳定性,防止除以 0。Qwen3 使用 RMSNorm 而非传统的 LayerNorm,计算更高效。

模型权重初始化时的标准差范围

"initializer_range": 0.02

线性层的权重通常从均值为 0、标准差为 0.02 的正态分布中初始化。

五、注意力机制相关

注意力层中是否使用偏置项(bias)。

"attention_bias": false

false 表示注意力计算中不加 bias,简化模型。

注意力权重的 dropout 比例

"attention_dropout": 0.0

训练时防止过拟合,这里为 0,可能在训练后期关闭或用于推理。

RoPE(Rotary Position Embedding)的 θ 基础值

"rope_theta": 1000000

控制位置编码的频率尺度。1e6 是较大值,支持更细粒度的位置编码,有助于长序列建模。

模型支持的最大序列长度

"max_position_embeddings": 40960

理论上可处理最长 40,960 个 token 的输入,适合超长上下文任务(如长文档理解、代码分析等)。

RoPE 是否使用扩展策略

"rope_scaling": null

null 表示未启用额外的长度外推技术,原始 RoPE 支持到 40960。

是否使用滑动窗口注意力

"sliding_window": null,

"use_sliding_window": false

两者都为 false/null,表示未启用局部注意力窗口机制(不像 Mistral 那样限制每层只看最近 N 个 token)。

使用窗口注意力的最大层数

"max_window_layers": 64

虽然 use_sliding_window 为 false,但该字段可能为未来扩展预留。当前所有 64 层都使用全序列注意力。

六、推理与数据类型

模型默认使用的 PyTorch 数据类型

"torch_dtype": "bfloat16"

使用 bfloat16(Brain Floating Point)进行训练和推理,相比 float32 节省内存,同时保持较好的数值稳定性。

是否使用 KV Cache(键值缓存)进行自回归生成

"use_cache": true

true 表示在生成文本时会缓存已计算的 Key/Value,避免重复计算,显著提升生成速度。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐