Skip to main content

Nvidia TAO

NVIDIA TAO Toolkit 是 NVIDIA TAO 框架的低代码版本,可加速模型训练过程。ClearML 与 TAO Toolkit 无缝集成,自动记录指标、模型文件、图表、调试样本等,以便您更深入地了解训练过程。

设置

  1. 安装 clearml python 包:

    pip install clearml
  2. 为了跟踪您的实验和/或数据,ClearML 需要与服务器通信。您有2种服务器选项:

  3. 通过创建凭证将ClearML SDK连接到服务器(在UI的右上角转到设置 > 工作区 > 创建新凭证),然后执行以下命令并按照说明操作:

    clearml-init
    Jupyter Notebook

    如果您正在使用Jupyter Notebook,在新凭证模态框中,点击“Jupyter Notebook”,然后复制凭证并粘贴到您的笔记本中

    Set Credentials in TAO Toolkit Launcher

    您可以通过TAO Toolkit启动器设置包含您的ClearML凭据的环境变量。将您的凭据添加到~/.tao_mounts.json文件的Envs元素中,如下所示:

    {
    "Mounts": [

    ],
    "Envs": [
    {
    "variable": "CLEARML_WEB_HOST",
    "value": "https://app.clear.ml"
    },
    {
    "variable": "CLEARML_API_HOST",
    "value": "https://api.clear.ml"
    },
    {
    "variable": "CLEARML_FILES_HOST",
    "value": "https://files.clear.ml"
    },
    {
    "variable": "CLEARML_API_ACCESS_KEY",
    "value": "<API_ACCESS_KEY>"
    },
    {
    "variable": "CLEARML_API_SECRET_KEY",
    "value": "<API_SECRET_KEY>"
    }
    ],
    "DockerOptions": {

    }
    }
  4. 通过TAO工具包自定义ClearML任务。在训练配置文件的visualizer.clearml_config下,您可以设置以下内容:

    • task - ClearML任务的名称。为了保持每次运行的名称唯一,TAO Toolkit会在名称字符串后附加实验创建时的时间戳。
    • project - 任务将存储的项目
    • tags - 用于标记任务的标签。

    例如:

    clearml_config{
    project: "TAO Toolkit ClearML Demo"
    task: "detectnet_v2_resnet18_clearml"
    tags: "detectnet_v2"
    tags: "training"
    tags: "resnet18"
    tags: "unpruned"
    }

    此配置可能会根据网络遵循的模式而有所不同。有关更多信息,请参阅NVIDIA文档

就是这样!每当你使用TAO Toolkit训练模型时,都会创建一个ClearML任务, 它将捕获你的模型文件、训练配置、标量、调试样本、图表、控制台输出等。 你可以在ClearML Web UI中查看所有这些捕获的信息。

TAO UI 图表

远程执行

ClearML 记录了在不同机器上重现实验所需的所有信息(已安装的包、未提交的更改等)。ClearML Agent 监听指定的队列,当任务入队时,代理会拉取它,重新创建其执行环境并运行它,将其标量、图表等报告给实验管理器。

通过在任何机器上(例如云虚拟机、本地GPU机器、您自己的笔记本电脑)运行以下命令来部署ClearML代理:

clearml-agent daemon --queue <queues_to_listen_to> [--docker]

使用ClearML的自动扩展器来帮助您管理所选云(AWS、GCP、Azure)中的云工作负载,并自动部署ClearML代理:自动扩展器会根据您设置的资源预算,根据需要自动启动和关闭实例。

克隆、编辑和入队

克隆、编辑、排队 gif

使用ClearML的网页界面编辑任务详情,如配置参数或输入模型,然后在远程机器上使用新配置执行任务:

  • Clone Experiment
  • Edit hyperparameters and/or other details
  • 将任务加入队列

执行任务的ClearML代理将使用新值来覆盖任何硬编码的值