在AI研究探索场景中,Jupyter 作为一个特殊的存在迅速成长为AI探索类场景开发的首选,能够在其各个阶段满足开发者诉求并覆盖这些关键点,以及支持在浏览器中使用的特点。
Jupyter 起始于 IPython 项目,IPython 最初是专注于 Python 的项目,但随着项目发展壮大,已经不仅仅局限于 Python 这一种编程语言了。按照Jupyter创始人的想法,最初的目标是做一个能直接支持Julia(Ju),Python(Py)以及R三种科学运算语言的交互式计算工具平台,所以将他命名为Ju-Py-te-R,发展到现在Jupyter已经成为一个几乎支持所有语言,能够把代码、计算输出、解释文档,多媒体资源整合在一起的多功能科学运算平台。
这里需要提到的另外一个概念就是“文学编程”,文学编程是一种由Donald Knuth提出的编程范式。这种范式提供了用自然语言来解释程序逻辑的机会。简单来说,文学编程的读者不是机器,而是人。 从写出让机器读懂的代码,过渡到向人们解说如何让机器实现我们的想法,其中除了代码,更多的是叙述性的文字、图表等内容。 文学编程中间穿插着宏片段和传统的源代码,从中可以生成可编译的源代码。
作为第一个贯穿整个科学计算研究的生命周期工具平台,可以将可以分解为,如果我们将科学计算研究全生命周期分解为,个人探索,协作与分享,生产化运行环境,发表与教学,Notebook都可以在这些阶段中满足科研工作的需求。
Jupyter有没有缺点?有的。如果你追求的是产品化代码开发,例如代码格式、依赖管理、产品打包、单元测试等等功能在IDE中是没有很好的支持,当前有一些插件可以做,但是相比重型IDE,功能还是比较弱。此外,Jupyter定义为研究类调试环境,一方面对于分布式的任务当前推荐都是通过单机多进程的方式进行模拟,真实到有多节点拓扑信息的部分在Jupyter中不容易实现,另外一方面,Jupyter的架构并不适合跑非常重量级的作业。对于真实软件产品开发的诉求,还是需要在IDE中进行工程化代码开发,并配搭测试逻辑,将任务部署在集群中进行运行。
所以,我们还是需要继续使用pyCharm开发程序,但是如何让本地的pyCharm与ModelArts结合在一起呢?放心,我们有pyCharm的ModelArts插件。
我们实际上使用一个PyCharm ToolKit工具来帮助建立从本地pyCharm IDE到ModelArts的连接通道,本案例我使用MXNet实现手写数字图像识别应用的示例,在本地快速完成代码编写,发布到ModelArts公有云完成模型的训练和模型生成。
安装toolkit前需要先安装2019.2版本(目前toolkit仅适配该版本)的pycharm,下载地址是:https://developer.huaweicloud.com/tools。
需要注意,如果已经安装了高版本的pyCharm,需要首先卸载(自动)已安装的pyCharm:
下载一个工具Pycharm-ToolKit-PC-2019.2-HEC-1.3.0.zip,连接本地IDE与云之间的链路:
https://www.jetbrains.com/pycharm/download/other.html
解压后看到一堆jar文件,
接着回到pyCharm IDE,打开Settings: