LLM权重各个文件作用分析(safetensors分片格式)
文章目录
- 1. 模型架构与核心配置
- **config.json**
- **configuration.json (部分模型存在)**
- 2. 文本生成策略配置
- **generation_config.json**
- 3. 分词器(Tokenizer)配置
- **tokenizer_config.json**
- **tokenizer.json**
- **vocab.json / merges.txt**
- **special_tokens_map.json**
- 4. 权重索引与元数据
- **model.safetensors.index.json (或 pytorch_model.bin.index.json)**
- **adapter_config.json (LoRA/微调场景)**
- 总结对照表
1. 模型架构与核心配置
config.json
作用:定义模型的核心架构参数,是加载权重时最关键的配置文件。
关键内容:包含隐藏层大小 (hidden_size)、注意力头数 (num_attention_heads)、层数 (num_hidden_layers)、词汇表大小 (vocab_size)、激活函数 (hidden_act) 等。对于 MoE 模型,还包含专家数量 (n_routed_experts)、路由策略等参数。
注意:在昇腾适配或量化场景中,该文件可能需要修改以支持特定硬件特性(如添加 quantize 字段或移除不支持的 flash_attn 相关配置) 。
configuration.json (部分模型存在)
作用:通常作为 config.json 的补充或别名,包含额外的模型配置信息,具体取决于模型实现 。
2. 文本生成策略配置
generation_config.json
作用:定义模型在推理生成文本时的默认超参数。
关键内容:包括温度 (temperature)、Top-K/Top-P 采样策略 (top_k, top_p)、最大生成长度 (max_length)、结束符 ID (eos_token_id)、起始符 ID (bos_token_id) 等。
注意:在 MindIE 等推理框架中,该文件会被读取以决定默认生成行为。若需通过 API 动态控制生成参数,有时需清理此文件中的硬编码参数以避免冲突。
3. 分词器(Tokenizer)配置
tokenizer_config.json
作用:定义分词器的全局配置选项。
关键内容:包含分词器类型、特殊标记映射(如 pad_token, unk_token)、聊天模板 (chat_template) 等。在昇腾适配中,若 config.json 未指定 prompt 模板,常需从此文件拷贝 chat_template 使用 。
tokenizer.json
作用:包含分词器的完整词汇表及合并规则(Merges),通常由 Rust 库 tokenizers 生成,用于快速分词。
关键内容:词汇表映射、BPE 合并规则等。
vocab.json / merges.txt
作用:部分模型(如 GPT-2 系列或旧版 LLaMA)使用这两个文件分别存储词汇表 ID 映射和 BPE 合并规则,而非单一的 tokenizer.json。
special_tokens_map.json
作用:明确映射特殊标记(如 [PAD], [EOS], [CLS])到其对应的 Token ID。
4. 权重索引与元数据
model.safetensors.index.json (或 pytorch_model.bin.index.json)
作用:当模型权重被拆分为多个分片文件(如 model-00001-of-00004.safetensors)时,此 JSON 文件作为索引,记录每个权重参数(Key)位于哪个分片文件(Value)中。
关键内容:weight_map 字典,映射参数名到文件名;metadata 记录总大小等信息。
adapter_config.json (LoRA/微调场景)
作用:在 LoRA 微调后,记录适配器的配置参数,如秩 (rank)、缩放系数 (alpha)、目标模块 (target_modules) 等,用于推理时正确加载 LoRA 权重。
总结对照表
| 文件名 | 核心作用 | 典型关键字段 |
|---|---|---|
| config.json | 模型架构定义 | hidden_size, num_layers, vocab_size, architectures |
| generation_config.json | 推理生成策略 | temperature, top_p, max_length, eos_token_id |
| tokenizer_config.json | 分词器全局配置 | chat_template, model_max_length, pad_token |
| tokenizer.json | 分词器核心数据 | 词汇表、BPE 合并规则 |
| model.safetensors.index.json | 权重分片索引 | weight_map (参数名 -> 文件名) |
| adapter_config.json | LoRA 适配器配置 | rank, alpha, target_modules |
提示:在昇腾 MindIE 或 ModelArts 部署时,务必确保 config.json 中的架构参数与权重文件一致,且 generation_config.json 中的参数符合业务预期,否则可能导致推理结果异常或服务启动失败。
