如何将Hugging Face的IndicWhisper模型转换为单个.pt文件?
解决IndicWhisper模型转单个.pt文件的问题
直接将pytorch_model.bin重命名为.pt肯定不行,因为这个文件只是模型的权重参数字典,不是完整的PyTorch模型实例。你需要用transformers库先加载完整的模型(结合本地的配置文件),再将整个模型序列化保存为单个.pt文件。
步骤1:确保依赖安装
先确认你已经安装了必要的库:
pip install torch transformers
步骤2:转换脚本示例
假设你的模型文件都放在./indicwhisper-local目录下(替换成你实际的本地路径),用下面的脚本完成转换:
import torch from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor # 从本地加载模型和处理器 model = AutoModelForSpeechSeq2Seq.from_pretrained("./indicwhisper-local") processor = AutoProcessor.from_pretrained("./indicwhisper-local") # 保存完整模型和处理器到单个.pt文件(打包在一起更方便项目集成) torch.save({"model": model, "processor": processor}, "./indicwhisper_single.pt")
步骤3:在项目中加载使用
转换完成后,你可以在项目里这样加载:
import torch from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor # 加载单个.pt文件 checkpoint = torch.load("./indicwhisper_single.pt") model = checkpoint["model"] processor = checkpoint["processor"] # 之后就可以正常使用模型做推理了,比如: # inputs = processor(audio, return_tensors="pt") # predicted_ids = model.generate(**inputs) # transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)
关键说明
AutoModelForSpeechSeq2Seq是Whisper系列模型的通用加载类,IndicWhisper基于Whisper,所以可以直接用这个类加载。- 把模型和处理器打包在一起保存,能避免项目中还要单独处理config.json等文件,集成更方便。
- 如果只需要模型权重的话,也可以单独保存
model.state_dict(),但这样后续加载时还是需要重新构建模型结构,不如直接保存完整模型实例省心。
内容的提问来源于stack exchange,提问作者Dan Mathews Robin
相关产品推荐
相关产品推荐

