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 用於能力,裝置端 LLM 透過 llama.cpp 實現成本與隱私。為 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)
        // 解析並回傳回應
    }

    費用

    按 token 計價。GPT-4o-mini 每百萬輸入/輸出 token 收費 $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 Silicon 上的效能

    iPhone晶片RAM1B 模型 (tok/s)3B 模型 (tok/s)
    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 個 token 對聊天來說可用。超過 20 個則感覺流暢。現代 iPhone(A15 及更新)可輕鬆執行 1-3B 模型。

    費用

    一次性微調費用($5-50)。透過 CDN 分發模型(約 $0.08/GB)。然後每次推論成本為零。永久如此。

    最適用於

    高流量 AI 功能(聊天、搜尋、分類)。涉及隱私的資料。需要離線的功能。領域特定任務。任何需要 AI 費用在使用者成長時保持穩定的應用程式。

    比較

    因素CoreML雲端 API裝置端 LLM
    文字生成/聊天
    影像分類是(最佳化)否(僅文字)
    離線支援
    每次推論費用$0$0.0001-$0.01$0
    建置複雜度
    延遲即時500ms-3,000ms50-200ms 首個 token
    隱私裝置端第三方伺服器裝置端
    模型彈性僅 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