Discover machine learning & AI frameworks on Apple platforms
Essentials|Machine Learning & AI 入门 1m

Apple 平台机器学习与 AI 框架全景

Discover machine learning & AI frameworks on Apple platforms

2025年6月9日

在 Apple 官方观看视频

一句话判断

这是 Apple ML/AI 生态的「总导览图」——从系统级智能到 Foundation Models 框架到 Core ML 到 MLX,帮你快速定位该用哪个工具解决什么问题。

这场 Session 讲了什么

Jaimin Upadhyay 按照「从高到低」的层级梳理了 Apple 平台的 ML/AI 能力:

第一层:Platform Intelligence(系统内置智能)

  • Writing Tools、Genmoji、Image Playground 已经深度集成到系统中。
  • 用标准 text views 就自动支持 Writing Tools,不需要额外代码。
  • Image Playground 框架提供 SwiftUI extension,几行代码拉起 imagePlaygroundSheet
  • iOS 18.4 引入 ImageCreator 类,可以编程方式生成图片。
  • Smart Reply API:给键盘提供上下文(UIMessageConversationContext / UIMailConversationContext),系统自动生成智能回复。

第二层:Foundation Models 框架(重磅新增)

  • 提供对设备端优化语言模型的编程访问。
  • 三行代码就能用:import -> 创建 session -> 发 prompt。
  • 支持 Guided Generation:给现有 Swift 类型加 @Generable 标记 + 自然语言描述,框架自动定制解码循环,不会产生结构性错误。
  • 支持 Tool Calling:让模型访问实时/个人数据(天气、日历),引用数据源,执行实际操作。
  • 完全在设备上运行,离线可用,无需 API key,零成本。
  • 模型知识有时间截止点,不如服务器端大模型全面——这是使用时的核心 trade-off。

第三层:领域专用 ML 框架

  • Vision:新增文档识别(不只是读文字行,而是识别文档结构)和镜头污渍检测。
  • Speech:新 SpeechAnalyzer API 替代旧的 SFSpeechRecognizer,特别擅长长音频和远场语音(会议、讲座)。
  • Natural LanguageTranslationSound Analysis 各有优化。
  • Create ML:可以在 app 或框架级别微调系统模型。

第四层:Core ML + 底层框架

  • Core ML 是部署自定义模型的首选。Xcode 新增模型架构可视化。
  • 支持 CPU/GPU/Neural Engine 自动调度。
  • 需要更细粒度控制时:MPS Graph + Metal(图形工作流集成)、BNNS Graph(CPU 实时信号处理)。
  • BNNS Graph 新增 Graph Builder,可以在 CPU 上构建预处理/后处理 pipeline。

第五层:MLX(前沿探索)

  • Apple ML 研究团队设计的开源数组计算框架。
  • 利用 Apple Silicon 统一内存架构——数组不绑定设备,操作可以并行在 CPU 和 GPU 上跑同一个 buffer。
  • 一行代码就能跑 Mistral 等大模型推理。
  • 支持一行代码微调 + 分布式训练扩展。
  • Python/Swift/C++/C 多语言支持,Hugging Face 社区有数百个模型。
  • PyTorch/JAX 用户可以用 Metal 后端,不用切换框架。

值得深挖的点

Foundation Models 框架的 @Generable 是最大亮点。传统做法是让 LLM 输出 JSON,然后解析。但 JSON 经常有格式错误(多了逗号、少了引号),你需要容错处理。@Generable 直接在解码层面保证结构正确——框架定制了语言模型的解码循环,在生成过程中就知道你的类型结构。这意味着:

  • 不需要 JSON schema
  • 不需要做后处理验证
  • 类型安全,编译期就能检查
  • 迭代速度极快(改 prompt 就能调整输出)

MLX 的统一内存模型是一个范式转变。传统 ML 框架(PyTorch on NVIDIA)需要显式管理数据在 CPU/GPU 之间的拷贝。MLX 的数组不绑定设备——同一个 buffer 上,CPU 做数据预处理,GPU 做模型推理,零拷贝。这对 Apple Silicon 的异构计算是天然适配。

工具选择的决策树

  • 需要系统内置 AI 功能(改写、图片生成、智能回复)?-> 直接用平台 API,最省事
  • 需要做摘要、提取、分类等「轻量 LLM」任务?-> Foundation Models 框架
  • 需要图像/语音/文档理解?-> Vision / Speech / NL 框架
  • 需要部署自定义 PyTorch 模型?-> Core ML
  • 需要跑前沿大模型或做研究?-> MLX

代码片段

// Foundation Models:三行代码用上设备端 LLM
import FoundationModels

let session = LanguageModelSession()
let response = try await session.send("总结这篇文章的三个要点")

// Guided Generation:结构化输出
@Generable
struct Itinerary {
    @Guide(description: "旅行目的地城市")
    let destination: String
    
    @Guide(description: "行程天数,3到7天之间", .range(3...7))
    let days: Int
    
    @Guide(description: "每日行程安排")
    let dailyPlans: [DayPlan]
}

let session = LanguageModelSession()
let itinerary = try await session.generate(
    Itinerary.self,
    from: "规划一个东京5日游"
)

// Smart Reply:捐赠上下文
let context = UIMessageConversationContext(messages: [
    .init(text: "周末有空吗?", isFromMe: false),
    .init(text: "有,怎么了?", isFromMe: true),
    .init(text: "一起爬山?", isFromMe: false)
])
textField.conversationContext = context

// Vision:文档识别
let request = RecognizeDocumentsRequest()
let results = try await request.perform(on: image)
for document in results.documents {
    print(document.structure) // 表格、段落、标题等结构
}

// SpeechAnalyzer:新的语音转文字
let analyzer = SpeechAnalyzer(locale: Locale.current)
let result = try await analyzer.analyze(audioFile)
print(result.text)

最佳实践

  1. 先用平台 API,不要重复造轮子:如果你的需求是「让用户改写文字」或「生成图片」,直接用 Writing Tools 和 Image Playground,不要自己调 LLM API。
  2. Foundation Models 适合「轻量、快速、私密」的任务:摘要、提取、分类、简单对话——这些是设备端模型的甜蜜点。不要指望它做复杂的多轮推理或知识密集型任务。
  3. @Generable@Guide 要写好:自然语言描述越精确,生成质量越高。加 .range.count 等约束来控制输出。
  4. Core ML 模型先在 Xcode 里预览性能:Xcode 可以显示各设备上的预测延迟、加载时间、各 op 的执行位置。上线前一定要看。
  5. MLX 做研究,Core ML 做部署:如果你在 MLX 上验证了模型效果,最终部署到 app 里还是要转成 Core ML 格式。
  6. 给 Foundation Models 加 tool calling 做 RAG:设备端模型知识有限,用 tool calling 让它访问你的 app 数据或网络资源,比把所有上下文塞进 prompt 高效得多。

还有什么值得关注

  • “Meet the Foundation Models framework” 和 “Explore prompt design and safety for on-device Foundation models” 两个 session 是必看的深度补充。
  • “Bring advanced speech-to-text to your app with SpeechAnalyzer” 详细介绍了新 Speech API。
  • “Reading documents using the Vision Framework” 覆盖文档识别和镜头污渍检测。
  • “Explore large language models on Apple silicon with MLX” 展示如何在本地跑 DeepSeek-R1。
  • “What’s new in BNNS Graph” 对做实时音频/信号处理的人很重要。
基础 机器学习