将huggingface的大模型转换为safetensor格式

简介: 将huggingface的大模型转换为safetensor格式

很多huggingface的大语言模型都是pytorch的格式,但是mindie需要safetensor格式,另外mindieservice加载原始的baichuan2-13b的模型出错,后来排查是bfloat16数据格式的问题,所以这次转换要一次性转为float16的格式。

上代码:

import argparse
import os
import torch

def parse_arguments():
parser = argparse.ArgumentParser()
parser.add_argument('--model_path',
help="model and tokenizer path",
default='/data/acltransformer_testdata/weights/llama2/llama-2-70b',
)
return parser.parse_args()

def convert_bin2st_from_pretrained(model_path):
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained(
pretrained_model_name_or_path=model_path,
low_cpu_mem_usage=True,
trust_remote_code=True,
torch_dtype=torch.float16) #这里指定float16格式

#safe_serialization=True会保存为safetensor格式
model.save_pretrained(model_path, safe_serialization=True)

if name == 'main':
args = parse_arguments()

print(f"covert  {args.model_path} into safetensor")
convert_bin2st_from_pretrained(args.model_path)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
使用方式:

python convert.py --model_path /home/model/Baichuan2-13B-Chat/
1
执行完毕后:

ls /home/model/Baichuan2-13B-Chat/ -lh

total 52G
-rw-r--r-- 1 root root 252K May 17 14:25 'Baichuan2 '$'\346\250\241\345\236\213\347\244\276\345\214\272\350\256\270\345\217\257\345\215\217\350\256\256''.pdf'
-rw-r--r-- 1 root root 199K May 17 14:25 'Community License for Baichuan2 Model.pdf'
-rw-r--r-- 1 root root 18K May 17 14:25 README.md
-rw-r--r-- 1 root root 797 Jun 24 10:37 config.json
-rw-r--r-- 1 root root 1.6K May 17 14:25 configuration_baichuan.py
-rw-r--r-- 1 root root 302 Jun 24 10:37 generation_config.json
-rw-r--r-- 1 root root 3.0K May 17 14:25 generation_utils.py
-rw-r--r-- 1 root root 1.1K May 17 14:25 handler.py
-rw-r----- 1 root root 9.3G Jun 24 10:38 model-00001-of-00003.safetensors
-rw-r----- 1 root root 9.3G Jun 24 10:38 model-00002-of-00003.safetensors
-rw-r----- 1 root root 7.4G Jun 24 10:38 model-00003-of-00003.safetensors
-rw-r----- 1 root root 23K Jun 24 10:38 model.safetensors.index.json
-rw-r--r-- 1 root root 33K May 17 14:25 modeling_baichuan.py
-rw-r--r-- 1 root root 9.3G May 17 14:28 pytorch_model-00001-of-00003.bin
-rw-r--r-- 1 root root 9.3G May 17 14:31 pytorch_model-00002-of-00003.bin
-rw-r--r-- 1 root root 7.4G May 17 14:33 pytorch_model-00003-of-00003.bin
-rw-r--r-- 1 root root 24K May 17 14:25 pytorch_model.bin.index.json
-rw-r--r-- 1 root root 9.2K May 17 14:25 quantizer.py
drwxr-xr-x 2 root root 4.0K Jun 24 10:25 safetensor_fp16
-rw-r--r-- 1 root root 574 May 17 14:25 special_tokens_map.json
-rw-r--r-- 1 root root 8.9K May 17 14:25 tokenization_baichuan.py
-rw-r--r-- 1 root root 2.0M May 17 14:25 tokenizer.model
-rw-r--r-- 1 root root 954 May 17 14:25 tokenizer_config.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
可以看到多了safetensor结尾的模型,原来bin后缀的也没删。

看下模型下的config.josn文件,可以看到torch_dtype已经变为float16格式,转换之前这里是bfloat16

相关文章
|
12月前
|
自然语言处理 语音技术 开发者
开源上新|FunASR多语言离线文件转写软件包
开源上新|FunASR多语言离线文件转写软件包
|
机器学习/深度学习 监控 数据可视化
训练损失图(Training Loss Plot)
训练损失图(Training Loss Plot)是一种在机器学习和深度学习过程中用来监控模型训练进度的可视化工具。损失函数是衡量模型预测结果与实际结果之间差距的指标,训练损失图展示了模型在训练过程中,损失值随着训练迭代次数的变化情况。通过观察损失值的变化,我们可以评估模型的拟合效果,调整超参数,以及确定合适的训练停止条件。
2380 5
|
Linux Shell 网络安全
conda常用操作和配置镜像源
conda常用操作和配置镜像源
29557 0
|
12月前
|
PyTorch TensorFlow API
大模型中 .safetensors 文件、.ckpt文件、.gguf和.pth以及.bin文件区别、加载和保存以及转换方式
本文讨论了大模型中不同文件格式如`.safetensors`、`.ckpt`、`.gguf`、`.pth`和`.bin`的区别、用途以及如何在TensorFlow、PyTorch和ONNX等框架之间进行加载、保存和转换。
3638 2
|
开发工具 git 缓存
Git忽略规则.gitignore不生效
在项目开发过程中个,一般都会添加 .gitignore 文件,规则很简单,但有时会发现,规则不生效。 原因是 .gitignore 只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
60868 4
|
Docker Windows 容器
解决 windows:An attempt was made to access a socket in a way forbidden by its access permissions
解决 windows:An attempt was made to access a socket in a way forbidden by its access permissions
3540 1
解决 windows:An attempt was made to access a socket in a way forbidden by its access permissions
|
存储 机器学习/深度学习 人工智能
【AI大模型】Transformers大模型库(十六):safetensors存储类型
【AI大模型】Transformers大模型库(十六):safetensors存储类型
1175 0
|
7月前
|
机器学习/深度学习 文字识别 测试技术
Qwen2.5-VL-32B: 更聪明、更轻量!
年前,阿里通义千问团队推出了 Qwen2.5-VL 系列模型,获得了社区的广泛关注和积极反馈。在 Qwen2.5-VL 系列的基础上,研究团队使用强化学习持续优化模型,并使用 Apache 2.0 协议开源 32B 这个备受喜爱的参数规模的新 VL 模型—— Qwen2.5-VL-32B-Instruct。相比此前发布的 Qwen2.5-VL 系列模型,本次推出的 32B 模型的特点如下:
2462 0
|
11月前
|
JavaScript 计算机视觉
FLUX.1 Tools 全家桶开源!文末附一键ComfyUI启动链接
Black Forest Labs 发布了 FLUX.1 Tools,一套增强 FLUX.1 文本转图像模型的工具集,包括 FLUX.1 Fill、FLUX.1 Depth、FLUX.1 Canny 和 FLUX.1 Redux,分别用于图像修复、深度引导、边缘检测和图像重组。提供详细的安装指南和模型下载链接,支持用户快速上手并优化图像处理流程。
3866 4
FLUX.1 Tools 全家桶开源!文末附一键ComfyUI启动链接