Highlight
Create ML 是 Apple 的端侧机器学习训练工具,分为 App(点击式训练)、Framework(代码化训练)和底层 Components(可组合的模型构建块)三个层次。今年的更新覆盖了这三个层次。
核心内容
训练一个图像检测模型,部署后发现同一个咖啡杯被识别两次——一次标注在咖啡液面上,一次标注在杯体上。这种”重复检测”问题根因不在模型,而在标注数据本身。但过去在 Create ML App 里,你没有办法逐条检查标注是否符合预期。今年新增的 Explore 功能解决了这个问题:点击数据源,选择某个类标签,就能逐图看到标注框的位置和大小(03:12)。训练前先检查,避免”垃圾进、垃圾出”。
另一个重大更新是对象追踪(Object Tracking)。这是专门为 visionOS 设计的新模板,用于训练模型追踪真实物体的空间位置和朝向。训练数据只需要一个 3D 资产,Create ML 自动生成全部训练样本。演示场景中,一个真实地球仪被追踪后,App 在其周围叠加了月球轨道和地核可视化(04:14)。
在 Components 层面,今年新增了两个通用组件:时间序列分类和时间序列预测。分类回答”这段数据代表什么”(比如用手表加速度计识别手势),预测回答”接下来会发生什么”(比如预测销量)。两个组件都是通用型的,能处理加速度计、GPS、销售数据等各种时序数据。
详细内容
数据源 Explore 功能
Create ML App 中,选择左侧的数据源后会显示数据分布。新增的 Explore 选项让你钻入某个类标签,逐图可视化标注框。适用于图像分类、目标检测、手姿态分类等图像类模板(03:36)。
对象追踪模板
Create ML App 新增 Spatial 分类,其中的对象追踪模板用于训练追踪物体空间位置和朝向的模型。训练输入只需一个 3D 资产,App 自动生成训练所需数据。完整工作流请参考专门的视频 “Explore object tracking for visionOS”(05:01)。
时间序列预测:从数据准备到训练
Session 以一个餐车销量预测 App 为例,完整演示了 Create ML Components 的使用流程。
数据预处理——将逐笔交易汇总为每日销量:
// 创建 DateFeatureExtractor,提取月份和星期几特征
let featureExtractor = DateFeatureExtractor(
featureComponents: [.month, .weekday]
)
// 组合 ColumnSelector 和 featureExtractor 为 pipeline
let pipeline = PipelineComposer()
.compose(ColumnSelector("date"), featureExtractor)
.append(ColumnConcatenator())
// 用 pipeline 拟合 DataFrame,得到预处理器
let preprocessor = pipeline.fit(dataFrame)
// 提取特征列和目标列为 MLShapedArray
let features = preprocessor.transform(dataFrame)["features"].typedValues()
let targets = dataFrame["quantity"].typedValues()
关键点:
DateFeatureExtractor从日期列中提取.month、.weekday等特征组件,让模型学会周期性规律(09:08)ColumnSelector选取特定列,与 featureExtractor 组合成 pipelineColumnConcatenator将多列特征合并为一个MLShapedArray,作为模型输入pipeline.fit()返回的 preprocessor 可将原始 DataFrame 转换为模型需要的格式
模型训练与预测:
// 将数据分为训练集和验证集
let (training, validation) = data.split(ratio: 0.8)
// 创建时间序列预测器,配置历史窗口和预测窗口
let forecaster = TimeSeriesForecaster(
inputWindowSize: 15,
forecastWindowSize: 3
)
// 训练
let model = forecaster.fit(training)
// 预测未来 3 天的销量
let predictions = model.applied(input: recentData)
关键点:
inputWindowSize是模型参考的历史数据长度,forecastWindowSize是预测的未来步数(10:32)- 历史窗口应长于预测窗口——想预测 3 天,至少提供 15 天历史数据
fit()方法执行训练,applied()方法执行推理- 端侧训练的好处:每个餐车的销量模式不同,端侧训练让模型针对特定数据做个性化(08:26)
核心启发
- 做什么:训练图像模型前,先用 Explore 功能检查标注质量。为什么值得做:标注不一致是模型行为异常的头号原因,且在训练前几乎无法被发现。怎么开始:在 Create ML App 中打开数据源,点击 Explore,逐类标签检查标注框位置是否一致。
- 做什么:为 visionOS App 引入对象追踪,叠加 3D 内容。为什么值得做:3D 资产是唯一训练输入,门槛极低,却能实现空间计算中最沉浸的体验。怎么开始:准备一个目标物体的 3D 资产(USDZ 格式),在 Create ML App 的 Spatial 分类中选择对象追踪模板。
- 做什么:在 App 内端侧训练时间序列预测模型,做个性化预测。为什么值得做:时序数据(销量、传感器读数)因用户/场景而异,云端统一模型无法捕捉个体差异。怎么开始:用 Create ML Components 的
TimeSeriesForecaster,设定inputWindowSize和forecastWindowSize,在用户空闲时触发训练。 - 做什么:用
DateFeatureExtractor从日期列中提取周期性特征。为什么值得做:销售数据、传感器数据常有周周期或年周期,提取.weekday和.month让模型自动学会这些规律。怎么开始:在数据预处理 pipeline 中加入DateFeatureExtractor(featureComponents: [.month, .weekday])。
关联 Session
- Explore object tracking for visionOS — 对象追踪的完整工作流,从 Create ML 训练到 visionOS 部署
- Bring your machine learning and AI models to Apple silicon — 如何优化 ML 模型以充分利用 Apple 芯片算力
- Deploy machine learning and AI models on-device with Core ML — 端侧模型转换与推理的性能优化技巧
- Explore machine learning on Apple platforms — Apple ML 框架全景概览,理解 Create ML 在生态中的位置
评论
GitHub Issues · utterances