共计 3053 个字符,预计需要花费 8 分钟才能阅读完成。
【编者按:本文次要介绍什么是 Notebook,Notebook 在数据迷信畛域的利用的重要性与劣势,以及数据科学家 / 算法团队在抉择 Notebook 时需思考哪些关键因素。同时,基于 Notebook 的筛选考量维度,对常见的 Notebook 进初步比照剖析,为数据科学家、算法工程师提供参考。】
Notebook 是一种基于网页的交互式计算形式,用户可在 Notebook 中进行开发、文档编写、运行代码、展现后果以及后果分享。与传统非交互式开发环境相比,Notebook 最大的特点是容许逐单元格(cell)执行脚本。Notebook 是数据迷信畛域至关重要的工具,数据科学家应用 Notebook 进行试验和摸索工作。近年来随着大数据的倒退,业务分析师等非技术人员也越来越多地开始应用 Notebook。
1. Notebook 的外围劣势
在传统的非交互式开发环境中,须要将开发人员编写实现的程序编译为可执行文件,而后齐全运行该可执行文件,如呈现谬误,则须要返回编辑器键入新的代码,再从新运行全副代码。
而在 Notebook 中,开发人员能够逐单元格(cell)编写和运行程序,呈现谬误时,仅需调整并运行呈现谬误的 cell,正确运行的 cell 已保留在内存中,无需反复运行,极大晋升了开发效率。Notebook 也因而深受数据科学家和算法工程师的青睐,被广泛应用于 AI 算法开发训练畛域。以深度学习的试验为例,模型的训练通常须要几小时至十几小时,使用 Notebook 进行模型调试,进行渺小更改后,无需对模型全副进行从新训练,可极大节俭数据科学家和算法工程师的工夫。
2. 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 中其余模型治理、模型公布等插件性能不在本文探讨范畴)
3. 如何抉择适宜的 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