更新时间:2024-11-22 GMT+08:00

使用PyCharm Toolkit插件连接Notebook

由于AI开发者会使用PyCharm工具开发算法或模型,为方便快速将本地代码提交到ModelArts的训练环境,ModelArts提供了一个PyCharm插件工具PyCharm ToolKit,协助用户完成SSH远程连接Notebook、代码上传、提交训练作业、将训练日志获取到本地展示等,用户只需要专注于本地的代码开发即可。

本章节介绍了使用PyCharm Toolkit如何连接Notebook。

使用限制

  • 当前仅支持2019.2-2023.2之间(包含2019.2和2023.2)版本,包括社区版和专业版。
  • 使用PyCharm ToolKit远程连接Notebook开发环境,仅限PyCharm专业版。
  • 使用PyCharm ToolKit提交训练作业,社区版和专业版都支持,PyCharm ToolKit latest版本仅限提交新版训练作业。
  • PyCharm ToolKit工具仅支持Windows版本的PyCharm。
表1 ToolKit(latest)功能列表

支持的功能

说明

对应操作指导

SSH远程连接

支持SSH远程连接ModelArts的Notebook开发环境。

配置PyCharm ToolKit远程连接Notebook

训练模型

支持将本地开发的代码,快速提交至ModelArts并自动创建新版训练作业,在训练作业运行期间获取训练日志并展示到本地。

使用PyCharm ToolKit创建并调试训练作业

OBS上传下载

上传本地文件或文件夹至OBS,从OBS下载文件或文件夹到本地。

使用PyCharm上传数据至Notebook

前提条件

本地已安装2019.2-2023.2之间(包含2019.2和2023.2)版本的PyCharm专业版。SSH远程开发功能只限PyCharm专业版。单击PyCharm工具下载地址下载并完成安装。

Step1 下载并安装PyCharm ToolKit

在PyCharm中选择“File > Settings > Plugins”,在Marketplace里搜索“ModelArts”,单击“Install”即可完成安装。

Step2 创建Notebook实例

创建一个Notebook实例,并开启远程SSH开发,配置远程访问IP白名单。该实例状态必须处于“运行中”,具体参见创建Notebook实例章节。

Step3 登录插件

使用访问密钥完成登录认证操作如下:

  1. 打开已安装ToolKit工具的PyCharm,在菜单栏中选择“ModelArts > Edit Credential”
    图1 Edit Credential

    如果菜单栏中找不到“ModelArts > Edit Credential”,可能是PyCharm版本过高,PyCharm toolkit未适配2023.2之后版本的PyCharm工具。请下载2019.2-2023.2之间(包含2019.2和2023.2)版本的PyCharm专业版工具。

  2. 在弹出的对话框中,选择您使用的ModelArts所在区域、填写AK、SK(获取方式参考链接),然后单击“OK”完成登录。
    • “Region”:从下拉框中选择区域。必须与ModelArts管理控制台在同一区域。
    • “Project”:Region选择后,Project自动填充为Region对应的项目。
    • “Access Key ID”:填写访问密钥的AK。
    • “Secret Access Key”:填写访问密钥的SK。
    图2 填写区域和访问密钥
  3. 查看认证结果。

    在Event Log区域中,当提示如下类似信息时,表示访问密钥添加成功。

    16:01Validate Credential Success: The HUAWEI CLOUDcredential is valid.

Step4 插件自动化配置

  1. 在本地的PyCharm开发环境中,单击ModelArts > Notebook > Remote Config...,配置插件。
    图3 配置插件
  2. 此时,会出现该账号已创建的所有包含SSH功能的Notebook列表,下拉进行选择对应Notebook。
    图4 Notebook列表
    • KeyPair: 需要选择保存在本地的Notebook对应的keypair认证。即创建Notebook时创建的密钥对文件,创建时会直接保存到浏览器默认的下载文件夹中。
    • PathMappings: 该参数为本地IDE项目和Notebook对应的同步目录,默认为/home/ma-user/work/project名称,可根据自己实际情况更改。
  3. 单击“Apply”,配置完成后,重启IDE生效。

    重启后初次进行update python interpreter需要耗费20分钟左右。

Step5 使用插件连接云上Notebook

与Notebook断开连接的状态下,单击Notebook名称,根据提示启动本地IDE与Notebook的连接(默认启动时间4小时)。

图5 启动连接Notebook

连接状态下,单击Notebook名称,根据提示断开本地IDE与云上Notebook的连接。

图6 停止连接Notebook

Step6 同步上传本地文件至Notebook

本地文件中的代码直接复制至本地IDE中即可,本地IDE中会自动同步至云上开发环境。

初始化同步

在本地IDE的Project目录下,单击右键,选择“Deployment”,单击“Upload to xxx”(Notebook名称),将本地工程文件上传至指定的Notebook。

图7 同步本地文件至Notebook

后续同步:

只需修改代码后保存(ctrl+s),即可进行自动同步。

插件安装完成后在本地IDE中开启了“Automatic Upload”,本地目录中的文件会自动上传至云端开发环境Notebook。如果未开启,请参考下图开启自动上传。

图8 开启自动上传

Step7 远程调试

单击本地IDE右下角interpreter,选择Notebook的python解释器。

图9 选择Python解释器

像本地运行代码一样,直接单击运行按钮运行代码即可,此时虽然是在本地IDE点的运行按钮,实际上运行的是云端Notebook里的代码,日志可以回显在本地的日志窗口。

图10 查看运行日志

也可以单击本地IDE右上角的Run/Debug Configuration按钮来设置运行参数。

图11 设置运行参数(1)

选择远程连接到云上开发环境实例对应的Python解释器。

图12 设置运行参数(2)

当需要调试代码时,可以直接打断点,然后使用debug方式运行程序。

图13 使用debug方式运行程序

此时可以进入debug模式,代码运行暂停在该行,且可以查看变量的值。

图14 Debug模式下查看变量值