北冰洋以北 发表于 2025-4-3 22:17:00

使用 llama.cpp 在 Windows 11 上运行 Qwen2.5 和 DeepSeek 模型:从环境搭建到 GPU 加快的完整指南

弁言

llama.cpp vs Ollama:为什么选择 llama.cpp?

1. 机动性与控制力


[*] llama.cpp:

[*]完全开源,你可以根据自己的需求修改代码,甚至优化性能。
[*]支持多种硬件后端(CPU、CUDA、Metal、Vulkan 等),适合需要深度定制的场景。
[*]可以自由选择模型、量化方案和运行参数,机动性极高。

[*] Ollama:

[*]更方向于开箱即用,适合不想折腾的用户。
[*]机动性较低,无法深度定制模型或优化性能。

2. 性能优化


[*]llama.cpp:

[*]支持多种量化方案(如 Q4_K_M、Q5_K_M),显著镌汰显存占用并提升运行速度。
[*]支持 CPU+GPU 混淆推理,即使显存不足也能运行大模型。
[*]通过 SIMD 指令集(如 AVX2、AVX512)和 GPU 加快,性能极致优化。

[*]Ollama:

[*]性能优化较为守旧,主要依赖 CPU 运行,GPU 支持有限。
[*]量化选项较少,无法针对特定硬件举行深度优化。

3. 多平台支持


[*]llama.cpp:

[*]支持 Windows、Linux、macOS 等多种操纵体系。
[*]支持多种硬件架构(x86、ARM、Apple Silicon 等)。

[*]Ollama:

[*]主要面向 macOS 和 Linux,Windows 支持较弱。
[*]硬件兼容性较低,尤其是对 GPU 的支持。

4. 适用场景


[*]llama.cpp:

[*]适合开发者、研究人员和技术爱好者,需要深度定制和优化性能的场景。
[*]适合需要运行特定模型(如 Qwen2.5、DeepSeek)或举行模型实验的用户。

[*]Ollama:

[*]适合平凡用户,希望快速上手并使用预置模型。
[*]适合不需要深度定制或性能优化的场景。

5. 学习与探索


[*]llama.cpp:

[*]通过手动设置和调试,你可以深入了解大模型的运行机制和优化方法。
[*]适合想要学习底层技术或举行二次开发的用户。

[*]Ollama:

[*]更注重用户体验,适合不想深入技术细节的用户。

1. 环境预备



[*]1.1 体系要求:

[*]Windows 11、Visual Studio 2022、CMake、CUDA(可选)。

[*]1.2 安装依赖:

[*]安装 Git、CMake、Visual Studio 2022(确保勾选 C++ 开发工具)。
[*]安装 CUDA(假如需要 GPU 加快)。

2. 编译 llama.cpp



[*]2.1 克隆仓库:git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

[*]2.2 使用 CMake 天生项目:

[*]CPU 版本:
cmake .. -G "Visual Studio 17 2022" -A x64
   

[*]GPU 版本(CUDA):
cmake .. -G "Visual Studio 17 2022" -A x64
-DGGML_CUDA=ON
[*]2.3 编译项目:cmake --build . --config Release

3. 获取和转换模型



[*]3.1 下载 Qwen2.5 和 DeepSeek 模型:

[*]从 Hugging Face 下载模型权重。

[*]3.2 转换模型为 GGUF 格式:

[*]使用 convert-hf-to-gguf.py 脚本:
python convert-hf-to-gguf.py Qwen/Qwen2.5-7B-Instruct --outfile qwen2.5-7b-instruct-f16.gguf
   

[*]量化模型(可选):
./llama-quantize qwen2.5-7b-instruct-f16.gguf qwen2.5-7b-instruct-q5_k_m.gguf q5_k_m

4. 运行模型



[*]4.1 运行 Qwen2.5 模型:./llama-cli -m qwen2.5-7b-instruct-q5_k_m.gguf -ngl 80 -n 512

[*]4.2 运行 DeepSeek 模型:./llama-cli -m deepseek-7b-q5_k_m.gguf -ngl 80 -n 512

[*]4.3 调解参数:

[*]–temp:控制天生内容的随机性(默认 0.8)。
[*]-top_k 和 -top_p:控制天生内容的多样性。
[*]-ngl:调解分配到 GPU 的层数(根据显存大小调解)。

5. 踩坑与办理方案



[*]5.1 CMake 缓存冲突:

[*]办理方法:删除 CMakeCache.txt 和 CMakeFiles 目录,或创建新的构建目录。

[*]5.2 CUDA 支持问题:

[*]办理方法:确保 CUDA 已安装,并设置正确的环境变量。

[*]5.3 模型分片文件归并:

[*]办理方法:使用 copy 或 cat 下令归并分片文件。

6. 性能优化



[*]6.1 GPU 加快:

[*]使用 -ngl 参数将模型层分配到 GPU。

[*]6.2 量化模型:

[*]使用 llama-quantize 工具镌汰显存占用。

[*]6.3 多线程优化:

[*]调解 -t 参数,充分使用 CPU 多线程。

7. 结果展示



[*]7.1 Qwen2.5 对话示例:https://i-blog.csdnimg.cn/direct/665c6b8e325b4bca997d4b297c61028c.png
8. 总结

llama.cpp 是一个强盛而机动的工具,专为对性能和控制力有极高要求的用户设计。尽管初次使用时大概会遇到一些挑战,但通过不断探索和办理问题,你将可以或许充分释放它的潜力,体验到在本地运行大模型的无限乐趣!
页: [1]
查看完整版本: 使用 llama.cpp 在 Windows 11 上运行 Qwen2.5 和 DeepSeek 模型:从环境搭建到 GPU 加快的完整指南