llama.cpp 安装与量化(mac电脑)

[复制链接]
发表于 2025-9-25 22:59:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
1.创建并切换至假造环境

  1. conda create -n llamacpp python=3.10 -y
  2. conda activate llamacpp
复制代码
2.安装 llama.cpp

  1. git clone https://github.com/ggerganov/llama.cpp.git
  2. cd llama.cpp
复制代码
3.安装依靠

  1. pip install -r requirements.txt
复制代码
4.转换模子

(我这里用的模子是之前微调好的qwen2.5-1.5b的模子,将model.safetensors模子转换为gguf格式)
  1. python convert_hf_to_gguf.py /Users/chuqi/project/MyProject/python/LLaMA-Factory/output/qwen2.5-1.5b --outfile /Users/chuqi/project/MyProject/python/LLaMA-Factory/output/qwen2.5-1.5b/gguf/model.gguf
复制代码
5.创建build目次

  1. mkdir build
  2. cd build
复制代码
6.天生构建文件

(提前安装好cmake 可实验brew install cmake)
  1. cmake .. -DLLAMA_METAL=ON
复制代码
-DLLAMA_METAL=ON 启用 Metal 支持,利用 macOS 的 GPU 加速(可选,但保举)。
7.编译项目

  1. cmake --build . --config Release
复制代码
bin目次会天生llama-quantize llama-cli 可实验文件

8.运行量化下令

  1. ./llama-quantize /Users/chuqi/project/MyProject/python/LLaMA-Factory/output/qwen2.5-1.5b/gguf/model.gguf /Users/chuqi/project/MyProject/python/LLaMA-Factory/output/qwen2.5-1.5b/gguf/model-q4_0.gguf Q4_0
复制代码
也可以用完备路径
  1. /Users/chuqi/project/MyProject/python/llama.cpp/build/bin/llama-quantize /Users/chuqi/project/MyProject/python/LLaMA-Factory/output/qwen2.5-1.5b/gguf/model.gguf /Users/chuqi/project/MyProject/python/LLaMA-Factory/output/qwen2.5-1.5b/gguf/model-q4_0.gguf Q4_0
复制代码
如果提示没有权限的话实验 chmod +x ./llama-quantize

9.测试量化后的模子

  1. ./llama-cli -m /Users/chuqi/project/MyProject/python/LLaMA-Factory/output/qwen2.5-1.5b/gguf/model-q4_0.gguf -p "你好,测试一下!" -n 128
复制代码
末了看下量化后的模子巨细吧
3.09GB的模子Q4量化只有935MB

另附
支持的量化范例
llama.cpp 支持多种量化格式,重要基于整数(Integer Quantization),常见范比方下(克制 2025 年 3 月,基于最新版本):

  • 4 位量化


  • Q4_0: 4 位量化,无额外优化。

    • 文件巨细:较小(约 1/4 的 FP16 巨细)。
    • 精度:中等,得当大多数使命。
    • 用法示例:./llama-quantize input.gguf output.gguf Q4_0

  • Q4_1: 4 位量化,带零点偏移(zero-point)。

    • 文件巨细:略大于 Q4_0。
    • 精度:比 Q4_0 稍高。
    • 用法示例:./llama-quantize input.gguf output.gguf Q4_1

  • Q4_K: 4 位 K-量化(改进版,基于分组)。

    • 文件巨细:靠近 Q4_0。
    • 精度:比 Q4_0 高,靠近 5 位结果。
    • 用法示例:./llama-quantize input.gguf output.gguf Q4_K


  • 5 位量化


  • Q5_0: 5 位量化,无优化。

    • 文件巨细:比 4 位大一些。
    • 精度:较高,得当须要更好输出的场景。
    • 用法示例:./llama-quantize input.gguf output.gguf Q5_0

  • Q5_1: 5 位量化,带零点偏移。

    • 文件巨细:比 Q5_0 稍大。
    • 精度:比 Q5_0 更高。
    • 用法示例:./llama-quantize input.gguf output.gguf Q5_1

  • Q5_K: 5 位 K-量化(分组优化)。

    • 文件巨细:靠近 Q5_0。
    • 精度:非常靠近 FP16,保举用于高精度需求。
    • 用法示例:./llama-quantize input.gguf output.gguf Q5_K


  • 6 位量化


  • Q6_K: 6 位 K-量化。

    • 文件巨细:比 5 位大,但仍远小于 FP16。
    • 精度:非常高,险些无显着精度丧失。
    • 用法示例:./llama-quantize input.gguf output.gguf Q6_K


  • 8 位量化


  • Q8_0: 8 位量化,无优化。

    • 文件巨细:约为 FP16 的一半。
    • 精度:靠近 FP16,得当对精度要求极高的场景。
    • 用法示例:./llama-quantize input.gguf output.gguf Q8_0

  • Q8_K: 8 位 K-量化(分组优化)。

    • 文件巨细:靠近 Q8_0。
    • 精度:非常靠近原始模子。
    • 用法示例:./llama-quantize input.gguf output.gguf Q8_K


  • 其他实验性或特殊范例


  • IQ4_XS: 超小 4 位量化(实验性)。

    • 文件巨细:比 Q4_0 更小。
    • 精度:较低,得当极低内存需求。
    • 用法示例:./llama-quantize input.gguf output.gguf IQ4_XS

  • F16: 半精度浮点(非量化,仅转换格式)。

    • 文件巨细:较大。
    • 精度:原始精度。
    • 用法示例:./llama-quantize input.gguf output.gguf F16

怎样选择量化版本?
选择量化范例取决于你的需求:

  • 内存限定:

    • 如果你的装备内存有限(如 4GB RAM),保举 Q4_0 或 Q4_K。
    • 对于 8GB RAM,可以实验 Q5_K 或 Q6_K。

  • 精度要求:

    • 如果使命对天生质量要求高(如复杂推理),用 Q6_K 或 Q8_0。
    • 简单使命可以用 Q4_0 或 Q5_0。

  • 性能:

    • 低位量化(如 4 位)盘算更快,得当及时应用。
    • 高位量化(如 8 位)盘算稍慢,但精度更好。

常见模子巨细参考(以 7B 参数模子为例)


  • FP16: ~13GB
  • Q8_0: ~7GB
  • Q6_K: ~5.5GB
  • Q5_K: ~4.8GB
  • Q4_0: ~4GB
  • IQ4_XS: ~3.5GB
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表