Create ML — 是Apple的一个工具,用于无需编写代码即可训练机器学习模型,内置于Xcode中,也可作为macOS的独立应用程序使用。该工具允许使用图形界面创建、训练和测试Core ML模型:只需加载数据集,选择任务类型并开始训练。根据Apple Create ML Documentation(2025),该工具支持基于内置神经网络的迁移学习,自动选择超参数并将完成的模型导出为.mlpackage格式。
要点
Create ML — 是Apple机器学习生态系统的一个组件,在WWDC 2018上作为无需编写代码即可训练Core ML模型的工具推出。在Create ML之前,开发人员使用Python库(TensorFlow、PyTorch、scikit-learn),然后通过coremltools将模型转换为Core ML。Create ML抽象了整个流程,提供了可视化界面、用于迁移学习的内置神经网络以及自动导出到Core ML格式的功能。
Create ML的第一个版本(iOS 11/macOS 10.14)只支持基本任务:图像分类和文本分析。macOS 10.15版本增加了对象检测、声音分析和回归。Create ML 3(macOS 13,2022)引入了对推荐系统、表格数据自动算法选择以及改进的训练过程可视化的支持。Create ML 4(macOS 14,2024)增加了对动态模型、流式数据训练以及与Apple云服务集成以进行分布式训练的支持。
Create ML针对三类用户:希望为应用程序添加智能功能但没有ML经验的iOS开发人员;希望快速原型化ML功能的产品经理和设计师;在将模型迁移到生产基础设施之前需要快速验证假设的数据研究人员。对于具有非标准架构的复杂模型,Create ML不合适——在这种情况下,使用Python框架然后转换为Core ML。
Create ML提供七种任务类型,每种都有预配置的模板:图像分类(Image Classification)、对象检测(Object Detection)、文本分析(Text Classification和Word Tagger)、表格数据回归(Tabular Regression)、表格数据分类(Tabular Classification)、声音分析(Sound Classification)、推荐系统(Recommendation)。每个模板包含针对该任务类型优化的预设神经网络架构。
| 任务类型 | 输入数据 | 使用示例 |
|---|---|---|
| Image Classification | 带标签的图像 | 从照片判断狗的品种 |
| Object Detection | 带注释的图像 | 在照片中搜索人脸 |
| Text Classification | 带标签的文本 | 消息的垃圾邮件过滤器 |
| Tabular Regression | 表格数据(CSV) | 房地产价格预测 |
| Sound Classification | 带标签的音频文件 | 识别自然界声音 |
Image Classification — 是最流行的Create ML模板。训练模型只需提供按文件夹分类的图像集(文件夹名称=类别标签)。Create ML会自动应用数据增强(旋转、缩放、色彩偏移)以增加数据集的有效大小,并使用预训练的Vision FeaturePrint网络(修改版ResNet-50)进行特征提取。迁移学习训练的时间为2至15分钟,具体取决于数据集大小和Mac的性能。
Object Detection模板需要每个对象带有边界框(bounding boxes)的注释图像。Create ML使用针对Core ML适配的YOLOv5(You Only Look Once)架构,带有在COCO数据集上预训练的权重。最少每类30张注释图像,建议200张以上。Create ML支持导入PASCAL VOC、COCO JSON和Create ML JSON格式的注释。
工作流程Xcode中Create ML的工作流程包括三个阶段:数据准备、训练与验证、导出。在数据准备阶段,导入训练集和测试集。Create ML自动分割数据(默认80/20)并显示类别分布。在训练阶段,工具实时显示准确率和损失图表,以及各项指标:accuracy、precision、recall、F1-score。在验证阶段,可以直接在Create ML窗口中测试模型在新数据上的表现。
import CreateML
let data = try MLImageClassifierData.labeledDirectories(
at: URL(fileURLWithPath: "/path/to/training-data")
)
let model = try MLImageClassifier(
trainingData: data,
parameters: MLImageClassifier.Parameters(
featureExtractor: .scenePrint(revision: 1)
)
)
try model.write(
to: URL(fileURLWithPath: "/path/to/MyModel.mlpackage")
)
Xcode中Create ML的图形界面在选择类别模板文件后会显示在侧边编辑器中。界面包含以下标签页:Data(数据加载和查看)、Features(特征和参数选择)、Model(神经网络架构)、Training(训练图表和指标)、Evaluation(在保留数据上测试)、Preview(模型交互测试)。开发人员可以在训练过程中在标签页之间切换,无需停止训练。
迁移学习(Transfer Learning) — 是Create ML模板所基于的关键技术。Create ML不是从头开始训练神经网络(这需要数百万标记示例),而是使用预训练网络(FeaturePrint)作为特征提取器,只训练分类器的最后几层。这使得在每类10到50张图像的数据集上以2-5分钟的训练时间实现高精度(90-95%)成为可能。
Create ML使用多个预训练的FeaturePrint提取器:.scenePrint(基于ResNet-50,在Places365上训练)、.objectPrint(基于YOLOv5,在COCO上训练)、.textPrint(基于BERT,在维基百科上训练)。提取器的选择取决于任务类型和数据领域。例如,.scenePrint更适合室内和风景图像分类,而.objectPrint则更适合检测特定对象(汽车、人、动物)。
Create ML在训练过程中自动应用数据增强:水平翻转、最多20度旋转、色彩偏移、亮度和对比度变化。增强在每个epoch随机应用于每个图像,从而将数据集的有效大小提高10-20倍。这对于小数据集尤其重要,因为过拟合(overfitting)是主要问题。增强参数可以在Features标签页中调整。
除了可视化界面外,Create ML还提供Swift API用于编程式训练模型,从而可以自动化训练管道并将其集成到CI/CD流程中。Swift API包含类MLImageClassifier、MLObjectDetector、MLTextClassifier、MLWordTagger、MLTabularRegressor、MLSoundClassifier和MLRecommender。每个类都实现了MLModelTrainer协议,包含train()、evaluate()和write()方法。
import CreateML
let csvFile = try MLDataTable(
contentsOf: URL(fileURLWithPath: "data.csv")
)
let (trainingData, testData) = csvFile.randomSplit(by: 0.8)
let regressor = try MLTabularRegressor(
trainingData: trainingData,
targetColumn: "price",
parameters: MLTabularRegressor.Parameters(
algorithm: .randomForest
)
)
let evaluation = regressor.evaluation(on: testData)
print("RMSE: \(evaluation.rootMeanSquaredError)")
Create ML Swift API可以在Xcode的build phases脚本中运行,也可以在macOS runner上的GitLab/GitHub Actions中运行。这使得每当仓库中的训练数据集更新时,模型可以自动重新训练。例如,可以配置一个管道:将数据推送到仓库 → GitLab Runner运行Swift Create ML脚本 → 导出的.mlpackage模型提交回仓库 → 应用程序使用更新后的模型构建。
尽管使用方便,Create ML仍有一些局限性,在选择ML任务工具时需要考量。主要包括:只能在macOS上运行,对神经网络架构的控制有限,无法使用自定义层(custom layers),依赖内置的FeaturePrint提取器,并且不支持在多个GPU或集群上训练。
Create ML不适用于大数据集(超过100,000个样本)的生产训练。数据集的最大大小受Mac内存限制。对于大规模任务,Apple建议在服务器基础设施上使用Python框架(TensorFlow、PyTorch),然后通过coremltools转换为Core ML。Create ML是用于原型设计和小型项目的工具,而非企业级ML。
对于表格数据,Create ML仅支持三种算法:Random Forest、Gradient Boosting(XGBoost)和Linear Regression。不支持用于表格数据的神经网络(TabNet、FT-Transformer)、SVM、kNN以及scikit-learn中可用的集成方法。对于需要高精度的表格数据任务,Create ML往往逊色于经典ML库。
模型训练仅在macOS上可行,因为Create ML使用Metal Performance Shaders和macOS专属框架。这一限制使得在Linux服务器或云端GPU集群上训练成为不可能。对于使用云基础设施的团队,coremltools + Python仍然是唯一的选择。
让我们来看三个Create ML在商业应用中的实际场景:用户内容审核、个性化推荐和自动文档分类。这些场景展示了无需深度学习知识即可使用Create ML解决的典型任务。
照片分享应用可以使用Image Classification进行自动审核:在100-200张带有“允许”和“违规”标签的图像上训练模型,可以在无需审核员参与的情况下过滤85-95%的不当内容。Create ML允许随着新的违规示例的到来更新模型,在3-5分钟内重新训练。
借助Text Classification,Create ML可以教会应用程序自动将用户工单按类别分类:支付问题、技术故障、功能请求、投诉。训练时每类50-100个文本示例就足够了。使用基于BERT的内置Word Tagger,分类准确率可达90%。
Create ML中的MLRecommender允许基于用户行为构建推荐系统,无需手动编写协同过滤。模型在User → Item → Rating类型的数据上训练(例如,用户点赞了一篇文章)。Create ML根据数据量自动在协同过滤和基于内容的方法之间选择,并显示前N个推荐。
常见问题解答
Create ML — 是Apple的一个工具,用于无需编写代码即可训练机器学习模型,内置于Xcode中,也可作为macOS的独立应用程序使用。可以通过图形界面创建Core ML模型,支持图像分类、文本分析、对象检测等任务。
Create ML用于训练模型(创建.mlpackage),而Core ML用于在设备上执行训练的模型(推理)。Create ML仅在macOS上运行,并生成Core ML格式的模型。这是同一过程的不同阶段:首先在Create ML中进行训练,然后通过Core ML在应用程序中进行集成。
最少数据量取决于任务类型。对于带有迁移学习的图像分类,每类10-15张图像即可。对于对象检测,每类需要30张注释图像。对于文本分类,每类50-100个示例。建议每类100-200个示例以达到90%以上的准确率。
不能,Create ML只能在macOS上运行。它使用Metal Performance Shaders来加速GPU训练以及与Xcode的集成,这些在其他平台上不可用。如果您没有Mac,请使用Python(TensorFlow/PyTorch)进行训练,并使用coremltools将模型转换为.mlpackage。
是的,Create ML是Xcode的一部分,对Apple开发人员完全免费。使用它只需要在Mac上安装Xcode(从Mac App Store免费获取)。不需要任何额外的许可证或订阅——所有训练功能均可无限制使用。
总结
我们将开发一款交钥匙移动应用程序
IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。