前言
ollama本地只能导入gguf格式的大模型文件,将safetensors 文件转化为gguf格式。需要使用 llama.cpp 这个开源工具。以下是使用 llama.cpp 转换 .safetensors 格式模型到 .gguf 格式的详细步骤:
1. 首先克隆并编译 llama.cpp:
克隆项目
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
安装依赖(Ubuntu/Debian系统为例)
sudo apt-get install python3-pip cmake
安装 Python 依赖
pip install -r requirements.txt
编译项目
make
2. 准备转换环境:
安装必要的 Python 包
pip install torch transformers safetensors sentencepiece
3. 转换模型步骤:
基本转换命令
python3 convert.py \--outfile 输出文件路径.gguf \--outtype q4_k_m \--model 输入模型路径
例如转换 Qwen 模型
python3 convert.py \--outfile qwen.gguf \--outtype q4_k_m \--model Qwen/Qwen-7B
4. 常用转换参数说明:
- –outfile: 指定输出的 gguf 文件路径
- –outtype: 指定量化类型,常用选项:
- q4_k_m: 4-bit 量化,平衡速度和质量
- q8_0: 8-bit 量化,更高质量但更大
- f16: 16-bit,无损但体积最大
- –model: 输入模型路径
5. 注意事项:
- 确保有足够的磁盘空间(通常需要模型大小2-3倍的空间)
- 转换过程可能较慢,需要耐心等待
- 建议使用 GPU 进行转换,可以加快速度
- 转换完成后记得验证模型是否能正常工作
6. 验证转换后的模型:
使用 llama.cpp 的主程序测试
./main -m 转换后的模型.gguf -n 128
常见问题解决:
- 内存不足:
- 尝试使用更小的批处理大小
- 使用更激进的量化方案
- 转换失败:
- 检查模型格式是否支持
- 更新 llama.cpp 到最新版本
- 检查依赖是否完整
- 模型加载失败:
- 检查生成的 gguf 文件完整性
- 验证量化参数是否合适
这个过程完成后,你就可以在支持 gguf 格式的框架(如 Ollama)中使用这个模型了。