背景信息
在使用开发环境训练任务过程中,为方便开发人员更形象地观察到实时训练任务中的数值变化情况以分析精度问题,ModelArts在线调节器应运而生。与离线调试器的区别在于,离线调试器只能待整个任务运行完成后(收集到整个任务过程的dump数据后)方可查看相应数值。
在线调试器在开发环境上相对离线调试器有着更高的要求,现仅支持单机单卡。(离线调试器支持单机多卡)
1、创建开发环境并在线打开
在ModelArts控制台,进入“开发环境管理 > DevContainer”页面,创建开发环境实例,创建成功后,单击开发环境实例操作栏右侧的“打开 > 打开Notebook”,在线打开运行中的开发环境。
打开方式如下图所示:
2、启动MindInsight在线调试器
在创建开发环境并在线打开后,点击如下图所示的按钮,创建.ipynb文件。
在对话框中输入Mindinsight相应命令启动Mindinsight后,即可展示界面。
%reload_ext mindinsight
%mindinsight --port {PORT} --enable-debugger 1 --debugger-port 5412
参数解释:
--port {PORT}:指定Web可视化服务端口。可以不设置,默认使用8080端口。如果8080端口被占用了,需要在1~65535任意指定一个端口。
--enable-debugger:MindInsight调试器功能开启选项,若取值为True或1, 则开启MindInsight侧调试器;默认为False,不开启。
--debugger-port: 表示指定的调试服务端口,取值需要和训练脚本中设置的调试服务端口值保持一致。
数据在开发环境中的存储路径
2.1、启动调试器
启动MindInsight后点击页面中的调试器(Debugger)按钮等待训练接入...
2.2 启动训练任务
调试器开启后,在开发环境中将训练指定为调试模式,即对开发环境的环境变量进行设置或提前在脚本里写入,在本地IDE中具体操作如下所示:
或直接在脚本写入对环境变量的设置:
import os
os.environ["ENABLE_MS_DEBUGGER"]="True"
os.environ["MS_DEBUGGER_HOST"]="127.0.0.1" #可选,云上开发环境中可以不设置此参数变量。
os.environ["MS_DEBUGGER_PORT"]="5413" #这里的端口号5412需与MindInsight debugger-port一致。
3、 开始调试精度
通过以上操作将开发环境训练过程与MindInsight链接后界面如以下所示:
4、调试完成后关闭MindInsight
在.ipynb文件框中输入命令,关闭 MindInsight。端口号应与启动MindInsight中设置一致。
!mindinsight stop --port {port}