加入收藏 | 设为首页 | 会员中心 | 我要投稿 鞍山站长网 (https://www.0412zz.cn/)- 智能营销、数据计算、数据可视化、负载均衡、研发安全!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

拯救生命的物联网技术

发布时间:2021-02-19 11:24:38 所属栏目:传媒 来源:互联网
导读:Xcode加密编译的模型mlmodelc不是原始的mlmodel文件。这个模型在用户设备上会永久加密。 当应用程序实例化模型时,Core ML才会自动对其解密。此解密版本不会在任何位置存储为文件,仅储存在内存中。 首先,用户需要一个加密密钥,而用户并不需要管理此密钥。

Xcode加密编译的模型mlmodelc不是原始的mlmodel文件。这个模型在用户设备上会永久加密。

当应用程序实例化模型时,Core ML才会自动对其解密。此解密版本不会在任何位置存储为文件,仅储存在内存中。

首先,用户需要一个加密密钥,而用户并不需要管理此密钥。Xcode的Core ML模型查看器中现在有一个「创建加密密钥」按钮。当用户单击此按钮时,Xcode会生成一个与Apple开发人员团队帐户关联的新加密密钥。

此过程将创建一个新的.mlmodelkey文件。该密钥存储在Apple的服务器上,但是用户还可以获得在Xcode中加密模型所需的本地副本,无需在应用程序中嵌入此加密密钥。

 

为了准备要部署的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部署,都可以加密。


 

新的层类型只能在高版本中被使用,这意味着系统必须是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上。


(编辑:鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读