Core ML 的利与弊,会不会又是苹果的一个响声雷?

  • 薛命灯

2017 年 6 月 29 日

话题:语言 & 开发架构

正当公有云在争夺机器学习霸主地位的时候,苹果却改变了游戏规则。随着 Core ML 的发布,苹果将机器学习带到了移动设备上。换句话说,机器学习现在已经不再只是贴在应用代码上的狗皮膏药。

风险投资公司 Adnreessen Horowitz 的 Benedict Evans 说,机器学习是一项基础技术,这项技术让一切变得可能。苹果的 Core ML 尽管没有三头六臂,但仍然代表着未来主流的机器学习技术。

运行在移动设备上的机器学习

机器学习需要依赖大量的训练数据,在你定义好预测模型之后,你需要提供足够的数据来训练模型。因此,机器学习几乎只能在云端完成。

苹果发布的 Core ML 将机器学习带到了移动设备上(如果传言属实,那么还未发布的 iPhone 8 可能会搭载 AI 专门芯片用于机器学习)。苹果说:

Core ML 为在设备上运行进行了专门的优化,最小化内存的使用和功耗。在设备上运行机器学习可以保护用户数据的隐私,而且在没有网络连接的时候仍然能够使用这些功能。

苹果让机器学习变得极其简单,根据开发者 Matthijs Holleman 所言,“你只要把 mlmodel 文件添加到项目里,Xcode 就会自动生成一个 Swift 或 Objective-C 包装类,可以轻松地使用训练过的模型”。

另一个开发者 Said Ozcan 说,Core ML 的响应相当快,“几乎不用花多少时间就能看到预测结果,实在让人感到很吃惊”。

Core ML 并不完美

InfoWorld 的 Serdar Yegulalp 说,Core ML 仍然存在一些不足:

Core ML 不支持模型再训练或联合学习。所以你需要手动去做这些事情,可能需要从用户那里收集数据,然后使用这些数据重新训练模型。

不支持联合学习让苹果感到很心塞,因为 Google 早就支持这一特性。Google 科学家 Brendan McMahan 和 Daniel Ramage 写道:

在训练数据不离开设备的情况下,机器学习能够共享预测模型,移除了对云端数据的依赖……你的设备加载当前的模型,然后通过设备上的数据来改进模型,将这些增量的变更作为一个小型的更新。只有这些小型的更新需要通过加密通道发送到云端,这些更新联合其他用户的更新来改进共享模型。而所有的数据仍然留在你的设备上。

换句话说,一大波移动设备代替了云端的服务器,从而带来了更大的可能性。更重要的是,这些共享模型对于设备来说是立即可用的,用户不需要等待更新过的模型从云端推送回来,极大地提升了用户体验。开发者 Matt Newton 说,“一套用于在设备上进行个人定制化的 API 简直就是杀手锏”。

不过,联合学习也并非完美,MacMahan 和 Ramage 也承认:

联合学习要求机器学习开发者使用新的工具并转变思维方式:因为通信方面的成本,模型的开发、训练和评估不能直接访问原始数据。

不过不管怎样,利总是大于弊的,因此研究人员有足够的理由去解决这些挑战。

Core ML 会不会又是苹果的一个响声雷?

从 iCloud 到苹果地图,再到 Siri,苹果总是比其他同行慢一个节拍,比如高度重视云服务和 AI 的 Google。Core ML 会不会也是如此?

Amazon Web Services 发布了面向开发者的机器学习服务,如 Rekognition、Polly 和 Lex,人们却抱怨它们的功能太有限。不过 AWS 的总经理 Swaminathan Sivasubramanian 说,这些服务的目标是“将机器学习带给每一位 AWS 开发者”,而不是要把复杂的机器学习变成他们肩上的重担。

苹果也正在开辟一条通向机器学习的通途。不过它并不完美,对于有些开发者来说无法达到他们远大的预期。不过它仍然能够帮助开发者在机器学习上崛起。

不过,苹果不忘了另外一件事情,尽管这对于苹果的文化来说不太可能:开源 Core ML,让开发者一起来把它塑造成符合他们需求的东西。Holleman 指出,“既然其他很多机器学习工具都是开源的,为什么不把 Core ML 也开源呢?”

或许除了苹果自己,没有人真正在意苹果是否在机器学习这条道上跑偏。Evans 说,“往深了看,很多机器学习技术正在被商业化,它们的 API 快速地进入到移动设备上……不可能只有一个 Google 或一个 Facebook 的云包揽所有的机器学习——这项技术应该是一切的基础。”

苹果的 Core ML 令人印象深刻,尽管不那么完美。它正在走向“机器学习即一切”的未来。


感谢陈思对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

语言 & 开发架构