
LLM 真的能在 iPhone 上運行嗎?效能基準與實際表現
透過 llama.cpp 在 iPhone 上運行 LLM 的真實基準資料。從 iPhone 12 到 iPhone 16 Pro 各機型的 token 生成速度、記憶體使用量和溫度表現。
可以。現代 iPhone 以對話級速度運行 1-3B 參數的語言模型。A 系列晶片結合 llama.cpp 中的 Metal GPU 加速,根據模型和裝置的不同,可提供每秒 15-45 個 token。
這不是技術示範。這是可用於生產的效能,適用於真實的行動 AI 功能。
硬體規格
自 iPhone 12(A14,2020 年)以來的每一款 iPhone 都擁有足夠的運算能力和記憶體來運行小型語言模型。關鍵規格:
| iPhone | 晶片 | RAM | 神經網路引擎 | GPU 核心 |
|---|---|---|---|---|
| iPhone 12 | A14 | 4GB | 16 核 | 4 核 |
| iPhone 13 | A15 | 4GB | 16 核 | 4/5 核 |
| iPhone 14 | A15/A16 | 6GB | 16 核 | 5 核 |
| iPhone 14 Pro | A16 | 6GB | 16 核 | 5 核 |
| iPhone 15 | A16 | 6GB | 16 核 | 5 核 |
| iPhone 15 Pro | A17 Pro | 8GB | 16 核 | 6 核 |
| iPhone 16 | A18 | 8GB | 16 核 | 5 核 |
| iPhone 16 Pro | A18 Pro | 8GB | 16 核 | 6 核 |
關鍵數字是 RAM。模型必須能夠放入可用記憶體 中(總 RAM 減去 iOS 和其他程序使用的部分)。實際上:
- 4GB 裝置(iPhone 12/13):僅限 1B 模型,記憶體很緊張
- 6GB 裝置(iPhone 14/15):1B 很舒適,3B 在 Q4 量化下可行
- 8GB 裝置(iPhone 15 Pro/16):1B 和 3B 都很舒適,7B 在積極量化下可行
基準測試結果
所有基準測試使用 llama.cpp 搭配 Metal GPU 加速。模型為 GGUF 格式,使用 Q4_K_M 量化(除非另有說明)。測試在 2048 上下文長度下運行。每秒 token 數在生成階段測量(不包含提示詞處理)。
1B 參數模型(約 600MB GGUF Q4)
| 裝置 | Token/秒 | 首個 Token 時間 | 記憶體使用量 |
|---|---|---|---|
| iPhone 16 Pro (A18 Pro) | 40-50 | 80-120ms | ~800MB |
| iPhone 15 Pro (A17 Pro) | 35-45 | 100-150ms | ~800MB |
| iPhone 15 (A16) | 28-35 | 120-180ms | ~800MB |
| iPhone 14 (A15) | 25-32 | 130-200ms | ~800MB |
| iPhone 13 (A15) | 22-28 | 150-220ms | ~800MB |
| iPhone 12 (A14) | 18-24 | 180-250ms | ~800MB |
過去 4 年以上的每一款 iPhone 都能以足夠快的速度運行 1B 模型進行即 時聊天。即使 iPhone 12 的 18-24 tok/s 也比大多數人的閱讀速度更快。
3B 參數模型(約 1.7GB GGUF Q4)
| 裝置 | Token/秒 | 首個 Token 時間 | 記憶體使用量 |
|---|---|---|---|
| iPhone 16 Pro (A18 Pro) | 22-28 | 150-250ms | ~2.2GB |
| iPhone 15 Pro (A17 Pro) | 18-25 | 180-300ms | ~2.2GB |
| iPhone 15 (A16) | 14-18 | 250-400ms | ~2.2GB |
| iPhone 14 (A16) | 14-18 | 250-400ms | ~2.2GB |
| iPhone 13 (A15) | 10-14 | 350-500ms | ~2.2GB |
| iPhone 12 (A14) | 不建議 | N/A | 超出安全記憶體 |
3B 模型在 6GB 以上裝置上運行良好。iPhone 15 Pro 和 16 系列表現出色。iPhone 13 可用但處於較低端。iPhone 12 的 4GB RAM 對於生產環境中的 3B 模型太過緊張。
7B 參數模型(約 4GB GGUF Q4)
| 裝置 | Token/秒 | 首個 Token 時間 | 記憶體使用量 |
|---|---|---|---|
| iPhone 16 Pro (A18 Pro) | 8-12 | 500-800ms | ~5GB |
| iPhone 15 Pro (A17 Pro) | 6-10 | 600-1,000ms | ~5GB |
| 所有其他 iPhone | 不可行 | N/A | 超出可用記憶體 |
7B 模型僅在 8GB Pro 裝置上可行,且仍然推高記憶體限制。對行動應用程式來說,1-3B 是實用範圍。
這些數字對 UX 的意義
每秒 20 token 以上: 文字看起來流暢地串流。使用者感覺回應是「即時」的。適合聊天、自動完成和智慧建議。
10-20 tok/s: 文字在生成時可讀。有輕 微的打字速度感。大多數功能都可接受。
5-10 tok/s: 明顯緩慢。使用者可以看到單個字詞逐一出現。對摘要可接受(使用者預期等待),但不適合聊天。
低於 5 tok/s: 對互動功能來說太慢。使用者會放棄。
對於大多數行動 AI 功能,瞄準 1B 模型以獲得廣泛裝置支援,或瞄準 3B 模型支援 iPhone 14 以上機型,能在品質和效能之間取得最佳平衡。
溫度表現
持續推理會產生熱量。在 iPhone 上,熱節流可能在長時間使用(持續生成 5 分鐘以上)期間將效能降低 20-30%。
實際影響:
- 短互動(1-3 輪):無熱影響
- 中等工作階段(5-10 輪):後續輪次的效能略有下降
- 長時間生成(摘要長文件):第一分鐘後預計速度慢 20-30%
緩解措施:在生成之間加入短暫暫停。即使 2-3 秒的閒置時間也能讓晶片稍微冷卻。對於批次處理任務,分段處理而非一次持續生成。
記憶體壓力
iOS 會積極回收背景應用程式的記憶體。當你的模型載入時(800MB-2.2GB 在 RAM 中),iOS 可能會終止背景應用程式,在極端情況下,如果系統記憶體壓力過大,甚至終止你自己的應用程式。
最佳實踐:
- 僅在 AI 功能啟用時載入模型
- 使用者離開時釋放模型記憶體
- 處理
didReceiveMemoryWarning卸載模型 - 載入前檢查可用記憶體:
os_proc_available_memory()
對開發者的意義
基準資料支持一個清晰的策略:
-
以 1B 模型為目標以獲得廣泛相容性。 iPhone 12 以上的每一款機型都能良好運行。這涵蓋了 95% 以上的在用 iPhone。
-
在較新裝置上使用 3B 模型以提升品質敏感功能。 iPhone 14+(6GB RAM)可以舒適地處理 3B 模型。在運行時偵測可用 RAM 並提供適當的模型。
-
行動裝置跳過 7B。 裝置覆蓋範圍太窄,記憶體壓力太高。如果你需要 7B 品質,在你的領域資料上微調 3B 模型。經過微調的 3B 在特定任務上通常優於通用 7B。
-
微調你的領域。 經過微調的 1B 模型在領域特定任務上優於透過提示詞使用的 3B 模型,同時運行速度快 2 倍。像 Ertas 這樣的平台處理完整的流程:上傳訓練資料、使用 LoRA 微調、匯出 GGUF、部署到裝置端。
硬體已經就緒。推理引擎(llama.cpp 搭配 Metal)已經成熟。剩下的步驟就是將正確的模型放到裝置上。
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.
Keep reading

AI in iOS Apps: CoreML, Cloud APIs, and On-Device LLMs Compared
Three paths to AI in your iOS app. CoreML for Apple's ecosystem, cloud APIs for capability, and on-device LLMs via llama.cpp for cost and privacy. A practical comparison for Swift developers.

LLM Benchmarks on Android: Snapdragon, Tensor, and Exynos Compared
Real benchmark data for running LLMs on Android via llama.cpp. Token speeds across Snapdragon 8 Gen 2/3, Tensor G3/G4, Exynos 2400, and mid-range chipsets with practical deployment guidance.

llama.cpp on iOS: A Swift Integration Guide
Step-by-step guide to integrating llama.cpp into an iOS app. Project setup, Metal GPU acceleration, model loading, token streaming, and memory management for production deployment.