代码
重磅!Canonical加入MindSpore社区,带来首个预集成国内AI开源框架的Charmed Kubeflow新版本

重磅!Canonical加入MindSpore社区,带来首个预集成国内AI开源框架的Charmed Kubeflow新版本

重磅!Canonical加入MindSpore社区,带来首个预集成国内AI开源框架的Charmed Kubeflow新版本

**2022年11月8日至9日,Open Source Experience(OSXP 2022)大会在法国巴黎拉开了帷幕。**OSXP是欧洲开源软件行业的年度重要会议, 汇集4500多名专业人士,本次会议深入探讨了AI/ML、数字孪生和区块链等主题。

大会期间作为著名Linux发行版Ubuntu的发行商Canonical,发布了其名下Kubeflow企业版端到端MLOps平台Charmed Kubeflow的1.6新版本,正式支持开源深度学习框架昇思MindSpore,并签署CCLA协议,加入昇思MindSpore社区。这意味着昇思MindSpore全球化拓展的新里程碑,同时也显示出Charmed Kubeflow生态圈的持续成长与成熟。

Canonical公司由企业家马克·沙特尔沃思创建,支持并创建了开源软件(FOSS)和一些旨在改善自由软件开发者和贡献者的工具,其最知名的产品为Linux发行版Ubuntu,为开源社区的发展发挥了重要作用。Canonical的使命是“让开源软件可供各个地方的人使用。我们认为,促进创新的最佳之道就是为创新者提供他们所需的技术。”

昇思MindSpore是华为开源的新一代全场景AI框架,支持端、边、云全场景灵活部署,开创全新的AI编程范式,降低AI开发门槛,旨在实现开发友好、运行高效、部署灵活三大目标,同时着力构筑面向全球的人工智能开源社区,推动人工智能软硬件应用生态繁荣发展。

何为Charmed Kubeflow?

企业级端到端MLOps平台Charmed Kubeflow可以将数据科学工作流中的各个步骤转换成Kubernetes任务。Charmed Kubeflow是Kubeflow上游项目的官方发行版,为数据科学家和机器学习工程师提供简单、轻便、可扩展的机器学习Deployment。

提供构成KubeFlow最新版本的30多个应用程序和服务,并且让Kubeflow的部署更快,更简单。Charmed Kubeflow应用广泛,如使用Notebooks进行实验、利用Kubeflow流水线进行训练以及使用Katib进行调优。

为何选择MindSpore?

Kubeflow与MindSpore的原生集成为模型开发、执行和部署提供统一接口以及端到端AI能力。MindSpore提供AI原生执行模式,帮助Kubeflow充分利用昇腾AI硬件算力。

MindSpore针对华为昇腾/GPU/CPU等硬件进行深度优化,支持云上、边缘和移动场景的快速部署,工程师可针对不同应用场景开发多种不同方案。MindSpore在基于Web的交互式计算平台Jupyter Notebook上运行。在创建Notebook时,工程师可从默认的Jupyter Lab镜像列表中选择MindSpore镜像,分配一定的CPU资源,启动一个可以运行MindSpore及MindSpore Vision套件代码的Notebook实例,进行机器学习实验。

通过与MindSpore的原生集成和与华为在开源项目上的合作,Canonical为其MLOps生态系统提供了越来越丰富的工具集。Charmed Kubeflow集成多种AI/ML工具,包括提供中央模型注册表的MLFlow以及方便数据流处理的Spark。而与MindSpore的集成则能提供统一编程、统一算子、模型自动分区以及动静态计算图等多种方案特性。

如何在Kubeflow上使用MindSpore?

1、安装配置Charmed Kubeflow

安装Charmed Kubeflow需用到Ubuntu 20.04或更高版本的系统,要求至少32G可用内存以及50G硬盘空间。部署过程中,同时安装MicroK8s和Juju。当Charmed Kubeflow部署完成,所有Kubeflow组件激活后,执行以下命令升级jupyter-ui为最新版本,以获得MindSpore Notebook镜像。

juju refresh jupyter-ui --channel=latest/edge 

Kubeflow安装后,执行以下命令进行配置。

配置接入地址:

Juju config dex-auth public-url=http://xxx.xxx.xxx..xxx.nip.io

juju config oidc-gatekeeper public url=http://xxx.xxx.xxx..xxx.nip.io

配置接入Kubeflow的用户名及密码:

juju config dex-auth static-username=admin

juju config dex-auth static-password=****

登录http://xxx.xxx.xxx..xxx.nip.io,输入设置的密码接入完整的Kubeflow 仪表盘(Dashboard)。

**2、**新建MicroK8s集群

由于Charmed Kubeflow只能部署在x86环境,集成MindSpore的Charmed Kubeflow需要一个包含两个节点的Kubernetes集群:x86节点用来部署Charmed Kubeflow, ARM节点(最好带有Ascend AI处理器)用来调动工作节点。(本节所述步骤为MicroK8s独有。)

x86节点作为主节点使用,支持Charmed Kubeflow Deployment和Kubernetes控制面;ARM节点作为备节点使用,支持工作节点调度。

在主备节点上安装 MicroK8s 1.22。

sudo snap install microk8s --channel 1.22/stable –classic

添加备节点至Kubernetes集群中,在主节点上执行如下命令:

microk8s add-node

注:会返回部分连接指令。在目标集群的MicroK8s实例上执行这些指令,无须在执行add-node命令的节点上执行。执行microk8s kubectl get no查询最近添加的节点。详细信息参见“添加节点”。

给备节点打上标签,在主节点上执行如下命令:

microk8s kubectl label nodes  kubernetes.io/arch=arm64

3、 运行MindSpore支持的Notebook

在Charmed Kubeflow中接入MindSpore,需使用本机激活的Notebook。在Charmed Kubeflow仪表盘上的Notebook列表中,选择“创建Notebook”(Create Notebook),输入Notebook名称“MindSpore”,镜像选择“jupyterlab”,在列表中选择“mindspore/jupyter-mindspore”,分配合适的CPU和内容资源,最后点击“创建”(Create)。

在Notebook界面,很快就能看到创建完成的提示。

点击“连接”(Connect),在另一个浏览器tab页面打开Notebook。这里我们可以使用MindSpore官网提供的Notebook来上传手写数字识别Notebook。

点击“执行”(Execute), 这个Notebook就能直接运行,不用额外去安装MindSpore及Vision套件。

一旦MindSpore镜像在你所创建的Charmed Kubeflow Notebook中激活,便能开启AI/ML项目啦!MindSpore支持多种用例,计算机视觉会是个不错的选择。

生态合作

2022年11月,Canonical Limited 签署CCLA(Corporate Contributor License Agreement,企业贡献者许可协议书),正式加入昇思MindSpore开源社区。

未来,Canonical 将进一步繁荣昇思生态,深化双方社区项目合作,共同推动开源生态发展,构建繁荣的人工智能产业生态圈。

参考链接

[1]https://ubuntu.com/blog/open-source-mlops-ai-framework

[2]Hand's on guide:

https://ubuntu.com/blog/kubeflow-mindspore-integration-guide [3]Tutorial:

https://charmed-kubeflow.io/docs/mindspore

[4]https://zhuanlan.zhihu.com/p/568398333

MindSpore官方资料

官方QQ群 : 486831414

官网https://www.mindspore.cn/

Gitee : https : //gitee.com/mindspore/mindspore

GitHub : https://github.com/mindspore-ai/mindspore

论坛https://bbs.huaweicloud.com/forum/forum-1076-1.html