神器Jupyter Notebook如何適應數據科學的發展方向
- 2020 年 4 月 1 日
- 筆記
01
介紹
原文:文末閱讀原文
作者:Lj Miranda
編譯:HuangweiAI
這是關於Jupyter Notebook生態系統的三篇博文的第一篇。這篇文章將討論數據科學的前景,以及推動我們的工具發展的力量。
下面將回顧我在數據科學中經常使用的工具——Jupyter Notebook,以及我在是如何使用它們的。我把這篇文章分為三部分:
- 第一部分:數據科學(本文)。我想看看在過去的幾年裡,數據科學的實踐是如何變化的。然後,我將強調三種主要力量,它們改變了我今天使用Notebook的方式。
- 第二部分:2020年我如何使用Jupyter Notebook。考慮到這些變化,Jupyter Notebook生態系統中出現了新的工具。我想分享我喜歡(不喜歡)它們的地方,以及我如何在日常生活中使用它們。
- 第三部分:Jupyter Notebook的未來(即將到來)。在這裡,我將分享我對Jupyter Notebook的願望清單,仍然可以填補的潛在空白,以及為什麼Jupyter Notebook仍然很棒!
02
現在的數據科學
數據科學領域正在迅速變化。我們現在已經進入了這樣一個時代:「21世紀最性感的工作」和「數據是新石油」之類的說法已經過時,取而代之的是更現實的業務問題和基於技術的挑戰。我認為這種變化是雙重的:我們現在需要支援(1)生產分析和實驗的需求,以及(2)快速採用雲技術。

第一,生產的需要。在軟體工程的生命周期中,創建數據產品或者部署實驗工件,這些年來都在增長。隨著機器學習工程師和數據科學軟體開發人員的崛起,越來越多的工程類工作被採用,這就是明證。此外,分析不再局限於出版物或圖表,因為現在對複製實驗和部署人工製品的需求越來越大。
接下來,數據的指數增長需要採用雲技術。我們不能僅僅使用我們自己的筆記型電腦電腦來載入Pandas的1TB數據集!Docker和Kubernetes等工具的流行使我們能夠以前所未有的水平擴展數據處理工作負載。採用雲意味著我們在管理工作負載時要考慮可伸縮性、資源供應和基礎設施。然而,之前的Jupyter Notebook生態系統,儘管它是數據科學家工具箱中的一個重要部分,並不意味著有相應的變化:

正如我所說的,我們所知道的Jupyter Notebook並不意味著這些變化。它們是用來探索的,不是用來生產的。它們應該在一台機器上運行,而不是在集群中。然而,在過去的五年中,Jupyter Notebook的生態系統已經發展壯大:我們現在有了JupyterLab、一些插件、用於其他語言的新內核,以及可供我們使用的第三方工具。當然,我們仍然可以通過在終端中輸入jupyter Notebook來運行筆記型電腦,但是現在已經遠遠不止這些了!
這就引出了一個問題:是什麼力量促使了這些變化?,我們如何利用這個更大的筆記型電腦生態系統來應對當今數據科學的變化?
03
三個方向的變化
Jupyter Notebook的生態系統正在成長,我認為這是由三種力量驅動的:
- 在雲上做實驗:大數據需要大量的計算和存儲,而一般的消費級機器並不總是能夠做到這一點。
- 支援開發人員工作流程:越來越多的數據科學團隊開始採用軟體工程的最佳實踐——版本控制、gitfow、拉請求等等。
- 從分析到生產的快速轉變:在受控環境下測試假設是不夠的。為分析而編寫的軟體應該可以很容易地為生產重用。

朝著雲優先的環境發展意味著我們可以在比我們更強大的機器上執行基於notebook的任務。例如,託管的notebook實例使我們能夠從遠程伺服器運行Jupyter notebook,而無需操作和設置。另一方面,朝著更加生產工作流程的方向發展,為我們提供了一組工具,將基於記事本的任務賦予軟體工程實踐。在這篇文章的下一部分,我們將看到更多這樣的工具。
最後,請注意,工具的發展並不依賴於單個實體或組織。正如我們將在後面看到的,填補這些空白可能來自於那些提供第三方插件的個人或者那些提供管理服務的組織。
04
總結
在本系列的第一部分中,我們研究了數據科學領域增長的兩個驅動因素:(1)雲計算的採用,以及(2)生產需求的增長。我們發現Jupyter notebook只佔了這個生態系統的一小部分,也就是它通常用於探索(而不是生產),並且只運行在我們的本地機器上(不是在雲中)。
然後,使用相同的框架,我們確定了三種變化的力量,使Jupyter筆記型電腦生態系統得以發展:在雲上增加實驗,支援開發人員工作流,以及更快地從分析轉向生產。這些力量可能帶來了新工具、插件和類似記事本的產品的開發,以滿足這些差距。