使用 llama.cpp 在 Windows 11 上运行 Qwen2.5 和 DeepSeek 模型:从环境搭 ...

打印 上一主题 下一主题

主题 1944|帖子 1944|积分 5832

弁言

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 克隆仓库:
    1. git clone https://github.com/ggerganov/llama.cpp
    2. cd llama.cpp
    复制代码
  • 2.2 使用 CMake 天生项目:

    • CPU 版本:
    1. cmake .. -G "Visual Studio 17 2022" -A x64
    复制代码
      

    • GPU 版本(CUDA):
    1. cmake .. -G "Visual Studio 17 2022" -A x64
    2. -DGGML_CUDA=ON
    复制代码

  • 2.3 编译项目:
    1. cmake --build . --config Release
    复制代码
3. 获取和转换模型



  • 3.1 下载 Qwen2.5 和 DeepSeek 模型:

    • 从 Hugging Face 下载模型权重。

  • 3.2 转换模型为 GGUF 格式:

    • 使用 convert-hf-to-gguf.py 脚本:
    1. python convert-hf-to-gguf.py Qwen/Qwen2.5-7B-Instruct --outfile qwen2.5-7b-instruct-f16.gguf
    复制代码
      

    • 量化模型(可选):
    1. ./llama-quantize qwen2.5-7b-instruct-f16.gguf qwen2.5-7b-instruct-q5_k_m.gguf q5_k_m
    复制代码

4. 运行模型



  • 4.1 运行 Qwen2.5 模型:
    1. ./llama-cli -m qwen2.5-7b-instruct-q5_k_m.gguf -ngl 80 -n 512
    复制代码
  • 4.2 运行 DeepSeek 模型:
    1. ./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 对话示例:

8. 总结

llama.cpp 是一个强盛而机动的工具,专为对性能和控制力有极高要求的用户设计。尽管初次使用时大概会遇到一些挑战,但通过不断探索和办理问题,你将可以或许充分释放它的潜力,体验到在本地运行大模型的无限乐趣!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

北冰洋以北

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表