Skip to main content

远程 Jupyter 教程

在本教程中,您将学习如何使用clearml-session在Jupyter Notebook上启动远程交互式会话。 您将使用两台机器。一台是本地机器,您将在其上使用Jupyter的交互式会话,另一台是远程机器, clearml-agent将在其上运行并启动远程会话的实例。

先决条件

  • clearml-session 包已安装 (pip install clearml-session)
  • 至少有一个clearml-agent远程主机上运行。参见安装详情。 配置clearml-agent以监听default队列(clearml-agent daemon --queue default
  • 在使用的机器上安装SSH客户端。要验证,打开终端,执行ssh,如果没有收到错误信息,应该就可以使用了。

步骤

步骤 1: 启动 clearml-session

执行以下命令:

clearml-session --docker nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04 --packages "clearml" "tensorflow>=2.2" "keras" --queue default

这将设置以下参数:

  • --docker nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04 - Docker 镜像

  • --packages "clearml" "tensorflow>=2.2" "keras" - 所需的Python包

  • --queue default - 选择启动会话的队列

note

使用--project 输入项目名称。如果没有输入项目,默认项目名称是DevOps

启动命令后,监听default队列的clearml-agent会启动一个具有指定规格的远程Jupyter环境。它将自动连接到远程机器上的docker。

控制台应显示会话的配置详细信息:

Interactive session config:
{
"base_task_id": null,
"git_credentials": false,
"jupyter_lab": true,
"password": "0879348ae41fb944004ff89b9103f09592ec799f39ae34e5b71afb46976d5c83",
"queue": "default",
"vscode_server": true
}

步骤 2: 启动交互式会话

当CLI询问是否启动交互式会话 [Y]/n?时,按'Y'或'Enter'。

终端应输出有关环境构建过程状态的信息,应如下所示:

Creating new session
New session created [id=35c0af81ae6541589dbae1efb747f388]
Waiting for remote machine allocation [id=35c0af81ae6541589dbae1efb747f388]
.Status [queued]
...Status [in_progress]
Remote machine allocated
Setting remote environment [Task id=35c0af81ae6541589dbae1efb747f388]
Setup process details: https://app.clear.ml/projects/60893b87b0b642679fde00db96e90359/experiments/35c0af81ae6541589dbae1efb747f388/output/log
Waiting for environment setup to complete [usually about 20-30 seconds]

步骤 3: 连接到远程笔记本

然后CLI将输出一个指向准备就绪环境的链接:

Interactive session is running:
SSH: ssh root@localhost -p 8022 [password: c5d19b3c0fa9784ba4f6aeb568c1e036a4fc2a4bc7f9bfc54a2c198d64ceb9c8]
Jupyter Lab URL: http://localhost:8878/?token=ff7e5e8b9e5493a01b1a72530d18181320630b95f442b419
VSCode server available at http://localhost:8898/

点击JupyterLab链接,这将打开远程会话。

现在,让我们在远程会话中执行一些代码!

步骤 4: 执行代码

  1. 打开一个新的Notebook。

  2. 在笔记本的第一个单元格中,克隆ClearML仓库

    !git clone https://github.com/allegroai/clearml.git
  3. 在笔记本的第二个单元格中,从克隆的仓库运行这个脚本

    %run clearml/examples/frameworks/keras/keras_tensorboard.py

    查看脚本,注意它使用了ClearML、Keras和TensorFlow,但你不需要在Jupyter中安装这些包,因为你在clearml-session--packages标志中指定了它们。

步骤5:关闭远程会话

要关闭远程会话,这将释放clearml-agent并关闭CLI,请输入“Shutdown”。

Connection is up and running
Enter "r" (or "reconnect") to reconnect the session (for example after suspend)
Ctrl-C (or "quit") to abort (remote session remains active)
or "Shutdown" to shutdown remote interactive session