入门Mac / 苹果 2 分钟阅读发布于 · 更新于

M1 / M2 Mac 8GB:Ollama 真实能力边界

统一内存与 macOS 共享 — 入门 MacBook 不触发 swap 的情况下能跑什么。

面向的技术栈

M1/M2 8GB Mac · Ollama 0.6+ · GGUF Q4_K_M · 3B 级模型 · 短上下文

最近一次修改后未重新实机运行 —— 命令请当作起点,而不是已验证的配方。

M1M28GB RAMOllamaMetal

开始之前

一台基础 8GB 统一内存配置的 M1 或 M2 Mac,以及在开始之前先建立一个现实的预期:这是本站覆盖的显存档位中最紧张的一档,诚实的目标是一个真正可用的 3B 级助手,而不是 24GB 显卡上跑的东西的缩小版。

bash
brew install ollama
ollama --version

M1 与 M2 基础版:容量相同,速度不同

下面的体积数字取自本站的 Mac M1 8G 条目,直接描述的就是 M1。容量与芯片代际无关——8GB 就是 8GB,8GB 的 M2 或 M3 能装下的模型完全一样。速度则不同:苹果给 M2 基础版标的带宽是 100 GB/s,并称它比 M1 快 50%,由此 M1 约为 67–68 GB/s。每生成一个 token 都要把所有权重读一遍,所以跑同一个模型,M1 明显比 M2、M3 慢——M1 跑 3B 助手没问题,但这正是它老态显露的地方。

实际能装下什么

在 Q4_K_M、4K 上下文下:Llama 3.2 3B 合计 2.5 GB,Qwen2.5 3B 是 2.2 GB,Phi-3.5 Mini 是 4.1 GB —— 在 macOS 和浏览器都开着的情况下,8GB 都能从容装下。8B 模型在 Q4_K_M 下自身就要 5.6 GB,听起来似乎该装得下,但下面这条统一内存的现实才是真正决定它的因素。

bash
ollama pull llama3.2:3b
ollama run llama3.2:3b

没人提的统一内存上限

macOS 会为系统保留一部分 8GB 的内存池,并限制单个进程能锁定的量——在 8GB 的机器上,这个上限留给模型的明显少于 8GB,这也是为什么一个按纯算术「应该」装得下的 8B 模型,实际往往装不下。这是本站每一台 Mac 都受制于的同一种机制;只是在 8GB 上没有像 48GB 那样的余量可以挥霍。

bash
sysctl iogpu.wired_limit_mb   # 0 = default policy, not "no limit"

确认它真的跑在 GPU 上

统一内存下没有一个独立的显存数字可以盯着看,所以要直接问 Ollama。如果 `ollama ps` 在一个 3B 模型上显示的不是 100% GPU,说明有别的东西占着内存——先关掉开着硬件加速的浏览器标签页,再怀疑模型本身有问题。

bash
ollama ps
# NAME           SIZE     PROCESSOR    UNTIL
# llama3.2:3b    2.9 GB   100% GPU     4 minutes from now

在 8GB 上特别值得改的设置

一次只保留一个模型加载,不要并发请求——这两个设置默认本来就是这个方向,但在最紧张的这一档,值得明确设置,因为「第一个还没卸载完,第二个就开始加载」正是真正引发换页的原因。

bash
export OLLAMA_NUM_PARALLEL=1        # already the default
export OLLAMA_MAX_LOADED_MODELS=1
ollama run llama3.2:3b

出问题时

模型加载着的时候整机变得极慢:这是在换页,说明模型加上其他东西超出了实际的锁定上限——解决办法是换更小的模型,不是调设置,因为已经没有余量可以调了。`ollama ps` 在一个 3B 模型上显示有 CPU 占比:有别的东西占着内存;先看活动监视器,别急着怀疑模型对自己的体量来说太大了。8B 模型跑得很差:这在 8GB 上是预期的——3B 档位就是这里诚实的上限,不是这篇指南某个设置没调好。

常见问题

8GB 的 M1 或 M2 Mac 能跑 8B 模型吗?

即便能跑也很勉强。Llama 3.1 8B 在 Q4_K_M 下自身就要 5.6 GB,而 macOS 会为系统保留一部分 8GB 内存池,并限制单个进程能锁定的量——在最紧张的这一档,这个上限留下的余量很少。3B 级模型才是 8GB 上能稳定可用的现实上限。

这篇指南的数据对原版 M1 和 M2 一样适用吗?

容量数字适用——8GB 就是 8GB,这里的体积数字取自本站的 Mac M1 8G 条目。速度则不能照搬:苹果给 M2 基础版标的带宽是 100 GB/s,比 M1 高 50%,所以跑同一个模型,M2 的生成速度大约是 M1 的 1.5 倍。

怎么防止 Ollama 把 8GB 的 Mac 拖到换页?

一次只保留一个模型加载(`OLLAMA_MAX_LOADED_MODELS=1`),避免并发请求(`OLLAMA_NUM_PARALLEL=1`,本就是默认值),选 3B 级模型,而不是把 8B 硬塞进一个毫无余量的预算里。如果模型加载时整机变慢,那是在换页,解决办法是换更小的模型,不是调设置。

这篇指南用到了什么

格式
GGUF

接下来

看看 🍎 Mac M1 8G 还能跑哪些模型反向查询 —— 8GB、4096 上下文,按质量排序

本文涉及的模型

它真的跑起来了吗?

复制命令并不等于它能用,所以站内只在这里问一次。除了你的这个回答之外,不收集任何东西。

相关指南

部署指南仅供学习参考。每个模型均有独立许可协议 — 下载或部署前请阅读 Hugging Face 官方模型卡。