AI(人工智能)竞赛正在不断升级,它已经不仅仅停留在原来的用户数据层面,也不再只满足于软件服务的层面。随着去年 Amazon Echo 的大热以及 Google Home 的推出,AI 的竞争已经来到了硬件层面上。虽然苹果的高管曾表态不看好 Amazon Echo 这样的产品,然而,今年 HomePod 的推出,表明苹果正式加入了人工智能服务的竞争。
鉴于 HomePod 的正式面世要到年底,我们只能暂且搁下硬件层面不谈,从数据、软件服务的层面,来看看苹果的人工智能。
口音更自然的 Siri,也有更多新能力
Siri 正在变得不处不在。2016 年的 WWDC,苹果花了大篇幅来介绍 SiriKit,向部分领域的第三方开发者开放了能力,使得音视频通话、健身、消息服务、支付、搜索照片和视频、叫车类的 app 可以直接通过用户与 Siri 语音交互的形式,理解用户的需求,并提供服务。
今年,苹果没有停下脚步,SiriKit 的开放领域再一次升级。除了原有的几个领域外,SiriKit 还新增了下列开放能力:
- 清单:除了系统自带的备忘录,其它第三方清单或任务管理类的 app 也可以接入 SiriKit,实现用 Siri 创建任务与提醒事项、查看清单等;
- 二维码:你可以直接让 Siri 显示你的二维码,Siri 就可以将你的二维码直接展示到屏幕上,方便朋友扫描,添加你为好友;
- 支付:通过与 Siri 语音对话,来向你的朋友转账;
- 连接 CarPlay:通过与 CarPlay 联动,Siri 可以直接控制车内的温度,并切换电台;
除了 SiriKit 开放能力的升级,Siri 现在说话的口音,也更加自然了,苹果为 Siri 创建了更自然的语音合成方式。不过从 WWDC 现场演示的情况来看,这个口音自然感的提升,目前似乎只针对英语,中文的改善程度并不显著。
除了 SiriKit 之外,Siri 本身也有了两项新能力:翻译以及音乐相关的能力。
你只需要对 Siri 说「How do you say what are the most popular dishes in your restaurant in Chinese」,Siri 就会显示相应的中文翻译结果,并支持一键朗读。目前,Siri 仅支持将英语翻译为中文、西班牙语、法语、德语、意大利语等五国语言,之后会不断加入新语言的支持。
除了翻译之外,Siri 和 Apple Music 也有了更好的联动。当你对 Siri 说「放点歌」的时候,它会自动寻找 Apple Music 中你喜爱的音乐,或根据你的历史记录,向你推荐可能喜欢的歌曲。另外,为了与 HomePod 这个家庭音乐中心相配合,Siri 现在也可以根据歌曲的详情信息,做出一些复杂的回答,比如你可以直接问 Siri「这首歌的编曲是谁」、「这首歌是什么时候发行的」、「Justin Bieber 的最新专辑是什么」,Siri 也会告诉你答案。
苹果在 watchOS 4 中也全面集成了 Siri,使它成为了你的全天候助理。在新加入的 Siri 表盘中,Siri 会主动提供你接下来需要关注的事情,例如日程、待办事项、航班信息、交通信息等。
三个系统层面的智能联动
从去年开始,苹果就强调 Siri 不仅仅是一个有形的语音助手,它还是遍布系统各处的无形的智能引擎。它不再像 Google Now 或者 Google Assistant 一样,只有在你主动长按 Home 键时才出现,Siri 和人工智能已经遍布在系统各处,例如相册的人脸识别,文字输入的情景预测,Spotlight 搜索时的 Siri 建议。
苹果眼中的人工智能,显然不仅仅只是一个具体化的产品形态,而是遍布各处、互通互联的一种能力,让你在不经意间,发现这个系统真的懂你。去年 iOS 10 推出时,我们就在文章中介绍了大量这样的特性。例如,iOS 10 中的地图应用,你只需要复制一个地址,打开地图应用,它就会智能地提示你是否要搜索这个地址。
在 iOS 11 中,苹果继续拓展着这个思路,一个显而易见的例子,就是在设置中,将 Siri 设置与曾经深藏在「通用 - Spotlight 搜索」的设置,合并在了一级入口「Siri & Search」,原先 Spotlight 建议中的搜索建议和查询建议,直接成为了新的 Siri 建议。
除此之外,延续着互通互联的思路,iOS 11 还新增了三个系统层面的智能联动:
- Safari:根据你当前正在浏览的内容,Safari 会提供智能搜索建议。同时,如果你刚刚在网页了订了飞机票,或确认了日程,也会触发智能提醒,建议你添加相关的日程;
- QuickType:每次在输入文字的时候,iOS 11 会根据你过去一段时间内的浏览记录,找到相应的电影名称、地名等,方便你直接输入。在 WWDC 上演示了一个场景,你刚刚正在 Apple News 中浏览完冰岛相应的旅游地点,这时候切换到 iMessage 和好友聊天时,你只需要输入「Re」,QuickType 就会智能地提供输入建议「Reykjavik(冰岛的首都)」。
- Apple News:根据你的浏览记录,iOS 11 会学习你感兴趣的话题,并向你推荐相关的内容,不过,国内的用户依然无法使用 Apple News。
iOS 11 为开发者带来的 Core ML
在看完了面向消费者的变化,作为 WWDC,既然本身是面向开发者的,那不妨来简单了解一下,对于开发者而言,除了 SiriKit 的升级之外,苹果今年的重头戏之一,还有一个 Core ML。
让我尽可能用简单,且尽可能正确的语言来说明一下这件事情的意义。
科普:传统程序的白盒与机器学习的黑盒
在说 Core ML 之前,我们不妨来简单说一下到底什么是机器学习。
一段程序是有目标的,我们输入一个前提条件(入参),经过程序的设定(处理机),输出一个结果(出参)。然而,随着我们想解决的问题不同,不同的目标会影响程序是如何被设定的,正是在如何设定程序的这一步,将传统程序与机器学习区分开来。
例如,我们希望创建一个简单的计算正方形周长的程序,你只需要输入边长 a 这个前提条件,计算机很容易就可以输出周长是 4a。在这个处理机中,程序员清清楚楚地告诉计算机,对于任何输入的 a,你只需要把它乘上 4,就完成任务了。这时候处理机实际是一个「透明的」白盒,任何人都能轻易理解实现的细节。
然而,让我们换一个小目标:识别一张照片上有没有小猫。这个程序的输入非常明确,就是一张照片,同样,我们所希望输出的目标也非常明确,就是最后给出一个结果,要不是有猫,要不是没有。但是,这时候一名程序员,该如何编码程序的设定?或者说,你要写一段怎么样的程序,能让计算机明白什么是小猫?
这时候就需要机器学习发挥用途了。我们通过大量已经存在的数据,不断地标记出哪些照片上是有猫的,哪些照片是没有猫的,把这些数据大量地「喂」给计算机,通过一些算法,从中不断地提取其中的特征值,计算机最终会拟合出一个模型。这个模型,人类可能完全不明白里面的参数是如何挑选而又设定的,但这不重要,这时候的处理机,是一个黑盒,我们不关心中间发生了什么,只要我们训练出一个得当的模型,之后再让它判断未知的情况,它能够在很大概率上给出正确的结果,这个模型就成功了。
Core ML 如何帮助程序员更容易地让自己的 app 具备人工智能
你可能发现了,要实现机器学习,其实是分了两个阶段的,第一个阶段是训练并得到模型,第二个阶段则是在得到模型后,实际应用它。Core ML 解决的,其实只是后一个环节,尽管相比起模型的训练,第二个阶段,即模型应用的门槛要低不少,但它依然是意义重大的。
在 Core ML 存在之前,如果你想在自己开发的 app 上使用机器学习,你不仅仅需要自己训练出一套模型,还需要将得到的模型与你的 app 连通起来,这个过程有点像,你仅仅只是想过一座河,却需要先自己搭一座桥。
现在,有了 Core ML,你可以将自己训练得到的模型,借助苹果提供的转换工具,先转化成 Core ML 类型的模型文件,然后,Core ML 这座桥已经搭好了,你可以通过它,直接实现模型和 app 数据的互通。你的 app,可以直接把一张照片,通过 Core ML 为基础的 API,传递到机器学习的模型当中,然后模型来判断这张照片里有没有小猫,并将得到的结果告知你。
更深入细节一些,可以看看苹果官方文档中的结构图。这四层结构中,Core ML 层原先是不存在的,也就是我们前面说的,以前开发者想要使用一套训练好的模型,不得不自己搭这座桥梁。
最底层的 Accelerate 和 Metal,其实是苹果去年推出的接口,前者可以直接调用 CPU,后者则直接调用 GPU。由于是相当底层的接口,可以最大程度地利用硬件资源来处理模型数据,苹果也在发布会上声称,其人脸识别能力,比 Google Pixel 上快六倍。
而 Core ML 往上一层则是应用层。Vision 主要负责图像相关的人工智能处理,如人脸识别、面部追踪、文字识别等等。这里面的很多接口,在原先的 iOS 中就已经存在,这次则被统一整合到了新框架当中。好处在于,开发者拥有了更大的自由度。在以前,开发者的 app 调用这些高级接口,对底层的实现细节的掌控力度非常小,几乎没有。现在,你可以通过自定义底层所使用的机器学习模型,从而实现更个性化的需求。
说回人话,可以举个例子。在以前,开发者只能调用苹果的接口,识别一张照片中是否有人脸存在。但是,如果我只想识别有没有男人的脸存在,或者,有没有黑人的脸存在,这时候怎么办?因为底层的人脸识别模型,是苹果定死的,你没有任何定制化的空间。现在,你完全可以在底层让 Core ML 调用一套你独家秘制的黑人脸识别模型,从而让上层的 Vision API 实现更个性化的功能。
目前,Core ML 支持各类主流的神经网络模型,包含深度神经网络、递归神经网络、卷积神经网络、向量机、线性模型等等。听着很厉害对不对,对。好的,我们开始下一个话题。
一条苹果特色的机器学习之路
在 Sundar Pichai 的带领下,Google 的战略已经彻底从 Mobile First 转型成为 AI First,从今年的 Google I/O 就可见一斑,整场发布会下来,几乎所有的产品线与更新,都是围绕 AI 展开的。
苹果这两年下来,也动作不少。不过相比起 Google 整天把 AI 挂在嘴边,苹果倒是喜欢用更务实的字眼 ML(机器学习)。从去年的 Differential Privacy 到今年的 Core ML,苹果已经走出了一条具有苹果特色的机器学习之路。
重视隐私的苹果,在机器学习领域面对的两大难题
这一切都源于苹果对隐私的重视。作为一家消费品公司,苹果的主要使命是卖硬件,而不像 Google 本质上是一个需要收集大量数据的广告公司。这给了苹果更多的底气,尽可能地不去触碰用户的数据,而在很长一段时间内,这样的策略,引发了两个非常实际的问题。
我们前面说到了,机器学习可以简单分为训练模型和应用模型两个阶段。而苹果的隐私策略,也相应地使之在这两个阶段面临两大难题。
第一个难题,是在模型训练阶段,在尽可能不收集用户数据的前提下,如何优化模型?既使像苹果在去年的 WWDC 上宣称的「我们不需要收集所有用户拍的照片,才知道山长什么样子」,也依然不能回避的事实是,在模型的调优方面,少不了大量的数据支撑。想从 95% 的水平提升到 99% 的水平,数据还是不可缺少的一环。
第二个难题,是在模型应用阶段,如何做到尽可能在设备本地完成处理?早期受限于设备的性能和功耗,特别是移动设备的电量问题,许多公司选择将数据上传至云端后,由云端服务器来进行运算,只将结果返回给终端设备。
总结下来,苹果的目标,就是在尽可能不收集用户数据的基础上,也能调校出足够好用的模型,同时尽可能只在消费者的设备本地运用模型进行计算处理。
隐私与人工智能,可以兼得
目前来看,苹果离这个目标越来越近了。
在相对简单的模型应用方面,苹果已经实现了高度的本地化计算。iOS 10 和 11 当中的一系列智能特性,例如相册中的人脸识别,都完全是在 iPhone 等设备本地完成的,这次的 Core ML,也给了第三方开发者以能力,在不上传用户资料的前提下,仅在设备本地就可以应用机器学习的模型。这一切,自然和移动设备的 CPU 与 GPU 计算能力的快速增长密不可分,在能耗可控的前提下,这些原本只能在服务器端的计算,已经可以在手机上就能完成。而另一方面,得益于苹果对软硬件的全面掌控,也使得苹果可以在更底层上,用 Accelerate 和 Metal 更全面地利用 CPU 和 GPU 的性能。
这次 Core ML 的推出,使得苹果从系统级到第三方开发者,都具备了仅在设备本地就可以进行模型处理的能力。那么下一个尚待解决的问题,就是模型的训练。前文提到的 Differential Privacy,使苹果已经可以做到抽样性地,以匿名的方式从用户手中回收一部分数据,这些数据可以不断改进训练苹果的模型,同时又确保无法从中定位到任何一个具体的用户。
目前,这样的能力尚没有开放给第三方开发者,但有理由相信,苹果最终将补齐这一块短板,使得开发者也可以通过一定的类似 Differential Privacy 的机制,在绝对保证用户隐私的基础上,获取能够改进机器学习模型的数据,以更好地训练并调优模型。
就像我曾说的,在隐私和人工智能面前,苹果认为鱼与熊掌是可以兼得的。这种「贪心」,大概就是苹果特色的机器学习之路。
JailbreakHum 对本文有诸多贡献