MarkZuckerberg真的亲手把钢铁人的智慧助手打造出

发布时间:2020-06-07

MarkZuckerberg真的亲手把钢铁人的智慧助手打造出

Facebook 创办人 Mark Zuckerberg 是一个喜欢挑战自己的人。2015 年,他立志每周都读一本新书。而今年,他给自己的挑战更加有技术含量:搭建一个人工智慧系统,就像《钢铁人》里的「Jarvis」那样,理解语音/文字指令,去控制家里所有的电器⋯⋯

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

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

MarkZuckerberg真的亲手把钢铁人的智慧助手打造出
就是这坨跟拖把一样的东西⋯⋯

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

MarkZuckerberg真的亲手把钢铁人的智慧助手打造出

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

这太酷了!怎幺做到的?

如下图:

MarkZuckerberg真的亲手把钢铁人的智慧助手打造出

看起来很複杂对不对?其实,如果我们将 Jarvis 看成一台电脑,就很好理解了:

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

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

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

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

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

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

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

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

自然语言处理

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

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

MarkZuckerberg真的亲手把钢铁人的智慧助手打造出

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

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

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

视觉和脸部识别

Mark Zuckerberg 为 Jarvis 开发的机器视觉功能,主要有这幺几个任务:

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

MarkZuckerberg真的亲手把钢铁人的智慧助手打造出

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

互动界面

Mark Zuckerberg 自己用 iPhone,在家里的每个房间都放了一台手机,上面都安装了自己开发的 Jarvis 语音控制程式。这个程式随时保持聆听这样,他可以在每个房间里都用语音随时控制 Jarvis。

MarkZuckerberg真的亲手把钢铁人的智慧助手打造出

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

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

Mark Zuckerberg 的开发感悟

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

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

对于语音的看法:

「不光是语音,几乎绝大部分的机器学习系统,现在的处境都是更多用于解决特定的问题」

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

关于 Messenger 聊天机器人,他认为:

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

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

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

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

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

关于整个系统:

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

关于 Facebook 的工程环境:

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

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

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

接下来,Jarvis 会怎样进化?

Mark Zuckerberg 说,儘管他的 2016 挑战结束了,Jarvis 还有很多提升的空间。

Mark Zuckerberg 的下一个首要任务是开发 Jarvis 语音 Android 应用,让他的家人能在更多房间里发出语音指令和控制更多的电器。他还说,要让 Jarvis 学着做饭,「估计比 T 恤大炮难的多。」

长期来看,Mark Zuckerberg 想提升 Jarvis 的学习能力,达到能够自学的水平。

当然,Mark Zuckerberg 也在考虑透过什幺方式能让 Jarvis 为更多人所用。简单的开源肯定不行,因为现在的系统和程式码和 Mark Zuckerberg 家的系统绑定的太深了。「如果我能开发一个抽象的控制层,也许我会把它开源的。当然,它会变成一个新产品也说不定。」Mark Zuckerberg 在部落格里写道。

上一篇: 下一篇:

相关搜索