Transformer架构、开源、结构简单模型配置参数文件:
// config.json
{
"_name_or_path": "meta-llama/Llama-2-7b-hf",
"architectures": [
"LlamaForCausalLM"
],
"bos_token_id": 1,
"eos_token_id": 2,
"hidden_act": "silu",
"hidden_size": 4096,
"initializer_range": 0.02,
"intermediate_size": 11008,
"max_position_embeddings": 4096,
"model_type": "llama",
"num_attention_heads":32,
"num_hidden_layers": 32,
"num_key_value_heads": 32,
"pretraining_tp": 1,
"rms_norm_eps": 1e-05,
"rope_scaling": null,
"tie_word_embeddings": false,
"torch_dtype": "float16",
"transformers_version": "4.31.0.dev0",
"use_cache": true,
"vocab size": 32000
}
torch_dtype:模型计算时用的数据类型hidden_size:模型由很多层模块组成,模块之间需要连接,每层模块之间输入输出hidden_space(由很多向量组成),hidden_size就是这些向量的长度
Tokenizer和Input embedding用于将文本转化成模型可推理的张量(高维矩阵)<aside> 💡 标记器(Tokenizer)— 将文本中的词转化成序号
vocab_size:指定词表大小,每个单词对应[0, vocab_size)中的一个token
</aside>
<aside>
💡 将token转换成向量 — One-hot Encoding — 以vocab_size作为向量长度表示一个词
</aside>

<aside>
💡 Word Embedding文本嵌入 — 一个非常大的矩阵,大小vocab_size * hidden_size,一个词对应一个向量
<aside> 💡 层归一化(RMS Norm)— 对每一层的输入都会做一次RMS Norm操作
</aside>
RMS Norm与标准层归一化计算方式有些区别:

rms_norm_epshidden_size)层归一化可以提升训练的效果,提高模型计算的稳定性