在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Netflix如何拓展Jupyter notebook使用場景,以及為支持新使用場景進行的基礎設施建設

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-08-31 10:08 ? 次閱讀

編者按:Michelle Ufford(Netflix大數據工具負責人)、M Pacer(Netflix工程師、Jupyter核心開發者)、Matthew Seal(Netflix工程師)、Kyle Kelley(Netflix工程師)介紹了Netflix如何拓展Jupyter notebook使用場景,以及為支持新使用場景進行的基礎設施建設。

Jupyter notebook在數據科學家當中快速流行開來,成為編寫快速原型和進行探索性分析的事實標準。在Netflix,我們進一步開疆拓土,重新設想了notebook的形態、適用人群、用途,并且投入很多資源以實現我們的愿景。

本文將分享我們的動機,我們為什么覺得Jupyter notebook這么有競爭力。本文也將介紹我們的notebook基礎設施的組成部分,同時探索我們在Netflix的一些創新的使用notebook的方式。

如果你比較匆忙,我們建議你直接從使用案例一節開始閱讀。

動機

數據賦能Netflix。數據滲入我們的想法,為我們的決策提供信息,并挑戰我們的假設。數據為在前所未有的尺度上的試驗和創新提供燃料。數據幫助我們發現美妙的內容并向全世界一億三千萬會員提供個性化的體驗。

實現這一切可不是小事一樁;它需要全面的工程支持和基礎設施支撐。每天有超過一萬億事件寫入攝取信息流的過程,經過處理后,再寫入100PB的數據倉庫云。同時每天運行150000項數據任務,范圍無所不包,從報告分析到機器學習,到推薦算法。為了支撐如此巨大的尺度上的使用案例,我們創建了一個業界領先的靈活、強大、復雜(必要的復雜性)的數據平臺。我們同時創建了補充工具及服務的豐富生態系統,比如Genie(聯合任務執行服務)和Metacat(聯合元存儲)。這些工具簡化了復雜度,使其可以支持全公司范圍廣泛的使用需求。

Netflix的數據角色

譯者注:上圖羅列了Netflix的數據角色,包括商業分析師、數據分析師、量化分析師、算法工程師、分析工程師、數據工程師、數據科學家、機器學習科學家、研究科學家。

多樣性的數據使用者很令人興奮,但它不是沒有代價的:數據平臺——以及配套的工具、服務生態系統——必須支持更多使用案例、語言、訪問模式,等等。為了更好地理解這一問題,考慮3種常見角色:分析工程師、數據科學家、數據工程師。

不同角色(分析工程師、數據科學家、數據工程師)可能選擇不同的工具和語言

一般來說,每種角色依賴不同的工具和語言組合。例如,一個數據工程師可能在IntelliJ中使用Scala創建一個包含數萬億音視頻流事件的新的聚合數據集。一個分析工程師可能使用SQL和Tableau基于這一聚合創建關于全球音視頻流質量的報告。這份報告可能導致一個數據科學家在RStudio下用R編寫一個新的音視頻流壓縮模型。表面上看,這些都是分散的、不存在互補性的工作流程。但是,如果我們深挖一些,我們會發現每個工作流程中都有一些相通的任務:

數據探索—— 發生在項目早期;可能包括查看樣本數據,運行查詢請求以進行統計分析和探索性分析,以及可視化數據。

數據準備—— 迭代任務;可能包括清理、標準化、轉換、逆歸一化、聚合數據;通常是整個項目最花時間的任務。

數據校驗—— 重復任務;可能包括查看樣本數據,運行查詢請求以進行統計分析、聚合分析,以及可視化數據;通常作為數據探索、數據準備、開發、部署前、部署后等階段的一部分。

產品化—— 發生在項目后期;可能包括部署代碼至生產環境,裝填數據集,訓練模型,校驗數據,規劃工作流程。

為了幫助拓展使用者范圍,我們想要讓這些任務盡可能地省力。為了幫助拓展我們的平臺,我們想要最小化需要支持的工具數量。但是怎么才能做到呢?沒有一個工具可以完成所有這些任務;不僅如此,單個任務經常需要多種工具。然而,當我們再加上一層抽象的時候,在這些工具和語言之上涌現出了一種共同模式:運行代碼,探索數據,呈現結果。

碰巧有一個開源項目正是為此設計的:Jupyter Notebook

Jupyter Notebook

nteract下的Jupyter notebook,其中使用了Vega和Altair可視化

始于2014年的Jupyter項目的目標是創建一組一致的工具,用于科研、可重現工作流程、計算敘述、數據分析。這些工具遷移到業界的效果很不錯,今天Jupyter notebook已經成為數據科學家工具箱的必備之物。Jupyter曾被授予2017年度ACM軟件系統獎,該獎授予對技術概念和商業接受度方面產生了持久影響的軟件系統,歷史上Java、Unix、Web曾獲此獎。

在我們看來,Jupyter notebook極具競爭力,它提供了這些核心功能:

語言無關的內省和執行代碼的消息傳遞協議

描述代碼、代碼輸出、markdown筆記的可編輯文件格式

基于web的用戶界面,以供編寫、運行代碼,以及可視化輸出

Jupyter使用核作為計算引擎,Jupyter協議提供了與核通訊的標準消息傳遞API。這一協議使分離內容編寫(用戶界面)和代碼執行(核)的可組合架構成為可能。通過將運行時從界面中隔離出去,notebook可以在保持配置執行環境的靈活性的同時,跨多語言。如果存在知道如何基于Jupyter協議通訊的語言核,notebook就可以通過與核收發消息來運行代碼。

支撐這一切的是將代碼和結果保存在一起的文件格式。這意味著,無需重新運行代碼,就可以在之后訪問結果。此外,notebook保存了給出上下文的豐富文本。這使notebook成為溝通業務上下文,文檔化假設,注釋代碼,描述結論等的理想格式。

使用案例

在眾多使用案例中,我們現在最常用的用途有三種:數據訪問、notebook模板、計劃notebook。

數據訪問

Netflix最早引入notebook是為了支持數據科學工作流程。隨著越來越多的數據科學家開始使用notebook,我們看到了擴張其工具效應的機會。我們意識到,我們可以利用Jupyter notebook的多功能和架構,拓展其使用范圍為通用的數據訪問。我們從2017年第三季度開始認真對待這一想法,將notebook從小眾工具提升為數據平臺的一等公民。

從使用者的角度來說,notebook提供了一個交互式地運行代碼、探索輸出、可視化數據的易用界面——全都可以通過云端開發環境達成。我們同時維護了一個Python庫,加強了對平臺API的訪問。這意味著使用者基本上可以在notebook中編程訪問整個平臺。由于notebook的用途廣泛、功能強大、使用方便,我們發現notebook在整個數據平臺的各種使用者中間自然而然地快速流行開來。

現在,notebook是Netflix內處理數據最流行的工具。

notebook模板

隨著我們為notebook擴展平臺支持,我們開始引入新功能以滿足新使用案例的需求。由此涌現出了參數化notebook。顧名思義,參數化notebook讓你可以指定代碼中的參數,并在運行時輸入數值。這提供了出色的機制,讓使用者可以將notebook定義為可重用的模板。

使用者為這些模板找到的用途出乎意料地多。其中一部分最常見的用途是:

數據科學家:以不同的系數運行試驗,并總結結果

數據工程師:作為部署流程的一部分,執行一組數據質量審計

數據分析師:分享預備好的查詢和可視化,讓股東以比Tableau更深入的方式探索數據

軟件工程師:每次遇到錯誤,發送排錯腳本的結果到郵箱

計劃notebook

我們利用notebook比較新穎的一種方式是將其作為計劃工作流程的統一層。

由于每個notebook可以運行任意核,我們可以支持使用者定義的任何執行環境。同時因為notebook描述的是分割為單元的線性執行流,我們可以將錯誤映射到具體的單元。這讓使用者可以簡要地描述執行和可視化,以后運行時可以精確地報告結果。

這一范式意味著我們可以用notebook處理交互式工作,之后平滑地遷移到計劃重復運行的工作。這對使用者來說非常方便。許多使用者在單本notebook中構造整個工作流程,當他們準備就緒,可以部署的時候,只需復制/粘貼進一些單獨文件以便計劃執行。將notebook視作邏輯工作流程,讓我們很容易就可以像其他工作流程一樣做計劃。

我們也可以計劃其他種類的工作。執行一項Spark或Presto工作時,插入源代碼至新創建的notebook,然后執行。那本notebook便成為不可更改的歷史紀錄,包含所有東西——源代碼、參數、運行時配置、執行日志、錯誤信息,等等。調錯時,這提供了一個探查的快捷入口,因為所有相關的信息都在一處,同時notebook可供運行,以便進行交互式調試。

Notebook基礎設施

在Netflix的規模上支持這些使用案例需要全面的基礎設施。我們將簡要介紹其中一些項目。

nteract是基于React的Jupyter notebook用戶界面。它提供了一個簡潔直觀的界面,以及一些改進,例如單元內的工具欄,拖放單元,內建的數據探索工具。

Papermill是用來支持我們之前提到的參數化notebook的工具。Papermill讓我們可以并行執行使用不同參數組合的多本notebook。Papermill還可以收集、總結一組notebook中的指標。

Commuter是一個輕量級的查看、分享notebook的服務。它提供了一個兼容Jupyter的內容API,使得讀取本地或遠程(Amazon S3)的notebook一樣方便。它同時提供了一個目錄瀏覽器,以供查找和分享notebook。

Titus是一個容器管理平臺,支持可伸縮、可靠的容器執行,同時集成了Amazon AWS服務。Titus是Netflix內部創建的工具,并用于生產環境(串流、推薦、內容系統)。

我們將在后續的文章中更深入地探索這些基礎設施。現在,讓我們重點關注三個基礎組件:存儲、計算、界面。

Netflix的notebook基礎設施

存儲

Netflix數據平臺使用Amazon S3和EFS作為云存儲,notebook視為虛擬文件系統。這意味著每個使用者在EFS上有一個家目錄,其中包含了notebook工作區。這個工作區中存放了所有用戶創建、上傳的notebook。當使用者交互式地運行notebook時,所有的讀寫活動發生在工作區中。[workspace + filename]的組合構成notebook的命名空間,例如/efs/users/kylek/notebooks/MySparkJob.ipynb。這一命名空間用于查看、分享、計劃notebook。這一慣例可以防止名稱沖突,同時從中了解使用者是誰以及notebook在EFS卷中的位置也很容易。

工作區路徑可以為使用者抽象掉云存儲的復雜性。例如,在列出目錄的時候,只顯示notebook的文件名,如MySparkJob.ipynb。在終端下則可以通過~/notebooks/MySparkJob.ipynb訪問這一文件。

notebook存儲和訪問

當使用者計劃一本notebook時,調度程序會從EFS復制使用者的notebook到S3的共享目錄。S3上的notebook成為調度程序信任的源notebook。調度程序每次運行notebook時,基于源notebook初始化一本新notebook。新notebook是實際執行的notebook,并成為這次執行的不可更改的記錄,包括代碼、輸出、日志。我們稱之為輸出notebook。

Netflix的工作以協作為基礎。因此使用者開始分享notebook的URL一點也不讓人吃驚。隨著這一做法的流行,我們經常碰到因為多人同時訪問同一notebook而導致的意外覆蓋。使用者希望能以只讀的方式分享活躍的notebook。這導致我們創建了commuter。commuter在幕后提供了Jupyter兼容的/files和/api/contensAPI,以列出目錄內容,查看文件內容,訪問文件元數據。這意味著使用者可以安全地查看notebook,無需擔心影響生產環境的工作或正在運行的notebook。

計算

管理計算資源是處理數據最有挑戰性的部分之一。在Netflix尤其如此,因為我們在AWS上部署了一個高伸縮性的容器化架構。數據平臺的所有工作運行在容器中——包括查詢、數據流、notebook。因此我們很自然地想要抽象掉盡可能多的復雜性。

使用者運行notebook服務時會配備一個容器。我們默認分配的容器資源可以滿足大約87.3%的執行模式。資源不夠用的時候,使用者可以通過簡單的界面請求更多資源。

我們同時也通過預先準備好的容器鏡像提供統一的執行環境。鏡像預裝了常用庫和一組默認核。并不是鏡像中的一切都是靜態的——我們的核會拉取最新版本的Spack以及最新的平臺集群配置。預先準備好的鏡像減少了新建notebook所需的配置時間和麻煩,并且在一般情況下保持了單一的執行環境。

這一切背后的功臣是我們的Docker容器服務Titus。我們進一步在服務中封裝了用戶特定的服務配置和鏡像。鏡像種同時包括用戶的安全組和角色,以及所包含的庫常用的環境變量。這意味著使用者可以在基礎設施上花更少的時間,在數據上花更多的時間。

界面

之前提到了我們的愿景,讓notebook成為處理數據的標準工具。但這帶來了一項有意思的挑戰:單一界面如何支持所有使用者?我們仍然不完全清楚這個問題的答案,但已經有了一些想法。

我們需要一個直觀的用戶界面,極簡主義風格的美學,也需要精心斟酌的用戶體驗,使困難的事情容易做到。nteract遵循這一理念,將簡單性和組合性作為核心設計原則。這使得nteract成為我們想要做的工作的理想構件。

我們最常從使用者那里聽到的抱怨之一是缺乏跨語言的原生數據可視化,使用Python之外的語言的人特別愛抱怨這一點。nteract的數據探索工具提供了語言無關的迅速探索數據的方式。之前我們說過,要讓困難的事情容易做到,這是一個很好的例子。

你可以在MyBinder的樣例notebook上直接體驗數據探索工具的效果:(注意:加載可能需要花一分鐘)

https://mybinder.org/v2/gh/nteract/examples/master?urlpath=%2Fnteract%2Fedit%2Fpython%2Fhappiness.ipynb

使用nteract的數據探索工具可視化世界幸福感報告數據集

我們也引入了參數表示的原生支持,這使得計劃notebook和創建可重用模板更加容易了。

nteract原生支持參數化notebook

盡管notebook已經在Netflix提供了大量價值,其實一切才剛剛開始。我們需要在前端和后端投入更多以提升notebook總的體驗。我們接下來12個月的工作將聚焦在提升可靠性、可見性和協作性上。上下文環境對使用者來說是第一位的,因此我們正致力于提升可見性,包括集群狀態、核狀態、工作歷史,等等。我們同時致力于自動版本控制,原生應用內計劃,更好地支持可視化Spark的DataFrame,更穩定的Scala核。我們將在之后的博客文章中討論這些工作的細節。

開源項目

Netflix一貫倡導開放源代碼。我們高度評價開源協作種涌現的活力、開放標準、想法交流。許多我們為Netflix數據平臺開發的應用已經開源。同時,我們不打算創建一次性的解決方案,或屈從于“非我所創”的心態。只要有可能,我們利用現有的開源項目,并向其貢獻代碼,例如Spark、Jupyter、pandas。

我們之前描述的基礎設施重度依賴Jupyter項目的生態系統,但也有一些分歧之處。最主要的是我們選擇了nteract作為Netflix的notebook用戶界面。我們做出這一決定有很多原因,包括對齊我們的技術棧和設計哲學。隨著我們突破notebook可以做什么的限制,我們很可能會創建新工具、庫、服務。這些作為nteract生態系統組成部分的項目也將開源。

我們認識到對Netflix有意義的東西不一定對所有人有意義。因此我們在設計這些項目的時候考慮了模塊性。這樣,你可以只選用對你的環境有意義的組件,例如Papermill,而不用投入整個Netflix的notebook生態系統。

后續

作為一個平臺團隊,我們的責任是讓Netflix人可以在數據上做出令人驚嘆的東西。notebook在Netflix已經有了驚人的影響力。隨著我們在這一領域的更多投入,我們很興奮,能看到這一影響的擴大。如果你希望成為我們的一員,可以看看我們的招聘頁面。

呀!感謝你耐心讀完這篇長文。不過本文只是浮光掠影地介紹了我們在notebook上做的工作。在后續的博客文章中,我們將更深入地探索notebook計劃背后的架構。在這篇文章發布之前,你可以通過以下途徑了解更多Netflix在數據上做什么,怎么做:

Twitter上的NetflixData賬號

YouTube上的Netflix Data頻道

Netflix Research網站:research.netflix.com

同時我們也樂不可支地贊助今年的JupyterCon。我們的工程師將在JupyterCon上做5場演講:

8/22 1:30 PM, How to Build on top of Jupyter’s Protocols, Kyle Kelley

8/23 1:50 PM, Scheduled Notebooks: Manageable and traceable code execution, Matthew Seal

8/23 2:40 PM, Notebooks @ Netflix: From Analytics to Engineering, Michelle Ufford, Kyle Kelley

8/23 5:00 PM, Making beautiful objects with Jupyter, M Pacer

8/24 2:40 PM, Jupyter’s configuration system, M Pacer等

8/25 9AM?—?5PM JupyterCon Community Sprint Day

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器學習
    +關注

    關注

    66

    文章

    8428

    瀏覽量

    132831
  • Netflix
    +關注

    關注

    0

    文章

    90

    瀏覽量

    11227

原文標題:交互之外:Netflix在Jupyter Notebook上的創新工作

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    AG32VF-MIPI應用場景

    MIPI接口技術在圖像和視頻傳輸中的應用越來越廣泛,應用場景也在不斷拓展,而不僅限于移動設備。MIPI接口在物聯網、智能家居、智能監控、智能電視、智能汽車等領域也得到廣泛應用。 MIPI還可
    發表于 01-22 08:56

    NanoEdge AI的技術原理、應用場景及優勢

    能耗并提高數據安全性。本文將對 NanoEdge AI 的技術原理、應用場景以及優勢進行綜述。 1、技術原理 NanoEdge AI 的核心技術包括邊緣計算、神經網絡壓縮和低功耗硬件設計。邊緣計算
    發表于 03-12 08:09

    智能IC卡測試設備的技術原理和應用場景

    智能IC卡測試設備的技術原理和應用場景,可以從以下幾個方面進行闡述:技術原理智能IC卡測試設備的技術原理主要圍繞IC卡的通信和數據處理機制展開。IC卡(包括智能IC卡)通常內置有微電子芯片,該芯片
    發表于 09-26 14:27

    實時示波器的技術原理和應用場景

    波形圖像。在信號處理方面,示波器首先將接收到的被測信號進行放大和濾波等處理,以確保信號的準確性和穩定性。然后,通過A/D轉換技術,將模擬信號轉換為數字信號,以便進行后續的數字處理和顯示。二、應用場景
    發表于 10-23 14:22

    測試接收機的技術原理和應用場景

    、數字信號、射頻信號等,并進行相應的測量和分析。此外,它還具有多種優秀性能,如高靈敏度、低噪聲、寬頻帶等,以及本振抑制、鏡像抑制等能力,能夠有效抑制干擾信號。二、應用場景測試接收機在多個領域都有廣泛
    發表于 12-03 14:23

    MOS管的應用場景

    mos管的應用場景,你了解么?低壓MOS管可稱為金屬氧化物半導體場效應管,因為低壓MOS管具有良好的開關特性,廣泛應用在電子開關的電路中。如開關電源,電動馬達、照明調光等!下面銀聯寶科技就跟大家一起
    發表于 11-14 09:24

    CP-OFMD調制波形應用場景

    圖1、5G的應用場景5G使用5G多載波波形來智能手機,辦公室,工廠自動化,智能電網,智慧城市,物聯網,M2M,M2X等多種設備提供應用平臺。5G新無線電(5G NR)根據應用場景可分為三大類服務
    發表于 06-18 06:51

    ccs v6.1支持什么樣的應用場景

    你好,我有個應用場景是:工程中有一個源文件在每次對工程build時都需要重新編譯,即使這個源文件沒有任何修改,也要重新編譯,而其它的源文件只有被修改過時才重新編譯。這種應用場景,在我使用ccs v3.3時可以通過配置實現,而我在ccs v6.1中沒有找到相關設置在哪,或者
    發表于 07-31 10:48

    =>的使用場景有哪些

    使用場景
    發表于 10-27 13:25

    小容量OLT應用場景分析

    基礎設施投入,幫助運營商節省TCO。    圖3:輕資產運營商應用場景  在這種場景中,客戶對成本敏感,對帶寬要求低,部署小容量OLT很容易節省初始投資,實現客戶快速部署、靈活擴展的需求
    發表于 12-03 14:29

    volatile關鍵字應用場景及示例

    volatile關鍵字1.應用場景2.示例1.應用場景volatile關鍵字分析,往往應用在三種場合1)多線程編程共享全局變量的時候,該全局變量要加上volatile進行修飾,讓編譯器不要優化該變量
    發表于 08-24 07:21

    ARM的技術特征是什么?應用場景有哪些?

    ARM的技術特征是什么?應用場景有哪些?
    發表于 11-05 07:32

    MS9331的應用場景是什么?

    MS9331的應用場景是什么?
    發表于 02-11 06:41

    SMT組裝工藝流程的應用場景

    工藝流程的應用場景。 01單面純貼片工藝 應用場景: 僅在一面有需要焊接的貼片器件。 02雙面純貼片工藝 應用場景: A/B面均為貼片元件。 03單面混裝工藝 應用場景: A面有貼
    發表于 10-20 10:31

    labview 和 wincc 的區別 使用場景

    labview 和 wincc 的區別 使用場景 都是上位機軟件,都可以做監控軟件 wincc的名氣也比較大 對比的資料較少 寫這些文章的人,從自己的從事的行業出發,帶有自己的思維 使用的場景 肯定
    發表于 10-27 18:01
    主站蜘蛛池模板: 三级免费黄色片| 六月综合| 偷偷久久| 无限国产资源| 色噜噜噜| 农村三级毛片| 国产视频久| 国产网红主播精品福利大秀专区| 加勒比一本大道香蕉在线视频| 成人激情综合网| 亚洲专区一区| 国产欧美另类第一页| 男人的视频网站| 一区二区在线观看高清| 好色亚洲| 四虎影视国产精品| 女人张开腿让男人做爽爽| 国产人成精品免费视频| 午夜影院入口| 国产精品自在线天天看片| www.啪啪.com| 亚洲伊人精品综合在合线| 日本特黄a级高清免费大片18| 伦理一区二区三区| fc2 ppv sss级素人美女| 欧美女同在线| 亚洲一区二区三区中文字幕5566| 一区二区三区国模大胆| 欧美性受xxxx极品| 成人精品亚洲| 国产理论在线观看| 免费的黄视频| 色男人的天堂| 国产成人优优影院| 久久福利精品| 绝色村妇的泛滥春情| 色综合天天综合网国产人| 国产欧美久久久精品影院| 欧美天天综合| 亚a在线| 四虎电影院|