将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

相关文章
|
7月前
|
数据处理 开发工具 git
coco2017数据集转换为yolo格式(记录过程)
最近做一个yolov5的落地应用项目,用的anylabeling打标,需要将coco2017的数据集转为yolo格式,故写下记录过程!
|
2月前
|
机器学习/深度学习 PyTorch 算法框架/工具
深度学习之格式转换笔记(一):模型文件pt转onnx转tensorrt格式实操成功
关于如何将深度学习模型从PyTorch的.pt格式转换为ONNX格式,然后再转换为TensorRT格式的实操指南。
259 0
深度学习之格式转换笔记(一):模型文件pt转onnx转tensorrt格式实操成功
|
人工智能 自然语言处理 物联网
中文LLaMA模型和指令精调的Alpaca大模型:中文数据进行二次预训练,进一步提升了中文基础语义理解能力
中文LLaMA模型和指令精调的Alpaca大模型:中文数据进行二次预训练,进一步提升了中文基础语义理解能力
中文LLaMA模型和指令精调的Alpaca大模型:中文数据进行二次预训练,进一步提升了中文基础语义理解能力
|
2月前
|
XML JSON 数据可视化
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
本文详细介绍了不同数据集格式之间的转换方法,包括YOLO、VOC、COCO、JSON、TXT和PNG等格式,以及如何可视化验证数据集。
351 1
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
前端大模型入门(三):编码(Tokenizer)和嵌入(Embedding)解析 - llm的输入
本文介绍了大规模语言模型(LLM)中的两个核心概念:Tokenizer和Embedding。Tokenizer将文本转换为模型可处理的数字ID,而Embedding则将这些ID转化为能捕捉语义关系的稠密向量。文章通过具体示例和代码展示了两者的实现方法,帮助读者理解其基本原理和应用场景。
560 1
|
4月前
|
XML 数据格式 Python
将xml标签转换为txt(voc格式转换为yolo方便进行训练)
该文章提供了一个Python脚本,用于将VOC格式的XML标签文件转换为YOLO训练所需的TXT格式,包括修改数据集类别、输入图像与标注文件夹地址、转换过程和结果展示。
将xml标签转换为txt(voc格式转换为yolo方便进行训练)
|
7月前
|
并行计算 Ubuntu PyTorch
一文看懂pytorch转换ONNX再转换TenserRT
一文看懂pytorch转换ONNX再转换TenserRT
142 3
如何使用 MusicFab 将 SoundCloud音频转换为 WAV格式?
这篇文章为你展示了如何利用三方工具将SoundCloud音频转化为WAV格式以便进行兼容收听。
|
7月前
ModelScope-FunASR的返回格式是可以自定义的
【2月更文挑战第32天】ModelScope-FunASR的返回格式是可以自定义的
84 1
|
7月前
|
JSON 数据处理 数据格式
yolov8训练自己的数据集以及权重转化为.engine格式(超详细)
yolov8训练自己的数据集以及权重转化为.engine格式(超详细)
583 0