术语表 / 它怎样听你说话

Core ML

又称:CoreML、Apple Core ML

更新于

定义

Core ML是Apple的框架,用于在App内、在设备上运行机器学习模型。它使用CPU、GPU和神经网络引擎,进行预测时无需网络连接。

Core ML自2017年起就是Apple系统的一部分,最早出现在macOS 10.13和iOS 11中。App把一个模型和一些输入(例如音频、图像或文本)交给它,它返回模型的结果。运算在哪里进行,由Core ML决定。

你不需要安装或打开Core ML。它是macOS的一部分。你会在App的介绍或模型的文件名中看到这个名字,或者在某个下载说明其中包含Core ML权重时看到它。

作用

Apple的介绍是:Core ML为所有模型提供统一的表示形式,App用它进行预测,以及训练或微调模型,这一切都在用户的设备上完成。

关于性能,Apple说Core ML会利用CPU、GPU和神经网络引擎来优化设备端性能,同时尽量减少内存占用和功耗。神经网络引擎是Apple芯片中专为这类运算打造的部分,而Core ML是App使用它的常规途径。

为什么设备端运行很重要

Apple自己给出了理由:严格在用户设备上运行模型,就完全不需要网络连接,这有助于保护用户数据的隐私,并让App保持响应迅速。

对语音来说,这意味着音频不必离开Mac就能变成文字。某个App是否真的把音频留在Mac上,取决于这个App,但这个框架让这成为可能。

文件类型

Core ML模型有三种形式,扩展名会告诉你是哪一种。

  • `.mlmodel`:原始的模型定义文件。
  • `.mlpackage`:较新的包格式,把权重和程序分开存放。从Xcode 13开始支持。
  • `.mlmodelc`:编译后的模型,也就是App加载的形式。App或其下载内容中以这个后缀结尾的文件夹,就是一个可以直接运行的Core ML模型。

模型从哪里来

大多数模型是用其他工具训练,然后再转换的。Apple为此发布了Core ML Tools,用于把PyTorch和TensorFlow等训练库中的模型转换为Core ML格式。

同一套工具还可以在转换时通过量化或调色板化来压缩模型,让它更小,在神经网络引擎上通常也更快。

Core ML与MLX

Apple对两者的描述不同。Core ML用于把模型集成到App中。MLX是一个开源数组框架,用于在Apple芯片上试验、训练和微调生成式模型。Apple的文档说MLX在CPU和GPU上运行,而Core ML还可以使用神经网络引擎。

Apple的页面现在还会引导使用最新模型架构的开发者使用另一个框架:Core AI。Core ML仍然是在App中运行模型的长期常用方式。

大家常问的问题。

Core ML有什么用途?

在Apple设备的App内运行机器学习模型:识别语音、对图像分类、读取文字等任务,无需把数据发送到服务器。

Core ML需要联网吗?

不需要。Apple说,严格在设备上运行模型,就完全不需要网络连接。

Core ML会使用神经网络引擎吗?

会。Apple说Core ML会利用CPU、GPU和神经网络引擎。

什么是.mlmodelc文件?

编译后的Core ML模型,也就是App加载和运行的形式。

Core ML和MLX有什么区别?

Apple将Core ML描述为把模型集成到App中的方式,将MLX描述为在Apple芯片上试验和微调生成式模型的数组框架。Core ML可以使用神经网络引擎;MLX在CPU和GPU上运行。

搭载Intel处理器的Mac上有Core ML吗?

有。Core ML从10.13版起就是macOS的一部分。神经网络引擎只存在于Apple芯片中,所以在搭载Intel处理器的Mac上,它使用CPU和GPU。

相关术语

你的声音一直都更快。

免费试用7天,之后$19 USD买断。无需账户,无需订阅,不上传任何内容。

macOS 14或更高版本 · Apple芯片