高级框架配置#
在版本 2.0 中添加。
保护 notebook 服务器#
Jupyter notebook Web 应用程序基于服务器-客户端结构。本文档描述了如何保护 notebook 服务器。
重要提示
以下脚本未考虑 Jupyter notebook 的安全性。要正确保护您的 Jupyter notebook,请使用上面列出的指南。
单个容器的启动脚本#
Jupyter 的启动脚本#
创建一个
dataset
目录,用于存储使用 Jupyter notebook 的所有数据集。mkdir ~/dataset
创建一个启动脚本,并将其放置在
home
目录中。vim /home/nvidia/startup.sh
RAPIDS 容器#
将以下内容添加到在Jupyter 的启动脚本部分中创建的 startup.sh
脚本中。
1#!/bin/bash
2podman rm -f $(podman ps -a -q)
3podman run --gpus all --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 -p8888:8888 -v /home/nvidia/dataset:/workspace/dataset nvcr.io/nvidia/rapidsai/notebooks:<CONTAINER-TAG> jupyter-notebook --allow-root --ip='0.0.0.0'
注意
将 /home/nvidia
替换为您的 home 路径。请勿使用 $HOME
,此脚本需要绝对路径。
提示
示例:nvcr.io/nvidia/rapidsai/notebooks:24.08-cuda11.8-py3.9 容器位置:https://catalog.ngc.nvidia.com/orgs/nvidia/teams/rapidsai/containers/notebooks
TensorFlow1 容器#
将以下内容添加到在Jupyter 的启动脚本部分中创建的 startup.sh
脚本中。
1#!/bin/bash
2podman rm -f $(podman ps -a -q)
3 podman run --gpus all --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 -p8888:8888 -v /home/nvidia/dataset:/workspace/dataset nvcr.io/nvidia/tensorflow:<CONTAINER-TAG> jupyter-notebook --allow-root --ip='0.0.0.0'
注意
将 /home/nvidia
替换为您的 home 路径。请勿使用 $HOME
,此脚本需要绝对路径。
提示
示例:nvcr.io/nvidia/tensorflow:24.09-tf2-py3 容器位置:https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tensorflow/tags
TensorFlow2 容器#
将以下内容添加到在Jupyter 的启动脚本部分中创建的 startup.sh
脚本中。
1#!/bin/bash
2podman rm -f $(podman ps -a -q)
3podman run --gpus all --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 -p8888:8888 -v /home/nvidia/dataset:/workspace/dataset nvcr.io/nvidia/tensorflow:<CONTAINER-TAG> jupyter-notebook --allow-root --ip='0.0.0.0'
注意
将 /home/nvidia
替换为您的 home 路径。请勿使用 $HOME
,此脚本需要绝对路径。
提示
示例:nvcr.io/nvidia/tensorflow:24.09-tf2-py3 容器位置:https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tensorflow/tags
PyTorch 容器#
将以下内容添加到在Jupyter 的启动脚本部分中创建的 startup.sh
脚本中。
1#!/bin/bash
2podman rm -f $(podman ps -a -q)
3podman run --gpus all --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 -p8888:8888 -v /home/nvidia/dataset:/workspace/dataset nvcr.io/nvidia/pytorch:<CONTAINER-TAG> jupyter-notebook --allow-root --ip='0.0.0.0'
注意
将 /home/nvidia
替换为您的 home 路径。请勿使用 $HOME
,此脚本需要绝对路径。
提示
示例:nvcr.io/nvidia/pytorch:24.09-py3 容器位置:https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch/tags
组合启动脚本#
以下脚本在单个系统上自动启动所有 NVIDIA AI Enterprise 容器的 Jupyter notebook。在此示例中,PyTorch、TensorFlow1、TensorFlow2 和 RAPIDS 的 Jupyter notebook 分别在端口 8888、8889、8890 和 8891 上启动。
1#!/bin/bash
2podman rm -f $(podman ps -a -q)
3podman run -d --gpus all --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 -p8888:8888 --name pytorch_cont -v /home/nvidia/dataset:/workspace/dataset nvcr.io/nvaie/pytorch:<NVAIE-CONTAINER-TAG> jupyter-notebook --allow-root --NotebookApp.token='' --ip='0.0.0.0' --port 8888
4podman run -d --gpus all --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 -p8889:8889 --name tensorflow1_cont -v /home/nvidia/dataset:/workspace/dataset nvcr.io/nvaie/tensorflow:<NVAIE-CONTAINER-TAG> jupyter-notebook --allow-root --NotebookApp.token='' --ip='0.0.0.0' --port 8889
5podman run -d --gpus all --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 -p8890:8890 --name tensorflow2_cont -v /home/nvidia/dataset:/workspace/dataset nvcr.io/nvaie/tensorflow:<NVAIE-CONTAINER-TAG> jupyter-notebook --allow-root --NotebookApp.token='' --ip='0.0.0.0' --port 8890
6podman run -d --gpus all --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 -p8891:8891 --name rapids_cont -v /home/nvidia/dataset:/workspace/dataset nvcr.io/nvaie/nvidia-rapids-:<NVAIE-CONTAINER-TAG> jupyter-notebook --allow-root --NotebookApp.token='' --ip='0.0.0.0' --port 8891
启用启动脚本#
给予脚本执行权限。
chmod +x /home/nvidia/startup.sh
注意
将
/home/nvidia
替换为您的 home 路径。请勿使用$HOME
,此脚本需要绝对路径。为启动脚本创建 systemd 进程。
sudo vim /etc/systemd/system/jupyter.service
将以下内容添加到
jupyter.service
文件中。1[Unit] 2Description=Starts Jupyter server 3 4[Service] 5ExecStart=/home/nvidia/startup.sh #Use your home path 6 7[Install] 8WantedBy=multi-user.target
启动并启用启动服务以在重启时运行。
sudo systemctl start jupyter.service
sudo systemctl enable jupyter.service
重启系统。
注意
对于 :ref: combined-startup-scripts 部分,您可以跳过下一步,直接访问 PyTorch 容器、TensorFlow-v1、TensorFlow-v2 和 RAPIDS Jupyter notebook,地址分别为:http://system_IP:8888、http://system_IP:8889、http://system_IP:8890、http://system_IP:8891。
要打开 Jupyter Notebook,您将需要令牌/密码。这是为了防止未经授权访问 Jupyter Notebook。要访问令牌,请使用以下命令查看 Jupyter 服务日志。
journalctl -f -u jupyter.service
日志将显示 Jupyter Notebook 的完整 URL,包括令牌。
Sep 15 16:33:58 triton-inference-server startup.sh[6315]: To access the notebook, http://341eed905e2a:8888/?token=0a13f9068c4ea9bb2f1ca5d8ad212a26accc085da896a368
作为 IT 管理员,您需要向数据科学家提供系统的 IP 和下面的令牌。
http://system_IP:8888/?token=<token_from_the logs>
示例
http://192.168.100.10:8888/?token=0a13f9068c4ea9bb2f1ca5d8ad212a26accc085da896a368
Triton Inference Server 的启动脚本#
在系统中创建一个
triton
目录,供 AI 从业人员托管模型。mkdir ~/triton
拉取最新的 Triton Inference Server 容器。
sudo podman pull nvcr.io/nvaie/tritonserver-<NVAIE-MAJOR-VERSION>:<NVAIE-CONTAINER-TAG>
创建一个启动脚本,以在系统上自动运行 Triton Inference Server。
vim ~/startup.sh
将以下内容添加到
startup.sh
文件中。1#!/bin/bash 2podman rm -f $(podman ps -a -q) 3podman run --gpus all --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 -p8000:8000 -p8001:8001 -p8002:8002 --name triton_server_cont -v $HOME/triton_models:/models nvcr.io/nvaie/tritonserver-<NVAIE-MAJOR-VERSION>:<NVAIE-CONTAINER-TAG> tritonserver --model-store=/models --strict-model-config=false --log-verbose=1
使启动脚本可执行。
chmod +x ~/startup.sh
为启动脚本创建 systemd 进程。
sudo vim /etc/systemd/system/triton.service
将以下内容添加到
triton.service
文件中。1[Unit] 2Description=Starts Triton server 3 4[Service] 5ExecStart=/home/nvidia/startup.sh 6 7[Install] 8WantedBy=multi-user.target
启动并启用启动服务以在重启时运行。
sudo systemctl start triton.service
sudo systemctl enable triton.service
重启系统。