编者按:本文主要介绍什么是 Notebook,Notebook 在数据科学领域的应用的重要性与优势,以及数据科学家/算法团队在选择 Notebook 时需考虑哪些关键因素。同时,基于 Notebook 的筛选考量维度,对常见的 Notebook 进初步对比分析,为数据科学家、算法工程师提供参考。

Notebook 是一种基于网页的交互式计算方式,用户可在 Notebook 中进行开发、文档编写、运行代码、展示结果以及结果分享。与传统非交互式开发环境相比,Notebook 最大的特点是允许逐单元格(cell)执行脚本。Notebook 是数据科学领域至关重要的工具,数据科学家使用 Notebook 进行实验和探索任务。近年来随着大数据的发展,业务分析师等非技术人员也越来越多地开始使用 Notebook。

01. Notebook 的核心优势

在传统的非交互式开发环境中,需要将开发人员编写完成的程序编译为可执行文件,然后完全运行该可执行文件,如出现错误,则需要返回编辑器键入新的代码,再重新运行全部代码。

而在 Notebook 中,开发人员可以逐单元格(cell)编写和运行程序,出现错误时,仅需调整并运行出现错误的 cell,正确运行的 cell 已保存在内存中,无需重复运行,极大提升了开发效率。Notebook 也因此深受数据科学家和算法工程师的喜爱,被广泛应用于 AI 算法开发训练领域。以深度学习的实验为例,模型的训练通常需要几小时至十几小时,运用 Notebook 进行模型调试,进行微小更改后,无需对模型全部进行重新训练,可极大节省数据科学家和算法工程师的时间。

02. Notebook 的基本构成

最早的 Notebook 是 1988 年推出的 Mathematica。早期的 Notebook 主要用于学术领域,随着近十年来 Notebook 逐渐由学术界进入到产业领域,越来越多的 Notebook 涌现在市场中,如开源的 Jupyter、Apache Zeppelin,商业化托管的 Colab、JetBrains Datalore、IDP Studio** 等,支持混合多语言的 Polynote 等。

尽管 Notebook 的种类众多,其最核心的构成均包含两大组件:

  • 一是前端的客户端,由有序的输入/输出单元格列表构成,用户可以在这些单元格中输入代码、文本等 。

  • 另一组件是后端内核(Kernel),其可配置在本地或云端。代码由前端传递给 Kernel,Kernel 运行代码后将结果返还给用户。Kernel 决定了 Notebook 的计算性能,IDP Studio 采用 Rust 语言实现重写 Kernel,Notebook 启动速度和资源配置速度提升了一个数量级。

(** 本文中仅使用 IDP Studio 概括性指代 IDP Studio 中 notebook 交互式编程环境,IDP Studio 中其他模型管理、模型发布等插件功能不在本文讨论范围)

03. 如何选择适合的 Notebook

不同的 Notebook 各具特点,数据科学家和算法工程师在实际使用时需根据自身核心诉求选择最合适的 Notebook 工具。我们基于对大量数据科学家的访谈,总结出数据科学家在 Notebook 的选择中关心的四大核心问题,供广大算法开发和数据挖掘人员作为工具筛选标准的参考。

1) 基本功能的完备和易用性

  • 安装部署:对于新手数据科学家来说,商业化托管的 Notebook(如 IDP Studio, Colab, JetBrians Datalore)采用 SaaS 模式,开箱即用,更加易于安装上手。开源 Notebook 需使用者自行安装,通常本地安装相对容易,但若安装、运行到远程服务器上,则具有较大挑战。

  • 版本管理:无论算法模型,还是算法接口,都会需要不断的更新和优化,版本的管理至关重要。不同 Notebook 版本管理功能的完备和易用性具有差异,如 Jupyter 等开源产品支持 Git 进行版本管理;IDP Studio 等在支持 Git 的同时具有内置的版本管理功能,自动进行历史版本的保存,而 Colab 暂不支持版本管理功能。

  • 语言支持:机器学习和数据科学领域常用的语言有 Python、SQL、R 等,Python 遥遥领先,根据 Kaggle2021 年对逾 25,000 名数据科学家的调研,84%采用 Python。目前常见的 Notebook 均对 Python 有较好的支持,但对于第二大和第三大常用语言 SQL 和 R 的支持深度却不尽相同。因此,数据科学家在选择工具时,需考虑 Notebook 是否天然支持自己常用的语言。如 Jupyter 可较好支持 Python、Julia 和 R 语言,但在支持 SQL 时需通过安装插件、自行配置;IDP Studio 则天然深度支持 Python 和 SQL, 对其他非常用语言目前还尚未支持;若需要对 Scala 及其他多语言均有较好支持,则可以考虑 Polynote。

2) 效率提升

在基本功能的基础上,数据科学家关注 Notebook 是否可以帮助其减少非核心工作,提升开发效率。

  • 代码辅助:代码辅助可以极大程度上帮助开发者节约时间,提升效率。主要的代码辅助包括代码补全、错误提示、快速修复、定义跳转等。开源工具具有丰富的生态体系,普遍需要依托第三方插件实现代码辅助功能。商业托管类产品内置代码辅助功能,但功能侧重点和性能方面具有,其中代码补全是普遍的功能。IDP Studio 在代码辅助功能上最为全面,速度和性能方面相对体验更优,但对于部分第三方库的函数的补全还有待完善。

  • 数据源的接入:数据是数据科学家日常工作的基石,通常数据源分散在各地,对数据的接入带来极大挑战。是否可以便捷接入数据至关重要,数据科学家需根据自身数据源的分布,选择合适的 Notebook。目前,Jupyter、Zeppelin 开源软件需数据科学家自行配置接入;Colab 仅支持 Google Drive 中的数据接入;IDP Studio 已对主流数据源进行了集成对接,使用者可一键式接入数据源。

  • 环境管理:先对成熟的数据科学家和算法团队对便捷的环境设置和环境管理具有更要的要求,他们希望能够快速配置环境,同时希望能够构建并管理一个可以在个人和团队间进行共享的一致性环境。不同 Notebook 对于环境配置和复用的支持力度不同,综合来看,天然支持团队协作的 Datalore 等在环境管理方面易用性稍高。使用者可根据自身对环境管理的需求,进行选择。

3) 加速协作

  • 跨团队的协作分析:算法和业务分析的耦合日益深入,算法开发人员希望能够将结果以可交互的可视化报告的形式分享给业务人员,实现算法团队和业务团队的高效协同分析。对于跨团队协作有较强需求的数据科学家,可更多关注今年来新推出的、在功能定位上突出团队协作的 Datalore、IDP Studio 等 Notebook。

  • 协作编程:除跨团队协作外,Notebook 的共享、实时协作编辑和评论,也成为数据科学家们日渐突出的需求。目前看来,海外数据科学家对该功能的需求更加强烈。目前常见 Notebook 均支持一定程度的协作编程,但在实时性和易用性上存在差异。

4) 成本

成本通常是影响数据科学家和算法工程师选择的重要考量因素,但在 Notebook 的选择领域,我们认为该因素的重要性相对低于性能和易用性,因为即时商业化的 Notebook,对于个人使用者通常提供免费的基础版本。

我们很高兴看到 Notebook 愈加受欢迎,并逐渐成为算法团队和业务团队的沟通桥梁。Notebook 在产业界应用也进一步深入,为数据科学家们提供了良好的算法开发、试验和探索等的支持。


更多技术内容,欢迎关注:Baihai IDP

一文读懂数据科学Notebook相关推荐

  1. 一文读懂数据中台技术架构

    一文读懂数据中台技术架构 https://www.toutiao.com/i6836923386560512516/?tt_from=weixin&utm_campaign=client_sh ...

  2. 一文读懂“数据分发服务DDS”(Data Distribution Service,RTPS,OMG)

    一文读懂"数据分发服务DDS"(Data Distribution Service,RTPS,OMG) https://blog.csdn.net/DDS_CSIT/article ...

  3. 一文读懂数据要素(附研究文档大合集下载)

    最近数据要素这个词不断出现在大数据圈里也同时出现在公众视野.各个研究机构,政府部门都在重点关注数据要素及其作用及发展,并提供各类政策性的指引,那么什么是数据要素呢? 本文将综合目前主流的研究进行归纳整 ...

  4. Get!读懂数据科学和机器学习,看这文就够了!

    作者 | luminousmen,机器人专家,擅长Python.大数据.机器学习等 译者 | Arvin,责编 | 王晓曼 头图 | CSDN下载自视觉中国 出品 | CSDN(ID:CSDNnews ...

  5. 独家 | 一文读懂数据质量和验证检查(附代码)

    作者:Vinod Kumar 翻译:季洋 校对:王雨桐 本文约1600字,建议阅读8分钟. 本文主要讲述关于数据质量和验证检查的实例,以及运用Apache Spark和Scala采用编码来确保数据质量 ...

  6. 超级干货 :一文读懂数据可视化

    前言 数据可视化,是指将相对晦涩的的数据通过可视的.交互的方式进行展示,从而形象.直观地表达数据蕴含的信息和规律. 早期的数据可视化作为咨询机构.金融企业的专业工具,其应用领域较为单一,应用形态较为保 ...

  7. 一文读懂 | 数据中台如何为企业赋能?

    上一篇在[案例篇]数据中台的行业应用场景中介绍了数据中台在一些行业里的应用场景,但是很多管理者和开发者对于数据中台到底是如何工作的,还只有个很模糊的概念.本次就从互联网企业的视角,看看数据中台是如何为 ...

  8. 从单体到Flink:一文读懂数据架构的演变

    导读:近年来随着开源社区的发展,越来越多新的技术被开源,例如雅虎的Hadoop分布式计算框架.UC伯克利分校的Apache Spark等,而伴随着这些技术的发展,促使着企业数据架构的演进,从传统的关系 ...

  9. 一文读懂数据治理怎么做

    股份制改革对我国银行业来说只是一个开始,企业在风险管理.创造价值等方面还有很长的路要走.风险管理要求提供精准的数据模型.创造价值要求充分银行数据资产,这是数据治理的外部推动因素.此外,随着第三次工业革 ...

最新文章

  1. 二进制安装mysql5.6_轻松使用二进制安装Mysql5.6
  2. percona-xtrabackup工具实现mysql5.6.34的主从同步复制
  3. Jenkins + Gitlab + Ansible--playbook 代码上线流程
  4. java中String、StringBuffer equals使用注意
  5. 不学无数——适配器模式
  6. ios开发之小总结「类与对象的判断方法和遍历字典的方法」
  7. 向量的范数(有例子,简单好理解)
  8. Prometheus Cadvisor 监控k8s
  9. System Repair Engineer (SREng) 2.6 正式发布
  10. Tuxera NTFS2022产品密钥 mac读取ntfs格式驱动程序
  11. canvas 画空心圆 实心圆
  12. 恢复扩容U盘实际容量 检查正版U盘 U盘量产工具 U盘修复工具使用方法
  13. Linux网络知识--DHCP服务(理论部分)
  14. 【数据异常校验】拉依达准则( PauTa Criterion 或 3σ准则) 处理异常数据
  15. eclipse报错:The project description file (.project) for ‘common‘ is missing.
  16. 前端开发中自己常见问题
  17. 沪江网校前端架构漫谈
  18. Codeforces 777D Cloud of Hashtags(思维 + 暴力)
  19. LeetCode77. 组合Golang版
  20. CSS和js和HTML一起做出网页版别踩白块游戏

热门文章

  1. 利用viewbag把数据对象传到前端并转换成json对象,及解决json字符串被转义问题
  2. pymysql模块安装后,import pymysql找不到?
  3. Exchange 2007 被攻击
  4. XMLElement,XMLDocument 用法
  5. HAL库 output level 和 pull up/ pull down 的区别
  6. 静态、动态、伪静态的URL结构到底哪种更利于SEO
  7. 我希望我们在Java中拥有十大锡兰语言功能
  8. 蒟蒻重返c++,学海拾贝
  9. CreateProcess 的正确关闭
  10. Python负数除法取余操作