【為什麼我們挑選這篇文章】Facebook 創辦人 Mark Zuckerberg 每年會給自己一個挑戰,而 2016 年的挑戰就是做出一個像《鋼鐵人》中,那位「Jarvis」人工智慧管家一樣,能控制家裡電器的 AI。
他真的做出來了,今天就發了篇文章說明「Jarvis」是如何被設計出來,而根據 TechCrunch 報導,這個 AI 只花了 Zuckerberg 大約 100 小時左右就完成,他更表示如果 AI 能更完善連結家中各式設備,也許之後就會釋出這個 AI。(責任編輯:張瑋倫)
Facebook 創始人馬克·祖克柏是一個喜歡挑戰自己的人。2015 年,他立志每週都讀一本新書。而今年,他給自己的挑戰更加有技術含量:搭建一個人工智慧系統,就像《鋼鐵人》裡的「Jarvis」那樣,理解語音/文字指令,去控制家裡所有的電器……
你猜怎麼樣?他還真完成了。今天祖克柏專門發了一篇文章,詳細介紹 Jarvis 是怎樣搭建起來的。
這台 Jarvis「人工智慧電腦」能做的事情,其實已經遠超過市面上任何一個同類或類似產品:它支持文字和語音指令,能控制空調溫度高低、調整燈光明暗,也能從網路上搜尋歌曲自動播放,還能烤麵包、給他家迷之畫風的「野獸」自動餵食。
就是這坨跟墩布一樣的東西……
而且大家都知道,祖克柏在時尚方面非常省事兒,一年到頭就是一件灰色的T卹——不知道的是他連「從衣櫃裡拿出 T-shirt」的功夫都省了!因為他組裝了一門大砲,用 Jarvis 控制,每天早上接收命令朝他打出一件新的灰色 T-shirt……
最重要的是,Jarvis 可以在房子的任何一件屋子裡接受指令,還能明白像「打開空調」這樣一句指令,發出指令的人是誰,在哪間屋子,進而打開正確的空調!
這太酷了!怎麼做到的?
如下圖:
看起來很複雜對不對?其實,如果我們將 Jarvis 看成一台電腦,就很好理解了:
- 中間的藍色方塊是 Jarvis 服務器,可以理解為處理器+硬盤。
- 右邊的是操作界面,包括 Messenger 聊天機器人、iOS 語音控制應用等等,鍵盤、鼠標和顯示器。
- 下面的三塊是運行在服務器裡的幾種技術,包括自然語言處理、語音識別、視覺和臉部識別以及強化學習(reinforcement learning)等,地位相當於電腦裡運行的操作系統。
- 左邊的一大堆東西則是 Jarvis 可控制的電器種類,等於電腦上跑的程序。
祖克柏在文章裡介紹,在構建 Jarvis 的「操作系統」過程中,自己用到了 Python、Objective C 和 PHP 等語言。
具備了文字和語音識別、人臉識別的能力,Jarvis 現在能夠控制祖克柏家的燈光系統(Creston)、恆溫器(也即空調系統)、大門、連接流媒體音樂服務 Spotify 的Sonos 音箱、 Nest 網路攝影機(看他女兒麥克斯用的)等等。
祖克柏在文章裡介紹,當自己為了 Jarvis 親手開始寫代碼的時候,才發現用一個系統去控制這麼多系統有多難:每個系統的語言都不一樣,協議五花八門;有些電器已經聯網了,有些則除了物理開關之外,根本沒有控制的 interface……
比方說,祖克柏需要用文字指令控制烤麵包機,首先需要一個能聯網的烤麵包機……但這樣的烤麵包機根本找不到。最後,他不知道從哪兒翻出來一個上世紀 50 年代的麵包機,然後自己給它裝了一個能聯網的開關。
包括這個麵包機和前面提到的 T-shirt 大砲……開發 Jarvis 對祖克柏的硬體開發知識也帶來了不小的挑戰。
自然語言處理
Jarvis 的語言理解能力是分兩階段實現的。
首先,祖克柏要讓 Jarvis 能理解文字,比如「臥室」、「燈光」、「開」和「關」等常用的關鍵詞,以及能在聽到過去沒聽到過的詞,比如 Spotify 上的歌名或音樂人的時候,能夠根據語境去對應的服務/設備上搜索並完成任務。
第二階段則是開發一個語音轉文字的系統。
那麼,Jarvis 的自然語言處理能力現在到了什麼水平呢?祖克柏介紹,它的上下文語境結合能力已經達到了自己可以接受的標準。比如,當他對 Jarvis 發出「打開我辦公室的空調」指令時,系統能夠正確地打開他的空調,而不是妻子普利西拉的空調。
再比如,祖克柏告訴 Jarvis 「給我來點音樂,」結果 Sonos 開始播放的音樂太勁爆,他又告訴 Jarvis 「這個感覺不對,給我點輕鬆的。」Jarvis 能理解語境函數是「放音樂」,變量是「音樂」,值是「輕」,進而正確完成任務。
祖克柏說,和特定的指令和問法相比,他跟妻子現在越來越多地使用開放式的指令,「我知道的商業產品裡面,沒有能做到這一點的。這裡的機會很大。」他寫道。
視覺和臉部識別
祖克柏為 Jarvis 開發的機器視覺功能,主要有這麼幾個任務:
首先,也是最重要的任務,是識別訪客。祖克柏在自家門口裝了幾個不同的攝像頭,從各個角度拍攝門口畫面。當訪客來到時,系統首先識別到門口有人便啟動識別程序,捕捉訪客的人臉細節,進而通過 Facebook 人臉數據庫識別訪客是誰。
然後,Jarvis 會根據祖克柏的日程和訪客列表確認這個人是否在列表上,確認後便會打開門,並告知祖克柏客人已經來了。
視覺識別功能的另一個重要任務,是為 Jarvis 處理其他任務提供上下文語境。比如當祖克柏說「調高音響的音量」,Jarvis 需要通過攝像頭觀察哪個房間裡有人——甚至更精確一些,祖克柏在哪個房間里而不是正在睡覺的麥克斯在哪個房間,然後完成任務。
交互界面
祖克柏自己用 iPhone,在家裡的每個房間都放了一台手機,上面都安裝了自己開發的 Jarvis 語音控製程序。這個程序隨時保持聆聽(就像 Google Now 和新版 Siri 一樣)這樣,他可以在每個房間裡都用語音隨時控制 Jarvis。
當說話不方便的時候, Facebook Messenger 是最適合的文字對話控制界面。這主要是因為 Facebook 在今年推出了 Bot Framework,極大地方便了開發者在 Messenger 上開發聊天機器人。
Jarvis 聊天機器人會把每一條指令發送到後端的 Jarvis 服務器。如果指令是語音,服務器則會用語音識別功能翻譯成文字然後處理。聊天機器人還承擔了整個 Jarvis 通知系統的工作,比如當家裡沒人有訪客來到時,系統會拍下門口畫面通過 Messenger 發送給祖克柏。
祖克柏的開發感悟
完成了 Jarvis 1.0 的搭建工作之後,祖克柏獲得了很多人生感悟。他說,
作為 Facebook 的 CEO,我幾乎沒什麼時間在內部環境提交代碼,但我一直沒有停止編程,主要都在 Jarvis 上。
我知道自己今年會學到很多關於人工智慧的知識,但我沒有意料的是,Jarvis 讓我找回了在 Facebook 當工程師的感覺……
對於語音的看法:
不光是語音,幾乎絕大部分的機器學習系統,現在的處境都是更多用於解決特定的問題(並不具備解決普遍問題的能力。)
這和從業者對人工智慧的認知一樣,和普羅大眾的認知恰好相反。其實,人類距離強人工智慧,或者 General AI 還很遠。大部分人工智慧係統都是解決特定任務的。
關於 Messenger 聊天機器人,他認為:
在 Messenger 上開發機器人比開發一個單獨應用容易太多了。它自動就幫你解決了很多問題,比如 iOS 和 Android 跨平台,文字和圖片內容理解,可靠的通知,以及權限管理等等。
更喜歡文字還是語音?這個答案很有趣:
和一個系統說話,比和系統打字更容易提高感情的投入。
簡單來說,你會期待對方是「人」。
我發現我發文字比自己想像的更頻繁。原因很多,比如當你周圍有人的時候發語音指令還是一件挺尷尬的事情。我也更願意接受文字的回答,這樣我可以選擇什麼時候看。
其實整個 Messenger 平台上也是一樣,文字訊息數量的增速比語音訊息快得多。這讓我產生了一種認知:未來的人工智慧係統不能只有語音控制,也要有一個單獨的文字對話界面。
關於整個系統:
想要讓這樣一個系統工作起來,我們需要更多的聯網設備。不僅如此,行業也需要通用的 API 和標準,讓每一台設備都能和彼此溝通。
關於 Facebook 的工程環境:
我發現,我們自己給的 iOS 和語音識別工程師提供的工具鏈真是太強大了。
我用到了 Messenger Bot Framework,Facebook 自己開源的 Nuclide 開發包和 Buck build 系統讓開發更快更容易,FastText 文本分類系統等等。如果你對人工智慧開發感興趣,FAIR(Facebook 人工智慧研究院)的 GitHub 頁面值得一看。
Facebook 的核心價值觀有一條就是快速行動(move fast)。對於任何科技公司而言,使用內部開發工具快速開發都十分重要。在這點上,我很感謝我們的內部架構和工具團隊。
接下來,Jarvis 會怎樣進化?
小扎說,儘管他的 2016 挑戰結束了,Jarvis 還有很多提升的空間。
祖克柏的下一個首要任務是開發 Jarvis 語音 Android 應用,讓他的家人能在更多房間裡發出語音指令和控制更多的電器。他還說,要讓 Jarvis 學著做飯,「估計比 T-shirt 大砲難的多。」
長期來看,祖克柏想提升 Jarvis 的學習能力,達到能夠自學的水平。
當然,祖克柏也在考慮通過什麼方式能讓 Jarvis 為更多人所用。簡單的開源肯定不行,因為現在的系統和代碼和祖克柏家的系統綁定的太深了。「如果我能開發一個抽象的控制層,也許我會把它開源的。當然,它會變成一個新產品也說不定。」祖克柏在文章裡寫道。

(本文經合作夥伴品玩授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為〈扎克伯格真的親手把鋼鐵俠的智能助手造出來了,說句話就能控制整個豪宅!〉。)
延伸閱讀
2016 臉書馬克新挑戰:不靠工程師團隊,花一年自己 code 出 AI 智慧管家
未來快點來!那時候我就可以學東尼史塔克說:Jarvis,幫我洗屁股!