训练、适配、优化 (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 操作的方法。
通常,您为特定的网络类型创建一个数据集,创建一个指向此数据集的实验,选择一个基础实验,并在执行与网络相关的操作之前自定义规范。
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
有关更多详细信息,请参阅TAO API 参考。
教程 notebook 提供了示例,演示了各种工作流程。
使用 NGC CLI 下载资源。
ngc registry resource download-version "nvidia/tao/tao-getting-started:5.5.0"
查找教程 notebook (
.ipynb
文件)。cd tao-getting-started_v5.5.0/notebooks/tao_api_starter_kit/api
使用 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 所需的依赖项。
在运行一键部署脚本的远程机器上,执行以下命令。请注意,此命令不会自动终止,因此要在该机器上运行任何新命令,您需要打开一个新的终端。
kubectl port-forward service/tao-api-jupyterlab-service :8888
示例输出
Forwarding from 127.0.0.1:33465 -> 8888 Forwarding from [::1]:33465 -> 8888
从上一步的输出中复制地址
127.0.0.1
后面的端口号。在本地机器的新终端窗口中,通过以下命令启动远程机器的 ssh 隧道。user_name 和 IP_address 对应于运行部署脚本的机器。请注意,此命令不会自动终止。
ssh -N -L <port_number_copied>:localhost:<port_number_copied> <user_name>@<IP_address>
在本地机器的浏览器上,访问地址
localhost:<port_number_copied>/notebook/lab
现在,您可以在浏览器上访问 jupyter-lab pod 内的 jupyterlab 会话。
您可以在 tao_end2end 文件夹中运行 api 或 TAO-Client notebook。在 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