当前位置: 首页 > news >正文

大模型的文件有哪些?

在大模型仓库(如Hugging Face)中,例如:https://modelscope.cn/models/ZhipuAI/glm-4-9b-chat/files,通常会发现以下几类文件:

  • 模型权重文件:存储训练好的模型参数,是模型推理和微调的基础
    • .pt.ckpt.safetensors
  • 配置文件:确保模型架构的一致性,使得权重文件能够正确加载
    • config.jsongeneration_config.json
  • 词汇表文件:保证输入输出的一致性
    • tokenizer.jsontokenizer_config.json

GLM-4模型文件列表

1、模型权重文件

  • 模型权重文件是存储训练好的模型参数,是模型推理和微调的基础 ,常见的有.pt.ckpt.safetensors

  • 不同的框架(如TensorFlow、PyTorch)使用不同的模型文件格式
    例如:

    • safetensors:适配多种框架,支持transformers库的模型加载
    • PyTorch:选择下载.pt.bin格式的模型文件。
    • TensorFlow:选择下载.ckpt.h5格式的模型文件。

1.1 safetensors是什么?

  • .safetensors是由Hugging Face提出的一种新型的模型权重文件格式,有以下特点:

    • 安全性.safetensors采用了加密和校验机制,防止模型文件被篡改或注入恶意代码
    • 性能:优化了数据加载和解析速度
    • 跨框架支持:有多种深度学习框架的兼容性,便于在不同环境中使用
  • .safetensors中,大模型可被分为多个部分,格式类似modelname-0001.safetensorsmodelname-0002.safetensors

  • model.safetensors.index.json是索引文件,记录了模型的各个部分的位置和大小信息

2、配置文件

  • config.jsongeneration_config.json

2.1 config.json

  • config.json包含模型的配置信息(如模型架构、参数设置等),可能包含隐藏层的数量、每层的神经元数、注意力头的数量等
  • config.json的基本结构如下:
{"architectures": ["LlamaForCausalLM"],"hidden_act": "silu","hidden_size": 8192,"num_hidden_layers": 80,"max_position_embeddings": 8192,"model_type": "llama","num_attention_heads": 64,"vocab_size": 128256,......
}
  • 例如architectures字段指定了模型的架构,hidden_act字段指定了隐藏层的激活函数,hidden_size字段指定了隐藏层的神经元数
  • num_attention_heads字段指定了注意力头的数量,max_position_embeddings字段指定了模型能处理的最大输入长度等

2.2 generation_config.json

  • generation_config.json是用于生成文本的配置文件,包含了生成文本时的参数设置,如max_lengthtemperaturetop_k
  • generation_config.json的基本结构如下:
{"bos_token_id": 128000,"eos_token_id": 128001,"do_sample": true,"temperature": 0.6,"max_length": 4096,"top_p": 0.9,"transformers_version": "4.40.0.dev0"
}
  • 例如bos_token_id字段指定了开始标记的ID,eos_token_id字段指定了结束标记的ID,do_sample字段指定了是否使用采样,temperature字段用于控制生成文本的随机性,max_length字段指定了生成文本的最大长度,top_p字段指定了采样的概率等
  • config.jsongeneration_config.json 都可能包含 "bos_token_id"(Beginning of Sequence Token ID)和 "eos_token_id"(End of Sequence Token ID)。在config.json中,这两个字段用于模型的加载和训练,而在generation_config.json中,这两个字段用于生成文本时的参数设置
  • config.json 提供模型的基本信息,而 generation_config.json 则细化为生成任务的具体需求

3、词汇表文件

词汇表文件包含了模型使用的词汇表或标记器信息,是自然语言处理模型理解和生成文本的基础。

  • tokenizer.jsontokenizer_config.json

3.1 tokenizer.json

  • tokenizer.json包含了模型使用的词汇表信息,如词汇表的大小、特殊标记的ID等
  • tokenizer.json的基本结构如下:
{"version": "1.0","truncation": {"max_length": 128,"strategy": "longest_first"},"padding": {"side": "right","pad_id": 0,"pad_token": "[PAD]"},"added_tokens": [{"id": 128010,"content": "[CUSTOM]"}],"normalizer": {"type": "NFD","lowercase": true,"strip_accents": true},"pre_tokenizer": {"type": "ByteLevel","add_prefix_space": true},"post_processor": {"type": "AddSpecialTokens","special_tokens": {"cls_token": "[CLS]","sep_token": "[SEP]"}},"decoder": {"type": "ByteLevel"},"model": {"type": "BPE",...}
}
  • 其中truncation是定义截断策略,用于限制输入序列的最大长度,padding用于统一输入序列的长度,added_tokens列出分词器额外添加到词汇表中的特殊标记或自定义标记
  • normalizer用于定义文本标准化的步骤和规则,用于在分词前对输入文本进行预处理,pre_tokenizer定义分词器如何将输入文本分割为初步的tokens,post_processor定义分词后处理的步骤
  • decoder定义如何将tokens ID 序列解码回原始文本,model定义了分词器的模型信息,如词汇表、合并规则(对于 BPE)等

3.2 tokenizer_config.json

  • tokenizer_config.json是用于生成文本的配置文件,包含了生成文本时的参数设置,如max_lengthtemperaturetop_k
  • tokenizer_config.json的基本结构如下:
{"added_tokens_decoder": [],"bos_token": "begin_of_text |>","clean_up_tokenization_spaces": true,"eos_token": "<|end_of_text|>","model_input_names": ["input_ids", "attention_mask"],"model_max_length": 1000000,"tokenizer_class": "PreTrainedTokenizerFast"
}
  • 其中added_tokens_decoder定义分词器在解码(将 token ID 转换回文本)过程中需要额外处理的特殊标记或自定义标记
  • bos_tokeneos_token定义开始、结束标记,clean_up_tokenization_spaces定义了是否清除分词后的多余空格等
  • tokenizer.jsontokenizer_config.json的区别:tokenizer.json侧重于分词器的训练和加载,而tokenizer_config.json更侧重于生成文本时的参数设置

为什么很多模型都没有 vocab.txt 了?现代分词器采用了更为丰富和灵活的文件格式,如 tokenizer.json,以支持更复杂的分词策略和特殊标记处理

http://www.lryc.cn/news/503532.html

相关文章:

  • QT 国际化(翻译)
  • C 进阶 — 指针的使用
  • 【经验分享】容器云运维的知识点
  • MFC学习笔记专栏开篇语
  • 电子科技大学《高级算法设计与分析》期末复习问题汇总(客观题-选择题、判断题)
  • GPTcelltype——scRNA-seq注释
  • AI与大数据的深度结合:驱动决策的革命性力量
  • Java多线程与线程池技术详解(九)
  • 【常考前端面试题总结】---2025
  • 什么是大语言模型(LLM)
  • 柚坛工具箱Uotan Toolbox适配鸿蒙,刷机体验再升级
  • supervisor使用详解
  • win11电源设置在哪里?控制面板在哪里?如何关闭快速启动?
  • 【论文阅读笔记】One Diffusion to Generate Them All
  • SpringCloud和Nacos的基础知识和使用
  • 人工智能技术的深度解析与推广【人工智能的应用场景】
  • md5sum -c
  • excel使用笔记
  • keepalived+nginx实现web高可用
  • 边界层气象:脉动量预报方程展开 | 湍流脉动速度方差预报方程 | 平均湍流动能收支方程推导
  • TOSUN同星TsMaster使用入门——2、使用TS发送报文,使用graphics分析数据等
  • 【操作系统】实验七:显示进程列表
  • day10 电商系统后台API——接口测试(使用postman)
  • JavaScript ES6+ 语法速通
  • 移动端h5自适应rem适配最佳方案
  • 2024年使用 Cython 加速 Python 的一些简单步骤
  • EasyExcel设置表头上面的那种大标题(前端传递来的大标题)
  • 【Linux网络编程】第十弹---打造初级网络计算器:从协议设计到服务实现
  • 无限弹窗?无限重启?
  • 深入详解人工智能机器学习常见算法中的K-means聚类