新智元2020苹果Core ML框架三大更新:更多层类型、模型加密、基于CloudKit模型部署

【新智元2020苹果Core ML框架三大更新:更多层类型、模型加密、基于CloudKit模型部署】
新智元2020苹果Core ML框架三大更新:更多层类型、模型加密、基于CloudKit模型部署
本文插图
新智元报道
移动端机器学习不再是2020年热门新事物 , 将应用程序智能化早已成为行业的标准做法 。
去年 , 苹果公司对Core ML进行了重大更新 。 今年的更新要简单得多:更多的层类型 , 对模型加密的更多支持 , 以及在CloudKit上托管模型更新能力 。
CoreML是一个Apple框架 , 用于将机器学习模型集成到应用程序中 。
新智元2020苹果Core ML框架三大更新:更多层类型、模型加密、基于CloudKit模型部署
本文插图
其优势是 , Core ML通过利用CPU , GPU和神经引擎来优化设备上的性能 , 同时最大程度地减少其内存占用空间和功耗 , 严格在用户设备上运行模型将消除对网络连接的任何需求 , 这有助于保持用户数据的私密性和应用程序的响应速度 。
Core ML 还是一些其他苹果框架和功能的基础 。 CoreML是视觉处理 , 自然语言 , speech转换音频文本 , 以及音频识别的核心模型 , Core ML 本身构建于低层面的原语之上 , 比如 Accelerate and BNNS 和 Metal Performance Shaders 。
新智元2020苹果Core ML框架三大更新:更多层类型、模型加密、基于CloudKit模型部署
本文插图
更多的层类型 , 为Core ML带来更多的功能
新智元2020苹果Core ML框架三大更新:更多层类型、模型加密、基于CloudKit模型部署
本文插图
新的层类型只能在高版本中被使用 , 这意味着系统必须是iOS 14和macOS 11.0 , 或者更高的版本 。 另一个有用的改进是针对InnerProductLayer、BatchedMatMulLayer的8位量化操作 。 在Core ML的早期版本中 , 用户可以量化权重 , 但是在加载模型时权重将被反量化为浮点数 。 利用新的 int8DynamicQuantize 功能 , 权重在加载时保持为8位整数值 , 并且实际计算也使用整数进行 。 使用INT8进行计算的潜力很大 , 就速度上而言可能比浮点运算快得多 。 但是研究人员指出 , 这是否仅对CPU而非GPU有利 , 因为GPU确实更喜欢浮点 。 也许即将发布的Neural Engine的更新将支持INT8操作 。 CPU上的Core ML现在也可以使用16位浮点运算而不是32 位浮点运算(在A11 Bionic及更高版本上) 。 16位浮点数现在是一流的Swift数据类型 。 通过CPU本身支持的16位浮点数 , Core ML的速度可以提高两倍以上! 在CloudKit上 , 可以实现托管模型更新这项新的Core ML功能可让用户独立于应用程序更新模型 。
现有应用程序无需发布应用程序更新 , 而只需下载mlmodel文件的新版本 。 这不是一个新的想法 , 一些第三方供应商都为此提供了SDK , 自己构建它也不难 。
使用Apple解决方案的优点是模型托管在Apple Cloud上 。

新智元2020苹果Core ML框架三大更新:更多层类型、模型加密、基于CloudKit模型部署
本文插图
用户的应用程序中可能有多个模型 , 模型集合可以将多个模型捆绑在一起 , 更新时应用程序便会立即更新所有模型 。 用户可以在CloudKit仪表板上创建这些集合 。 在应用程序中 , 用户还可以使用MLModelCollection下载和管理模型更新 。

新智元2020苹果Core ML框架三大更新:更多层类型、模型加密、基于CloudKit模型部署
本文插图
为了准备要部署的Core ML模型 , Xcode中有一个Create Model Archive按钮 。 这将写入一个.mlarchive文件 。 用户可以将此模型版本上传到CloudKit仪表板 , 然后将其放入模型集合中 。 (mlarchive实际上只是一个包含mlmodelc文件夹内容的zip文件 。 )另一个不错的功能是用户可以将不同的模型集合部署到不同的用户 。 比如 , iPhone上的摄像头与iPad上的摄像头不同 , 因此用户可能需要创建模型的两个版本 , 然后将一个发送给该应用程序的iPhone端 , 另一个发送给iPad端 。 用户可以为设备(iPhone / iPad /电视/手表) , 操作系统和版本 , 区域代码 , 语言代码和应用版本创建定位规则 。 新模型的版本部署不是立即进行的 。 应用程序需要先在某个时刻检测到新模型可用 , 并自动下载该模型 , 将其放置在应用程序的沙箱中 。 但是用户无法控制何时或如何发生这种情况 , Core ML可能会在不使用手机时在后台执行下载 。 因此 , 最好将使用内置模型作为后备选项来交付应用程序 , 比如可以同时处理iPhone和iPad的通用模型 。 模型加密 , 让专有技术不再被盗用以往 , 窃取用户的Core ML模型再将其粘贴到其他应用程序中 , 是一件非常容易的事情 。 从iOS 14 / macOS 11.0开始 , Core ML可以自动加密和解密模型 , 陌生人便不可以窥视用户的mlmodelc文件夹 。 不管用户有没有新的CloudKit部署 , 都可以加密 。


推荐阅读