本文主要是介绍大模型中 .safetensors 文件、.ckpt文件、.gguf和.pth以及.bin文件区别、加载和保存以及转换方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在大模型中,.safetensors、.ckpt、.gguf、.pth 和 .bin 文件都是用于保存和加载模型参数的文件格式,它们之间的区别和转换方式如下:
-
.safetensors文件:- 这是 TensorFlow 2.x 中新增的文件格式,用于保存模型参数和优化器状态。
- 它采用的是 TensorFlow 的自定义序列化格式,不能直接用于其他框架。
- 可以使用 TensorFlow 的
tf.train.Checkpoint类来加载和保存.safetensors文件。
-
.ckpt文件:- 这是 TensorFlow 1.x 中用于保存模型参数和优化器状态的文件格式。
- 它采用的是 TensorFlow 的自定义序列化格式,不能直接用于其他框架。
- 可以使用 TensorFlow 的
tf.train.Saver类来加载和保存.ckpt文件。 - 可以使用 TensorFlow 2.x 的
tf.compat.v1.train.Saver类来加载和保存.ckpt文件。
-
.gguf文件:- 这是 Google 的 GFST(Google Finite State Transducer)格式,用于保存语言模型。
- 它采用的是 Google 的自定义序列化格式,不能直接用于其他框架。
- 可以使用 Google 的
fstcompile和fstrain工具来加载和保存.gguf文件。
-
.pth文件:- 这是 PyTorch 中用于保存模型参数和优化器状态的文件格式。
- 它采用的是 PyTorch 的自定义序列化格式,不能直接用于其他框架。
- 可以使用 PyTorch 的
torch.save函数来加载和保存.pth文件。
-
.bin文件:- 这是一种通用的二进制文件格式,可以用于保存模型参数和优化器状态。
- 它可以被多种框架所使用,例如 TensorFlow、PyTorch 和 ONNX 等。
- 可以使用 NumPy 或 PyTorch 等框架的函数来加载和保存
.bin文件。
对于这些文件格式之间的转换,可以使用以下方法:
-
.ckpt文件到.pth文件:- 可以使用 TensorFlow 2.x 的
tf.compat.v1.train.Saver类来加载.ckpt文件,然后使用 PyTorch 的torch.Tensor.cpu函数将模型参数转换为 CPU 张量,最后使用 PyTorch 的torch.save函数保存为.pth文件。
- 可以使用 TensorFlow 2.x 的
-
.pth文件到.ckpt文件:- 可以使用 PyTorch 的
torch.load函数加载.pth文件,然后使用 TensorFlow 2.x 的tf.convert_to_tensor函数将模型参数转换为 TensorFlow 张量,最后使用 TensorFlow 2.x 的tf.train.Checkpoint类保存为.ckpt文件。
- 可以使用 PyTorch 的
-
.ckpt文件或.pth文件到 ONNX 模型:- 可以使用 TensorFlow 2.x 的
tf2onnx.convert函数或 PyTorch 的torch.onnx.export函数将模型转换为 ONNX 模型,然后使用 ONNX 的onnxruntime.InferenceSession类加载和使用 ONNX 模型。
- 可以使用 TensorFlow 2.x 的
-
ONNX 模型到
.pth文件或.ckpt文件:- 可以使用 ONNX 的
onnxruntime.InferenceSession类加载 ONNX 模型,然后使用 PyTorch 的torch.Tensor或 TensorFlow 2.x 的tf.convert\_to\_tensor函数将模型参数转换为 PyTorch 或 TensorFlow 张量,最后使用 PyTorch 的torch.save函数或 TensorFlow 2.x 的tf.train.Checkpoint类保存为.pth文件或.ckpt文件。
- 可以使用 ONNX 的
-
.gguf文件到 ONNX 模型:- 可以使用 Google 的
fst2onnx工具将.gguf文件转换为 ONNX 模型,然后使用 ONNX 的onnxruntime.InferenceSession类加载和使用 ONNX 模型。
- 可以使用 Google 的
-
ONNX 模型到
.gguf文件:- 可以使用 ONNX 的
onnxruntime.InferenceSession类加载 ONNX 模型,然后使用 Google 的onnx2fst工具将 ONNX 模型转换为.gguf文件。
- 可以使用 ONNX 的
需要注意的是,由于不同框架之间的 API 和序列化格式的差异,在进行转换时可能需要进行一些额外的处理,例如调整数据类型、调整形状、调整维度等。
这篇关于大模型中 .safetensors 文件、.ckpt文件、.gguf和.pth以及.bin文件区别、加载和保存以及转换方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!