ModelArts一站式AI开发平台详解之使用平台Notebook环境训练模型

发布时间:2026/7/17 19:59:49

ModelArts一站式AI开发平台详解之使用平台Notebook环境训练模型 一、ModelArts与Notebook概述1.1 什么是ModelArtsModelArts模型艺术是华为云面向开发者提供的一站式AI开发平台致力于将AI技术转化为高效、易用的生产力工具。它提供了从算法开发、模型训练、部署上线到资源管理的全生命周期工具链旨在显著降低AI应用开发的技术门槛与时间成本。核心优势全流程覆盖涵盖数据准备、模型训练、模型管理、部署上线的端到端AI开发流程框架兼容性全面支持MindSpore、TensorFlow、PyTorch等主流AI开发框架异构算力支持底层基于华为昇腾AI芯片兼容多种异构计算资源灵活的开发环境支持云上Notebook和本地IDE远程开发两种模式1.2 Notebook在ModelArts中的定位Notebook是ModelArts开发环境的核心组件它是一个基于JupyterLab的云化在线开发环境为开发者提供了交互式的代码编写、调试和运行能力。重要说明Notebook主要用于代码开发与业务调测不支持长时间稳定运行不得用于生产类业务。功能特性说明开箱即用无需关注安装配置即开即用预置AI引擎内置TensorFlow、PyTorch、MindSpore等多种主流框架镜像多方式访问支持JupyterLab、Code Server、本地IDEVS Code/PyCharm三种访问方式弹性扩展支持变更镜像、变更实例规格、动态扩充EVS容量内置工具链内置ModelArts SDK、MoXing框架、ma-cli命令行工具二、Notebook环境准备与创建2.1 前置准备在创建Notebook实例之前需要完成以下准备工作步骤一注册华为云账号并授权首先访问华为云官网完成账号注册登录后进入ModelArts控制台。在左侧导航栏选择权限管理配置ModelArts访问委托授权允许ModelArts访问OBS等依赖服务。步骤二创建OBS桶OBS对象存储服务用于存储训练数据、代码和模型文件。创建要点桶名称需全局唯一区域建议选择与ModelArts服务相同的区域如华北-北京四避免跨区域流量费用建议创建一个专门存放训练数据的目录结构如/data/存放数据集/code/存放训练脚本/output/存放训练输出2.2 创建Notebook实例登录ModelArts控制台进入开发空间 Notebook页面点击创建。关键参数配置参数类别参数名称说明与建议基本信息名称系统自动生成可自定义最多128字符仅支持数字、字母、下划线和连字符基本信息自动停止默认开启建议设置合理时长1-72小时避免资源浪费环境配置选择镜像选择预置镜像如PyTorch、TensorFlow或自定义镜像环境配置JupyterLab版本推荐使用4.3.1版本2025稳定版性能体验更佳资源配置资源池类型公共资源池按量计费或专属资源池用户独占资源配置实例规格根据训练需求选择CPU、GPU或NPU规格存储配置存储类型EVS弹性云硬盘默认5GB可根据需要扩容注意事项同一账号下最多创建10个Notebook实例仅运行中状态的实例才能被访问或停止对于Snt9B23或D310P-300资源池的单PU实例不支持使用EVS创建Notebook2.3 打开Notebook实例创建完成后当实例状态变为运行中点击操作列的打开即可进入开发环境。ModelArts Notebook支持三种打开方式JupyterLab推荐在浏览器中直接打开支持交互式代码开发Code Server在浏览器中运行完整的VS Code提供更丰富的编辑体验本地IDE远程连接通过SSH连接使用本地VS Code或PyCharm远程开发三、Notebook的三种开发模式3.1 JupyterLab在线开发JupyterLab是ModelArts Notebook默认的在线开发工具创建实例后点击打开即可进入。核心功能交互式编程支持Python、R等多种编程语言代码单元格按块执行便于调试文件管理在Notebook中可直接管理代码文件、数据集和模型文件终端访问内置Terminal终端支持命令行操作如安装依赖包、执行Shell脚本等多内核支持可根据需要切换不同的Python内核环境常用操作示例python# 在Notebook中安装第三方依赖 !pip install numpy pandas matplotlib # 导入ModelArts SDK from modelarts import workflow as wf from modelarts.session import Session # 创建会话Notebook中自动完成鉴权 session Session()3.2 本地IDE远程开发VS Code/PyCharmModelArts支持通过本地IDE远程连接到云上Notebook实例实现线上线下协同开发。两种连接方式VS Code ModelArts Toolkit插件安装插件后配置连接信息一键连接远程NotebookPyCharm ToolKit通过PyCharm插件远程连接代码在本地编写运行在云端资源上本地IDE开发的注意事项使用本地IDE时需要通过AK-SK进行身份认证而不能像云上Notebook那样自动鉴权pythonfrom modelarts.session import Session import os # 从环境变量获取AK/SK安全实践 __AK os.environ[HUAWEICLOUD_SDK_AK] __SK os.environ[HUAWEICLOUD_SDK_SK] # 创建Session时需要显式传入认证信息 session Session(access_key__AK, secret_key__SK, project_id***, region_namecn-north-4)3.3 Code Server开发Code Server将Visual Studio Code完整运行在远程服务器上通过浏览器提供访问能力。这种方式兼具了VS Code的完整编辑功能和云上资源的计算能力适合偏好VS Code操作习惯的开发者。四、在Notebook中训练模型的核心流程使用Notebook训练模型的完整流程可分为五个阶段数据准备 → 代码开发 → 提交训练 → 监控调优 → 保存模型。4.1 数据准备与上传方式一通过OBS上传数据集在创建Notebook之前或之后将训练数据上传至OBS桶bash# 使用OBS命令行工具上传 obsutil cp /local/data/ obs://your-bucket/data/ -r # 或在Notebook中使用MoXing复制 import moxing as mox mox.file.copy_parallel(obs://your-bucket/data/, /home/ma-user/work/data/)方式二从AI Gallery下载公开数据集AI Gallery提供了大量公开数据集可直接订阅并下载到ModelArts进入AI Gallery搜索所需数据集点击下载选择目标区域和OBS路径等待下载完成数据集会自动导入到ModelArts数据管理模块方式三在Notebook中直接上传小文件对于小规模测试数据可通过JupyterLab的文件上传功能直接上传到Notebook的工作目录/home/ma-user/work/下。4.2 编写训练代码在Notebook中创建.ipynb文件或.py文件编写训练脚本。示例使用ModelArts SDK创建训练作业pythonfrom modelarts.session import Session from modelarts.estimator import Estimator # 创建会话Notebook中自动鉴权 session Session() # 配置训练作业 estimator Estimator( modelarts_sessionsession, framework_typePyTorch, # AI引擎 framework_versionPyTorch-1.8.0-python3.7, # 版本 code_dir/obs-bucket-name/src/, # 训练脚本目录 boot_file/obs-bucket-name/src/train.py, # 启动脚本 log_url/obs-bucket-name/log/, # 日志输出目录 hyperparameters[ # 超参数 {label: batch_size, value: 64}, {label: learning_rate, value: 0.001}, {label: epochs, value: 50} ], output_path/obs-bucket-name/output/, # 模型输出目录 train_instance_typemodelarts.vm.gpu.p100, # 规格 train_instance_count1, # 节点数 job_descriptionMy training job ) # 提交训练作业 job_instance estimator.fit( inputs/obs-bucket-name/data/train/, waitFalse, job_namemy_first_training )代码来源于华为云官方文档。4.3 使用MoXing访问OBS数据ModelArts Notebook内置了MoXing框架提供了一套类似操作本地文件系统的API来访问OBS文件pythonimport moxing as mox # 列出OBS目录内容 mox.file.list_directory(obs://my-bucket/data/) # 读取文件 with mox.file.File(obs://my-bucket/data/train.csv, r) as f: content f.read() # 复制文件 mox.file.copy(obs://bucket1/file.txt, obs://bucket2/file.txt) # 判断文件是否存在 if mox.file.exists(obs://my-bucket/model.pth): print(Model exists)4.4 使用ma-cli命令行工具ma-cli集成在Notebook中用于与ModelArts服务交互和执行管理命令bash# 查看命令帮助 ma-cli --help # 提交训练作业 ma-cli train job submit \ --job-name my_job \ --code-dir obs://bucket/code/ \ --boot-file train.py \ --flavor modelarts.vm.gpu.p100 # OBS数据复制 ma-cli obs cp /local/file.txt obs://bucket/path/4.5 保存训练镜像如果在Notebook中安装了额外的依赖包或做了环境定制可以将运行环境保存为自定义镜像便于后续复用在Notebook列表页找到运行中的实例点击更多 保存镜像填写镜像名称和描述等待镜像构建完成可在镜像管理中查看五、模型训练的关键配置与调优5.1 资源规格选择ModelArts提供多种资源规格选择合适的规格对训练效率和成本至关重要规格类型适用场景说明CPU规格小规模模型、数据预处理成本较低适合轻量任务GPU规格如P100、V100深度学习训练、推理计算能力强适合大规模模型NPU规格昇腾昇腾生态模型训练华为自研AI芯片性价比高选择建议首次调试建议使用免费规格或小规格资源正式训练时根据模型大小和数据量选择合适的GPU/NPU规格训练完成后及时停止实例避免持续计费5.2 超参数配置在创建训练作业时可通过hyperparameters参数传递超参数pythonhyperparameters[ {label: batch_size, value: 64}, {label: learning_rate, value: 0.001}, {label: epochs, value: 50}, {label: optimizer, value: adam}, {label: dropout_rate, value: 0.2} ]在训练脚本中通过argparse或os.environ获取这些参数值。5.3 分布式训练配置对于大规模模型ModelArts支持分布式训练pythonestimator Estimator( # ... 其他参数 train_instance_count4, # 使用4个节点进行分布式训练 )需要注意确保训练脚本支持分布式训练如使用Horovod或PyTorch DDP专属资源池需要有足够的可用节点六、进阶自定义镜像与Workflow编排6.1 在Notebook中构建自定义镜像当预置镜像无法满足需求时可以在Notebook中构建自定义镜像用于训练或推理。操作流程步骤一准备Dockerfile和模型包在Notebook工作目录中创建Dockerfile文件和模型包dockerfile# Dockerfile模板基于ModelArts基础镜像 FROM swr.cn-north-4.myhuaweicloud.com/atelier/tensorflow_2_1:tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64 # 安装额外依赖 RUN pip install scikit-learn pandas # 设置工作目录 WORKDIR /home/ma-user/work步骤二执行镜像构建在Notebook中创建一个ipynb文件执行构建脚本pythonfrom modelarts.image_builder import ImageBuilder from modelarts.session import Session session Session() image ImageBuilder( sessionsession, dockerfile_path/home/ma-user/work/Dockerfile, image_urlmy_org/my_image:1.0.0, # SWR镜像地址 context/home/ma-user/work ) result image.build_push() # 构建并推送到SWR步骤三注册并使用镜像构建完成后在ModelArts镜像管理中注册该镜像然后在创建Notebook或训练作业时选择自定义镜像。6.2 Workflow低代码开发ModelArts Workflow是一套低代码的AI开发流水线工具可在Notebook中编写代码定义整个AI开发流程。Workflow核心概念概念说明wf.Workflow工作流对象包含所有步骤wf.steps.JobStep训练作业步骤wf.data.DatasetPlaceholder数据集占位符wf.data.OutputStorage输出存储配置wf.AIGalleryAlgorithmAI Gallery算法引用示例创建一个训练Workflowpythonfrom modelarts import workflow as wf # 定义输出存储 output_storage wf.data.OutputStorage( nameoutput_storage, description输出目录统一配置 ) # 数据集占位 dataset wf.data.DatasetPlaceholder(nameinput_data) # 创建训练步骤 job_step wf.steps.JobStep( nametraining_job, title图像分类训练, algorithmwf.AIGalleryAlgorithm( subscription_id***, # 算法订阅ID item_version_id1.0.1, # 算法版本 parameters[ wf.AlgorithmParameters(namebatch_size, value64), wf.AlgorithmParameters(namelearning_rate, value0.002), wf.AlgorithmParameters(namedo_train, valueTrue), ] ), inputs[wf.steps.JobInput(namedata_url, datadataset)], outputs[wf.steps.JobOutput( nametrain_url, obs_configwf.data.OBSOutputConfig( obs_pathoutput_storage.join(/train_output/) ) )], specwf.steps.JobSpec( resourcewf.steps.JobResource( flavorwf.Placeholder( nametraining_flavor, placeholder_typewf.PlaceholderType.JSON, description训练资源规格 ) ) ) ) # 构建工作流 workflow wf.Workflow( nameimage-classification-workflow, desc图像分类训练工作流, steps[job_step], storages[output_storage] )这个Workflow定义完成后可在ModelArts控制台中运行和管理实现训练流程的自动化和可重复性。七、实用技巧与最佳实践7.1 文件上传与数据管理ModelArts Notebook支持多种文件上传方式上传方式适用场景说明本地文件上传小文件、脚本JupyterLab界面直接拖拽上传OBS文件上传大规模数据集通过MoXing或ma-cli复制GitHub仓库克隆开源代码直接在Notebook中git clone远端文件下载公开数据集使用wget或curl下载注意Notebook的公网访问带宽有限不建议下载超过10GB的大文件。7.2 存储管理策略存储类型说明最佳实践/home/ma-user/work/工作目录持久化存储存放代码和配置文件/cache/缓存目录GPU/NPU规格存放临时数据和中间结果使用告警监控容量EVS云硬盘持久化存储按需扩容初期选小容量5GB后期按需扩容OBS动态挂载将OBS模拟成本地文件系统适合大规模数据集访问7.3 成本优化建议开启自动停止创建Notebook时设置自动停止时间1-72小时避免资源浪费及时停止实例训练完成后手动停止Notebook实例停止状态不再计费EVS存储仍需付费选择合适的规格调试阶段使用小规格或免费规格正式训练时再升级删除不需要的实例不再使用的Notebook实例及时删除释放EVS存储7.4 Notebook运维与监控查看事件信息在Notebook详情页的事件标签页查看实例的生命周期事件包括创建、启动、停止、规格变更等关键操作记录。Cache盘告警对于GPU/NPU规格的实例/cache目录容量有限ModelArts支持将告警数据上报至AOM平台方便监控。资源使用查看在Notebook详情页可以了解CPU、内存、GPU等资源的使用情况。7.5 常见操作命令速查操作命令/方式安装Python包!pip install package_name查看当前环境!pip list重启KernelJupyterLab菜单 Kernel Restart Kernel查看OBS文件mox.file.list_directory(obs://bucket/path/)复制文件到Notebookmox.file.copy(obs://bucket/file, /home/ma-user/work/)上传模型到OBSmox.file.copy(/home/ma-user/work/model.pth, obs://bucket/output/)查看日志!cat /home/ma-user/log/*.log八、常见问题与总结8.1 常见问题FAQQ1Notebook实例无法启动怎么办检查实例状态是否为运行中查看事件信息了解具体原因。如果是资源不足可尝试更换规格或切换到其他资源池。Q2如何迁移本地代码到Notebook支持三种方式通过JupyterLab界面上传使用git clone克隆GitHub仓库通过OBS同步代码文件Q3训练过程中断或超时怎么办检查自动停止设置避免训练时长超过预设值如果训练时间较长建议使用专属资源池将中间结果定期保存到OBS支持断点续训Q4如何升级JupyterLab版本新版控制台支持选择JupyterLab 4.3.1版本创建实例旧版本的技术支持将于2026年4月停止建议迁移到新版本。Q5Notebook和训练作业的区别Notebook开发和调试环境用于编写和测试代码交互式运行训练作业生产级训练任务支持大规模分布式训练和自动化调度建议先在Notebook中调试完成再创建训练作业进行正式训练。8.2 总结ModelArts一站式AI开发平台通过Notebook开发环境为AI开发者提供了强大的云上开发体验快速上手即开即用的云化Notebook无需本地环境配置多种开发方式支持JupyterLab在线开发、本地IDE远程连接、Code Server三种模式完整的AI开发链路从数据准备、代码调试、模型训练到模型保存全流程支持丰富的内置工具ModelArts SDK、MoXing、ma-cli等工具提升开发效率灵活的扩展能力支持自定义镜像、Workflow编排满足进阶需求成本可控自动停止、按需计费、灵活规格切换使用ModelArts Notebook训练模型的核心流程可概括为准备数据 → 创建Notebook → 编写/调试代码 → 提交训练任务 → 监控训练过程 → 保存/导出模型

相关新闻