Mark Zuckerberg 真的親手把鋼鐵人的智慧助手打造出來了!說句話就能控制整個家!

這台 Jarvis「人工智慧電腦」能做的事情,其實已經遠超過市面上任何一個同類或類似產品:它支援文字和語音指令,能控制空調溫度高低、調整燈光明暗,也能從網上搜歌自動播放,還能烤麵包、給他家迷之畫風的「寵物」自動餵食。
評論
評論

本文來自 合作媒體 PingWest,作者光譜,INSIDE 授權轉載。

Facebook 創辦人 Mark Zuckerberg 是一個喜歡挑戰自己的人。2015 年,他立志每周都讀一本新書。而今年,他給自己的挑戰更加有技術含量:搭建一個人工智慧系統,就像《鋼鐵人》裡的「Jarvis」那樣,理解語音/文字指令,去控制家裡所有的電器⋯⋯

你猜怎麼樣?他還真完成了。今天 Mark Zuckerberg 專門發了一篇 部落格文章 ,詳細介紹 Jarvis 是怎樣搭建起來的。

這台 Jarvis「人工智慧電腦」能做的事情,其實已經遠超過市面上任何一個同類或類似產品:它支援文字和語音指令,能控制空調溫度高低、調整燈光明暗,也能從網上搜歌自動播放,還能烤麵包、給他家迷之畫風的「寵物」自動餵食。

1
▲ 就是這坨跟拖把一樣的東西⋯⋯

而且大家都知道,在 Mark Zuckerberg 時尚方面非常省事,一年到頭就是一件灰色的 T 恤——不知道的是他連「從衣櫃裡拿出 T 恤」的功夫都省了!因為他組裝了一門大炮,用 Jarvis 控制,每天早上接收命令朝他打出一件新的灰色 T 恤⋯⋯

2

最重要的是,Jarvis 可以在房子的任何一件屋子裡接受指令,還能明白像「打開空調」這樣一句指令,發出指令的人是誰,在哪間屋子,進而打開正確的空調!

這太酷了!怎麼做到的?

如下圖:

3

看起來很複雜對不對?其實,如果我們將 Jarvis 看成一台電腦,就很好理解了:

1)中間的藍色方塊是 Jarvis 伺服器,可以理解為處理器 + 硬體;

2)右邊的是作業界面,包括 Messenger 聊天機器人、iOS 語音控制應用等等,鍵盤、滑鼠標和顯示器;

3)下面的三塊是運行在伺服器裡的幾種技術,包括自然語言處理、語音識別、視覺和臉部識別以及強化學習 (reinforcement learning) 等,地位相當於電腦裡運行的作業系統;

4)左邊的一大堆東西則是 Jarvis 可控制的電器種類,等於電腦上跑的程式。

Mark Zuckerberg 在部落格裡介紹,在構建 Jarvis 的「作業系統」過程中,自己用到了 Python、Objective C 和 PHP 等語言。

具備了文字和語音識別、人臉識別的能力,Jarvis 現在能夠控制 Mark Zuckerberg 家的燈光系統 (Creston)、恆溫器(也即空調系統)、大門、連接串流媒體音樂服務 Spotify 的 Sonos 音箱、Nest 網路鏡頭(看他女兒 Max 用的)等等。Mark Zuckerberg 在部落格裡介紹,當自己為了 Jarvis 親手開始寫程式碼的時候,才發現用一個系統去控制這麼多系統有多難:每個系統的語言都不一樣,協議五花八門;有些電器已經聯網了,有些則除了物理開關之外,根本沒有控制的 interface⋯⋯

比方說,Mark Zuckerberg 需要用文字指令控制烤麵包機,首先需要一個能聯網的烤麵包機⋯⋯但這樣的烤麵包機根本找不到。最後,他不知道從哪兒翻出來一個上世紀 50 年代的麵包機,然後自己給它裝了一個能聯網的開關。

包括這個麵包機和前面提到的 T 恤大炮⋯⋯開發 Jarvis 對 Mark Zuckerberg 的硬體開發知識也帶來了不小的挑戰。

自然語言處理

Jarvis 的語言理解能力是分兩階段達成的。

首先,Mark Zuckerberg 要讓 Jarvis 能理解文字,比如「臥室」、「燈光」、「開」和「關」等常用的關鍵詞,以及能在聽到過去沒聽到過的詞,比如 Spotify 上的歌名或音樂人的時候,能夠根據語境去對應的服務/設備上搜尋並完成任務。

5

第二階段則是開發一個語音轉文字的系統。

那麼,Jarvis 的自然語言處理能力現在到了什麼水準呢?Mark Zuckerberg 介紹,它的上下文語境結合能力已經達到了自己可以接受的標準。比如,當他對 Jarvis 發出「打開我辦公室的空調」指令時,系統能夠正確地打開他的空調,而不是妻子的空調;再比如,Mark Zuckerberg 告訴 Jarvis「給我來點音樂」,結果 Sonos 開始播放的音樂太勁爆,他又告訴 Jarvis「這個感覺不對,給我點輕鬆的。」Jarvis 能理解語境函數是「放音樂」,變數是「音樂」,值是「輕」,進而正確完成任務。

Mark Zuckerberg 說,和特定的指令和問法相比,他跟妻子現在越來越常使用開放式的指令,「我知道的商業產品裡面,沒有能做到這一點的。這裡的機會很大。」他寫道。

視覺和臉部識別

Mark Zuckerberg 為 Jarvis 開發的機器視覺功能,主要有這麼幾個任務:

首先,也是最重要的任務,是識別訪客。Mark Zuckerberg 在自家門口裝了幾個不同的鏡頭,從各個角度拍攝門口畫面。當訪客來到時,系統首先識別到門口有人便開啟識別程式,捕捉訪客的人臉細節,進而透過 Facebook 人臉資料庫識別訪客是誰。然後,Jarvis 會根據 Mark Zuckerberg 的當天行程和訪客列表確認這個人是否在列表上,確認後便會打開門,並告知 Mark Zuckerberg 客人已經來了。

6

視覺識別功能的另一個重要任務,是為 Jarvis 處理其他任務提供上下文語境。比如當 Mark Zuckerberg 說「調高音響的音量」,Jarvis 需要透過鏡頭觀察哪個房間裡有人——甚至更精確一些,Mark Zuckerberg 在哪個房間裡而不是正在睡覺的 Max 在哪個房間,然後完成任務。

互動界面

Mark Zuckerberg 自己用 iPhone,在家裡的每個房間都放了一台手機,上面都安裝了自己開發的 Jarvis 語音控制程式。這個程式隨時保持聆聽(就像 Google Now 和新版 Siri 一樣)這樣,他可以在每個房間裡都用語音隨時控制 Jarvis。

7

當說話不方便的時候, 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(Facebook 人工智能研究院)的 GitHub 頁面值得一看。

Facebook 的核心價值觀有一條就是快速行動 (move fast)。對於任何科技公司而言,使用內部開發工具快速開發都十分重要。在這點上,我很感謝我們的內部架構和工具團隊。」

接下來,Jarvis 會怎樣進化?

Mark Zuckerberg 說,儘管他的 2016 挑戰結束了,Jarvis 還有很多提升的空間。

Mark Zuckerberg 的下一個首要任務是開發 Jarvis 語音 Android 應用,讓他的家人能在更多房間裡發出語音指令和控制更多的電器。他還說,要讓 Jarvis 學著做飯,「估計比 T 恤大炮難的多。」

長期來看,Mark Zuckerberg 想提升 Jarvis 的學習能力,達到能夠自學的水平。

當然,Mark Zuckerberg 也在考慮透過什麼方式能讓 Jarvis 為更多人所用。簡單的開源肯定不行,因為現在的系統和程式碼和 Mark Zuckerberg 家的系統綁定的太深了。「如果我能開發一個抽象的控制層,也許我會把它開源的。當然,它會變成一個新產品也說不定。」Mark Zuckerberg 在部落格裡寫道。