
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 舒适, Q4 量化下 3B 可行
- 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 tok/s 以上: 文本看起来平滑流式展示。用户感知响应为"即时"。适合聊天、自动补全和智能建议。
10-20 tok/s: 文本在生成时可读。略有打字速度的感觉。对大多数功能可以接受。
5-10 tok/s: 明显缓慢。用户可以看到单个词汇出现。摘要可以接受(用户预期要等待)但不适合聊天。
5 tok/s 以下: 对于交互式功能来说太慢。用户会放弃。
对于大多数移动 AI 功能,在广泛设备支持上选择 1B 模型,或在 iPhone 14+ 上选择 3B 模型,能给你质量和性能之间的最佳平衡。
热量表现
持续推理会产生热量。在 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 开始的每部 iPhone 都能良好运行。这覆盖了 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.