大模型学习之大模型文件结构
下载途径不一样是否文件构成也不一样?
以下内容以Xinference加载的Qwen2_5-InstructionAWQ-14B模型为例。
- config.json
- configuration.json
- generation_config.json
- LIENSE
- merges.txt
- model.safetensors.index.json
- .safeatensors
- README.md
- tokenizer.json
- tokenizer_config.json
- vocab.json
1. config.json
- 配置文件
- 描述模型的架构、超参数和训练时的设置。包括模型的层数、隐藏单元数、激活函数等信息。
- {
“architectures”: [
“Qwen2ForCausalLM”
],
“attention_dropout”: 0.0,
“bos_token_id”: 151643,
“eos_token_id”: 151645,
“hidden_act”: “silu”,
“hidden_size”: 5120,
“initializer_range”: 0.02,
“intermediate_size”: 13824,
“max_position_embeddings”: 32768,
“max_window_layers”: 70,
“model_type”: “qwen2”,
“num_attention_heads”: 40,
“num_hidden_layers”: 48,
“num_key_value_heads”: 8,
“quantization_config”: {
“bits”: 4,
“group_size”: 128,
“modules_to_not_convert”: null,
“quant_method”: “awq”,
“version”: “gemm”,
“zero_point”: true
},
“rms_norm_eps”: 1e-06,
“rope_theta”: 1000000.0,
“sliding_window”: 131072,
“tie_word_embeddings”: false,
“torch_dtype”: “float16”,
“transformers_version”: “4.41.1”,
“use_cache”: true,
“use_sliding_window”: false,
“vocab_size”: 152064
}
2. configuration.json
额外配置文件
文件通常是模型的额外配置文件,可能包含与模型结构或训练过程相关的配置信息。
{}(例子中为空)
3. generation_config.json
- 生成配置参数
- 包含用于生成文本的配置参数,如生成长度、采样策略等
- {
“bos_token_id”: 151643,
“do_sample”: true,
“eos_token_id”: [
151645,
151643
],
“pad_token_id”: 151643,
“repetition_penalty”: 1.05,
“temperature”: 0.7,
“top_k”: 20,
“top_p”: 0.8,
“transformers_version”: “4.41.1”
}
- {
4. LIENSE
- 许可证
- Apache许可证
5. merges.txt
- 合并规则
- 用于 Byte Pair Encoding(BPE)的合并规则文件,主要用于 GPT 系列模型。
6. model.safetensors.index.json
- 模型索引文件
- 模型索引文件,用于描述模型的结构、权重等。
- {
“metadata”: {
“total_size”: 9980028928
},
“weight_map”: {
“model.embed_tokens.weight”: “model-00001-of-00003.safetensors”,
“model.layers.0.self_attn.q_proj.qweight”: “model-00001-of-00003.safetensors”,
“model.layers.0.self_attn.q_proj.qzeros”: “model-00001-of-00003.safetensors”,
….
- {
7. model.safeatensors
- 模型权重文件
- 保存模型的训练后权重,常见的格式有safeatensors,gguf。通常是一个二进制文件。
8. REANME.md
- 模型说明文档
- 提供模型的基本说明和使用方法,包括输入输出格式、预期的性能等。
9. tokenizer.json
- 词表文件,定义了模型使用的词汇。
- {
“version”: “1.0”,
“truncation”: null,
“padding”: null,
“added_tokens”: [
{
“id”: 151643,
“content”: “<|endoftext|>”,
“single_word”: false,
“lstrip”: false,
“rstrip”: false,
“normalized”: false,
“special”: true
},
- {
10. tokenizer_config.json
- 词表配置文件,定义了词表的类型、大小等。
- {
“add_bos_token”: false,
“add_prefix_space”: false,
“added_tokens_decoder”: {
“151643”: {
“content”: “<|endoftext|>”,
“lstrip”: false,
“normalized”: false,
“rstrip”: false,
“single_word”: false,
“special”: true
},
- {
11. vocab.txt / vocab.json
- 模型使用的词表或词汇表文件,定义了词与其对应索引的映射。
有时会有特定的分词规则(如 BERT 的 WordPiece 或 GPT 的 Byte Pair Encoding)。 - {“!”:0,”"“:1,”#”:2,”$”:3,”%”:4,”&”:5,”‘“:6,”(“:7,”)”:8,”*”:9,”+”:10,”,”:11,”-“:12,”.”:13,”/“:14,”0”:15,”1”:16,”2”:17,”3”:18,”4”:19,”5”:20,”6”:21,”7”:22,”8”:23,”9”:24,”:”:25,”;”:26,”<”:27,”=”:28,”>”:29,”?”:30,”@”:31,”A”:32,”B”:33,”C”:34,”D”:35,”E”:36,”F”:37,”G”:38,”H”:39,”I”:40,”J”:41,”K”:42,”L”:43,”M”:44,”N”:45,”O”:46,”P”:47,”Q”:48,”R”:49,”S”:50,”T”:51,”U”:52,”V”:53,”W”:54,”X”:55,”Y”:56,”Z”:57,”[“:58,”\“:59,”]”:60,”^”:61,”_”:62,”`”:63,”a”:64,”b”:65,”
Qlora
经过lora微调后的模型,需要对模型进行合并。
如果模型包含多个训练阶段的权重,可能会有多个 checkpoint 文件夹。
使用文件时的顺序
初始化模型:读取 config.json 或 model_config.json,构建模型结构。
加载权重:从 pytorch_model.bin 或等效文件中加载训练好的参数。
准备输入:通过 tokenizer_config.json 和 vocab.txt 初始化分词器,预处理数据。
推理或评估:通过 model.py 或相关脚本运行模型。
如果需要更详细的指导,可以查看 README 文件或 ModelScope 的文档。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 廾匸!