
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.
Free plan with 30 credits/mo, no card required. Paid plans from $25/mo USD.
Keep reading

llama.cpp iOS 集成:Swift 开发指南
将 llama.cpp 集成到 iOS 应用的分步指南。项目设置、Metal GPU 加速、模型加载、token 流式输出和生产部署的内存管理。

如何为移动应用添加AI:开发者决策指南
涵盖为iOS和Android应用添加AI功能的所有方法的综合指南。云API、端侧模型和混合架构的真实成本与性能数据对比。

Android应用中的AI:ML Kit、云API和端侧LLM对比
Android应用中AI的三条路径。Google ML Kit用于常见任务,云API用于完整LLM能力,llama.cpp端侧模型用于成本和隐私。面向Kotlin开发者的实用比较。