
iOS应用中的AI:CoreML、云API和端侧LLM对比
iOS应用中AI的三条路径。CoreML用于Apple生态系统,云API用于能力拓展,llama.cpp端侧LLM用于成本和隐私。面向Swift开发者的实用比较。
作为iOS开发者,你有三条不同的路径为应用添加AI功能。每条路径使用不同的技术,有不同的成本特征,适合不同的任务。选错路径要么浪费金钱,要么浪费时间。
本指南从Swift开发者的视角对比这三种方法:每种能做什么,成本多少,何时使用。
路径1:CoreML
Apple的原生机器学习框架。CoreML使用Apple的Neural Engine、GPU和CPU直接在设备上运行模型。它深度集成到Apple生态系统中,并针对Apple芯片进行了优化。
CoreML能做什么
CoreML在Apple专门优化过的视觉和传统NLP任务上表现出色:
- 图像分类和物体检测,通过Vision框架
- 文本分类和情感分析,通过Natural Language框架
- 声音分类,通过SoundAnalysis框架
- 手部姿态、身体姿态和人脸检测
- 设备端翻译(有限的语言对)
Apple通过Create ML和Apple开发者文档提供预训练模型。你也可以使用coremltools从PyTorch或TensorFlow转换模型。
CoreML不能做什么
CoreML不支持运行大型语言模型进行文本生成、聊天或复杂推理。没有原生支持通过CoreML运行GPT风格的模型来产生对话响应。Apple的端侧语言功能仅限于特定的、狭窄的任务。
集成模式
import CoreML
import Vision
// 图像分类示例
let model = try VNCoreMLModel(for: MobileNetV2().model)
let request = VNCoreMLRequest(model: model) { request, error in
guard let results = request.results as? [VNClassificationObservation],
let topResult = results.first else { return }
print("\(topResult.identifier): \(topResult.confidence)")
}
let handler = VNImageRequestHandler(cgImage: image)
try handler.perform([request])
成本
零。CoreML推理在设备上本地运行,没有API调用,没有按请求的费用。
最适合
视觉任务(照片分类、条码扫描、人脸检测)、文本分类、声音分析。Apple提供优化模型的任务,或你可以用Create ML训练自定义分类器的任务。
路径2:云API
从iOS应用调用外部API(OpenAI、Anthropic、Google)。模型在提供商的服务器上运行。你的应用发送请求并接收响应。
云API能做什么
一切。GPT-4o、Claude 3.5 Sonnet和Gemini等前沿模型可以处理复杂推理、创意生成、多轮对话、代码生成以及需要广泛世界知识的任务。
集成模式
func chat(_ message: String) async throws -> String {
var request = URLRequest(url: URL(string: "https://api.openai.com/v1/chat/completions")!)
request.httpMethod = "POST"
request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let body: [String: Any] = [
"model": "gpt-4o-mini",
"messages": [["role": "user", "content": message]]
]
request.httpBody = try JSONSerialization.data(withJSONObject: body)
let (data, _) = try await URLSession.shared.data(for: request)
// 解析并返回响应
}
成本
按令牌计费。GPT-4o-mini每百万输入/输出令牌收费$0.15/$0.60。10K MAU每天3次交互,预计每月$300-$1,000+,取决于系统提示词和对话历史。
最适合
原型验证。需要前沿推理处理新输入的任务。非常低用量的功能。需要访问当前世界知识的功能。
iOS上的缺点
网络依赖(离线、地铁、飞行模式时失败)。延迟(每次响应500ms-3s)。隐私(用户数据发送到第三方服务器,必须在App Store隐私标签中披露)。成本随每个用户增长。
路径3:通过llama.cpp的端侧LLM
使用llama.cpp在iPhone上本地运行完整的语言模型。这让你获得GPT级别的能力(聊天、生成、分类、摘要),完全在设备端运行。
端侧LLM能做什么
任何小型语言模型能处理的文本输入/文本输出任务:对话AI、内容起草、分类、摘要、翻译、结构化数据提取和函数/工具调用。在你的领域数据上微调后,3B模型在领域 特定任务上达到94%准确率。
在iOS上如何工作
llama.cpp是一个C/C++库,运行GGUF模型文件。在iOS上,它通过Apple的Neural Engine自动使用Metal进行GPU加速。该库通过其C API或社区的Swift封装提供与Swift兼容的接口。
// 使用llama.cpp Swift绑定的概念模式
let model = try LlamaModel(path: modelPath, params: .default)
let context = try model.createContext(contextLength: 2048)
// 流式推理
for await token in context.generate(prompt: userMessage) {
await MainActor.run { responseText += token }
}
Apple芯片上的性能
| iPhone | 芯片 | 内存 | 1B模型(令牌/秒) | 3B模型(令牌/秒) |
|---|---|---|---|---|
| iPhone 12 | A14 | 4GB | 20-30 | 不推荐 |
| iPhone 13 | A15 | 4-6GB | 30-40 | 12-18 |
| iPhone 14 | A15/A16 | 6GB | 30-40 | 15-22 |
| iPhone 15 | A16/A17 | 6-8GB | 35-50 | 20-30 |
| iPhone 16 Pro | A18 Pro | 8GB | 45-60 | 25-35 |
超过每秒10个令牌就可以用于聊天。超过20则感觉很流畅。现代iPhone(A15及更新)可以轻松运行1-3B模型。
成本
一次性微调成本($5-50)。通过CDN分发模型(~$0.08/GB)。然后零推理成本。永久。
最适合
高频AI功能(聊天、搜索、分类)。隐私敏感数据。需要离线的功能。领域特定任务。任何需要AI成本随用户增长保持平稳的应用。
对比
| 因素 | CoreML | 云API | 端侧LLM |
|---|---|---|---|
| 文本生成/聊天 | 否 | 是 | 是 |
| 图像分类 | 是(优化) | 是 | 否(仅文本) |
| 离线支持 | 是 | 否 | 是 |
| 每次推理成本 | $0 | $0.0001-$0.01 | $0 |
| 搭建复杂度 | 低 | 低 | 中等 |
| 延迟 | 即时 | 500ms-3,000ms | 首令牌50-200ms |
| 隐私 | 设备端 | 第三方服务器 | 设备端 |
| 模型灵活性 | 仅Apple模型 | 任何供应商模型 | 任何GGUF模型 |
| 微调 | Create ML(有限) | 部分供应商支持 | 完整LoRA/QLoRA |
实际决策
使用CoreML的情况: 需要图像分类、物体检测、文本分类或声音分析。Apple的优化模型在iOS硬件上很难被超越。
使用云API的情况: 原型阶段、任务量 非常低,或真正需要3B模型无法匹配的前沿推理能力。
使用端侧LLM的情况: 需要文本生成、聊天、摘要、翻译或任何高频文本任务。成本、延迟、隐私和离线优势非常显著。在你的领域数据上微调的模型将在你的特定用例上超越通用云API提示。
许多应用组合使用多种方法。CoreML用于相机功能。端侧LLM用于聊天助手。云API作为偶尔复杂查询的后备。这种混合方法让你获得每种技术的最佳效果。
对于微调步骤,像Ertas这样的工具提供可视化流水线,帮你从训练数据到iOS部署就绪的GGUF文件。无需ML专业知识。模型通过llama.cpp和Metal加速在设备上运行,为任何现代iPhone提供生产级推理性能。
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

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.

How to Add AI to Your Mobile App: A Developer's Decision Guide
A comprehensive guide covering every approach to adding AI features to iOS and Android apps. Cloud APIs, on-device models, and hybrid architectures compared with real cost and performance data.

AI in Android Apps: ML Kit, Cloud APIs, and On-Device LLMs Compared
Three paths to AI in your Android app. Google ML Kit for common tasks, cloud APIs for full LLM capability, and on-device models via llama.cpp for cost and privacy. A practical comparison for Kotlin developers.