当前位置:网站首页>Jupyter Notebook 交互式编程 & 低代码拖拽式编程 | 数据科学生态下的理想平台
Jupyter Notebook 交互式编程 & 低代码拖拽式编程 | 数据科学生态下的理想平台
2022-08-03 14:12:00 【InfoQ】
Jupyter Notebook 交互式编程
Jupyter Notebook 是什么?
- 如果是在终端运行程序,包含函数和类的脚本存在其他文档,可视化结果在不同窗口显示,此时还需要写一份囊括全部的说明文档记录分析思路、程序运行、结果呈现......整个研究过程杂乱无章,无法专注于研究本身。
- 如果是用 Jupyter Notebook 进行分析,代码、可视化结果、说明文档都留存在同一页面中,整个分析过程和研究思路变得异常清晰。
- Code Cell 可以独立编写、运行代码,并单独反馈结果,方便试错和验证结果,对于学习数据分析、入门数据科学或者编程语言的初学者来说,这种交互形式非常友好。
- Markdown Cell 可撰写文档,展示图片、表格、链接、公式等丰富的内容,可读性强、学习成本低,一个文档就可以涵盖课程章节的理论知识点+编程实战+可视化结果,将课程知识点完整表达,适合教学展示、课堂交互、数字化培训等。
- 如果用 IDE,每加一行代码或每改一个参数都会花费大量时间重新加载模型。
- 如果用 Jupyter Notebook,运行一遍代码以后变量占用的内存不会自动释放。模型加载的所有数据都在内存里,不覆盖变量就不需要重跑 ,因此只需将代码分段执行,灵活调整参数。
Jupyter Notebook 并非理想的 Notebook
- Jupyter Notebook 定义为研究类调试环境,不是一个真正意义上的集成开发环境;
- Jupyter Notebook 对于成规模的项目来说功能过于简单,缺少必要的项目工具,而 IDE 的文件管理、代码管理、工具集成以及自动补全、智能提示都相对较强大;
- Jupyter Notebook 对于分布式调测、重型异步任务的支持不够友好;
- Jupyter Notebook 对于分布式的训练可以通过单机多进程的方式进行模拟,但对于运行非常大规模的训练作业,还是需要工程化代码开发,并搭配测试逻辑,将任务部署在集群中进行批量运行。
在线 Jupyter Notebook
- 数据量呈指数级增长,对大型计算、存储、及数据管理提出了新的要求。
- 机器学习、人工智能、增强现实、物联网以及几乎所有其他突破性技术,正在进入工业化阶段。
- 自然科学(如气象学和生命科学)、经济学、工程学和社会科学等研究领域都开始利用数据科学解决领域问题。
- 模型的大规模、复杂性和实验性成为各行业工作流程的主要挑战。
1. 云原生
2. 功能拓展
- 支持多种类型格式的本地数据文件上传接入,或直接调用公开数据集。
- 支持超大数据的云上调用及分析。用户除了可以在 ModelWhale 使用数据连接调取存放在数据库、对象存储的数据外,还可以通过创建 NAS 空间调取 NAS 中的各类数据。
- 面向多种规格的计算资源一键接入。不论是单卡CPU/GPU运算,还是多机多卡的 GPU 组成集群算力进行分布式训练,可随实际需求一键勾选。多机 GPU 集群,支持基于 Horovod 的环状规约架构,可显著分散网络传输的压力,随着集群的规模增大计算性能线性增加。
- 资源用量可视可控。ModelWhale 可以对每个资源的可用群体、使用时长、使用时间进行管理配置,能够对资源的使用情况进行可视化监控,支持对资源的权限审核机制。
- ModelWhale 真正做到了开箱即用,无需任何软件安装及环境部署,解决了科研初期基础设施配置搭建的繁琐消耗,提供了丰富的镜像资源,包含大量数据科学和其他交叉学科的常用工具包(如:气象、生命科学等)。
- 用户可以根据需求利用标签筛选官方预置的安全稳定的镜像环境,也可以自定义镜像环境,满足个人或团队的特定运算需求。
- ModelWhale 的环境管理为每一个数据科学项目创建了隔离的开发环境,每个开发环境所安装的包和依赖相互独立,可以确保项目的开发环境不相互干扰和污染。
3. 协作开放
低代码、拖拽式编程
低代码是什么?
- 不需要写很多代码,对于纯业务侧、低代码能力的科研人员通过可视化的图形连接就能构建研究框架和模型雏形。
- 结果可以一键导出 Notebook,组件直接转化为代码,确保可复现性的同时,支持在基础的分析框架上进行更精细的建模工作,方便数据科学家等进一步优化。
- 技术人员可以在 Canvas 里面预构建模型组件和封装常用工作流 Flow,方便业务人员直接套用。
- 技术人员可以根据分析需求编写自定义组件,优化组件内容结构,提升组件能力上限。
为什么要用低代码?
- 业务专家可以向开发人员展示业务的主要需求和难点,便于数据科学家熟悉和理解业务架构。
- 数据科学家可以向业务专家演示一些常见的或者创新的解决方案,方便业务人员调整业务逻辑。
- 业务人员可以快速搭建出模型,同时可以一边试用模型,一边与数据科学家进行探讨,找到思路差异的部分;
- 数据科学家也可以轻易将模型组件转化为代码,一边优化完善,一边与业务人员确认。
Canvas 与 Notebook 的互补与转换
- Canvas 专注于数据建模和业务逻辑实现,重点关注的是模型框架而不是具体编程。对于业务人员、领域专家来说,采用图形化的拖拽操作就可以完成简单的模型构建,表现业务逻辑和领域经验;
- Notebook 注重研究思路的记录,关注数据科学本身。对于代码优先的数据科学家、IT人员,可以直接在 Notebook 中编写代码、探索创作,并可将常用的代码封装为 Canvas 组件便于业务人员的直接调取使用;也可以选择在 Canvas 低代码界面编写代码、自定义组件来实现功能,或通过 Canvas 一键转换为 Notebook 延续 Notebook 的代码编写习惯直接优化代码。
ModelWhale 以人为径,助力协同创新
海量数据挖掘、数据密集型研究的应用范式
- 从底层架构保障数据安全,基于现有基础设施优化工作结构,提供私有化部署的云端计算平台;
- 本地计算资源有效扩容,多类型数据源与GPU集群轻松接入,实现数据和硬件资源的集约化管理和弹性调度分配,大幅度提效降本;
- 研究环境开箱即用,有效降低科研门槛,集成最新机器学习算法库,以及各领域专业工具包,即使是复杂研究项目也可多版本管理,赋能数据研究的开展;
- 为协作共享提供了新的交互形式,数据、代码、环境等研究资料一键打包共享,让跨地域、跨部门、跨团队之间的协作在云端实现。
专业性强、工程能力相对较弱的复合型分析研究者的强力支撑
- 降低科研门槛,直观地保留了业务经验:使业务人员通过拖拽式组件直接搭建工作流 Flow ,完成业务逻辑的直观体现和模型应用的雏形。
- 有效提高了信息研究的教学质量:将复杂的数据分析代码图形化简易封装、繁琐的数据分析步骤用可视化组件的连接有序展现、数据分析流程及每一步的产出结果清晰可见,再通过 Canvas 转 Notebook 代码的方式,以数据分析流程思维一一对应代码的编写,更易理解和上手代码。
- 优化跨角色的工作流程:Canvas 转化后的代码可以交由更熟悉编程的数据科学家、IT人员进一步优化,进行精细化调整。
- 面向业务人员、领域专家的数据分析教学、培训、应用,让不同学科背景下编程能力较弱的非专业级数据科学家、复合型分析研究者掌握独立自主的数据分析能力;
- 同时满足数据分析部门和业务部门的不同技术水平的需求,为业务人员与数据科学家、IT技术人员的有效沟通协作建立了桥梁,实现了复杂研究领域的跨角色协同工作。
结尾
ModelWhale 资料
边栏推荐
猜你喜欢
随机推荐
DAY19(DAY20、DAY21拓展):SQL 注入
With 1000 lines of code statistics after the xi 'an housing prices, I have a startling discovery...
Petri网-2、有向网
OpenHarmony高校技术俱乐部计划发布
How to use matlab to implement the piecewise function "recommended collection"
【web渗透】CSRF漏洞详细讲解
[web penetration] detailed explanation of CSRF vulnerability
chrome浏览器对应驱动_chrome手机浏览器
软件测试考证:ISTQB、软件评测师
Role usage in Ansible
typedef关键字的用法
大势,又一关乎中美竞争的关键行业,走到关键时刻了
优思学院|2022年获美质协ASQ和ILSSI奖项的《精益六西格玛的十条戒律》
Day2:面试必考题目
为什么手动启动GBase 8c数据库中GTM节点,起不来。显示“Run cmd failed:scp: /tmp/gtm_gtm1.server: Permission denied”
English语法_介词 - 概述
System learning Shell regular expressions
STL——vector
想成为网络安全技术爱好者(可能是黑客)的话,需要看什么书?
js \n\r 换行失败 :【white-space: pre-line;】${} Template Literals