Back to blog
    iOS应用中的AI:CoreML、云API和端侧LLM对比
    iOSCoreMLSwiftcloud APIon-device AIllama.cppsegment:mobile-builder

    iOS应用中的AI:CoreML、云API和端侧LLM对比

    iOS应用中AI的三条路径。CoreML用于Apple生态系统,云API用于能力拓展,llama.cpp端侧LLM用于成本和隐私。面向Swift开发者的实用比较。

    EErtas Team·

    作为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 12A144GB20-30不推荐
    iPhone 13A154-6GB30-4012-18
    iPhone 14A15/A166GB30-4015-22
    iPhone 15A16/A176-8GB35-5020-30
    iPhone 16 ProA18 Pro8GB45-6025-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