如何将自定义训练的Whisper模型.safetensors转为ggml等格式?
解决方案
一、将.safetensors转为PyTorch格式(pytorch_model.bin)或Keras格式(.h5)
Whisper基于Hugging Face Transformers训练,safetensors是默认的安全权重格式,直接用Transformers库即可完成格式转换:
1. 导出为PyTorch原生格式(pytorch_model.bin)
先安装依赖(未安装时执行):
pip install transformers safetensors torch
运行以下Python代码:
from transformers import WhisperForConditionalGeneration # 加载本地safetensors格式模型 model = WhisperForConditionalGeneration.from_pretrained("你的模型本地目录路径", local_files_only=True) # 保存为pytorch_model.bin格式 model.save_pretrained("目标保存目录", safe_serialization=False)
执行后,目标目录会生成pytorch_model.bin及配套配置文件。
2. 导出为Keras格式(tf_model.h5)
先安装TensorFlow相关依赖:
pip install tensorflow transformers safetensors
运行转换代码:
from transformers import TFWhisperForConditionalGeneration, WhisperForConditionalGeneration # 加载本地safetensors模型 pt_model = WhisperForConditionalGeneration.from_pretrained("你的模型本地目录路径", local_files_only=True) # 转换为TensorFlow兼容格式 tf_model = TFWhisperForConditionalGeneration.from_pretrained("你的模型本地目录路径", from_pt=True, local_files_only=True) # 保存为.h5文件 tf_model.save_pretrained("目标保存目录", save_format="h5")
二、将.safetensors转为ggml格式(用于whisper.cpp)
whisper.cpp提供官方转换脚本,步骤如下:
1. 准备环境
- 获取whisper.cpp代码仓库并进入目录
- 安装依赖:
pip install transformers safetensors torch numpy
2. 执行转换
确保你的safetensors模型目录包含完整配置文件(如config.json、tokenizer.json,训练时自动生成),运行转换脚本:
python convert.py /path/to/your/safetensors-model --outtype q4_0 --outfile ./models/ggml-your-model-q4_0.bin
参数说明:
--outtype:指定量化类型,可选q4_0(常用4位量化)、q5_0、fp16等--outfile:设置输出ggml模型的路径和文件名
若自定义模型存在tokenizer匹配问题,可先加载对应基础Whisper模型的tokenizer后再执行转换。
内容的提问来源于stack exchange,提问作者sin mostcore
相关产品推荐
相关产品推荐

