iPhone上也能运行AI模型,瞧瞧别人家的程序员是怎么用Core ML的
大数据文摘出品
编译:睡不着的iris、涂世文、云舟
第一台iPhone发布于2007年,而机器学习这一概念更是在第一台iPhone发布的十年前就已经出现。但这两者碰撞出火花,则是在最近几年才出现的事情。
6月4日,在加州圣何塞举行的2018苹果开发者大会(WWDC)上,克雷格·费得里吉(Craig Federighi)发布了适用于 iOS 设备的新版机器学习框架 Core ML 2。
2017年5月,除了iOS 11,苹果还发布了专为加速机器学习任务而设计的Core ML框架。在去年的iPhone X中,这家位于库比提诺市的公司推出了首个专为AI打造的A11 Bionic芯片。在2018苹果全球开发者大会(WWDC)上,苹果发布了新版本的Core ML 2,对Core ML进行了改进,同时,还发布了支持GPU的加速工具Create ML,用于在Mac电脑上进行原生人工智能模型的训练。
近一年的进步令人瞩目,但智能手机上部署的人工智能依旧处于起步阶段,还将面临诸多严峻的考验。为了更好地了解这一领域的当前进展,美国科技博客VentureBeat采访了几位正在使用Core ML做机器翻译、对象识别和风格迁移的iOS开发者。
Digital Masterpieces
Digital Masterpieces是德国波茨坦哈索·普拉特纳研究所(Hasso Plattner Institute)旗下的公司,其部分投资来自德国孵化器German Deep Tech,该公司起初并未考虑使用Core ML。首席技术官弗兰克施·莱格尔(Frank Schlegel)告诉VentureBeat,使用 Core ML “看起来更像是个巧合”。
Digital Masterpieces
https://www.digitalmasterpieces.com
他提到:“我们使用的技术源于研究所多年的积累,特别是风格迁移这一将画作、图片或者草图重新组合成其他图像的技术。现在,我们已经能在个人电脑上应用这类神经网络和人工智能技术了,因此,如果能够将它们移植到iPhone上,那实在是太棒了。”
这些想法最终形成了一款叫做BeCasso的应用程序,正如施莱格尔所说,这个程序实现了“将图片转换为艺术作品。”(它在今年WWDC上登台亮相。)
施莱格尔将整个移植过程描述为“狂野的西部。”他说,在Core ML推出后的几个月里,开发者工具还有很多需要完善的地方。“问题是如何在不影响准确性的情况下,实现足够的计算速度。”
在机器学习中,神经网络是一种借鉴于人类大脑生理学原理的计算架构,它由包含节点(nodes)的层(layers)组成。节点类似于神经元(neurons)——数据与称为权重(weights)的系数一起输入网络,权重通过抑制或放大数据为输入赋予重要性。深度神经网络由多个层和多个节点组成,一般来说(但并非总是)这个术语的意味着更高的准确性。
“对于风格迁移任务,模型可以训练至任意深度,” 施莱格尔说,“更深的模型可以执行更多的操作,但需要更强大的计算能力。”
更深的模型还会占用更多的存储空间,特别是RAM(内存)。实际上,风格迁移算法对内存的要求特别高,因为输入数据——图像——会被编码成二级制数据(1和0)。
“如果输入的图像过大,你的RAM很容易就会爆了”,他解释道。
Digital Masterpieces的解决方案是发布同一模型的两个不同版本——一个用于RAM较小、处理器较弱的设备(如iPhone 6S,7和7S),另一个用于较新的设备(如iPhone 8,8S和X)。这一策略确实奏效:在最新的iPad上完成一次风格迁移计算现在只需不到一秒钟时间。
“从各方面看来,我们对结果非常满意,”施莱格尔说。
Memrise
Memrise团队打造的一款同名的语言学习应用程序,专门提供基于抽认卡的课程计划,致力于使用人工智能技术助力语言学习。
Memrise
https://www.memrise.com/
“我们的一名iOS开发者曾在几天内创建了一个应用的原型”,Memrise的技术经理詹姆斯•索尔特说,“我们差不多就是从那时候开始做起的。”
模型的工作原理主要是通过识别对象来告诉用户如何用他们的语言表述所识别的对象。但这并非是Memrise体验的核心部分,因为它只能识别几百个小玩意儿(Memrise的工程师使用来自斯坦福大学的公共图像数据集ImageNet进行模型训练)。但是,这“引起了苹果公司的注意”,索尔特说道。
“因此,我们坚持做了下去。”索特尔使用开源的神经网络库Keras对来自谷歌的数百万张图像重新训练。很快模型就识别出了20件新东西,然后是160件新东西。
唯一的问题是,随着模型准确性的提高,模型也随之变大。
最终,Memrise团队在Create ML中找到了一个解决方案,不仅将模型训练时间从24小时减少至40分钟,而且模型大小也从90MB减少到3MB。
“这个用例较为简单,我们能够得到相对好的结果并不意外”, 索尔特说道。
Polarr
iOS版Polarr应用程序
CEO王博睿(Borui Wang)提到,相对于泼辣修图(Polarr)仅仅20人的团队规模来说,Core ML魅力在于能够在手机上运行“大而复杂”的算法。
但是一切未必都是美好的。在iOS生态系统中工作需要“大量妥协”,王说,主要原因是iPhone的RAM无法为复杂神经网络提供太多的空间,例如,iPhone8的RAM仅为3GB。
这并不代表Polarr团队没有尝试过更有野心的计划,但这些计划以失败告终。在实验室中,模型在运行的前5秒内便将处理器和图形芯片的使用率提升至100%,这将iOS设备的性能推向了极限,整个操作系统随后开始卡顿,屏幕和后板异常发烫,电池电量也很快耗尽。
“如果你只是想从名片中提取名字,这很容易,但我们希望机器学习对消费者更有实用价值”,他说:“我认为这还有很长的路要走。”
“当然,我们得到的也不都是坏消息”,王说:“我们的团队使用类似量化的压缩技术取得了不错的成果,模型的尺寸缩减了五倍,并能够以每秒二十帧的速度运行对象识别算法”。
王对未来持乐观态度。他预计,在未来的一到三年内,手机硬件将得到更进一步的改善,电量将成为智能手机的硬限制,而非处理器和内存。
“当芯片组变得越来越快时,能耗权衡就将成为可能”,他说:“但现在,我们距离这一技术的应用还有距离”。
Core ML需要什么:更多的预训练模型和基准测试工具
凭心而论,Core ML 2引入了很多改进。采用批量预测技术,Core ML 2的速度提高了30%.它还能支持16位浮点和低至1比特位的所有量级运算并附带了一个模型转换器,能够与Facebook的Caffe和Caffe2、Keras、scikit-learn、XGBoost、LibSVM和Google的TensorFlow Lite框架配合使用。
施莱格尔认为这已经足够了。“到目前为止,当前的框架能完全覆盖我们的用例”,他说。
对于这一观点,索尔特表示同意,并且认为Core ML有更大的发展空间。
“未来,基于自身庞大的数据,苹果没有理由不发布更多的预训练模型,”他在一封邮件中提到。“较小规模的开发人员即使具备专业知识,仍然没有办法使用大规模数据或者资源来进行长时间的训练。例如,如果存在一种方法不需要使用自有的数据集便可创建图像分类器,这一定会受到所有开发者的追捧——理想地说,开发者只需要声明所需要识别的对象,模型便可通过Apple的云服务自动生成。”
对于王博睿来说,他希望未来版本的Core ML可以提供改进的基准测试工具。
“我最关切的是理解GPU/CPU和热节流机制,”他在一封邮件中写道。“例如,你知道现在的PC游戏会怎样绘制FPS(Frames Per Second, 每秒传输帧数)以及游戏性能检测曲线吗?作为开发者,如果Core ML可以支持这类模型,将会是一个很大的突破。当你加载模型的时候,模型便会告诉你什么时候GPU开始节流,根据此生成一系列各种设备(iPhone 5,6,7,8,X)的性能报告。如果苹果公司不这么做,我肯定会有一些创业公司来做这样的事情。”