Essentials|Machine Learning & AI 入门 1m
Apple 平台机器学习与 AI 框架全景
Discover machine learning & AI frameworks on Apple platforms
2025年6月9日
一句话判断
这是 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:新
SpeechAnalyzerAPI 替代旧的SFSpeechRecognizer,特别擅长长音频和远场语音(会议、讲座)。 - Natural Language、Translation、Sound 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)
最佳实践
- 先用平台 API,不要重复造轮子:如果你的需求是「让用户改写文字」或「生成图片」,直接用 Writing Tools 和 Image Playground,不要自己调 LLM API。
- Foundation Models 适合「轻量、快速、私密」的任务:摘要、提取、分类、简单对话——这些是设备端模型的甜蜜点。不要指望它做复杂的多轮推理或知识密集型任务。
@Generable的@Guide要写好:自然语言描述越精确,生成质量越高。加.range、.count等约束来控制输出。- Core ML 模型先在 Xcode 里预览性能:Xcode 可以显示各设备上的预测延迟、加载时间、各 op 的执行位置。上线前一定要看。
- MLX 做研究,Core ML 做部署:如果你在 MLX 上验证了模型效果,最终部署到 app 里还是要转成 Core ML 格式。
- 给 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” 对做实时音频/信号处理的人很重要。
基础 机器学习