自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

GitHub標(biāo)星2.6K!Jupyter“慌了”!Netflix發(fā)布新開發(fā)工具Polynote

新聞 開發(fā)工具
近日,Netflix宣布開源Polynote,Polynote是Netflix自家使用的多語言筆記本環(huán)境,Polynote為數(shù)據(jù)科學(xué)家和機(jī)器學(xué)習(xí)研究人員提供了一個筆記本環(huán)境,允許他們將基于JVM的ML平臺與Python生態(tài)系統(tǒng)中流行的機(jī)器學(xué)習(xí)和可視化庫無縫集成。

近日,Netflix宣布開源Polynote,Polynote是Netflix自家使用的多語言筆記本環(huán)境,Polynote為數(shù)據(jù)科學(xué)家和機(jī)器學(xué)習(xí)研究人員提供了一個筆記本環(huán)境,允許他們將基于JVM的ML平臺(此類平臺大多使用Scala構(gòu)建)與Python生態(tài)系統(tǒng)中流行的機(jī)器學(xué)習(xí)和可視化庫無縫集成。 

GitHub標(biāo)星2.6K!Jupyter“慌了”!Netflix發(fā)布新開發(fā)工具Polynote

它已經(jīng)在Netflix內(nèi)部廣泛使用,而且Netflix正在研究如何將Polynote和其他平臺集成,下面一起詳細(xì)來看看Polynote有哪些牛掰的功能特性:

功能概述

可重復(fù)性

Polynote的兩個指導(dǎo)原則是可復(fù)制性和可見性。為了實(shí)現(xiàn)這兩大特性,我們最早的設(shè)計(jì)決策之一是從頭開始構(gòu)建Polynote的代碼解釋,而不是像傳統(tǒng)筆記本一樣依賴REPL。

我們認(rèn)為,盡管REPL總體上不錯,但它們根本不適合筆記本電腦。為了了解REPL和筆記本的問題,讓我們看一下典型筆記本環(huán)境的設(shè)計(jì)。

筆記本是單元格的有序集合,每個單元格可以保存代碼或文本。每個單元格的內(nèi)容可以獨(dú)立修改和執(zhí)行。單元格可以重新排列,插入和刪除。這還可以取決于筆記本電腦中其他單元的輸出。

將此與REPL環(huán)境進(jìn)行對比會發(fā)現(xiàn)。在REPL會話中,用戶把表達(dá)式一次一個地輸入提示符。一旦求值,表達(dá)式及其求值結(jié)果是不可變的,求值結(jié)果將附加到下一個表達(dá)式可用的全局狀態(tài)。

不幸的是,這兩個模型之間的脫節(jié)意味著一個典型的notebook環(huán)境,它使用一個REPL會話來評估單元代碼,當(dāng)用戶與notebook交互時,會導(dǎo)致隱藏狀態(tài)積累。單元可以按任何順序執(zhí)行,從而改變這種全局隱藏狀態(tài),從而影響其他單元的執(zhí)行。通常情況下,筆記本無法從頂部可靠地重新運(yùn)行,這使得它們很難復(fù)制并與他人共享。這種隱藏狀態(tài)也讓用戶很難推斷筆記本上運(yùn)行了什么。

在其他筆記本中,隱藏狀態(tài)意味著一個變量在其單元格被刪除后仍然可用。

在 Polynote 筆記本中,沒有隱藏狀態(tài),被刪除的單元格變量不再可用。

從頭編寫Polynote的代碼解釋允許我們消除這種全局的、可變的狀態(tài)。通過跟蹤每個單元中定義的變量,Polynote根據(jù)在其上運(yùn)行的單元構(gòu)建給定單元的輸入狀態(tài)。使單元格的位置在其執(zhí)行語義中變得重要,這也加強(qiáng)了最小驚奇原則,允許用戶從上到下閱讀筆記本。它通過讓筆記本持續(xù)運(yùn)行,從而確保其可重復(fù)性。

編輯改進(jìn)

Polynote提供了諸如交互式自動完成和參數(shù)提示、錯誤高亮顯示以及支持LaTeX富文本編輯器等類似ide的特性。

可見性

Polynote UI通過顯示內(nèi)核狀態(tài)、突出顯示當(dāng)前正在運(yùn)行的單元代碼和當(dāng)前正在執(zhí)行的任務(wù),從而讓用戶對內(nèi)核狀態(tài)的直觀了解。

多語言

筆記本中的每個單元格都可以用不同的語言編寫,變量可以在它們之間共享。目前支持Scala、Python和SQL語言類型。

依賴項(xiàng)和配置管理

Polynote 將配置和依賴項(xiàng)信息直接存入筆記本,而不依賴于外部文件或集群 / 服務(wù)器級別的配置。

數(shù)據(jù)可視化

本機(jī)數(shù)據(jù)探索和可視化幫助用戶了解更多關(guān)于他們的數(shù)據(jù),而不會弄亂他們的筆記本。與matplotlib和Vega的集成允許高級用戶通過漂亮的可視化效果進(jìn)行交互。

接下來,我們將更深入地了解Polynote的功能:

安裝

安裝過程是按照它的指南文檔進(jìn)行的,我還安裝了matplotlib

  1. pip3 install matplotlib 

如果你打算嘗試它的多語言功能,則需要再添加一個環(huán)境變量:

  1. export PYSPARK_ALLOW_INSECURE_GATEWAY=1 

如果沒有,你就會收到以下提示:

GitHub标星2.6K!Jupyter“慌了”!Netflix发布新开发工具Polynote

編輯體驗(yàn)

 

使用筆記本級別的“配置和依賴項(xiàng)”設(shè)置可以輕松地從maven存儲庫中提取依賴項(xiàng),包括使用HTTP get從Netflix博客獲取文本的請求:

GitHub标星2.6K!Jupyter“慌了”!Netflix发布新开发工具Polynote

GitHub标星2.6K!Jupyter“慌了”!Netflix发布新开发工具Polynote

自動完成功能適用于從Maven存儲庫中提取的庫:


GitHub标星2.6K!Jupyter“慌了”!Netflix发布新开发工具Polynote

但是,lambda函數(shù)的自動完成功能似乎不起作用:

GitHub标星2.6K!Jupyter“慌了”!Netflix发布新开发工具Polynote

Spark示例

 

在這個字?jǐn)?shù)統(tǒng)計(jì)示例中,我們從HTTP獲取文本,對其進(jìn)行標(biāo)記,并保留所有大于4個字符的標(biāo)記。

GitHub标星2.6K!Jupyter“慌了”!Netflix发布新开发工具Polynote

Spark也可以輕松配置“配置和依賴”設(shè)置:

GitHub标星2.6K!Jupyter“慌了”!Netflix发布新开发工具Polynote

切換到Python

 

現(xiàn)在,我們切換到python,使用panda和matplotlib來繪制條形圖,只選取前10個單詞。

GitHub标星2.6K!Jupyter“慌了”!Netflix发布新开发工具Polynote

運(yùn)行還算順利,但是有時候會彈出以下警告:

GitHub标星2.6K!Jupyter“慌了”!Netflix发布新开发工具Polynote

當(dāng)這種情況發(fā)生時,接口停止工作,惟一的解決方法就是終止Polynote進(jìn)程并重啟。

 

Polynote是迄今為止我嘗試過的Spark和Scala最好的筆記本。雖然有些小故障,但是我相信很快就會修復(fù)

GitHub标星2.6K!Jupyter“慌了”!Netflix发布新开发工具Polynote

目前,Polynote已經(jīng)在GitHub上標(biāo)星2.6K,177個Fork(GitHub地址:https://github.com/polynote/polynote)如果對這個項(xiàng)目感興趣,可以直接訪問GitHub的源代碼進(jìn)行嘗試。

 

責(zé)任編輯:張燕妮 來源: 開源最前線
相關(guān)推薦

2019-11-13 15:14:18

JupyterNetflixPolynote

2019-04-28 09:36:11

GitHub代碼開發(fā)者

2014-04-28 09:35:19

紅帽開源軟件

2021-11-26 05:57:12

開源備份Restic

2021-04-09 16:25:00

GitHub代碼開發(fā)者

2014-04-02 09:03:39

紅帽

2021-10-21 05:57:33

網(wǎng)盤開源云盤系統(tǒng)

2020-03-23 15:35:36

Java工具類Hutool

2020-02-20 10:00:04

GitHubPyTorch開發(fā)者

2021-09-18 11:28:29

GitHub代碼開發(fā)者

2013-07-17 15:39:39

Github詳解

2021-09-04 15:42:17

GitHub面試程序員

2020-11-10 10:46:57

開源后臺管理系統(tǒng)Base Admin

2019-09-16 09:58:16

GitHub搶票Python

2021-04-26 14:44:44

程序員技能開發(fā)者

2019-12-24 11:13:02

GitHub代碼開發(fā)者

2022-03-25 22:57:37

系統(tǒng)設(shè)計(jì)架構(gòu)

2011-03-15 09:43:27

OperaWeb

2010-09-29 14:06:09

Visual Basi

2009-04-03 11:12:43

PalmwebOS開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號