实用程序#
NIM 包含一组实用程序脚本,以协助 NIM 操作。
实用程序可以通过将所需实用程序的名称添加到 docker run 命令来启动。 例如,您可以使用以下命令执行 list-model-profiles
实用程序
docker run --rm --runtime=nvidia --gpus=all --entrypoint nim_list_model_profiles $IMG_NAME
您可以使用 -h
标志获取有关每个实用程序的更多信息
docker run --rm --runtime=nvidia --gpus=all --entrypoint nim_list_model_profiles $IMG_NAME -h
列出可用的模型配置文件#
- nim_list_model_profiles()#
将 NIM 检测到的系统信息以及所选 NIM 的所有配置文件列表打印到控制台。 配置文件根据它们是否与当前系统兼容进行分类,基于检测到的系统信息。 此函数也可以使用其别名
list-model-profiles
调用。- manifest-file <manifest_file>, -m <manifest_file>#
Manifest 文件路径是用户可以指定的可选参数。
示例#
docker run -it --rm --gpus all --entrypoint nim_list_model_profiles $IMG_NAME -m $HOME/model_manifest.yaml
SYSTEM INFO
- Free GPUs:
- [26b5:10de] (0) NVIDIA L40 (L40S) [current utilization: 1%]
MODEL PROFILES
- All profiles:
- 2f15271966bc5d990c123a195497b64c5b73e84a9bd4b2d01c5c53c4c21d3596 (backend=onnx, gpu=generic, number_of_gpus=1, precision=fp32)
- 5007ada3ec663076c8330977f7d73d2b2838ffedf77fee3a933e6a6e297f3d22 (backend=tensorrt, gpu=h100, number_of_gpus=1, precision=fp32, profile=latency)
- 7715078ea069d595eabc18c6f6a5b4641a74e43b3065d5ee57d8f4632b9bedd4 (backend=tensorrt, gpu=l40, number_of_gpus=1, precision=fp32, profile=latency)
- d3b794b9f532c065518e8de93b65fae4bb9861ee65f8da026c9c48d3b291e4ba (backend=tensorrt, gpu=a100, number_of_gpus=1, precision=fp32, profile=latency)
- fd034d92a046282583bfb1b2ba4ac0178cd92c3118121a1bb95acec1643936cf (backend=tensorrt, gpu=a10g, number_of_gpus=1, precision=fp32, profile=latency)
将模型配置文件下载到 NIM 缓存#
- nim_download_to_cache()#
将选定的或默认的模型配置文件下载到 NIM 缓存。 可用于在部署之前预缓存配置文件。 需要在环境中设置
NGC_API_KEY
。 此函数也可以使用其别名download-to-cache
调用。- --profiles [PROFILES ...], -p [PROFILES ...]#
要下载的配置文件哈希值。 如果未提供,则下载最佳配置文件。 可以指定多个配置文件,以空格分隔。
- --all#
设置为下载所有配置文件到缓存
- --lora#
设置为下载默认 lora 配置文件。 这要求不指定
--profiles
和--all
参数。
- manifest-file <manifest_file>, -m <manifest_file>#
Manifest 文件路径是用户可以指定的可选参数。 它允许下载模型配置文件。
- --model-cache-path <model-cache-path>#
模型缓存路径是用户可以指定的可选参数。 此功能允许修改默认的 model_cache_path。
示例#
docker run -it --rm --gpus all -e NGC_API_KEY -v $LOCAL_NIM_CACHE:/opt/nim/.cache --entrypoint nim_download_to_cache\
$IMG_NAME -p 8543f214b6e05f3b2b25596c7a4990ee43d727c4671b13db58a2adf3630d7efe
"timestamp": "2024-10-28 12:54:40,457", "level": "INFO", "message": "Fetching contents for profile 8543f214b6e05f3b2b25596c7a4990ee43d727c4671b13db58a2adf3630d7efe"
"timestamp": "2024-10-28 12:54:40,457", "level": "INFO", "message": "{
"gpu": "a6000",
"llm_engine": "trtllm",
"precision": "fp16",
"tp": "1"
}"
...
创建模型存储#
- nim_create_model_store()#
从缓存的模型配置文件中提取文件,并创建一个格式正确的目录。 如果配置文件尚未缓存,则会将其下载到模型缓存。 下载配置文件需要在环境中设置
NGC_API_KEY
。 此函数也可以使用其别名create-model-store
调用。- --profile <PROFILE>, -p <PROFILE>#
要创建模型目录的配置文件哈希值。 如果不存在,将会被下载。
- --model-store <MODEL_STORE>, -m <MODEL_STORE>#
模型
--profile
将被提取并复制到的目录路径。
- --model-cache-path <model-cache-path>#
Manifest 文件路径是用户可以指定的可选参数。 此功能允许修改默认的 model_cache_path。
示例#
docker run -it --rm --gpus all -e NGC_API_KEY -v $LOCAL_NIM_CACHE:/opt/nim/.cache --entrypoint nim_create_model_store $IMG_NAME -p 6f437946f8efbca34997428528d69b08974197de157460cbe36c34939dc99edb -m /tmp
"timestamp": "2024-10-28 12:58:37,113", "level": "INFO", "message": "Creating model store at /tmp"
"timestamp": "2024-10-28 12:58:37,114", "level": "INFO", "message": "Copying contents for profile 6f437946f8efbca34997428528d69b08974197de157460cbe36c34939dc99edb to /tmp"
检查 NIM 缓存#
- nim_check_cache_env()#
检查 NIM 缓存目录是否存在且可写入。 此函数也可以使用其别名
nim-llm-check-cache-env
调用。
示例#
docker run -it --rm --gpus all -v /bad_path:/opt/nim/.cache --entrypoint nim_check_cache_env $IMG_NAME
WARNING 08-12 19:54:06.347 caches.py:30] /opt/nim/.cache is read-only, application may fail if model is not already present in cache