对标Jupyter,Netflix开源Polynote:一个笔记本运行多种语言

2019 年 11 月 11 日 CVer

点击上方“CVer”,选择加"星标"或“置顶”

重磅干货,第一时间送达

本文转载自:机器之心    参与:一鸣

使用类似 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/)


重磅!CVer学术交流群已成立


扫码添加CVer助手,可申请加入CVer-目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪&去雾&去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索等群。一定要备注:研究方向+地点+学校/公司+昵称(如目标检测+上海+上交+卡卡)

▲长按加群


▲长按关注我们

麻烦给我一个在看!

登录查看更多
0

相关内容

Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。
【2020新书】现代C++初学者指南,301页pdf
专知会员服务
159+阅读 · 2020年7月24日
【Java实现遗传算法】162页pdf,Genetic Algorithms in Java Basics
专知会员服务
43+阅读 · 2020年7月19日
【干货书】Python语音计算导论,408页pdf
专知会员服务
101+阅读 · 2020年7月12日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
免费!Google Colab现已支持英伟达T4 GPU
新智元
5+阅读 · 2019年4月25日
34个最优秀好用的Python开源框架
专知
9+阅读 · 2019年3月1日
爱奇艺基于AI的移动端自动化测试框架的设计
前端之巅
18+阅读 · 2019年2月27日
已删除
将门创投
18+阅读 · 2019年2月18日
Python用法速查网站
Python程序员
17+阅读 · 2018年12月16日
数据科学、机器学习IDE概览
论智
9+阅读 · 2018年11月12日
Star-Transformer
Arxiv
5+阅读 · 2019年2月28日
3D Face Modeling from Diverse Raw Scan Data
Arxiv
5+阅读 · 2019年2月13日
Music Transformer
Arxiv
5+阅读 · 2018年12月12日
Arxiv
3+阅读 · 2018年6月19日
Arxiv
5+阅读 · 2017年7月23日
VIP会员
相关VIP内容
【2020新书】现代C++初学者指南,301页pdf
专知会员服务
159+阅读 · 2020年7月24日
【Java实现遗传算法】162页pdf,Genetic Algorithms in Java Basics
专知会员服务
43+阅读 · 2020年7月19日
【干货书】Python语音计算导论,408页pdf
专知会员服务
101+阅读 · 2020年7月12日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
相关资讯
免费!Google Colab现已支持英伟达T4 GPU
新智元
5+阅读 · 2019年4月25日
34个最优秀好用的Python开源框架
专知
9+阅读 · 2019年3月1日
爱奇艺基于AI的移动端自动化测试框架的设计
前端之巅
18+阅读 · 2019年2月27日
已删除
将门创投
18+阅读 · 2019年2月18日
Python用法速查网站
Python程序员
17+阅读 · 2018年12月16日
数据科学、机器学习IDE概览
论智
9+阅读 · 2018年11月12日
Top
微信扫码咨询专知VIP会员