aihot  2017-05-14 20:07:31  智能家居 |   查看评论   
Facebook 创办人扎克伯格是一个喜欢挑战自己的人。2015 年,他立志每周都读一本新书。而今年,他给自己的挑战更加有技术含量:搭建一个人工智慧系统,就像《钢铁人》裡的「Jarvis」那样,理解语音/文字指令,去控制家裡所有的电器⋯⋯

你猜怎麼样?他还真完成了。今天扎克伯格专门发了一篇 部落格文章 ,详细介绍 Jarvis 是怎样搭建起来的。

这台 Jarvis「人工智慧电脑」能做的事情,其实已经远超过市面上任何一个同类或类似產品:它支援文字和语音指令,能控制空调温度高低、调整灯光明暗,也能从网上搜歌自动播放,还能烤麵包、给他家迷之画风的「宠物」自动喂食。

而且大家都知道,在扎克伯格时尚方面非常省事,一年到头就是一件灰色的 T 恤——不知道的是他连「从衣柜裡拿出 T 恤」的功夫都省了!因為他组装了一门大炮,用 Jarvis 控制,每天早上接收命令朝他打出一件新的灰色 T 恤⋯⋯

最重要的是,Jarvis 可以在房子的任何一件屋子裡接受指令,还能明白像「打开空调」这样一句指令,发出指令的人是谁,在哪间屋子,进而打开正确的空调!

这太酷了!怎麼做到的?

如下图:
扎克伯格亲手把钢铁人的智慧助手打造出来了
看起来很复杂对不对?其实,如果我们将 Jarvis 看成一台电脑,就很好理解了:

1)中间的蓝色方块是 Jarvis 伺服器,可以理解為处理器 + 硬体;

2)右边的是作业界面,包括 Messenger 聊天赢咖4、iOS 语音控制应用等等,键盘、滑鼠标和显示器;

3)下面的三块是运行在伺服器裡的几种技术,包括自然语言处理、语音识别、视觉和脸部识别以及强化学习 (reinforcement learning) 等,地位相当於电脑裡运行的作业系统;

4)左边的一大堆东西则是 Jarvis 可控制的电器种类,等於电脑上跑的程式。

扎克伯格在部落格裡介绍,在构建 Jarvis 的「作业系统」过程中,自己用到了 Python、Objective C 和 PHP 等语言。

具备了文字和语音识别、人脸识别的能力,Jarvis 现在能够控制 扎克伯格家的灯光系统 (Creston)、恆温器(也即空调系统)、大门、连接串流媒体音乐服务 Spotify 的 Sonos 音箱、Nest 网路镜头(看他女儿 Max 用的)等等。扎克伯格在部落格裡介绍,当自己為了 Jarvis 亲手开始写程式码的时候,才发现用一个系统去控制这麼多系统有多难:每个系统的语言都不一样,协议五花八门;有些电器已经联网了,有些则除了物理开关之外,根本没有控制的 interface⋯⋯

比方说,扎克伯格需要用文字指令控制烤麵包机,首先需要一个能联网的烤麵包机⋯⋯但这样的烤麵包机根本找不到。最后,他不知道从哪儿翻出来一个上世纪 50 年代的麵包机,然后自己给它装了一个能联网的开关。

包括这个麵包机和前面提到的 T 恤大炮⋯⋯开发 Jarvis 对扎克伯格的硬体开发知识也带来了不小的挑战。

自然语言处理

Jarvis 的语言理解能力是分两阶段达成的。

首先,扎克伯格要让 Jarvis 能理解文字,比如「卧室」、「灯光」、「开」和「关」等常用的关键词,以及能在听到过去没听到过的词,比如 Spotify 上的歌名或音乐人的时候,能够根据语境去对应的服务/设备上搜寻并完成任务。

第二阶段则是开发一个语音转文字的系统。

那麼,Jarvis 的自然语言处理能力现在到了什麼水準呢?扎克伯格介绍,它的上下文语境结合能力已经达到了自己可以接受的标準。比如,当他对 Jarvis 发出「打开我办公室的空调」指令时,系统能够正确地打开他的空调,而不是妻子的空调;再比如,扎克伯格告诉 Jarvis「给我来点音乐」,结果 Sonos 开始播放的音乐太劲爆,他又告诉 Jarvis「这个感觉不对,给我点轻鬆的。」Jarvis 能理解语境函数是「放音乐」,变数是「音乐」,值是「轻」,进而正确完成任务。

扎克伯格说,和特定的指令和问法相比,他跟妻子现在越来越常使用开放式的指令,「我知道的商业產品裡面,没有能做到这一点的。这裡的机会很大。」他写道。

视觉和脸部识别

扎克伯格為 Jarvis 开发的机器视觉功能,主要有这麼几个任务:

首先,也是最重要的任务,是识别访客。扎克伯格在自家门口装了几个不同的镜头,从各个角度拍摄门口画面。当访客来到时,系统首先识别到门口有人便开啟识别程式,捕捉访客的人脸细节,进而透过 Facebook 人脸资料库识别访客是谁。然后,Jarvis 会根据 扎克伯格的当天行程和访客列表确认这个人是否在列表上,确认后便会打开门,并告知 扎克伯格客人已经来了。

视觉识别功能的另一个重要任务,是為 Jarvis 处理其他任务提供上下文语境。比如当 扎克伯格说「调高音响的音量」,Jarvis 需要透过镜头观察哪个房间裡有人——甚至更精确一些,扎克伯格在哪个房间裡而不是正在睡觉的 Max 在哪个房间,然后完成任务。

互动界面

扎克伯格自己用 iPhone,在家裡的每个房间都放了一台手机,上面都安装了自己开发的 Jarvis 语音控制程式。这个程式随时保持聆听(就像 Google Now 和新版 Siri 一样)这样,他可以在每个房间裡都用语音随时控制 Jarvis。

当说话不方便的时候, Facebook Messenger 是最适合的文字对话控制界面。这主要是因為 Facebook 在今年推出了 Bot Framework,大大地方便了开发者在 Messenger 上开发聊天赢咖4。

Jarvis 聊天赢咖4会把每一条指令发送到后端的 Jarvis 伺服器。如果指令是语音,伺服器则会用语音识别功能翻译成文字然后处理。聊天赢咖4还承担了整个 Jarvis 通知系统的工作,比如当家裡没人有访客来到时,系统会拍下门口画面透过 Messenger 发送给 Mark Zuckerberg。

扎克伯格的开发感悟

完成了 Jarvis 1.0 的搭建工作之后,扎克伯格获得了很多人生感悟。他说,

「作為 Facebook 的 CEO,我几乎没什麼时间在内部环境提交程式码,但我一直没有停止写程式,主要都在 Jarvis 上。我知道自己今年会学到很多关於人工智慧的知识,但我没有意料的是,Jarvis 让我找回了在 Facebook 当工程师的感觉……」

对於语音的看法:

「不光是语音,几乎绝大部分的机器学习系统,现在的处境都是更多用於解决特定的问题(并不具备解决普遍问题的能力。)」

这和从业者对人工智慧的认知一样,和普罗大眾的认知恰好相反。其实,人类距离强人工智慧,或者 General AI 还很远。大部分人工智慧系统都是解决特定任务的。

关於 Messenger 聊天赢咖4,他认為:

「在 Messenger 上开发赢咖4比开发一个单独 App 容易太多了。它自动就帮你解决了很多问题,比如 iOS 和 Android 跨平台,文字和图片内容理解,可靠的通知,以及权限管理等等。」

更喜欢文字还是语音?这个答案很有趣:

「和一个系统说话,比和系统打字更容易提高感情的投入。」

简单来说,你会期待对方是「人」。

「我发现我发文字比自己想像的更频繁。原因很多,比如当你周围有人的时候发语音指令还是一件挺尷尬的事情。我也更愿意接受文字的回答,这样我可以选择什麼时候看。其实整个 Messenger 平台上也是一样,文字讯息数量的增速比语音讯息快得多。这让我產生了一种认知:未来的人工智慧系统不能只有语音控制,也要有一个单独的文字对话界面。」

关於整个系统:

「想要让这样一个系统工作起来,我们需要更多的联网设备。不仅如此,行业也需要通用的 API 和标準,让每一台设备都能和彼此沟通。」

关於 Facebook 的工程环境:

「我发现,我们自己给的 iOS 和语音识别工程师提供的工具链真是太强大了。

我用到了 Messenger Bot Framework,Facebook 自己开源的 Nuclide 开发包和 Buck build 系统让开发更快更容易,FastText 文本分类系统等等。如果你对人工智慧开发感兴趣,FAIR(Facebook 赢咖4研究院)的 GitHub 页面值得一看。

Facebook 的核心价值观有一条就是快速行动 (move fast)。对於任何科技公司而言,使用内部开发工具快速开发都十分重要。在这点上,我很感谢我们的内部架构和工具团队。」

接下来,Jarvis 会怎样进化?

扎克伯格说,儘管他的 2016 挑战结束了,Jarvis 还有很多提升的空间。
 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自扎克伯格亲手把钢铁人的智慧助手打造出来了

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]