TAO v5.5.0

训练、适配、优化 (TAO) REST API

TAO API 公开了数据集和实验端点,用于设置和运行操作。

本节中的示例基于 CURL 命令和 jq JSON 数据处理,在预装了 CURL 和 jq 工具的 Linux 机器上。

如果使用 Python requests 进行 API 调用,则必须使用 Python == 3.11

用户身份验证基于 NGC API 密钥。有关更多详细信息,请参阅API 参考

例如

复制
已复制!
            

BASE_URL=https://IP_of_machine_deployed/api/v1 NGC_API_KEY=zZYtczM5amdtdDcwNjk0cnA2bGU2bXQ3bnQ6NmQ4NjNhMDItMTdmZS00Y2QxLWI2ZjktNmE5M2YxZTc0OGyS CREDS=$(curl -s -X POST $BASE_URL/login -d '{"ngc_api_key": "'"$NGC_API_KEY"'"}') TOKEN=$(echo $CREDS | jq -r '.token')

例如,列出数据集的 API 调用可能是

复制
已复制!
            

curl -s -X GET $BASE_URL/orgs/ea-tlt/datasets -H "Authorization: Bearer$TOKEN"

TAO API 服务包括处理实验工作区内容的方法,例如用户数据集和实验。它还包括用于执行适用于存储在实验工作区中的数据和规范的 TAO 操作的方法。

通常,您为特定的网络类型创建一个数据集,创建一个指向此数据集的实验,选择一个基础实验,并在执行与网络相关的操作之前自定义规范。

/api/v1/orgs/nvidian/datasets

/api/v1/orgs/nvidian/experiments

/api/v1/orgs/nvidian/workspaces

  • 列出用户的datasets
  • 列出用户的experiments
  • 列出用户的工作区
  • 检索新的dataset
  • 检索实验
  • 检索工作区
  • 删除dataset
  • 删除实验
  • 删除工作区
  • 创建dataset
  • 创建新的实验
  • 创建新的工作区
  • 更新数据集元数据
  • 更新实验元数据
  • 更新工作区元数据
  • 部分更新数据集元数据
  • 部分更新实验元数据
  • 部分更新实验元数据
  • 数据集上传
  • 检索默认操作规范
  • 检索默认操作规范
  • 检索实验操作规范
  • 检索数据集操作规范
  • 更新当前实验规范
  • 更新数据集操作规范
  • 运行实验操作
  • 运行数据集操作
  • 列出实验操作
  • 列出数据集作业
  • 检索实验作业
  • 检索数据集作业
  • 提前停止/取消实验操作
  • 取消数据集作业
  • 删除实验作业
  • 删除数据集作业
  • 下载实验操作作业
  • 列出数据集作业的文件
  • 列出实验作业的文件
  • 下载数据集作业的选择性文件
  • 下载实验作业的选择性文件
  • 下载数据集操作作业
  • 恢复训练

有关更多详细信息,请参阅TAO API 参考

教程 notebook 提供了示例,演示了各种工作流程。

  1. 使用 NGC CLI 下载资源。

    复制
    已复制!
                

    ngc registry resource download-version "nvidia/tao/tao-getting-started:5.5.0"


  2. 查找教程 notebook (.ipynb 文件)。

    复制
    已复制!
                

    cd tao-getting-started_v5.5.0/notebooks/tao_api_starter_kit/api


  3. 使用 Jupyter-lab pod 提供这些 Notebook 示例。

    警告

    Jupyter-lab pod 不是多租户的,并且存在安全风险,因为用户可以获得访问权限来管理 pod 内的整个 GPU 集群。

    此外,下面提到的转发端口和使用 Jupyter-lab pod 的说明仅用于展示如何在云不可知的方式中跨不同的云服务提供商 (CSP) 启动 TAO API notebook。每个组织都将有自己关于公开云服务端口的特定安全策略,因此在执行下面提到的步骤之前,请确保您查看并遵守这些策略。

    TAO API 5.5.0 版本提供了一个 Jupyter-lab pod,其中预装了启动 notebook 所需的依赖项。

    1. 在运行一键部署脚本的远程机器上,执行以下命令。请注意,此命令不会自动终止,因此要在该机器上运行任何新命令,您需要打开一个新的终端。

      复制
      已复制!
                  

      kubectl port-forward service/tao-api-jupyterlab-service :8888

      示例输出

      复制
      已复制!
                  

      Forwarding from 127.0.0.1:33465 -> 8888 Forwarding from [::1]:33465 -> 8888


    2. 从上一步的输出中复制地址 127.0.0.1 后面的端口号。

    3. 在本地机器的新终端窗口中,通过以下命令启动远程机器的 ssh 隧道。user_name 和 IP_address 对应于运行部署脚本的机器。请注意,此命令不会自动终止。

      复制
      已复制!
                  

      ssh -N -L <port_number_copied>:localhost:<port_number_copied> <user_name>@<IP_address>


    4. 在本地机器的浏览器上,访问地址 localhost:<port_number_copied>/notebook/lab

      现在,您可以在浏览器上访问 jupyter-lab pod 内的 jupyterlab 会话。
      您可以在 tao_end2end 文件夹中运行 api 或 TAO-Client notebook。

    5. 在 notebook 中,对于 ip_address 的 FIXME,使用 ingress-nginx-controller,对于 port_number 的 FIXME,使用 80

    您可以使用 kubectl get pods -n default | grep "jupyter" 查看 pod 名称。

    您可以使用 kubectl cp <path to local file system> <jupyterlab-pod pod name>:<path inside jupyterlab-pod> 将文件复制到 pod 中

    您还可以通过安装 Jupyter notebook pip 包并使用该包从 getting started 目录启动 notebook,而无需 Jupyter-lab pod 来启动 notebook:教程 notebook 也可以从部署 TAO API 的机器上下载,而不是使用 NGC。您可以使用以下命令获取它们

    复制
    已复制!
                

    wget https://<ip_of_hosted_machine>:<nginx_service_forwarded_port>/tao_api_notebooks.zip unzip tao_api_notebooks.zip cd api pip3 install jupyter notebook jupyter notebook --ip 0.0.0.0


上一步 部署
下一步 远程客户端
© 版权所有 2024,NVIDIA。 上次更新于 2024 年 10 月 15 日。