首先在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

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐