前言
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)中使用這個模型了。