Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
机器学习模型训练是一个迭代过程,需要大量的试验。 通过使用Azure 机器学习交互式作业体验,数据科学家可以使用Azure 机器学习 Python SDK、Azure 机器学习 CLI 或 Azure Studio 访问其作业正在运行的容器。 用户访问作业容器后,可以循环访问训练脚本、监视训练进度和远程调试作业,就像他们通常在本地计算机上所做的那样。 可以通过不同的训练应用程序(包括 JupyterLab、TensorBoard、VS Code)或直接通过 SSH 连接到作业容器来与作业进行交互。
Azure 机器学习支持在Azure 机器学习计算群集和已启用Azure Arc的 Kubernetes 群集上进行交互式训练。
先决条件
- 请查看Azure 机器学习中的训练入门。
- 有关详细信息,请参阅 VS Code 以设置Azure 机器学习扩展。
- 确保作业环境已安装
openssh-server并ipykernel ~=6.0安装包。 默认情况下,所有Azure 机器学习特选训练环境都安装了这些包。 - 对于分发类型不是 PyTorch、TensorFlow 或 MPI 的分布式训练任务,不能启用交互式应用程序。 目前不支持自定义分布式训练设置(在不使用上述分发框架的情况下配置多节点训练)。
- 若要使用 SSH,需要 SSH 密钥对。
ssh-keygen -f "<filepath>"使用命令生成公钥和私钥对。
与作业容器交互
通过在创建作业时指定交互式应用程序,可以直接连接到运行作业的计算节点上的容器。 有权访问作业容器后,可以在运行作业的完全相同的环境中测试或调试作业。 还可以使用 VS Code 附加到正在运行的进程并进行调试,就像在本地一样。
在作业提交期间启用
在工作室门户中的左窗格中创建新作业。
选择 “计算群集 ”或“ 附加计算 ”(Kubernetes)作为计算类型。 选择计算目标,并指定所需的
Instance count节点数。
按照向导提示,选择要在其中启动作业的环境。
在“训练脚本”步骤中,添加训练代码(和输入/输出数据),并在命令中引用它以确保它装载到作业中。
若要指定要保留计算资源的时间量,请在命令末尾添加 sleep <specific time> 。 格式如下:
sleep 1ssleep 1msleep 1hsleep 1d
您还可以使用 sleep infinity 命令,使作业无限期地保持运行状态。
注意
如果使用 sleep infinity,则必须手动 取消作业 以释放计算资源并停止计费。
- 在“计算”设置中,展开“训练应用程序”选项。 至少选择一个要用来与作业交互的训练应用程序。 如果未选择应用程序,则调试功能不可用。
- 查看并创建作业。
连接到端点
若要与正在运行的作业交互,请在作业详细信息页上选择 “调试”和“监视 ”。
在面板中选择应用程序时,将为应用程序打开一个新选项卡。 仅当应用程序处于 “正在运行” 状态并且只有 作业所有者 有权访问应用程序时,才能访问应用程序。 如果要在多个节点上训练,则可以选择要与之交互的特定节点。
启动该作业以及在创建作业时指定的训练应用程序可能需要几分钟时间。
与应用程序交互
当你选择用于与作业交互的端点时,系统会将你带到工作目录下的用户容器。 可以访问代码、输入、输出和日志。 如果在连接到应用程序时遇到任何问题,可以在“>”选项卡下的system_logs interactive_capability中找到交互式功能和应用程序日志。
可以从 Jupyter Lab 打开终端并开始在作业容器中交互。 您还可以使用 Jupyter Lab 直接对训练脚本进行迭代。
还可以在 VS Code 中与作业容器交互。 若要在作业提交期间将调试程序附加到作业并暂停执行,请在此处导航。
注意
使用 VS Code 与作业容器交互时,目前不支持已启用专用链接的工作区。
如果记录作业的 TensorFlow 事件,则可以使用 TensorBoard 监视作业运行时的指标。
结束作业
完成交互式培训后,可以转到作业详细信息页来取消作业。 取消作业会释放计算资源。 或者,在 CLI 中使用 az ml job cancel -n <your job name> 或在 SDK 中使用 ml_client.jobs.begin_cancel("<job name>")。
将调试器附加到作业
若要提交附加了调试器的作业并暂停执行,请使用 debugpy 和 VS Code。 必须在作业环境中安装 debugpy 。
注意
在 VS Code 中将调试器附加到作业时,目前不支持启用了专用链接的工作区。
- 在作业提交(通过 UI、CLI 或 SDK)期间,使用 debugpy 命令运行Python脚本。 例如,以下屏幕截图显示了一个示例命令,该命令使用 debugpy 附加 TensorFlow 脚本的调试器(
tfevents.py可以替换为训练脚本的名称)。
提交作业后, 连接到 VS Code 并选择内置调试器。
使用 远程附加 调试配置附加到已提交的作业,并传入您在作业提交命令中配置的路径和端口。 也可以在作业详细信息页上找到此信息。
设置断点,并像在本地调试流程中一样逐步检查作业执行过程。
注意
如果使用 debugpy 启动作业,则除非在 VS Code 中附加调试器并执行脚本,否则作业 不会 执行。 如果未附加调试器,则计算资源会一直保留,直到作业被取消。
后续步骤
- 详细了解如何以及在何处部署模型。