更新时间:2024-05-21 GMT+08:00

MindInsight可视化作业

ModelArts支持在开发环境中开启MindInsight可视化工具。在开发环境中通过小数据集训练调试算法,主要目的是验证算法收敛性、检查是否有训练过程中的问题,方便用户调测。

MindInsight能可视化展现出训练过程中的标量、图像、计算图以及模型超参等信息,同时提供训练看板、模型溯源、数据溯源、性能调试等功能,帮助您在更高效地训练调试模型。MindInsight当前支持基于MindSpore引擎的训练作业。MindInsight相关概念请参考MindSpore官网

MindSpore支持将数据信息保存到Summary日志文件中,并通过可视化界面MindInsight进行展示。

前提条件

使用MindSpore引擎编写训练脚本时,为了保证训练结果中输出Summary文件,您需要在脚本中添加收集Summary相关代码。

将数据记录到Summary日志文件中的具体方式请参考收集Summary数据

注意事项

  • 在开发环境跑训练任务,在开发环境使用MindInsight,要求先启动MindInsight,后启动训练进程。
  • 仅支持单机单卡训练。
  • 运行中的可视化作业不单独计费,当停止Notebook实例时,计费停止。
  • Summary文件如果存放在OBS中,由OBS单独收费。任务完成后请及时停止Notebook实例,清理OBS数据,避免产生不必要的费用。

Step1 创建开发环境并在线打开

在ModelArts控制台,进入开发环境> Notebook页面,创建MindSpore引擎的开发环境实例。创建成功后,单击开发环境实例操作栏右侧的打开 ,在线打开运行中的开发环境。

MindInsight可视化训练作业,当前支持的镜像如下,请根据实际局点支持的镜像和资源规格选择使用。
  • mindspore1.2.0版本,CPU/GPU规格的资源类型。
  • mindspore1.5.x以上版本,Ascend规格的资源类型。

Step2 上传Summary数据

在开发环境中使用MindInsight可视化功能,需要用到Summary数据。

Summary数据可以直接传到开发环境的这个路径下/home/ma-user/work/,也可以放到OBS并行文件系统中。

  • Summary数据上传到Notebook路径/home/ma-user/work/下的方式,请参见上传数据至Notebook
  • Summary数据如果是通过OBS并行文件系统挂载到Notebook中,请将模型训练时产生的Summary文件先上传到OBS并行文件系统,并确保OBS并行文件系统与ModelArts在同一区域。在Notebook中启动MindInsight时,Notebook会自动从挂载的OBS并行文件系统目录中读取Summary数据。

Step3 启动MindInsight

在开发环境的JupyterLab中打开MindInsight有多种方法。可根据使用习惯选择。

图1 JupyterLab中打开MindInsight的方法

方式1:

  1. 单击入口1进入JupyterLab开发环境,并自动创建“.ipynb”文件。
  2. 在对话框中输入MindInsight相应命令,即可展示界面。
    %reload_ext mindinsight
    %mindinsight --port {PORT} --summary-base-dir {SUMMARY_BASE_DIR} 

    参数解释:

    • --port {PORT}:指定Web可视化服务端口。可以不设置,默认使用8080端口。如果8080端口被占用了,需要在1~65535任意指定一个端口。
    • --summary-base-dir {SUMMARY_BASE_DIR}:表示数据在开发环境中的存储路径
      • 开发环境本地路径:“./work/xxx”(相对路径)或/home/ma-user/work/xxx(绝对路径)
      • OBS并行文件系统桶的路径:obs://xxx/
    例如:
    #Summary数据如果是在开发环境的这个路径下/home/ma-user/work/,执行下面这条命令
    %mindinsight --summary-base-dir /home/ma-user/work/xxx 
    或者
    #Summary数据如果是存在OBS并行文件系统中,执行下面这条命令,开发环境会自动挂载该OBS并行文件系统路径并读取数据
    %mindinsight --summary-base-dir obs://xxx/
    图2 MindInsight界面(1)

方式2:

单击入口2,直接进入MindInsight可视化界面。

默认读取路径/home/ma-user/work/

当存在两个以及以上工程的log时,界面如下。通过Runs下选择查看相对应的log。

图3 MindInsight界面(2)

方式3:

  1. 单击入口3 View -> Activate Command Palette,在搜索框中输入“MindInsight”,再单击“Create a new MindInsight”
    图4 Create a new MindInsight
  2. 填写需要查看的Summary数据路径,或者OBS并行文件系统桶的路径,单击CREATE。
    • 开发环境本地路径:./summary(相对路径)或/home/ma-user/work/summary(绝对路径)
    • OBS并行文件系统的路径:obs://xxx/
    图5 输入Summary数据路径
    图6 MindInsight界面(3)

    方式2及方式3最多可以启动10个MindInsight实例。

方式4:

单击入口4 ,输入并执行以下命令,但启动后不能显示UI界面。

mindinsight start --summary-base-dir ./summary_dir
图7 Terminal方式打开MindInsight

Step4 查看训练看板中的可视化数据

训练看板是MindInsight的可视化组件的重要组成部分,而训练看板的标签包含:标量可视化、参数分布图可视化、计算图可视化、数据图可视化、图像可视化和张量可视化等。

更多功能介绍请参见MindSpore官网资料:查看训练看板中可视的数据

相关操作

关闭MindInsight方式如下:

  • 方式1:在开发环境JupyterLab中的“.ipynb”文件窗口中输入命令,关闭MindInsight。端口号在启动MindInsight中设置,默认使用8080,需要替换为实际开启MindInsight时的端口。
    !mindinsight stop --port 8080
  • 方式2:单击下方按钮进入MindInsight实例管理界面,该界面记录了所有启动的MindInsight实例,单击对应实例后面的SHUT DOWN即可停止该实例。
    图8 单击SHUT DOWN停止实例
  • 方式3:单击下方红框中的按钮可以关闭所有启动的MindInsight实例。
    图9 关闭所有启动的MindInsight实例
  • 方式4(不推荐):直接在JupyterLab中上关闭MindInsight窗口,此方式仅是关闭MindInsight可视化窗口,并未关闭后台。