下载途径不一样是否文件构成也不一样?

以下内容以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 的文档。