CanRun

Apple M4 能运行 Llama 3.1 8B 吗?

运行良好Q4_K_M 可装入统一内存(GPU 可用 11.2 GB,占用 6.6 GB):运行良好,估算 15.2 tok/s(12.2–18.3,校准估算 ±20%)。若降到 Q2_K(质量损失大),可达到“运行流畅”,估算 21.4 tok/s(17.2–25.7,校准估算 ±20%)。

统一内存:默认设置下 GPU 大约可以使用其中的 70%自定义许可证 · Llama 3.1,商用前请先查看条款社区 GGUF · bartowski

16 GB 统一内存 · 120.0 GB/s · FP16 3.8 TFLOPS。 按 8k 上下文和 f16 KV 缓存计算。判定按内存容量分别列出。

不同内存容量下的判定

本页使用 16 GB 配置;下面列出所有容量。

  • 16 GB运行良好估算 15.2 tok/s(12.2–18.3,校准估算 ±20%)Q2_K(质量损失大):运行流畅(本页采用)
  • 24 GB运行良好估算 15.2 tok/s(12.2–18.3,校准估算 ±20%)Q2_K(质量损失大):运行流畅
  • 32 GB运行良好估算 15.2 tok/s(12.2–18.3,校准估算 ±20%)Q2_K(质量损失大):运行流畅

Apple M4 上 Llama 3.1 8B 的全部量化

4 个已收录的 GGUF 文件,从小到大排列,8k 上下文
量化文件大小判定速度显存/内存运行方式备注
Q2_K3.18 GB运行流畅
估算 21.4 tok/s17.2–25.7校准估算 ±20%
4.8 / 11.2 GB统一内存—
IQ4_XS4.45 GB运行良好
估算 16.5 tok/s13.2–19.8校准估算 ±20%
6.1 / 11.2 GB统一内存—
Q4_K_M基准4.92 GB运行良好
估算 15.2 tok/s12.2–18.3校准估算 ±20%
6.6 / 11.2 GB统一内存—
Q8_08.54 GB运行良好
估算 9.5 tok/s7.6–11.4校准估算 ±20%
10.2 / 11.2 GB统一内存—

Q4_K_M 下的内存占用

权重、KV 缓存和计算缓冲区属于模型;OS 预留是显示驱动占用的部分。
统一内存
权重
4.9 GB
KV 缓存
1.1 GB
计算缓冲区
0.6 GB
空闲
4.6 GB
GPU 不可用
4.8 GB

上下文长度与 KV 缓存

KV 缓存

Q4_K_M 下各上下文长度和 KV 缓存类型所需的内存与判定,以及估算速度(tok/s)。
上下文KV f16KV q8_0KV q4_0
4k
6.0 GB运行良好
估算 16.7 tok/s13.4–20.1校准估算 ±20%
5.7 GB运行良好
估算 17.5 tok/s14.0–21.0校准估算 ±20%
5.6 GB运行良好
估算 18.0 tok/s14.4–21.6校准估算 ±20%
8k
6.6 GB运行良好
估算 15.2 tok/s12.2–18.3校准估算 ±20%
6.1 GB运行良好
估算 16.6 tok/s13.3–19.9校准估算 ±20%
5.8 GB运行良好
估算 17.5 tok/s14.0–20.9校准估算 ±20%
16k
7.7 GB运行良好
估算 12.9 tok/s10.3–15.5校准估算 ±20%
6.7 GB运行良好
估算 15.0 tok/s12.0–18.0校准估算 ±20%
6.2 GB运行良好
估算 16.5 tok/s13.2–19.8校准估算 ±20%
32k
10.0 GB运行良好
估算 9.9 tok/s7.9–11.9校准估算 ±20%
8.0 GB运行良好
估算 12.6 tok/s10.1–15.2校准估算 ±20%
6.9 GB运行良好
估算 14.8 tok/s11.9–17.8校准估算 ±20%
64k
14.6 GB装不下
10.6 GB运行良好
估算 9.6 tok/s7.7–11.5校准估算 ±20%
8.5 GB运行良好
估算 12.4 tok/s9.9–14.9校准估算 ±20%
128k
23.8 GB装不下
15.8 GB装不下
9.8 GB运行较慢
估算 6.1 tok/s4.3–7.9理论估算 ±30%

S = 运行流畅 · A = 运行良好 · B = 运行较慢 · F = 无法运行

在 Q4_K_M 下,判定仍为“运行良好”的上下文上限:f16 KV 缓存为 32k,q8_0 为 64k。

估算速度

生成
估算 15.2 tok/s(12.2–18.3,校准估算 ±20%)
提示词处理
约 181 tok/s(109–254,粗略估算 ±40%)

这一组合的实测结果

这一组合还没有公开的实测结果;上面的数字都是估算。

如果这还不够

运行方法

以下命令使用 Q4_K_M 文件。两个工具都会在首次运行时从 Hugging Face 下载。

文件:Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf(4.92 GB),来自 bartowski/Meta-Llama-3.1-8B-Instruct-GGUF。

llama.cpp
llama-server -hf bartowski/Meta-Llama-3.1-8B-Instruct-GGUF:Q4_K_M -c 8192 -ngl all -fa on
  • -ngl all 把所有层都加载到 GPU 上。
  • -fa on 开启 Flash Attention(量化 KV 缓存时需要)。
  • --cache-type-k q8_0 --cache-type-v q8_0 可将 8k 上下文下的 KV 缓存缩小到 0.57 GB。
Ollama

终端:

OLLAMA_CONTEXT_LENGTH=8192 ollama serve
ollama run hf.co/bartowski/Meta-Llama-3.1-8B-Instruct-GGUF:Q4_K_M
  • 在显存低于 24 GB 的 GPU 上,Ollama 默认使用 4k 上下文。可在启动服务器时设置 OLLAMA_CONTEXT_LENGTH,或在对话中使用 /set parameter num_ctx。
  • /set parameter num_ctx 8192

相关页面

常见问题

Apple M4 能运行 Llama 3.1 8B 吗?

Q4_K_M 可装入统一内存(GPU 可用 11.2 GB,占用 6.6 GB):运行良好,估算 15.2 tok/s(12.2–18.3,校准估算 ±20%)。若降到 Q2_K(质量损失大),可达到“运行流畅”,估算 21.4 tok/s(17.2–25.7,校准估算 ±20%)。Q4_K_M 在 8k 上下文下需要 6.6 GB;GPU 可使用的统一内存为 11.2 GB。

Llama 3.1 8B 在 Apple M4 上最多能用多长的上下文?

在 Q4_K_M 下,判定仍为“运行良好”的上下文上限:f16 KV 缓存为 32k(KV 4.3 GB),q8_0 KV 缓存为 64k(KV 4.6 GB)。该模型最多支持 128k 上下文。

该用哪个量化?速度如何?

Q4_K_M(4.92 GB)是推荐的平衡之选:运行良好,估算 15.2 tok/s(12.2–18.3,校准估算 ±20%)。仍能达到“运行良好”的已收录最大文件是 Q8_0(8.54 GB),估算 9.5 tok/s(7.6–11.4,校准估算 ±20%)。

速度是根据内存带宽得出的估算值,并用公开基准测试结果校准,每个数值都附有误差范围和可信度标签。实际结果会因驱动、后端、上下文长度和散热情况而有所不同。