You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Unsloth无法识别Llama.cpp,无法将微调LLM转为GGUF格式

解决Unsloth save_pretrained_gguf量化失败但手动转换GGUF成功的问题

问题背景

  • 运行环境:AzureML Standard_NC24ads_A100_v4虚拟机,Unsloth版本2025.5.6,初始模型为unsloth/Meta-Llama-3.1-8B-Instruct
  • 执行操作:运行Llama3 Ollama笔记本时,调用Unsloth的API保存量化GGUF:
model.save_pretrained_gguf("model", tokenizer, quantization_method="q4_k_m")
  • 出现错误:抛出RuntimeError,提示量化失败。已按提示编译llama.cpp、尝试旧版本commit、移动llama-quantize文件到工作目录,问题仍未解决
  • 例外情况:手动执行llama.cpp的转换脚本可成功生成GGUF文件:
python3 llama.cpp/convert_lora_to_gguf.py my_model

替代解决方案

既然手动转换流程有效,可绕过Unsloth的save_pretrained_gguf方法,采用以下步骤:

  1. 先将微调后的模型保存为标准Hugging Face格式:
model.save_pretrained("my_finetuned_model", tokenizer)
  1. 调用llama.cpp转换脚本生成GGUF文件:
python3 llama.cpp/convert_lora_to_gguf.py my_finetuned_model
  1. 若需指定量化方式,转换后手动执行llama-quantize工具:
./llama.cpp/llama-quantize my_finetuned_model/gguf-model-f16.gguf my_finetuned_model/gguf-model-q4_k_m.gguf q4_k_m

根因排查方向

Unsloth内部调用llama.cpp工具时可能存在路径或版本适配问题:

  • 确保llama-quantize可执行文件在系统PATH中:将llama.cpp目录添加到PATH后重试Unsloth的保存方法
export PATH=$PATH:/path/to/llama.cpp/
  • 验证版本兼容性:Unsloth 2025.5.6可能与最新llama.cpp存在适配问题,可尝试回退Unsloth到稳定版本,或使用Unsloth文档推荐的llama.cpp特定commit版本

内容的提问来源于stack exchange,提问作者rikyeah

火山引擎 最新活动