ollama on mac - part 1 - 安裝與第一個本地模型

大部分人第一次聽到「在自己的 Mac 上跑 LLM」,直覺反應是:那不是要一張幾萬塊的顯示卡、還要會編譯一堆奇怪的 C++ 專案嗎? 現實是:在 Apple Silicon 的 Mac 上,你只要下載一個 .dmg、拖進 /Applications,再打一行 ollama run llama3.2,兩分鐘後就能跟一個本地模型對話。 沒有 API 金鑰、沒有帳單、沒有網路也能用,而且你的 prompt 永遠不會離開這台電腦。 這一系列會帶你從安裝一路走到 API 整合與工具呼叫;這篇 Part 1,我們先把地基打穩。


一、為什麼要在本機跑 LLM?

在動手安裝之前,先搞清楚一件事:為什麼不直接用 OpenAI、Claude 這類雲端 API 就好? 這決定了 Ollama 值不值得你花時間。

本地跑 LLM 的核心價值有五個:

  • 隱私(Privacy):你的 prompt、公司的程式碼、病歷、合約草稿,全部留在這台 Mac 上,不會經過任何第三方伺服器。對受法規管制的產業(醫療、金融、法務)這幾乎是唯一能用 LLM 的方式。
  • 離線(Offline):飛機上、咖啡廳的爛 Wi-Fi、公司內網隔離環境,只要模型已經下載好,完全不需要網路。
  • 零 API 費用(Zero cost):雲端 API 是按 token 計費,重度使用一個月幾百美金跑不掉。本地模型下載後,你想 call 幾百萬次都是免費的,只花電費。
  • 低延遲(Low latency):沒有網路來回(round-trip),第一個 token 通常在幾十毫秒內就出來,適合需要即時回饋的互動場景。
  • 可實驗(Experimentation):想試不同模型、改參數、自訂 system prompt、做 fine-tune、跑 RAG,本地環境讓你毫無顧忌地亂玩,不用擔心帳單爆炸。

當然,天下沒有白吃的午餐。本地跑 LLM 的取捨大致如下:

面向雲端 API(GPT-4、Claude)本地 Ollama
模型能力頂級(數千億參數)中小型(1B–70B),品質稍遜
隱私資料送到第三方完全在本機
費用按 token 付費,長期昂貴免費(僅硬體與電費)
延遲受網路影響穩定、低延遲
硬體門檻幾乎為零需要足夠 RAM
維運廠商負責自己管理

一句話結論:如果你要的是「宇宙最強、偶爾用一下」,雲端 API 更合適;如果你要的是「隱私、離線、大量實驗、不想被計費」,那 Ollama 就是為你設計的。而且兩者不衝突——很多人是本地開發原型、正式上線再接雲端,或反過來用本地模型處理敏感資料。

Ollama 本身是一個開源工具,把「下載模型、載入記憶體、提供推論服務」這件麻煩事包成一行指令。它底層用的是 llama.cpp,但你完全不需要知道這件事就能用。

一個實際的成本對照

具體感受一下差距。假設你在做一個內部工具,每天要處理 500 次請求、每次平均 1,500 tokens:

1雲端 API(以 GPT-4 級別粗估):
2  500 次/天 × 1,500 tokens × 30 天 ≈ 22.5M tokens/月
3  以每 1M tokens 約 $10 計 → 每月約 $200+,一年 $2,400+
4
5本地 Ollama(llama3.1:8b):
6  硬體:一台 16GB Mac(可能你本來就有)
7  API 費用:$0
8  電費:幾乎可忽略

當然,GPT-4 的品質更高;但對很多「不需要頂級智慧、只要夠用」的批次任務(分類、摘要、抽取、格式轉換),本地 8B 模型完全能勝任,而且一年省下的錢遠超過一台 Mac。這就是為什麼越來越多團隊把「能本地跑的就本地跑」當作預設策略。


二、系統需求與硬體

基本需求

  • 作業系統:macOS Sonoma(v14)或更新版本。
  • 晶片:
    • Apple Silicon(M1/M2/M3/M4 系列):CPU + GPU 都能參與運算,透過 Metal 做 GPU 加速,這是最推薦的選擇。
    • Intel x86 Mac:只能用 CPU 推論,速度明顯較慢,小模型還堪用,大模型會很吃力。
  • 記憶體(RAM):這是最關鍵的限制因素。本地 LLM 要把整個模型權重載入記憶體,模型多大就吃多少 RAM。

統一記憶體(Unified Memory)為什麼重要

Apple Silicon 最大的優勢是統一記憶體架構:CPU 和 GPU 共用同一塊記憶體,不像傳統 PC 那樣「系統 RAM」和「顯卡 VRAM」是分開的。

這代表什麼?在一台 32GB 的 M 系列 Mac 上,GPU 可以直接存取接近全部 32GB 的空間來放模型;而在 PC 上,你可能有 32GB RAM 但顯卡只有 8GB VRAM,大模型根本塞不進 GPU。這就是為什麼一台看似普通的 MacBook,跑 LLM 的能力往往勝過同價位的 Windows 筆電。

RAM 需求估算

粗略的心法:一個 Q4 量化(4-bit quantized) 的模型,大約需要:

1所需 RAM ≈ (參數量 B) × 0.6~0.75 GB + 系統與 context 開銷
  • 8B 模型 ≈ 5–6 GB
  • 3B 模型 ≈ 2–3 GB
  • 70B 模型 ≈ 40–48 GB

注意這只是模型權重本身;實際跑起來還要留給 macOS 系統、其他 App、以及 context window(對話越長吃越多)。保守一點,永遠多留 4–8GB 給系統。

Mac RAM → 建議模型大小對照表

Mac 記憶體建議模型規模具體範例備註
8 GB≤ 3B(最多勉強 7B)llama3.2:1bllama3.2:3bqwen3:4b開太多其他 App 會卡;7B 要關掉瀏覽器
16 GB最高 8B–13Bllama3.1:8bmistral:7bgemma3:4b甜蜜點,日常最實用的配置
32 GB32B 級別qwen3:32bgemma3:27b品質明顯提升,速度尚可
64 GB+70Bllama3.1:70b接近雲端小模型的體驗

給初學者的建議:不管你有多少 RAM,第一次都先從 llama3.2:3b 這種小模型開始。跑得快、下載也快,先把流程走通,再慢慢往上升級。

怎麼看自己的 Mac 有多少記憶體

不確定自己的配置?點左上角蘋果圖示 →「關於這台 Mac」,就能看到晶片型號與記憶體大小。或用終端機:

1# 查看晶片與記憶體
2sysctl -n machdep.cpu.brand_string   # Intel Mac 才有意義
3sysctl hw.memsize                    # 記憶體(bytes)
4system_profiler SPHardwareDataType | grep -E "Chip|Memory"
1      Chip: Apple M2 Pro
2      Memory: 16 GB

看到 Apple M... 開頭代表你是 Apple Silicon,能享受 GPU 加速與統一記憶體;看到 Intel 字樣則只能走 CPU 推論,選模型時要更保守。


三、兩種安裝方式:GUI 與 Homebrew

Ollama 在 macOS 上有兩條安裝路線。我先講結論:大部分人用 GUI(.dmg)就對了;如果你是重度 CLI 使用者、想用 Homebrew 統一管理套件,才選 Homebrew。

方法 A:GUI 安裝(.dmg,推薦新手)

步驟:

  1. 打開瀏覽器到 https://ollama.com/download,下載 macOS 版的 Ollama.dmg
  2. 雙擊掛載 .dmg,把 Ollama.app 拖進 /Applications 資料夾。
  3. 第一次打開 Ollama.app,它會問你要不要安裝 CLI 指令的符號連結(symlink)到 /usr/local/bin/ollama按同意,這樣你才能在終端機用 ollama 指令。
  4. 安裝完成後,你會在螢幕右上角的 menu bar(選單列)看到一個 Ollama 的羊駝圖示。這代表背景 server 已經自動啟動了。
1安裝完成後,menu bar 會多一個羊駝圖示 🦙
2點它可以看到:
3  • Ollama is running
4  • View logs
5  • Quit Ollama

GUI 版的好處:server 會自動啟動、會自動提示更新、menu bar 隨時能看狀態,對不想碰終端機設定的人最友善。

方法 B:Homebrew 安裝(給 CLI 老手)

如果你已經在用 Homebrew 管理套件:

1# 安裝 CLI 版本(formula)
2brew install ollama

安裝完之後,Homebrew 的 formula 版本不會自動啟動 server,你要手動啟動:

1# 方式一:前景啟動(關掉終端機 server 就停)
2ollama serve
3
4# 方式二:用 brew services 讓它背景常駐、開機自動啟動
5brew services start ollama

如果你想要的是含 menu bar 圖示的 GUI App,Homebrew 也可以裝 cask:

1# 裝 GUI 版(等同下載 .dmg)
2brew install --cask ollama

GUI vs Homebrew 怎麼選

比較項GUI(.dmg / cask)Homebrew formula
Server 啟動開 App 自動啟動需手動 ollama servebrew services start
Menu bar 圖示無(cask 才有)
自動更新App 內建自動更新brew upgrade ollama
開機自啟可設定brew services 管理
適合對象新手、想要圖形化狀態CLI 重度使用者、要腳本化
版本管理手動 / 內建跟其他 brew 套件統一管理

我的建議:第一次玩,直接用 GUI .dmg。等你熟了、要寫自動化腳本、或想在 headless 環境(例如 SSH 進去的 Mac mini)跑,再改用 brew install ollama + ollama serve


四、驗證安裝

裝完別急著跑模型,先確認三件事都 OK:

1. CLI 版本

1ollama --version
1ollama version is 0.5.7

如果這行有版本號跑出來,代表 CLI symlink 裝好了。如果出現 command not found: ollama,先跳到第九節排查。

2. Menu bar App

看螢幕右上角有沒有羊駝圖示。有,代表 GUI server 在跑。(Homebrew formula 使用者這步跳過,改看下一步。)

3. Server 有沒有活著

Ollama 的核心是一個跑在 localhost:11434 的 HTTP server。用 curl 打它一下:

1curl http://localhost:11434
1Ollama is running

看到 Ollama is running 就代表 server 正常。如果連不上,可能是 server 沒啟動——GUI 使用者打開 App,Homebrew 使用者跑 ollama serve

這三步都過,才算真的裝好。 尤其第三步,後面 Part 3 講 REST API、Part 4 講應用整合,全部都靠這個 11434 port。


五、跑第一個模型:ollama run llama3.2

現在來跑第一個本地 LLM。一行指令搞定:

1ollama run llama3.2

第一次跑會先自動下載模型(之後就不用了)。你會看到下載進度:

 1pulling manifest
 2pulling dde5aa3fc5ff... 100% ▕████████████████▏ 2.0 GB
 3pulling 966de95ca8a6... 100% ▕████████████████▏ 1.4 KB
 4pulling fcc5a6bec9da... 100% ▕████████████████▏ 7.7 KB
 5pulling a70ff7e570d9... 100% ▕████████████████▏ 6.0 KB
 6pulling 56bb8bd477a5... 100% ▕████████████████▏  96 B
 7pulling 34bb5ab01051... 100% ▕████████████████▏ 561 B
 8verifying sha256 digest
 9writing manifest
10success
11>>> Send a message (/? for help)

llama3.2 預設是 3B 版本,大約 2GB。下載速度看你的網路,通常幾分鐘內完成。

下載完會直接進入互動對話模式,提示符號變成 >>>。試著問它問題:

 1>>> 用一句話解釋什麼是 Ollama
 2Ollama 是一個讓你在本機電腦上輕鬆下載、執行與管理大型語言模型(LLM)的
 3開源工具,不需要雲端 API 也能與 AI 對話。
 4
 5>>> 幫我寫一個 Python 函式,計算費氏數列第 n 項
 6def fibonacci(n):
 7    if n <= 1:
 8        return n
 9    a, b = 0, 1
10    for _ in range(2, n + 1):
11        a, b = b, a + b
12    return b

聊完要離開,輸入 /bye:

1>>> /bye

就這樣,你已經在自己的 Mac 上跑起一個完全本地的 LLM 了。沒有網路、沒有金鑰、沒有帳單。

如果你只想下載模型、暫時不進對話,用 pull:

1ollama pull llama3.2

六、互動模式教學

進入 >>> 對話後,除了直接打字聊天,還有一組斜線指令(slash commands)可以用。

查看說明

1>>> /?
2Available Commands:
3  /set            Set session variables
4  /show           Show model information
5  /load <model>   Load a session or model
6  /save <model>   Save your current session
7  /clear          Clear session context
8  /bye            Exit
9  /?, /help       Help for a command

調整參數:/set

想讓回答更有創意或更保守,調 temperature:

1>>> /set parameter temperature 0.7
2Set parameter 'temperature' to '0.7'

temperature 越高越發散(適合創意寫作),越低越穩定(適合事實問答)。

查看模型資訊:/show

1>>> /show info
2  Model
3    architecture        llama
4    parameters          3.2B
5    context length      131072
6    quantization        Q4_K_M
7
8>>> /show modelfile
9# 顯示這個模型的 Modelfile 定義(system prompt、參數、template 等)

/show modelfile 會印出模型的完整定義,包括 system prompt 和 template——這在 Part 3 自訂 Modelfile 時超級有用。

多行輸入

要貼一段程式碼或長文,用三個引號 """ 包起來:

1>>> """
2... 請幫我 review 這段程式碼:
3... def add(a, b):
4...     return a - b
5... """
6你的函式名稱是 add(加法),但實作卻是 a - b(減法),
7這是一個 bug,應該改成 return a + b。

常用互動指令小抄:

指令作用
/?/help顯示說明
/set parameter <name> <value>調整參數(如 temperature)
/show info顯示模型架構、參數量、context 長度
/show modelfile顯示完整 Modelfile 定義
/clear清除當前對話 context
/bye離開互動模式
"""..."""多行輸入

七、核心 CLI 指令巡禮

離開互動模式後,ollama 在終端機裡還有一整套管理指令。這是你日常會反覆用到的核心工具。

ollama pull — 只下載不執行

1ollama pull mistral:7b

適合你想預先下載好幾個模型,晚點再用。

ollama list(別名 ollama ls)— 看已下載的模型

1ollama list
1NAME              ID              SIZE      MODIFIED
2llama3.2:latest   a80c4f17acd5    2.0 GB    5 minutes ago
3mistral:7b        f974a74358d6    4.1 GB    2 hours ago
4qwen3:4b          bd8c8b3a5e3d    2.6 GB    1 day ago

ollama ps — 看正在記憶體裡的模型

1ollama ps
1NAME              ID              SIZE      PROCESSOR    UNTIL
2llama3.2:latest   a80c4f17acd5    3.5 GB    100% GPU     4 minutes from now

這個指令很重要:它告訴你哪些模型正佔用記憶體、用 CPU 還是 GPU、以及還會被留在記憶體多久(keep-alive)PROCESSOR 顯示 100% GPU 代表完全跑在 Apple Silicon 的 GPU 上。

ollama stop — 從記憶體卸載模型

1ollama stop llama3.2

模型跑完預設會在記憶體裡待一段時間(方便下次快速回應)。如果你記憶體吃緊、想立刻釋放,用 stop 手動卸載。

ollama rm — 刪除模型檔案

1ollama rm mistral:7b
1deleted 'mistral:7b'

這是從硬碟刪掉模型檔案(不只是卸載記憶體),要重用得重新 pull

ollama show — 看模型詳細資訊

1ollama show llama3.2
 1  Model
 2    architecture        llama
 3    parameters          3.2B
 4    context length      131072
 5    quantization        Q4_K_M
 6
 7  Parameters
 8    temperature         0.6
 9    top_p               0.9
10
11  License
12    Llama 3.2 Community License

ollama cp — 複製模型(常用於自訂)

1ollama cp llama3.2 my-llama

把現有模型複製一份改名,方便你之後基於它改 Modelfile 做自訂版本(Part 3 詳談)。

CLI 指令總覽小抄

指令作用範例
ollama run <model>下載(若無)並進入對話ollama run llama3.2
ollama pull <model>只下載模型ollama pull mistral:7b
ollama list / ls列出已下載模型ollama list
ollama ps列出記憶體中運行的模型ollama ps
ollama stop <model>從記憶體卸載ollama stop llama3.2
ollama rm <model>刪除模型檔案ollama rm mistral:7b
ollama show <model>顯示模型資訊ollama show llama3.2
ollama cp <src> <dst>複製模型ollama cp llama3.2 my-llama
ollama serve手動啟動 serverollama serve
ollama --version顯示版本ollama --version

八、Ollama 在背後怎麼運作

理解底層架構,之後遇到問題才知道從哪查。Ollama 其實是**「client-server 架構」**:你打的 ollama 指令是 client,真正做事的是背景那個 server。

架構圖

 1┌──────────────────────────────────────────────────────────────┐
 2│                        你的 Mac                                │
 3│                                                                │
 4│   ┌───────────────┐         ┌───────────────────────────┐    │
 5│   │  ollama CLI   │         │   Menu bar App (GUI)      │    │
 6│   │  (你打的指令)  │         │   自動啟動 server          │    │
 7│   └───────┬───────┘         └────────────┬──────────────┘    │
 8│           │                              │                    │
 9│           │   HTTP 請求                  │ 啟動 / 監控         │
10│           ▼                              ▼                    │
11│   ┌────────────────────────────────────────────────────┐    │
12│   │        Ollama Server (localhost:11434)             │    │
13│   │  ┌──────────────┐   ┌───────────────────────────┐  │    │
14│   │  │  REST API    │   │   模型排程 / keep-alive    │  │    │
15│   │  │  /api/chat   │   │   記憶體載入 & 卸載         │  │    │
16│   │  │  /api/generate│  └───────────────────────────┘  │    │
17│   │  └──────┬───────┘                                   │    │
18│   └─────────┼──────────────────────────────────────────┘    │
19│             │ 載入權重                                        │
20│             ▼                                                 │
21│   ┌────────────────────────┐    ┌────────────────────────┐  │
22│   │  Model in RAM / GPU     │    │  模型檔案(硬碟)        │  │
23│   │  (統一記憶體, Metal)     │◀───│  ~/.ollama/models      │  │
24│   └────────────────────────┘    └────────────────────────┘  │
25│                                                              │
26└──────────────────────────────────────────────────────────────┘

運作流程

  1. Server 啟動:GUI App 開啟時自動啟動 server;Homebrew 使用者用 ollama serve 手動啟動。Server 監聽 port 11434
  2. 模型儲存:所有下載的模型放在 ~/.ollama/models。這裡會隨你 pull 越多模型越大,要注意硬碟空間。
  3. 記憶體載入:當你 ollama run 或透過 API 呼叫某模型,server 把模型權重從硬碟載入記憶體(Apple Silicon 上會直接放到統一記憶體讓 GPU 用)。第一次載入會慢一點(冷啟動),之後就快。
  4. keep-alive 概念:模型跑完不會馬上從記憶體踢掉,預設會保留一段時間(這就是 ollama psUNTIL 欄位的意思)。這樣你連續問問題時不用每次重新載入。想立刻釋放就用 ollama stop。(keep-alive 的細部調整放到 Part 3 講。)

日誌(Logs)在哪

出問題時,日誌是第一手線索:

1# GUI App 日誌
2~/.ollama/logs/app.log
3
4# Server 日誌
5~/.ollama/logs/server.log

關鍵心智模型:記住 CLI 只是個「遙控器」,真正跑模型的是那個 localhost:11434 的 server。所以任何整合(Python、LangChain、Open WebUI)本質上都是在對這個 port 發 HTTP 請求。這條主線會貫穿整個系列。


九、常見安裝與執行問題排查

第一次裝難免踩坑。這裡整理最常見的問題與解法。

症狀可能原因解法
command not found: ollamaCLI symlink 沒裝,或不在 PATH開 Ollama.app 讓它裝 symlink;或確認 /usr/local/bin 在 PATH。Homebrew 使用者跑 brew link ollama
curl localhost:11434 連不上server 沒啟動GUI:開 App;Homebrew:ollama servebrew services start ollama
Error: listen tcp 127.0.0.1:11434: bind: address already in useport 11434 被別的程序占用lsof -i :11434 找出占用者;關掉舊的 server,或設 OLLAMA_HOST 換 port
模型跑到一半當掉 / 系統變超慢記憶體不足(模型太大)換小一點的模型(如 3B);ollama stop 卸載其他模型;關掉吃 RAM 的 App
模型下載很慢 / 中途斷線網路問題Ollama 支援斷點續傳,重跑 ollama pull 會接續下載;換更穩的網路
回應非常慢(每秒幾個字)跑在 CPU 而非 GPU,或模型過大ollama psPROCESSOR 欄;Intel Mac 只能用 CPU;換更小模型
硬碟空間不足模型檔案累積在 ~/.ollama/modelsollama list 看佔用;ollama rm 刪不用的;或用 OLLAMA_MODELS 搬到外接硬碟

幾個實用排查指令

 1# 看誰占用了 11434 port
 2lsof -i :11434
 3
 4# 即時追蹤 server 日誌
 5tail -f ~/.ollama/logs/server.log
 6
 7# 看目前記憶體用量與運行模型
 8ollama ps
 9
10# 看已下載模型佔用多少空間
11ollama list

環境變數預告:兩個之後常用的環境變數——OLLAMA_MODELS(改模型儲存位置,例如搬到外接 SSD)和 OLLAMA_HOST(改綁定的位址與 port)。詳細用法留到 Part 3 講 API 與設定時再深入。

更新與移除

1# 更新:GUI 版會自動提示更新,或重新下載 .dmg
2# Homebrew 版:
3brew upgrade ollama

要完整移除 Ollama,刪掉這三處:

11. /Applications/Ollama.app          ← App 本體
22. /usr/local/bin/ollama             ← CLI symlink
33. ~/.ollama                         ← 模型、設定、日誌
4   (以及 ~/Library 底下的相關 cache)

十、小結與下一篇預告

到這裡,你應該已經完成:

  • 搞懂為什麼要本地跑 LLM:隱私、離線、零費用、低延遲、可實驗,以及它跟雲端 API 的取捨。
  • 確認硬體條件:macOS 14+、Apple Silicon 的統一記憶體優勢,並用 RAM 對照表選對模型大小。
  • 裝好 Ollama:GUI(.dmg)或 Homebrew,並通過 ollama --version、menu bar、curl localhost:11434 三重驗證。
  • 跑起第一個模型:ollama run llama3.2,學會互動模式的斜線指令。
  • 掌握核心 CLI:pull、list、ps、stop、rm、show、cp。
  • 理解底層架構:CLI ↔ localhost:11434 server ↔ 記憶體中的模型,以及 keep-alive 與日誌位置。
  • 會排查常見問題:port 占用、記憶體不足、command not found、下載慢。

現在你手上有一個能跑的本地 LLM 環境了。 但你可能會問:llama3.2 之外還有哪些模型?我的 Mac 該選 Llama、Qwen、Gemma 還是 Mistral?哪個適合寫程式、哪個適合中文、哪個適合 RAG?

這正是 Part 2 - 公開模型全覽與選型指南 要回答的。我們會走一遍 Ollama 的模型庫,依照用途、語言、大小,教你怎麼挑出最適合你硬體與任務的模型。

我們下一篇見。


系列導覽

參考連結

Yen

Yen

Yen