国产视频一区在线,日韩三级网,日韩欧美在线观看一区二区,午夜欧美福利视频,国产人妖视频一区二区,久久亚洲精品中文字幕,国产成人午夜高潮毛片

讓體驗更個人化 詳解Facebook人工智能母體FBLearner Flow

來源:網(wǎng)絡(luò)

點擊:1799

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞:Facebook,AI,人工智能

      Facebook昨天第一次正式介紹了FBLearner Flow,一個可以為全公司員工管理機器學習模型的機器學習軟件。換句話說,這是一個可以自己制造人工智能的人工智能,你可以理解為傳說中的人工智能母體。

      它與其他基于云端的機器學習服務(wù)有點相似,例如微軟的Azure機器學習或者Airbnb的開源Airflow,不過,F(xiàn)BLearner Flow是根據(jù)Facebook自己的業(yè)務(wù)而進行最優(yōu)化的,裝滿了Facebook工程師開發(fā)的算法,讓公司其他人都可以為自己的模型而使用該平臺。

      “公司超過25%的人都在使用,使用情景是我們之前無法預想的。”Facebook核心機器學習小組總監(jiān)Hussein Mehanna在一次訪談中告訴Venture Beat。

      Facebook不只可以發(fā)布關(guān)于FBLearner Flow的學術(shù)論文,還可以最終將其開源。Facebook工程師已經(jīng)與其他公司的人討論了這類技術(shù),包括Linkedin、Twitter和Uber等公司。Mehanna說,他們都非常感興趣。

      當然會對開源感興趣啦——這個系統(tǒng)已經(jīng)在Facebook這樣的大公司驗證可行,而且,這!不!花!錢!這一點就與來自Domino Data Lab和Yhat的數(shù)據(jù)科學合作工具不同。

      Facebook經(jīng)常將一些技術(shù)開源,這樣的做法也符合公司自己的需要,因此如果未來FBLearner Flow完全開源了也不奇怪。問題是Facebook是否愿意投入工程資源,將這項技術(shù)與其專利系統(tǒng)的匹配斷開。話雖如此,如果Facebook不愿開源、將FBLearner Flow壓在箱底也不奇怪。因為多虧了這項技術(shù),員工變得更加高效了。這會是一個競爭優(yōu)勢。人們在新系統(tǒng)中可以看到過往的試驗和結(jié)果,甚至將兩個不同的機器學習流水線結(jié)合起來,設(shè)計出某種更加復雜的東西。此外,圖形交互界面讓非工程師也可以使用這個新平臺,因此才會有Mehanna說高達的25%的人都在使用。

      無論未來是否會開源,至少,我們今天獲得了一部分FBLearner Flow的技術(shù)詳解。讓我們來看看Facebook工程師Jeffrey Dunn的博文,詳細解讀FBLearner Flow作為Facebook的人工智能母體到底厲害在哪兒。Jefferey Dunn從卡內(nèi)基梅隆大學獲得碩士學位,2011年加入Facebook,參與打造圖片搜索中的網(wǎng)絡(luò)搜索等工作。

      詳解Facebook人工智能母體FBLearner Flow

      圖片來源:Facebook Code

      如今,F(xiàn)acebook的許多體驗和交互都是依靠AI實現(xiàn)的。當你登錄Facebook,我們使用機器學來給你提供獨特的、個人化的體驗。機器學習(ML)模型實現(xiàn)了個人化新聞流(News Feed)、過濾了可能得罪人的內(nèi)容、突顯流行熱點話題并將搜索結(jié)果排名。還有很多其他體驗可以從機器學習中獲益。但是以前,工程師必須有很強機器學習背景,不然沒法好好利用公司的機器學習基礎(chǔ)設(shè)施。在2014年底,我們從零開始,重新定義Facebook的機器學習平臺,將最先進的AI和ML算法送到Facebook每一位工程師的手中。

      我們希望能有這樣的一個平臺:

      1.每個機器學習算法應該可以一次性設(shè)置好,可以重復使用;

      2. 工程師可以寫一個訓練流水線,在許多機器上平行運行,可以被很多工程師所用。

      3. 無論工程師在機器學習領(lǐng)域的背景深淺,都可以很簡單地訓練模型,而且,其中幾乎所有的 步驟都可以完全自動化。

      4. 人人都能很方便地搜索過往試驗、查看結(jié)果、與他人分享,并在某一個試驗中開啟新的變量。

      我們決定建造一個全新平臺:FBLearner Flow,可以簡單方便地在不同產(chǎn)品中重復使用算法,可以放大規(guī)模同時運行幾千個定制試驗,并且能夠輕松管理試驗。這個平臺提供了創(chuàng)新性的功能,例如從流水線定義和自動平行Python代碼自動生成UI體驗。平臺從創(chuàng)立起已經(jīng)訓練了超過一百萬個模型,我們的預測服務(wù)發(fā)展到每秒超過600萬次預測。

      減少了手動工作的工程師們可以花更多時間進行特征工程,這反過來又可以進一步提升精度。工程師可以在更大的平臺層面去發(fā)揮影響。FBLearner Flow提供了平臺和工具,讓工程師每天進行幾千個試驗。

      核心概念和組成

      在深入理解系統(tǒng)之前,我們先來看幾個關(guān)鍵概念。

      工作流:一個工作流就是在FBLearner Flow中定義的一個流水線,是所有機器學習任務(wù)的入口。每個工作流作為一個具體的任務(wù),例如訓練和評估某個具體的模型。工作流根據(jù)操作員來定義,可以平行運作。

      操作員:操作員是工作流的建造模塊。從概念上,你可以將操作員想象為一個程序里的一個功能。在FBLearner Flow中,操作員是執(zhí)行的最小單位,可以在單一機器上運作。

      頻道:頻道代表輸入和輸出,在一個工作流的各個操作員直接流轉(zhuǎn)。所有頻道都用一個我們定義的定制類別系統(tǒng)輸入。

      平臺包括這三個核心組成部分:一個作者及定制分布工作流的實施環(huán)境,一個發(fā)布試驗和查看結(jié)果的試驗管理UI,以及無數(shù)預定義的流水線,用來訓練Facebook大部分經(jīng)常使用的機器學習算法。

      作者和實施環(huán)境

      平臺上所有的工作流和操作員都定義為Python功能,使用獨特的裝飾器來整合進入平臺。讓我們來看一個具體的情景,我們想用經(jīng)典的Iris數(shù)據(jù)集訓練一個決策樹,基于花朵的花瓣和萼片大小來預測花的品種。假設(shè)數(shù)據(jù)庫是在Hive里面,有五個欄目,分布代表了花瓣寬度、花瓣長度、萼片寬度、萼片長度和花朵樣本的品種。在這個工作流中,我們會用日記損失來評估模型的性能,預測一個未標記的數(shù)據(jù)庫的品種。

      要處理這類任務(wù)的工作流樣本大概長這樣:

      詳解Facebook人工智能母體FBLearner Flow

      圖片來源:Facebook Code

      讓我們來仔細看看這個工作流,理解FBLearner Flow到底是怎么運作的。

      首先,@workflow裝飾器告訴FBLearner Flow,iris功能不是一個普通Python功能,而是一個工作流。input_schema和returns參值說明了工作流的輸入類型及輸出類型。實施框架會自動確認這些類型,確保工作流收到的數(shù)據(jù)是符合其預期的。這個例子中,labeled_data輸入標記為有四個欄目的數(shù)據(jù)庫輸入。如果在數(shù)據(jù)庫中有一個欄目缺失,那么就會提出一個TypeError異常,因為數(shù)據(jù)庫與這個工作流不兼容。

      工作流的本體看起來相應普通的Python功能,連接到幾個操作員來實施機器學習工作。雖然看起來普通,F(xiàn)BLearner Flow使用一個future系統(tǒng)來在工作流內(nèi)提供平行化,如果有若干個步驟不共享一個數(shù)據(jù)相關(guān)性,就可以同時運行。

      工作流不是線性執(zhí)行,而是分兩個步驟:1)DAG編譯步驟,2)操作員執(zhí)行步驟。在第一部中,操作員并沒有執(zhí)行,而是返回future。future代表了延遲的計算。因此在上述例子中,dt變量實際上是一個future,代表了還沒有發(fā)生的決策樹訓練。FBLearner Flow在DAG編譯階段的所有操作員撤銷行為都留有記錄,并且記錄所有必須在操作之前搞定的future。例如,ComputeMetricsOperator和PredictOperator將dt.model作為輸入,因此系統(tǒng)知道nn一定要在操作員運行之前計算,因此必須等到TrainDecisionTreeOperator完成。

      DAG編譯階段完成時,F(xiàn)BLearner Flow將打造一個操作員DAG,可以預定何時進行執(zhí)行,每個操作員只要上一級成功完成就可以開始執(zhí)行。在這個例子中,ComputeMetricsOperator和PredictOperator之間沒有數(shù)據(jù)相關(guān)性,因此這兩個操作員可以同時平行運行。

      詳解Facebook人工智能母體FBLearner Flow

      圖片來源:Facebook Code

      在操作員執(zhí)行階段,每個操作員有自己的CPU、GPU和存儲要求。FBLearner Flow會分配一個匹配操作員任務(wù)要求的機器部分。平臺自動將相關(guān)的代碼分配給機器,在操作員之間傳送輸入和輸出。

      試驗管理UI

      在全公司有幾百個不同的工作流,進行著無數(shù)個機器學習任務(wù)。我們面臨的一個挑戰(zhàn)是打造一個通用的UI界面,可以匹配多元的工作流使用。利用定制類別系統(tǒng),我們打造了一個可以不需要理解每個工作流的實施細節(jié)、就能夠解讀輸入和輸出的UI。為了進一步定制化,平臺UI提供了一個插件系統(tǒng),可以用來為具體的團隊和整合Facebook系統(tǒng)提供定制化體驗。

      FBLearner Flow UI還提供了一些額外體驗:發(fā)布工作流;將輸出視覺化并進行比較;管理試驗。

      發(fā)布工作流

      我們之前看到,每個工作流規(guī)定了一個輸入綱要。工程師發(fā)布工作流的時候,UI讀取到了輸入綱要,自動生成一個結(jié)構(gòu)化表格,來確認具體的工作流輸入。這讓ML工程師可以不用寫一行前端代碼,就可以使用豐富的UI。定制類別系統(tǒng)有豐富的類別用于描述數(shù)據(jù)庫、特征和許多其他共同的機器學習數(shù)據(jù)類型。這讓UI可以描繪復雜的輸入元素,例如功能輸入提示和數(shù)據(jù)庫選擇條。

      詳解Facebook人工智能母體FBLearner Flow

      圖片來源:Facebook Code

      視覺化輸出并比較

      工程師可以看到每一個工作流的輸出,來修改標簽和其他超數(shù)據(jù),并采取行動,例如將模型導入生產(chǎn)。工程師可以比較工作流的輸入和輸出,來基于基準評估試驗的性能。我們使用了一項類似的技術(shù)來將輸出視覺化,類似于渲染輸入形式的技術(shù)——系統(tǒng)用此來為每種具體類型的輸出提供渲染。通過一個插件系統(tǒng)可以加入額外的定制視覺化和行動。例如,新聞流(News Feed)團隊可以為他們的模型增加實時系統(tǒng)量度。

      詳解Facebook人工智能母體FBLearner Flow

      圖片來源:Facebook Code

      管理試驗

      Facebook工程師每天發(fā)布幾千個試驗,平臺UI提供了管理所有實驗的工具。所有的工作流運行都在Elasticsearch記錄索引,因此可以用無數(shù)的維度來進行搜索,系統(tǒng)支持保存搜索,方便尋找試驗。當調(diào)試模型時,工程師經(jīng)常運行細分的復雜參數(shù)掃描分析,很方便就能看到哪一個配置產(chǎn)出的結(jié)果最好。

      詳解Facebook人工智能母體FBLearner Flow

      圖片來源:Facebook Code

      機器學習程序庫

      FBLearner Flow平臺的一個核心原則是,它不與任何具體的算法綁定。因而,平臺可以支持無數(shù)的ML算法以及這些算法的創(chuàng)新組合。平臺也很容易延展——任何工程師都可以寫一個新的工作流,讓他或她最愛的算法可供全公司使用。算法的開源實施很容易在一個工作流中完成,并整合進入Facebook的基礎(chǔ)設(shè)施。

      Facebook的應用機器學習團隊維護的工作流可以為常用算法提供可擴展的實施,包括:

      神經(jīng)系統(tǒng)

      迭代決策樹(GBDT)

      LambdaMART

      隨機梯度下降

      邏輯回歸

      未來計劃

      有了FBLearner Flow,AI成為工程師組織中的核心,通過簡單的API為Facebook工程師提供了最先進的人工智能。我們持續(xù)改善FBLearner Flow,來讓工程師變得越來越高效,能夠?qū)C器學習應用于越來越多的產(chǎn)品中。在未來的幾個月中,我們將更加緊密關(guān)注其中一些系統(tǒng)和應用,讓工程師在產(chǎn)品中使用AI和ML更加簡便,并為使用Facebook的人們提供更加個人化的體驗。

    (審核編輯: 滄海一土)

    聲明:除特別說明之外,新聞內(nèi)容及圖片均來自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認為內(nèi)容侵權(quán),請聯(lián)系我們刪除。