safetensors, ckpt, pth,bin等不同后缀文件的区别?

李白

AI
https://bingzhuyeyou.com/

在大型深度学习模型的上下文中,.safetensors、.bin 和 .pth ckpt 文件的用途和区别如下:

1 safetensors

这是由 Hugging Face 推出的一种新型安全模型存储格式,特别关注模型安全性、隐私保护和快速加载。
它仅包含模型的权重参数,而不包括执行代码,这样可以减少模型文件大小,提高加载速度。
加载方式:使用 Hugging Face 提供的相关API来加载 .safetensors 文件,例如 safetensors.torch.load_file() 函数。

从Hugging Face 或者 civitai上下载的大模型文件很多都这种格式

2 ckpt

ckpt 文件是 PyTorch Lightning 框架采用的模型存储格式,它不仅包含了模型参数,还包括优化器状态以及可能的训练元数据信息,使得用户可以无缝地恢复训练或执行推理。

3 bin

通常是一种通用的二进制格式文件,它可以用来存储任意类型的数据。
在机器学习领域,.bin 文件有时用于存储模型权重或其他二进制数据,但并不特指PyTorch的官方标准格式。
对于PyTorch而言,如果用户自己选择将模型权重以二进制格式保存,可能会使用 .bin 扩展名,加载时需要自定义逻辑读取和应用这些权重到模型结构中。

4 pth

是 PyTorch 中用于保存模型状态的标准格式。
主要用于保存模型的 state_dict,包含了模型的所有可学习参数,或者整个模型(包括结构和参数)。
加载方式:使用 PyTorch 的 torch.load() 函数直接加载 .pth 文件,并通过调用 model.load_state_dict() 将加载的字典应用于模型实例。

5 总结

.safetensors 侧重于安全性和效率,适合于那些希望快速部署且对安全有较高要求的场景,尤其在Hugging Face生态中。
.ckpt 文件是 PyTorch Lightning 框架采用的模型存储格式,它不仅包含了模型参数,还包括优化器状态以及可能的训练元数据信息,使得用户可以无缝地恢复训练或执行推理。
.bin 文件不是标准化的模型保存格式,但在某些情况下可用于存储原始二进制权重数据,加载时需额外处理。
.pth 是PyTorch的标准模型保存格式,方便模型的持久化和复用,支持完整模型结构和参数的保存与恢复。

https://bingzhuyeyou.com/

发表评论

没有账号? 忘记密码?