机器学习、大模型参数保存格式
关于 pt/pth/safetensor/chkpt/gguf 格式的简单说明,更多细节见参考链接。
| 后缀 | 格式 | 说明 |
|---|---|---|
| .pt/.pth | PyTorch格式 | 早期使用,不安全 |
| .safetensor | SafeTensor格式 | 目前主流,安全高效 |
| .chkpt | CheckPoint格式 | 用于保存、恢复训练过程 |
| .ggml | GGML格式 | 单文件,GGUF之前的格式,不完善 |
| .gguf | GGUF格式 | 单文件,目前主流格式,llama.cpp主要格式 |
PyTorch保存格式
调用torch.save() 保存产生,torch.load()加载, 底层使用了Python的pickle模块,
加载过程中,如果有人混入了代码在文件中,也会被执行,所以不安全。
safetensor格式
Hugging Face后来推出了 safetensors格式, 仅保存数据(模型参数等), 并且使用文件映射到内存,所以十分高效。
一个.safetensors文件, 包含8Byte文件头大小信息,一个JSON的头描述数据信息,以及大量参数构成的数据块。JSON文件头是字符串,内包含各层的数据类型,大小,偏移量。
chkpt格式
“.chkpt/.checkpoint” ,“检查点”, 保存了训练过程中的参数和各种状态信息,保存后可以加载恢复训练过程。
GGML/GGUF格式
GGML格式(Georgi Gerganov Machine Learning),开源项目 llama.cpp 的创建者Georgi Gerganov 开发的早期格式,特性不完善。
GGUF格式(GPT-Generated Unified Format),开源项目 llama.cpp 使用的主要格式,解决了GGML的缺点。