(facebook aml實驗室負責人 joaquin candela)
雷鋒網(公衆号:雷鋒網)按:在facebook,有兩個實驗室上司着ai發展方向,一個是yann
lecun上司的fair實驗室,偏向ai的基礎研究;另一個,就是aml實驗室,偏向機器學習應用,負責将ai技術落地在facebook各種産品。本月初,aml實驗室負責人joaquin
candela在@scale大會上發表了一次演講,他講述了facebook在規模化應用ai技術的方方面面,包括facebook人工智能母體fb
learner flow平台、圖像處理引擎lumos、文本了解、語音識别、視訊風格變換等各領域的應用。
下面是演講文字版,由雷鋒網亞萌和夏睿共同編輯整理。
我在facebook已經工作了五年,這是令人愉悅的經曆。今天,我想要跟大家分享一下facebook是如何設計ai來改善人們每天的生活。
每次你使用facebook、instagram和messanger的時候,可能你沒有意識到,你的使用體驗已經是由ai技術做支撐了。
而實際上,我想強調的一點是,facebook如果沒有ai,那就會失去存在根基。
我們在ai上面加入了雙倍的投資,幫助使用者彼此之間聯系更加緊密,及時得知最關心的消息和内容。我們aml團隊,與fair團隊及公司内其它産品團隊緊密合作。
我們面臨的一個挑戰就是,我們的工作是在facebook這麼大的一個規模上進行的。這周三,facebook釋出了統計資料:我們每天支援了12億使用者。也就是說,每一天就有12億人使用facebook
。而其中的11億使用者,都是在手機上使用facebook 的。是以手機的使用,占據主導地位。
首先,我們需要回過頭去,思考“工程”這件事情,好好思考“工程”對于facebook的價值所在。其中有2個關鍵的價值:關注影響力(foucus
on impact)和快速行動(move
fast)。前者是指,要時刻清楚了解我目前所能解決的最重要的問題是什麼。關于第二點,快速行動,facebook對于“犯錯”的容忍度極大,我們反複提醒自己,有時最危險的做法就是不去冒險,不去行動其實是非常冒險的一件事情。我們需要在facebook這麼大的體量上去快速行動。
這些價值觀,啟發了aml的戰略,這個戰略包括 3 大基本支柱:
推進最新技術,最大程度實作産品影響力。我們一直與fair實驗室及産品團隊合作,推進最新的技術。我們進入非常具體的問題領域,雖然我們可能起初并不知道如何去解決,但是我們知道,一旦我們攻克這個問題,其價值将異常巨大。
通過ai打造全新産品體驗。當你在現今最前沿領域工作時,你往往會遇到别人從未想過的産品體驗。待會後面,我會就此舉一個具體的例子來說明。
使ai大衆化。“規模化”是個大事情。對于facebook來說,你需要不斷地在平台、實驗室和服務項目上進行創新,讓整個公司都能用你的新技術。
很久之前,我還是一名phd學生,當時緻力于貝葉斯非參數法(bayesian nonparametric method),我在其中感受了一種類似于“巫師”的力量,當被給予一個任務時,比如在不同的域裡做分類和遞歸任務,這種解決具體問題的感覺非常好。
之後,我去了工業界。我為此感到興奮,因為工業界充滿了亟待解決的諸多問題。但很快,我變得有點“被淹沒”了,因為預測任務的類型、域的數量、訓練資料的數量,這些比你所能想象的要龐大的多。
我意識到,巫師不知道如何“規模化”。當我在學術界的時候,關注點在于“準确度”,我能建造一個模型,以期比其它已經發表的研究成果,多出那麼0.1%的auc值。但是在工業界我發現,最重要的事情是“疊代速度”,是你每天可以運作多少次實驗。因為,你無法忽視一個事實,那就是你所做的事情是融合各方利益的,如果你每周都可以将一個新的模型投入生産中(當然在我剛加入facebook的時候這是很困難的一件事情),最終的成果是建立在一次又一次的嘗試之上的。
如果你仔細想一想,你需要探索的參數、模型架構、輸入值特征等如此龐大,實驗的加速會産生非常非常大的影響。
是以,你必須建造一個“工廠”(就是後面要講到的fb learner flow平台),成為一個巫師很酷,但是建造一個強大的“工廠”,讓公司的每個人能夠并行探索這個廣闊的領域,将會讓你以很穩定的節奏取得進步,不斷地輸出對産品的影響力。
當我們在設計一個“工廠”時,我們主要考慮五個方面的事情。
性能(performance)。我們必須加快速度,之前需要花幾天時間進行的實驗,現在要在一個小時内完成。這種速度的提升,對人們的心理狀态會産生很大影響,當你工作到晚上回到家的時候,在這一天裡你實際上已經完成了實驗的一部分。而在之前,可能你一天裡隻能弄出一個模型,回家後可能就有點忘了,再過幾天,這個模型可能會崩潰掉。
自動化(automation)。這非常重要,拖慢速度的永遠都是人自己。比如,我曾經有一些系統,要進行轉移到新的伺服器等操作,但是運作不好,最後崩潰了,這浪費了我幾天的時間。是以你必須将事情自動化。
重複使用(reusability)。這點非常重要,你必須得確定其中的工作内容,是可以一遍又一遍地使用。
成套系統(turnkey)。讓整個系統變得容易使用,大部分工程師都是局限于一個小的領域,沒有那麼全面的知識和技術。
應用研究社群(applied research community)。對于建造研究社群這一點,我充滿熱情,我将會對此多談一點,關于在整個公司内部打造“應用研究社群”的力量。
而我們建造的這個“工廠”确實是有效果的,而且效果很不錯。
我們這個平台的建造工作,目前隻進行了1%,也就是說,一切還是開始。整個facebook公司使用這個平台的人數中,超過25%的人是該平台的活躍使用者。而其中令人驚訝的是,如果你仔細觀察這些工程師的背景,大部分人并不是ai或ml方面的專家。
另一件事就是,我們建構了一個非常強大的應用研究社群(applied
research community)。我們為這個平台的“重複使用”性能感到興奮,當一個工程師寫了一個ai
工作流(workflow),可以被其它工程師拿過來接着使用。這有一個關于instagram的例子。去年6月,instagram開始對它的feed進行排序,幾個工程師共同完成了這個功能,而這其中花費的時間之少令人驚訝。作為對比,facebook的feed功能在前幾年進行的,這在當時就是一個大工程,因為它是從無到有建立起來的。現在,instagram的工程師,就可以進入一個公共的實驗平台,找到其它産品類似功能實作時的工作流和模型。也就是說,工程師們可以借用前人的工作成果,“站在巨人的肩膀上”建立instagram的feed功能,而且他們也能很快找到相關同僚去請教。
其中有一個資料,我很驕傲。在過去的6個月時間裡,這個平台的ml工作流的數量增長了6倍。
fb learner flow平台是一個非常有彈性的環境,用于書寫和執行ai工作流。生産力是最重要的事。其中有一件很酷的事情,那就是如果你要運作某個任務,fb learner flow将會把一整個流程都規劃好,比如硬體用什麼、如何規模化等等。
fb
learner flow平台設計之初,就把“重複使用”的理念植入其中。如果你是一個instagram工程師,想要訓練和部署你的排序模型,fb
learner
flow就像是一個放滿了工作流的圖書館庫(library),你可以在當中搜尋、索引、發現各種工作流,然後對此重複利用。你還可以進入到算法裡,你可以看到不同參數下的各種學習曲線,最重要的是,你可以看到某個特定工作流的作者是誰,這是最重要的,因為這時你就知道找誰去請教問題了。
flow非常綜合,這裡有一個有趣的故事。有一次,我對團隊成員說:“夥計們,你們在這個平台上運作pytorch、caffe和caffe
2,我們試試tensorflow怎麼樣?”。三天後,他們跟我說,我們試了一下tensorflow,可以運作。是以它是相容各種語言的,這很重要。
接下來我會講解一些關于基于fb learner flow平台的一些系統,包括計算機視覺引擎、文本和語言了解系統、語音等方面的内容。
更多雷鋒網文章:
<a href="http://www.leiphone.com/news/201702/fpkuw0kfabuqvqyl.html">對話百度idl負責人林元慶:人臉識别獲評十大突破性科技背後百度的布局和野心</a>
<a href="http://www.leiphone.com/news/201702/qasmvdqnbiy4cxby.html">百度引入ring allreduce算法,大規模提升模型訓練速度</a>
本文作者:亞萌