Netflix開源Polynote:對標Jupyter,一個筆記型電腦運行多種語言
- 2019 年 11 月 12 日
- 筆記
機器之心報道
參與:一鳴
使用類似 Jupyter Notebook 進行數據分析和機器學習是近來較為方便靈活的開發方式,但是 Jupyter Notebook 缺乏對多種語言的原生支援,在管理筆記型電腦內的依賴、數據可視化等方面有所欠缺。近日,NetFlix 公司將其數據分析和機器學習開發工具 Polynote 開源。這一工具支援多語言在一個筆記型電腦程式內運行,還增加了很多新特性,值得讀者朋友嘗試使用。
談到數據科學領域的開發工具,Jupyter 無疑是非常知名的一種。它具有靈活高效的特點,非常適合進行開發、調試、分享和教學。近日,Netflix(奈飛)居然也玩起了跨界,他們開源了一個名為 Polynote 的程式。類似於 Jupyter,Polynote 可以進行開發工作,但是能夠支援包括 Python 在內的多種程式語言。
據奈飛在 Medium 的文章中介紹,Polynote 開發的目的是為了給數據科學家和機器學習研究者提供一個筆記型電腦環境,使他們能夠自由且無縫地和奈飛本身基於 JVM 的機器學習平台結合。這一平台很大程度上使用的是 Scala 語言,還有一些基於 Python 的機器學習和可視化程式碼庫。Polynote 之前已經在奈飛內部的團隊中使用了,現在他們希望將其開源,以促進相關研究的發展。
Polynote 的五大特性
據介紹,Polynote 有五個特性值得關注。
支援多語言
和 Jupyter Notebook 不同,Polynote 本身支援多種語言編程。除了對 Scala 語言的一級支援,Polynote 還在一個筆記型電腦內支援多語言運行,包括 Scala、Python、SQL 和 Vega,而且這些語言都具備自動補全功能。
實現多語言支援的是 polyglot。它可以讓用戶在不同的塊中寫不同的程式碼。另外,每個程式碼塊都會接受符合輸入名的變數,並返回要求的變數給出下一段程式碼,不管這些程式碼是什麼樣的語言。這樣可以讓用戶按照需要選擇某種語言中最合適的工具。

polyglot 支援多種語言一起運行。
編輯功能增強
除了和 Jupyter Notebook 一樣可以在程式碼編輯中插入文本編輯,Polynote 可以很容易地插入 LaTex 公式。

另外,文本編輯方面有常用的編輯功能。

運行增強
在運行的時候,運行的程式碼塊和程式碼行會顯示出來,方便開發者查看運行情況。

如圖所示,Polynote 在運行時會顯示當前運行的程式碼塊和程式碼,以及完成某個任務需要的時間。
依賴和配置管理
Polynote 支援對筆記型電腦的依賴和配置進行管理,這樣可以避免很多運行時的問題。

如上圖所示,polynote 的配置和依賴管理介面類似於 PyCharm 等高級 IDE,可以自行改變各種依賴的版本和安裝方法。和 Jupyter Notebook 不同,這些配置是不需要外部文件或集群伺服器進行的。
數據可視化
Polynote 和兩個非常著名的數據可視化工具進行了結合,它們分別是 Vega 和 Mataplotlib。Polynote 同時也對數據挖掘有著天然支援,這包括數據表視圖、表格檢查工具、圖表構建工具,以及對 Vega 的支援。

數據位置有一個按鈕,可以展示圖表。

通過工具構建圖表。
此外,Polynote 還有一些有趣的小特性,如將程式碼塊的位置記錄,使得程式碼庫能夠按照順序運行,以保證可復現性。
安裝方法
目前,Polynote 是一個 notebook 程式,因此用戶可以在本地使用,或搭建網路服務。
首先,用戶需要下載這一基於 JVM 的伺服器應用(用來提供網路服務代理)。如果要在本地環境下使用,用戶可以從開源列表中找到最新版本並下載名為「polynote-dist.tar.gz」的文件(文件可以從 Assets 文件下找到)。
tar -zxvpf polynote-dist.tar.gz cd polynote
下載後進入目錄,然後進行準備。
準備內容目前有以下一些:
- Polynote 只在 OSX 和 Linux 進行了測試,用 Chrome 瀏覽器進行代理,因此作者們希望用戶能夠及時回饋意見;
- 如果用戶需要 Spark 支援,則需要安裝 Apache Spark;
- 用戶需要使用 Python3,而不是 Python2。
還有一些其他的依賴,安裝程式碼如下:
pip3 install jep jedi pyspark virtualenv
如果要進行配置,用戶需要拷貝 config-template.yml 文件到 config.yml 文件中,並取消需要修改的配置上的注釋功能。
運行時,運行以下文件(在下載的文件中):
./polynote.py
參考鏈接:
https://medium.com/netflix-techblog/open-sourcing-polynote-an-ide-inspired-polyglot-notebook-7f929d3f447
https://github.com/polynote/polynote
官網:https://polynote.org (https://polynote.org/)
第三屆機器之心「Synced Machine Intelligence Awards」年度獎項評選正在進行中。本次評選設置六大獎項,重點關注人工智慧公司的產品、應用案例和產業落地情況,基於真實客觀的產業表現篩選出最值得關注的企業,為行業帶來實際的參考價值。
參選報名日期:2019 年 10 月 23 日~2019 年 12 月 15 日
評審期:2019 年 12 月 16 日~2019 年 12 月 31 日
獎項公布:2020 年 1 月

點擊https://mp.weixin.qq.com/s/hJad_y-xZxLrgwgx6h8rGw?scene=25#wechat_redirect,查看更多詳情並報名參選。