什么网站必须要flash,中文网址,自己搭建app,易语言编程软件做网站编者按#xff1a; 主要介绍什么是Notebook#xff0c;Notebook在数据科学领域的应用的重要性与优势#xff0c;以及数据科学家/算法团队在选择Notebook时需考虑哪些关键因素。同时#xff0c;基于Notebook的筛选考量维度#xff0c;对常见的Notebook进初步对比分析#…编者按 主要介绍什么是NotebookNotebook在数据科学领域的应用的重要性与优势以及数据科学家/算法团队在选择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)其可配置在本地或云端。代码由前端传递给KernelKernel运行代码后将结果返还给用户。Kernel决定了Notebook的计算性能IDP Studio 采用Rust语言实现重写KernelNotebook启动速度和资源配置速度提升了一个数量级。 (** 本文中仅使用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