按实验需求合理选用实例规格,一般:模型开发阶段:使用最低算力2U8GB CPU。训练或推理阶段:切换至GPU规格,用完及时关闭算力环境,且切回最低算力规格。
每次实验结束手动关闭实例。使用ModelArts公有云资源。
AI允开发平台产品:百度的EasyDL、腾讯云AI开发平台、阿里天池实验室、华为云ModelArts、RunPod。免费云端AI开发平台:Anaconda、Kaggle。
华为云ModelArts人工智能AI开发平台+PyCharm。本地+云端混合开发环境。
PyCharm版本:2023.1
ModelArts实例创建
ModelArts控制台地址:
https://console.huaweicloud.com/modelarts/?region=cn-north-4#/dev-container
创建Notebook实例
名称:Notebook实例命名,自定义,非中文
描述:当前实例添加描述性文本
自动停止:开启、1小时
镜像:公共镜像、pytorch1.8-cuda10.2-cudnn7-ubuntu18.04。Notebook实例需要指定使用的镜像。ModelArts官方提供公共镜像和自定义镜像,可按需选择。自定义镜像是用户自行基于公共镜像之上创建出来的自定义镜像,包含除公共镜像之外的自定安装的依赖项。镜像的选择依据所需开发的模型场景及建模所需的依赖项。
资源类型:公共资源池
类型(计算类型):CPU。机器学习模型:建议CPU计算。深度学习模型:建议GPU计算。
实例规格:2核 8GB
存储配置:云硬盘EVS。默认5GB存储。
SSH远程开发:密钥对、远程访问白名单(填写允许远程接入的公网IP地址,多个IP用逗号分隔,留空则无接入IP限制)
完成配置后点击立即配置,总览所有配置选项,确认无误后点击提交,系统将开始执行Notebook实例创建过程,约2min。创建完毕后,在控制台-开发环境-Notebook界面查看对应所创实例。
存储模式-使用场景-优缺点
EVS-单机使用,面向大文件-单开发环境中使用
PFS-对象存储,面向大文件-小文件频繁读写较弱
SFS-专属资源池中使用,可多个环境使用-生命周期绑定
本地存储-重型训练任务首选-生命周期绑定
EVS存储:
使用场景:适合只在开发环境中探索数据、算法,性能较好。
优点:块存储SSD,可以理解为一个磁盘,整体IO性能比NFS要好,可以动态扩充,最大可以到4096GB。云硬盘EVS作为持久化存储挂载在/home/ma-user/work目录下,该目录下的内容在实例停止后会被保留,存储支持在线按需扩容。
缺点:只能在单个开发环境中使用。
PFS并行文件系统:
使用场景:数据集的存储。将承载数据集的OBS并行文件系统挂载至Notebook中,在训练时直接使用。代码的存储。在Notebook调测完成,可以直接指定对应的对象存储路径作为启动训练的代码路径,方便临时修改。训练观测。可以将训练日志等输出路径进行挂载,在Notebook中实时查看和观测,特别是利用TensorBoard,Notebook功能完成对训练输出的分析。
优点:PFS是一种经过优化的高性能对象存储文件系统,存储成本低,吞吐量达,能够快速处理高性能计算(HPC)工作负载。在需要使用对象存储服务场景下,推荐使用PFS挂载。
缺点:小文件频繁读写相对PFS较弱,对象存储语义,和Posix语义有区别,需要进一步理解。
SFS弹性文件服务器:
使用场景:目前只支持在专属资源池中使用,针对探索、实验等非正式生产场景,建议使用这种。开发环境和训练环境可以同时挂载一块SFS存储,省去了每次训练作业下载数据的要求,一般来说中IO读写模型,超过32卡的大规模训练不适合。
优点:实现为NFS,可以在多个开发环境、开发环境和训练之间共享,如果不需要重型分布式训练作业,特别是启动训练作业时,不需要额外再对数据进行下载,这种存储遍历性可以作为首选。
缺点:存储生命周期和容器生命周期绑定,每次训练都要下载数据。
本地存储:
使用场景:重型训练任务首选。
优点:运行所在虚拟机或者裸金属机器上自带的SSD高性能存储,文件读写的吞吐量大,建议对于重型训练任务先将数据准备到对应目录再启动训练。默认在容器/cache目录下进行挂载,包含500GB的可用空间。
缺点:存储生命周期和容器生命周期绑定,每次训练都要下载数据。
ModelArts实例使用
操作:启动
操作:打开
+:可点击选择新建Notebook文件、终端
文件夹:新建目录
上传:可从本地PC上传指定文件至Notebook实例
文件区:右键选择操作:新建Notebook、新建目录、文件/目录重命名、文件/目录删除。。。
Notebook:新建Notebook文件
Other:Terminal:打开终端,执行命令行操作
ModelArts的Notebook与Jupyter本地环境的Notebook使用方法一致。
创建自定义镜像
在本地PyCharm IDE中远程连接ModelArts实例搭建本地-云端远程混合开发环境
使用PyCharm ToolKit。
确保创建的Notebook实例以开启SSH远程开发功能。创建时可配,创建后亦可单独配置。
准备密钥对。
必要的勾选全部勾选
密钥对名称自定义
密钥对类型保持默认
KMS加密保持默认
全部配置完毕后点击确定,密钥对即可创建成功,同时会下载至本地目录保存。
SSH远程开发功能配置页面,配置密钥对。
设置远程访问的白名单。白名单是指允许访问当前实例的客户端IP地址。需要设置的是个人本机当前IP地址。ipconfig getifaddr en0
至此,Notebook的SSH远程开发功能配置完成。
PyCharm安装插件。
文件-设置-插件 Settings-Plugins,搜索ModelArts。安装重启应用
工具栏增加ModelArts。
ModelArts-》Edit_Credential 打开配置编辑页面
Region:资源所在区域,默认识别
Project:默认识别
Access Key Id:AK证书密钥
Secret Access Key:SK证书密钥
我的凭证-》访问密钥 -〉创建密钥
插件自动化配置。
PyCharm -》ModelArts-〉Notebook-》Remote Config。。。
KeyPair:选择保存本地的Notebook对应的keypair认证。创建Notebook时创建的密钥对文件.pem文件后缀。
Apply。重启IDE生效。重启后初次更新要点时间。
后续本地远程连接Notebook时,ModelArts-》Notebook-〉your notebook name。
同步上传本地文件至Notebook。Project目录下,右击-》Deployment-〉Upload to 。。。。将本地工程文件上传至指定的Notebook。
后续同步:修改代码后保存ctrl s,即可自动同步。也可Deployment -》update 。。
插件成功登录,SSH远程开发环境成功连接之后,本地PyCharm自动识别出远程环境所具备的解释器。
远程开发模式的使用原理
将本地代码同步到远程环境指定目录下,创建出本地文件与远程文件的映射
在本地完成代码开发,开发完毕将本地代码同步更新至远程环境
在本地代码正常开启运行,运行的其实是远程环境下完成同步的代码,调度的解释器环境也是远程环境下的解释器
程序在远程环境运行,终端输出结果在本地环境展示
RunPodGPU云资源租赁服务
相对优势:计算资源效率较快(高)、网络传输速度快、GPU资源安装部署快。RunPod服务部署国外,网络传输速度快,基本可以达到150MB/s的下载速度。RunPod提供了较丰富的GPU算力资源:RTX4090 显存24GB、A40 显存48GB、A100 显存80GB,可满足不同层面的算力需求
缺点:不支持Pycharm插件,无法支持本地-云端混合开发。较贵,最低的RTX4090显卡的GPU算力资源1小时1美刀。
RunPod无需作为主力使用的AI开发平台,当需要跑些较大的神经网络模型的训练或推理时,ModelArts无法满足,可以考虑将项目迁移到RunPod完成训练或推理。
https://www.runpod.io/console/deploy
————————————
仅用于本人学习
来源:网络