从llama.cpp开始的guff格式转换到ollama部署
首先在windows部署了llama.cpp,然后将qwen2.5微调后的模型转换为guff格式到ollama部署(因为ollama并不支持qwen的.safetensor部署,所以需要转换格式)。哈哈,我电脑的配置是3050+12G显存,用的是q8_0的Qwen2.5-7B模型,实际运行占用了11GB显存,内存占满了(估计就是4G左右,我电脑就没空间了)。(4)最后安装CUDA,如果先安装会出现
首先在windows部署了llama.cpp,然后将qwen2.5微调后的模型转换为guff格式到ollama部署(因为ollama并不支持qwen的.safetensor部署,所以需要转换格式)。环境配起来非常麻烦
(1)我使用的是从源代码安装:
git clone https://github.com/ggerganov/llama.cpp.git
(2)安装Visual studio C++桌面开发
(3)然后安装cmake编译器
(4)最后安装CUDA,如果先安装会出现一些bug,之后也可以尝试重新安装
(5)编译命令:
cmake . -D TCNN_CUDA_ARCHITECTURES=86 -D CMAKE_CUDA_COMPILER="D:\CUDA_TooKit\bin\nvcc.exe" -B build -DLLAMA_CURL=OFF
(6)在build目录下执行
cmake --build . --config Release
(7)再安装conda,创建conda环境
cd llama.cpp/gguf-py
pip install --editable .
(8)然后如果运行convert_hf_to_gguf.py会发现缺少tokenizer.model,同时还有一些依赖,依赖直接安装就行。具体缺少tokenizer.model是因为:
Qwen模型(特别是Qwen2系列)主要使用 merges.txt(记录BPE合并规则)和vocab.json(提供词表映射)这套组合来定义其基于字节级BPE的分词器,而非单一的tokenizer.model(SentencePiece格式)文件
需要执行
python convert_hf_to_gguf_update.py
(9)执行llama.cpp其中的脚本,将模型目录指定为我们刚刚导出的合并好的目录,转换成功后,将在微调后合并的模型目录下生产一个 GGUF 文件(/root/autodl-tmp/save/Qwen2.5-7B-Instruct-Security/Qwen2.5-7B-Instruct-Security-F16.gguf):
python convert_hf_to_gguf.py /root/autodl-tmp/save/Qwen2.5-7B-Instruct-Security --outtype q8_0
(10) 在模型所在的Modelfile 文件中修改为,注意我这个是合并后的lora模型:
FROM /path/to/file.gguf
(11)直接在模型所在目录下运行:
ollama run 模型名称
哈哈,我电脑的配置是3050+12G显存,用的是q8_0的Qwen2.5-7B模型,实际运行占用了11GB显存,内存占满了(估计就是4G左右,我电脑就没空间了)。运行起来真的是卡死了,回复速度超级慢
参考资料:
https://docs.ollama.com/import#importing-a-gguf-based-model-or-adapter
https://github.com/NVlabs/instant-ngp/issues/923
【AI实战课题1:LLama.cpp+cmake+gpu本地部署模型】https://www.bilibili.com/video/BV14SJ8zFEU7?vd_source=6df551bc5e82b567b6daa75fd1365b55
更多推荐
所有评论(0)