Apple Core AI 集成#
Ultralytics 不支持 format=coreai 或直接导出为 Apple 的 .aimodel 格式。请使用受支持的 Core ML 集成进行 Apple 部署。
Core AI 是 Apple 用于在 Apple 芯片上直接运行神经网络的新框架。它引入了 .aimodel 模型格式、现代 Swift 推理 API、基于 PyTorch 的转换工具、预编译、模型专用化以及专用的调试和分析工具。
Apple 将 Core AI 描述为端侧 AI 执行的下一次演进,也是端侧 Apple Intelligence 的推理框架。它专为当前的神经网络架构设计,从紧凑的视觉模型到大型生成式模型均可支持,并能跨 CPU、GPU 和 Apple Neural Engine (ANE) 调度任务。
Core AI 是一个新的部署路径,而非 Core ML 的简单更名。这两个框架使用不同的模型格式、转换工具、运行时 API 和应用程序集成模式。
Core AI 与 Core ML 对比#
| 功能 | Core AI | Core ML |
|---|---|---|
| 模型制品 | .aimodel | .mlpackage 或 .mlmodel |
| Ultralytics 导出 | 不可用 | 随 format=coreml 提供 |
| Apple 运行时 API | AIModel、InferenceFunction 和 NDArray | MLModel,通常通过 VNCoreMLModel 和 VNCoreMLRequest |
| 转换工作流 | PyTorch torch.export 到 coreai-torch | 通过 coremltools 的 TorchScript 转换 |
| 主要关注点 | 现代神经网络和生成式 AI | 广泛的机器学习部署,包括神经网络和非神经网络模型 |
| 图像集成 | 应用程序准备张量或使用 Core AI 图像描述符和缓冲区 | 与 Vision 框架直接集成,用于图像缩放、方向调整和请求 |
| 硬件 | CPU、GPU 和 Apple Neural Engine | CPU、GPU 和 Apple Neural Engine |
| 模型准备 | 在安装或首次使用时进行特化,支持可选的预先编译 | Xcode 或端侧模型编译 |
| 自定义操作 | 自定义 Core AI lowering 和 Metal 内核 | Core ML 自定义层和受支持的 MIL 操作 |
| 部署可用性 | 新一代 Apple 操作系统;目前处于测试阶段 | 现有 Apple 操作系统广泛支持 |
| Ultralytics iOS 和 Flutter SDK | 尚不支持 | 完全支持 |
当应用程序需要广泛的设备覆盖、Vision 框架集成或决策树和表格流水线等模型类型时,Core ML 仍然是合适的选择。Apple 将继续支持 Core ML,并引导使用非神经网络模型类型的开发者使用该框架。
Core AI 格式的工作原理#
Core AI 的创作工作流从 PyTorch 模型开始:
PyTorch model
↓ torch.export
ExportedProgram
↓ coreai-torch
Core AI program
↓ optimize and save
.aimodel
↓ specialize or compile ahead of time
Apple silicon executableApple 的 coreai-torch 包通过将 PyTorch ATen 操作降低为 Core AI 操作来转换 torch.export.ExportedProgram。不受支持的操作可以通过自定义降低或自定义 Metal 内核来实现。
生成的 .aimodel 是一个非专用模型资产。当应用程序准备模型时,Core AI 会针对目标设备对其进行专用化。应用程序可以让此过程在首次使用时发生、更早请求专用化,或者发布预编译模型以减少初始加载时间。
在 Swift 中,应用程序使用 Core AI 框架加载资产、选择推理函数、提供类型化的 NDArray 输入并接收命名的输出。这与将 Core ML 模型包装在 Vision 请求中不同,因此采用 Core AI 需要专为 .aimodel 资产设计的应用程序运行时。
有关实现详细信息,请参阅 Apple 关于 AIModel、模型专用化和缓存以及预编译的文档。
未来的 Ultralytics 使用方式#
以下示例说明了预期的集成,在当前的 Ultralytics 版本中不可用。如果要今天在 Apple 上进行支持的导出,请使用 format=coreml。
在计划的集成发布后,预计 Python API 将使用专用的格式值将 YOLO26 模型导出到 .aimodel:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="coreai") # Planned: creates yolo26n.aimodel等效的计划 CLI 命令为:
yolo export model=yolo26n.pt format=coreai # Planned: not yet available最终的参数、支持的 YOLO 任务、精度选项和动态形状行为将在导出器实现并验证后记录在导出模式中。
在 iOS 27 或 macOS 27 上,应用程序随后将通过 Apple 的 Core AI Swift API 加载并运行导出的资产。下方的函数和张量名称仅为示意;受支持的 Ultralytics 输出协议将在导出器发布时公布:
import CoreAI
let modelURL = Bundle.main.url(forResource: "yolo26n", withExtension: "aimodel")!
let model = try await AIModel(contentsOf: modelURL)
guard let function = try model.loadFunction(named: "main") else {
throw AppError.missingInferenceFunction
}
let outputs = try await function.run(inputs: ["image": imageTensor])与当前的 Core ML and Vision workflow 不同,未来的 Core AI 路径需要在 Ultralytics iOS SDK 中定义图像预处理、NDArray 构建、模型元数据和输出解码。Apple 在 Core AI framework documentation 中提供了当前的 API 详情,并在 Core AI models repository 中提供了可运行的模型示例。
Core AI 的优势#
Core AI 为未来的 Ultralytics 部署提供了几项极具前景的优势:
- 现代 PyTorch 导出路径: 转换从
torch.export开始,保留比许多现有导出器使用的追踪工作流更具表现力的 PyTorch 图。 - 细粒度的运行时控制: 应用程序可以管理特化、已编译模型缓存、推理函数、内存和计算位置。
- 先进的模型支持: 状态化执行、动态形状、单个制品中包含多个函数以及自定义 Metal 内核,这些都是为现代视觉和生成式架构设计的。
- 专门的开发工具: Core AI 调试器可以检查图和张量值,并将其回溯到原始 Python 代码。Xcode 和 Instruments 提供运行时分析。
- 零拷贝机会: Core AI 提供了旨在减少摄像头、图形和推理工作负载之间数据拷贝的存储和缓冲区控制。
- Apple 芯片优化: 设备特化使 Apple 能够针对特定设备上的 CPU、GPU 和神经网络引擎优化模型。
- 灵活的压缩: Apple 的 Core AI 优化工具支持量化、调色板化和剪枝,包括低比特权重格式。
这些功能对于未来具有动态执行、大型多模态组件或无法清晰映射到现有 Core ML 操作的自定义操作的 YOLO 模型可能特别有用。
当前缺点与限制#
Core AI 目前并非生产级 Core ML 路径的替代品:
- 需要新的操作系统: 公共框架的目标是 iOS 27 和 macOS 27 版本,而 Core ML 支持更庞大的安装基数。
- 测试版软件: Apple 的 Core AI 框架及其 Python 工具链的部分内容尚处于初步阶段,可能会在稳定发布前发生变化。
- 更窄的导出环境:
coreai-torch目前需要 Python 3.11 或更新版本以及较新版本的 PyTorch,这比 Ultralytics 支持的 Python 和 PyTorch 范围要窄得多。 - 当前没有 Ultralytics 命令:
yolo export format=coreai未实现、未测试,也不在 Ultralytics 的兼容性保证范围内。 - 尚无 Ultralytics 应用程序运行时: 官方 YOLO iOS 应用和Flutter 插件目前通过
MLModel和 Vision 加载 Core ML 制品。 - 需要应用程序迁移:
.aimodel不能替代.mlpackage;模型加载、预处理、推理调用、元数据处理和输出解码都需要 Core AI 实现。 - 生产证据有限: 在受支持的 YOLO 任务和设备矩阵中,性能、功耗、首次运行特化时间、准确率和压缩效果仍需验证。
- 无既定的传统 NMS 流水线: Core ML 可以为较旧的 YOLO 检测模型封装 NMS 阶段。首个 Core AI 集成预计将专注于无 NMS 的 YOLO26 模型。
你应该使用哪种 Apple 格式?#
当你有以下需求时,请在今天使用 Core ML:
- 受支持的 Ultralytics 导出命令
- 跨当前及较旧的 Apple 操作系统部署
- 与 Ultralytics iOS 或 Flutter SDK 集成
- Vision 框架图像处理
- 经测试的 FP16 和 INT8 YOLO 部署
- 兼容传统检测模型的嵌入式 NMS
当你可以要求 iOS 27 或 macOS 27 且有以下需求时,请在未来评估 Core AI:
- 最新的 Apple 端侧神经网络运行时
- 显式的特化和缓存管理
- 先进的动态或状态化模型执行
- 自定义 Core AI 操作或 Metal 内核
- 详细的 Core AI 图调试和运行时分析
Core ML 和 Core AI 预计将在应用程序迁移期间共存。支持 Core AI 并不意味着立即消除对 Core ML 的需求,因为它们的部署目标和应用协议不同。
Ultralytics 路线图#
Ultralytics 正在评估专用的 coreai 导出目标。请关注链接的路线图和发行说明以了解计划和可用性;Core ML 仍然是受支持的 Apple 部署目标。
在 Core AI 成为受支持的导出格式之前,该集成需要:
- 跨检测、实例分割、语义分割、分类、姿态和定向边界框的导出与数值验证。
- 针对 PyTorch 和 Core ML 基准的 FP16 和量化准确率测试。
- 端侧延迟、内存、功耗和特化基准测试。
- Ultralytics iOS SDK 中的 Core AI 模型加载和预处理。
- Flutter 集成以及针对 iOS 27 以下设备的兼容性策略。
- 稳定的 Apple 框架和转换工具发布。
关注 Ultralytics 路线图和发行说明以了解可用性。在提供支持之前,生成 .aimodel 文件的命令或第三方补丁均为实验性质,不在受支持的 Ultralytics 导出矩阵之内。
更多资源#
- Apple Core AI 概述
- Core AI 框架文档
- Core AI PyTorch 扩展
- Core AI 优化
- Apple Core AI 模型仓库
- Ultralytics Core ML 集成
常见问题解答#
不会。Ultralytics 将 Apple 模型导出为 Core ML
.mlpackage文件,通过model.export(format="coreml", imgsz=640)(分类任务使用imgsz=224);.aimodel不是导出目标。短期内不会。Core AI 是 Apple 面向现代神经网络的较新途径,而 Core ML 仍将继续得到支持,并提供更广泛的操作系统覆盖、Vision 集成以及非神经网络模型的支持。
不能。它们包含不同的模型表示,并且由不同的框架加载。转换必须从源模型开始,并通过相应的 Apple 工具链进行。
最初的集成预计将与 Core ML 并存。未来是否会进行替换,取决于操作系统采用率、工具稳定性、性能表现,以及后续对 iOS 和 Flutter 的支持情况。