当前位置: 首页 > news >正文

NVIDIA NIM 开发者指南:入门

NVIDIA NIM 开发者指南:入门

NVIDIA 开发者计划

想要了解有关 NIM 的更多信息?加入 NVIDIA 开发者计划,即可免费访问任何基础设施云、数据中心或个人工作站上最多 16 个 GPU 上的自托管 NVIDIA NIM 和微服务。

加入免费的 NVIDIA 开发者计划后,您可以随时通过 NVIDIA API 目录访问 NIM。要获得企业级安全性、支持和 API 稳定性,请选择通过我们的免费 90 天 NVIDIA AI Enterprise 试用版使用企业电子邮件地址访问 NIM 的选项。

预先条件

设置

  • NVIDIA AI Enterprise 许可证:NVIDIA NIM for LLM 可在 NVIDIA AI Enterprise 许可证下自行托管。注册 NVIDIA AI Enterprise 许可证。

  • NVIDIA GPU:NVIDIA NIM for LLM(NIM for LLM)可在任何具有足够 GPU 内存的 NVIDIA GPU 上运行,但某些模型/GPU 组合经过了优化。还支持启用张量并行的同构多 GPU 系统。有关更多信息,请参阅支持矩阵。

  • CPU:此版本仅适用于 x86_64 架构

  • 操作系统:任何 Linux 发行版:

    • 受 NVIDIA Container 工具包支持

    • glibc >= 2.35(参见 ld -v 的输出)

  • CUDA 驱动程序:按照安装指南操作。我们建议:

    • 使用网络存储库作为包管理器安装的一部分,跳过 CUDA 工具包安装,因为库在 NIM 容器中可用,然后

    • 安装特定版本的开放内核:

Major VersionEOLData Center & RTX/Quadro GPUsGeForce GPUs
> 550TBDXX
550Feb. 2025XX
545Oct. 2023XX
535June 2026X
525Nov. 2023X
470Sept. 2024X
  1. 安装 Docker

  2. 安装 NVIDIA Container Toolkit

注意

安装工具包后,请按照 NVIDIA Container Toolkit 文档中“配置 Docker”部分中的说明进行操作。

为确保您的设置正确,请运行以下命令(有关使用 --gpus all 的说明,请参阅“GPU 选择”部分):

docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

此命令应产生类似于以下内容之一的输出,您可以在其中确认 CUDA 驱动程序版本和可用的 GPU。

+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.14              Driver Version: 550.54.14      CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA H100 80GB HBM3          On  |   00000000:1B:00.0 Off |                    0 |
| N/A   36C    P0            112W /  700W |   78489MiB /  81559MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------++-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

安装适用于 Windows 的 WSL2

某些可下载的 NIM 可在带有适用于 Linux 的 Windows 系统 (WSL) 的 RTX Windows 系统上使用。要启用 WSL2,请执行以下步骤。

  1. 确保您的计算机能够按照 WSL2 文档的先决条件部分所述运行 WSL2。

  2. 按照安装 WSL 命令中列出的步骤在 Windows 计算机上启用 WSL2。默认情况下,这些步骤会安装 Linux 的 Ubuntu 发行版。有关备选安装的列表,请参阅更改安装的默认 Linux 发行版。

启动用于 LLM 的 NVIDIA NIM

您可以从 API 目录或 NGC 下载并运行您选择的 NIM。

选项 1:从 API 目录

查看此视频,其中说明了以下步骤。

生成 API 密钥
  1. 导航到 API 目录。

  2. 选择一个模型。

  3. 选择一个输入选项。以下示例是一个提供 Docker 选项的模型。并非所有模型都提供此选项,但都包含“Get API Key”链接。

在这里插入图片描述

  1. 如果出现提示,选择“获取 API 密钥”并登录。

在这里插入图片描述

  1. 选择“Generate Key”

在这里插入图片描述

  1. 复制您的密钥并将其存储在安全的地方。不要与他人共享。

在这里插入图片描述

登录 Docker

使用 docker login 命令(如以下屏幕截图所示)登录 Docker。将用户名和密码的占位符替换为您的值。

在这里插入图片描述

下载并启动适用于 LLM 的 NVIDIA NIM

使用以下命令通过 Docker 拉取并运行 NIM。

在这里插入图片描述

要修改 docker 运行参数,请参阅 Docker 运行参数。

现在,您可以跳转到运行推理。

选项 2:从 NGC
生成 API 密钥

需要 NGC API 密钥才能访问 NGC 资源,可以在此处生成密钥:https://org.ngc.nvidia.com/setup/personal-keys。

创建 NGC API 密钥时,请确保至少从“包含的服务”下拉列表中选择了“NGC 目录”。 如果要将此密钥重新用于其他目的,则可以包含更多服务。

在这里插入图片描述

导出 API 密钥

将 API 密钥的值作为 NGC_API_KEY 环境变量传递给下一节中的 docker run 命令,以便在启动 NIM 时下载适当的模型和资源。

如果您不熟悉如何创建 NGC_API_KEY 环境变量,最简单的方法是在终端中将其导出:

export NGC_API_KEY=<value>

运行以下命令之一以使该密钥在启动时可用:

# If using bash
echo "export NGC_API_KEY=<value>" >> ~/.bashrc# If using zsh
echo "export NGC_API_KEY=<value>" >> ~/.zshrc

注意
其他更安全的选项包括将值保存在文件中,以便您可以使用 cat $NGC_API_KEY_FILE 或使用密码管理器进行检索。

Docker 登录 NGC

要从 NGC 中提取 NIM 容器映像,请首先使用以下命令通过 NVIDIA Container Registry 进行身份验证:

echo "$NGC_API_KEY" | docker login nvcr.io --username '$oauthtoken' --password-stdin

使用 o a u t h t o k e n 作为用户名,使用 N G C A P I K E Y 作为密码。 oauthtoken 作为用户名,使用 NGC_API_KEY 作为密码。 oauthtoken作为用户名,使用NGCAPIKEY作为密码。oauthtoken 用户名是一个特殊名称,表示您将使用 API 密钥而不是用户名和密码进行身份验证。

列出可用的 NIM

本文档在多个示例中使用了 ngc CLI 工具。有关下载和配置该工具的信息,请参阅 NGC CLI 文档。

使用以下命令以 CSV 格式列出可用的 NIM。

ngc registry image list --format_type csv nvcr.io/nim/*

此命令应产生以下格式的输出:

Name,Repository,Latest Tag,Image Size,Updated Date,Permission,Signed Tag?,Access Type,Associated Products
<name1>,<repository1>,<latest tag1>,<image size1>,<updated date1>,<permission1>,<signed tag?1>,<access type1>,<associated products1>
...
<nameN>,<repositoryN>,<latest tagN>,<image sizeN>,<updated dateN>,<permissionN>,<signed tag?N>,<access typeN>,<associated productsN>

调用 docker run 命令时使用 Repository 和 Latest Tag 字段,如下节所示。

启动 NIM

以下命令为 llama3-8b-instruct 模型启动 Docker 容器。要为不同的 NIM 启动容器,请将 Repository 和 Latest_Tag 的值替换为上一个 image list 命令中的值,并将 CONTAINER_NAME 的值更改为适当的值。

您可以通过以下命令获取有关模型的信息来判断您拥有正确的 Repository 和 Latest_Tag 值:

ngc registry image info --format_type ascii ${Repository}:${Latest_Tag}

它应该产生如下输出:

----------------------------------------------------------
Model Version Information
Id: 0.10.0+e6f46027-h100x1-fp16-balanced.24.06.15839955
Batch Size:
Memory Footprint:
Number Of Epochs:
Accuracy Reached:
GPU Model:
Access Type:
Associated Products:
Created Date: 2024-06-14T22:28:17.604Z
Description:
Status: UPLOAD_COMPLETE
Total File Count: 11
Total Size: 14.96 GB
----------------------------------------------------------

注意
要部署不适合单个节点的模型,请参阅多节点部署

# Choose a container name for bookkeeping
export CONTAINER_NAME=Llama3-8B-Instruct# The container name from the previous ngc registgry image list command
Repository=nim/meta/llama3-8b-instruct
Latest_Tag=1.2.1# Choose a LLM NIM Image from NGC
export IMG_NAME="nvcr.io/${Repository}:${Latest_Tag}"# Choose a path on your system to cache the downloaded models
export LOCAL_NIM_CACHE=~/.cache/nim
mkdir -p "$LOCAL_NIM_CACHE"# Start the LLM NIM
docker run -it --rm --name=$CONTAINER_NAME \--runtime=nvidia \--gpus all \--shm-size=16GB \-e NGC_API_KEY=$NGC_API_KEY \-v "$LOCAL_NIM_CACHE:/opt/nim/.cache" \-u $(id -u) \-p 8000:8000 \$IMG_NAME

运行推理

在启动期间,NIM 容器会下载所需的资源并开始在 API 端点后面为模型提供服务。以下消息表示启动成功。


INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

看到此消息后,您可以通过执行推理请求来验证 NIM 的部署。在新终端中,运行以下命令以显示可用于推理的模型列表:

curl -X GET 'http://0.0.0.0:8000/v1/models'

提示
将 curl 命令的结果导入 jq 或 python -m json.tool 等工具,使 API 的输出更易于阅读。例如:curl -s http://0.0.0.0:8000/v1/models | jq。

此命令应产生类似以下内容的输出:

{"object": "list","data": [{"id": "meta/llama3-8b-instruct","object": "model","created": 1715659875,"owned_by": "vllm","root": "meta/llama3-8b-instruct","parent": null,"permission": [{"id": "modelperm-e39aaffe7015444eba964fa7736ae653","object": "model_permission","created": 1715659875,"allow_create_engine": false,"allow_sampling": true,"allow_logprobs": true,"allow_search_indices": false,"allow_view": true,"allow_fine_tuning": false,"organization": "*","group": null,"is_blocking": false}]}]}

OpenAI 完成请求

完成端点通常用于基础模型。使用完成端点,提示将以纯字符串形式发送,并且模型会根据所选的其他参数生成最可能的文本完成。要流式传输结果,请设置“stream”:true。

重要
更新模型名称以满足您的要求。例如,对于 llama3-8b-instruct 模型,您可以使用以下命令:

curl -X 'POST' \'http://0.0.0.0:8000/v1/completions' \-H 'accept: application/json' \-H 'Content-Type: application/json' \-d '{
"model": "meta/llama3-8b-instruct",
"prompt": "Once upon a time",
"max_tokens": 64
}'

您还可以使用 OpenAI Python API 库。

from openai import OpenAI
client = OpenAI(base_url="http://0.0.0.0:8000/v1", api_key="not-used")
prompt = "Once upon a time"
response = client.completions.create(model="meta/llama3-8b-instruct",prompt=prompt,max_tokens=16,stream=False
)
completion = response.choices[0].text
print(completion)# Prints:
# , there was a young man named Jack who lived in a small village at the

OpenAI 聊天完成请求

聊天完成端点通常与聊天或指导调整模型一起使用,这些模型旨在通过对话方式使用。使用聊天完成端点,提示以带有角色和内容的消息形式发送,从而提供了一种自然的方式来跟踪多轮对话。要流式传输结果,请设置“stream”:true。

重要

根据您的要求更新模型名称。例如,对于 llama3-8b-instruct 模型,您可以使用以下命令:


curl -X 'POST' \
'http://0.0.0.0:8000/v1/chat/completions' \-H 'accept: application/json' \-H 'Content-Type: application/json' \-d '{
"model": "meta/llama3-8b-instruct",
"messages": [
{
"role":"user",
"content":"Hello! How are you?"
},
{
"role":"assistant",
"content":"Hi! I am quite well, how can I help you today?"
},
{
"role":"user",
"content":"Can you write me a song?"
}
],
"max_tokens": 32
}'

您还可以使用 OpenAI Python API 库。


from openai import OpenAI
client = OpenAI(base_url="http://0.0.0.0:8000/v1", api_key="not-used")
messages = [{"role": "user", "content": "Hello! How are you?"},{"role": "assistant", "content": "Hi! I am quite well, how can I help you today?"},{"role": "user", "content": "Write a short limerick about the wonders of GPU computing."}
]
chat_response = client.chat.completions.create(model="meta/llama3-8b-instruct",messages=messages,max_tokens=32,stream=False
)
assistant_message = chat_response.choices[0].message
print(assistant_message)# Prints:
# ChatCompletionMessage(content='There once was a GPU so fine,\nProcessed data in parallel so divine,\nIt crunched with great zest,\nAnd computational quest,\nUnleashing speed, a true wonder sublime!', role='assistant', function_call=None, tool_calls=None)

注意
如果您遇到 BadRequestError,并出现错误消息,表明您缺少消息或提示字段,则您可能无意中使用了错误的端点。

例如,如果您发出一个包含用于聊天完成的请求正文的完成请求,您将收到以下错误:

{
“object”:“error”,
“message”:“[{'type': 'missing', 'loc': ('body', 'prompt'), 'msg': 'Field required', ...",
“type”:“BadRequestError”,
“param”:“null,
“code”:400
}

相反,如果您发出一个包含用于完成的请求正文的聊天完成请求,您将收到以下错误:

{
“object”:“error”,
“message”:“[{'type': 'missing', 'loc': ('body', 'messages'), 'msg': 'Field required', ...",
“type”:“BadRequestError”,
“param”:“null,
“code”:400
}

验证您正在使用的端点,例如作为 /v1/completions 或 /v1/chat/completions,已正确配置您的请求。

参数高效微调

参数高效微调 (PEFT) 方法能够高效适应大型预训练模型。目前 NIM 仅支持 LoRA PEFT。有关详细信息,请参阅参数高效微调。

停止容器

如果使用 --name 命令行选项启动 Docker 容器,则可以使用以下命令停止正在运行的容器。

docker stop $CONTAINER_NAME

如果 stop 没有响应,请使用 docker kill。如果您不打算按原样重新启动容器(使用 docker start $CONTAINER_NAME),请在该命令后执行 docker rm $CONTAINER_NAME,在这种情况下,您需要重新使用本节开头的 docker run … 说明为您的 NIM 启动新容器。

如果您没有使用 --name 启动容器,请检查 docker ps 命令的输出以获取您使用的给定映像的容器 ID。

Kubernetes 安装

nim-deploy 展示了 Kubernetes 安装的几种参考实现。这些示例是实验性的,可能需要修改才能在特定集群设置中运行。

从本地资产提供模型

NIM for LLMs 提供的实用程序允许将模型下载到本地目录作为模型存储库或 NIM 缓存。有关详细信息,请参阅实用程序部分。

使用以下命令启动 NIM 容器。从那里,您可以在本地查看和下载模型。

# Choose a container name for bookkeeping
export CONTAINER_NAME=Llama-3.1-8B-instruct# The container name from the previous ngc registgry image list command
Repository=nim/meta/llama-3.1-8b-instruct
Latest_Tag=1.1.0# Choose a LLM NIM Image from NGC
export IMG_NAME="nvcr.io/${Repository}:${Latest_Tag}"# Choose a path on your system to cache the downloaded models
export LOCAL_NIM_CACHE=~/.cache/downloaded-nim
mkdir -p "$LOCAL_NIM_CACHE"# Add write permissions to the NIM cache for downloading model assets
chmod -R a+w "$LOCAL_NIM_CACHE"docker run -it --rm --name=$CONTAINER_NAME \-e LOG_LEVEL=$LOG_LEVEL \-e NGC_API_KEY=$NGC_API_KEY \--gpus all \-v $LOCAL_NIM_CACHE:/opt/nim/.cache \-u $(id -u) \$IMG_NAME \bash -i

使用 list-model-profiles 命令列出可用的配置文件。

list-model-profiles \
-e NGC_API_KEY=$NGC_API_KEY
#SYSTEM INFO
#- Free GPUs:
# - [26b3:10de] (0) NVIDIA RTX 5880 Ada Generation (RTX A6000 Ada) [current utilization: 1%]
# - [26b3:10de] (1) NVIDIA RTX 5880 Ada Generation (RTX A6000 Ada) [current utilization: 1%]
# - [1d01:10de] (2) NVIDIA GeForce GT 1030 [current utilization: 2%]
#MODEL PROFILES
#- Compatible with system and runnable:
# - 19031a45cf096b683c4d66fff2a072c0e164a24f19728a58771ebfc4c9ade44f (vllm-fp16-tp2)
# - 8835c31752fbc67ef658b20a9f78e056914fdef0660206d82f252d62fd96064d (vllm-fp16-tp1)
# - With LoRA support:
# - c5ffce8f82de1ce607df62a4b983e29347908fb9274a0b7a24537d6ff8390eb9 (vllm-fp16-tp2-lora)
# - 8d3824f766182a754159e88ad5a0bd465b1b4cf69ecf80bd6d6833753e945740 (vllm-fp16-tp1-lora)
#- Incompatible with system:
# - dcd85d5e877e954f26c4a7248cd3b98c489fbde5f1cf68b4af11d665fa55778e (tensorrt_llm-h100-fp8-tp2-latency)
# - f59d52b0715ee1ecf01e6759dea23655b93ed26b12e57126d9ec43b397ea2b87 (tensorrt_llm-l40s-fp8-tp2-latency)
# - 30b562864b5b1e3b236f7b6d6a0998efbed491e4917323d04590f715aa9897dc (tensorrt_llm-h100-fp8-tp1-throughput)
# - 09e2f8e68f78ce94bf79d15b40a21333cea5d09dbe01ede63f6c957f4fcfab7b (tensorrt_llm-l40s-fp8-tp1-throughput)
# - a93a1a6b72643f2b2ee5e80ef25904f4d3f942a87f8d32da9e617eeccfaae04c (tensorrt_llm-a100-fp16-tp2-latency)
# - e0f4a47844733eb57f9f9c3566432acb8d20482a1d06ec1c0d71ece448e21086 (tensorrt_llm-a10g-fp16-tp2-latency)
# - 879b05541189ce8f6323656b25b7dff1930faca2abe552431848e62b7e767080 (tensorrt_llm-h100-fp16-tp2-latency)
# - 24199f79a562b187c52e644489177b6a4eae0c9fdad6f7d0a8cb3677f5b1bc89 (tensorrt_llm-l40s-fp16-tp2-latency)
# - 751382df4272eafc83f541f364d61b35aed9cce8c7b0c869269cea5a366cd08c (tensorrt_llm-a100-fp16-tp1-throughput)
# - c334b76d50783655bdf62b8138511456f7b23083553d310268d0d05f254c012b (tensorrt_llm-a10g-fp16-tp1-throughput)
# - cb52cbc73a6a71392094380f920a3548f27c5fcc9dab02a98dc1bcb3be9cf8d1 (tensorrt_llm-h100-fp16-tp1-throughput)
# - d8dd8af82e0035d7ca50b994d85a3740dbd84ddb4ed330e30c509e041ba79f80 (tensorrt_llm-l40s-fp16-tp1-throughput)
# - 9137f4d51dadb93c6b5864a19fd7c035bf0b718f3e15ae9474233ebd6468c359 (tensorrt_llm-a10g-fp16-tp2-throughput-lora)
# - cce57ae50c3af15625c1668d5ac4ccbe82f40fa2e8379cc7b842cc6c976fd334 (tensorrt_llm-a100-fp16-tp1-throughput-lora)
# - 3bdf6456ff21c19d5c7cc37010790448a4be613a1fd12916655dfab5a0dd9b8e (tensorrt_llm-h100-fp16-tp1-throughput-lora)
# - 388140213ee9615e643bda09d85082a21f51622c07bde3d0811d7c6998873a0b (tensorrt_llm-l40s-fp16-tp1-throughput-lora)

您可以使用 download-to-cache 命令将这些配置文件中的任何一个下载到 NIM 缓存。以下示例将 tensorrt_llm-l40s-fp8-tp1-throughput 配置文件下载到 NIM 缓存。

download-to-cache --profile 09e2f8e68f78ce94bf79d15b40a21333cea5d09dbe01ede63f6c957f4fcfab7b

您还可以让 download-to-cache 根据要下载的硬件决定最优配置文件,方法是不提供要下载的配置文件,如以下示例所示。

download-to-cache

有关 download-to-cache 工具的更多信息,请执行以下命令:

download-to-cache -h
# Downloads selected or default model profiles to NIM cache. Can be used to pre-
# cache profiles prior to deployment.# options:
# -h, --help show this help message and exit
# --profiles [PROFILES ...], -p [PROFILES ...]
# Profile hashes to download. If none are provided, the
# optimal profile is downloaded. Multiple profiles can
# be specified separated by spaces.
# --all Set this to download all profiles to cache
# --lora Set this to download default lora profile. This
# expects --profiles and --all arguments are not
# specified.

离线缓存路由

NIM 支持在气隙系统(也称为气墙、气隙或断开网络)中提供模型。如果 NIM 检测到缓存中先前加载的配置文件,它会从缓存中提供该配置文件。使用下载到缓存将配置文件下载到缓存后,可以将缓存传输到气隙系统以运行 NIM,无需任何互联网连接,也无需连接到 NGC 注册表。

要查看此操作,请不要提供 NGC_API_KEY,如以下示例所示。


# Create an example air-gapped directory where the downloaded NIM will be deployed
export AIR_GAP_NIM_CACHE=~/.cache/air-gap-nim-cache
mkdir -p "$AIR_GAP_NIM_CACHE"# Transport the downloaded NIM to an air-gapped directory
cp -r "$LOCAL_NIM_CACHE"/* "$AIR_GAP_NIM_CACHE"# Choose a container name for bookkeeping
export CONTAINER_NAME=Llama-3.1-8B-instruct# The container name from the previous ngc registgry image list command
Repository=nim/meta/llama-3.1-8b-instruct
Latest_Tag=1.1.0# Choose a LLM NIM Image from NGC
export IMG_NAME="nvcr.io/${Repository}:${Latest_Tag}"# Assuming the command run prior was `download-to-cache`, downloading the optimal profile
docker run -it --rm --name=$CONTAINER_NAME \--runtime=nvidia \--gpus all \--shm-size=16GB \-v "$AIR_GAP_NIM_CACHE:/opt/nim/.cache" \-u $(id -u) \-p 8000:8000 \$IMG_NAME# Assuming the command run prior was `download-to-cache --profile 09e2f8e68f78ce94bf79d15b40a21333cea5d09dbe01ede63f6c957f4fcfab7b`
docker run -it --rm --name=$CONTAINER_NAME \--runtime=nvidia \--gpus all \--shm-size=16GB \-e NIM_MODEL_PROFILE=09e2f8e68f78ce94bf79d15b40a21333cea5d09dbe01ede63f6c957f4fcfab7b \-v "$AIR_GAP_NIM_CACHE:/opt/nim/.cache" \-u $(id -u) \-p 8000:8000 \$IMG_NAME

气隙部署(本地模型目录路由)

气隙路由的另一种选择是使用 NIM 容器中的 create-model-store 命令部署创建的模型存储库,以创建单个模型的存储库,如以下示例所示。

create-model-store --profile 09e2f8e68f78ce94bf79d15b40a21333cea5d09dbe01ede63f6c957f4fcfab7b --model-store /path/to/model-repository
# Choose a container name for bookkeeping
export CONTAINER_NAME=Llama-3.1-8B-instruct# The container name from the previous ngc registgry image list command
Repository=nim/meta/llama-3.1-8b-instruct
Latest_Tag=1.1.0# Choose a LLM NIM Image from NGC
export IMG_NAME="nvcr.io/${Repository}:${Latest_Tag}"# Choose a path on your system to cache the downloaded models
export LOCAL_NIM_CACHE=~/.cache/nim
mkdir -p "$LOCAL_NIM_CACHE"export MODEL_REPO=/path/to/model-repository
export NIM_SERVED_MODEL_NAME=my-modeldocker run -it --rm --name=$CONTAINER_NAME \--runtime=nvidia \--gpus all \--shm-size=16GB \-e NIM_MODEL_NAME=/model-repo \-e NIM_SERVED_MODEL_NAME \-v $MODEL_REPO:/model-repo \-u $(id -u) \-p 8000:8000 \$IMG_NAME

NVIDIA 开发者计划

想要了解有关 NIM 的更多信息?加入 NVIDIA 开发者计划,即可免费访问任何基础设施云、数据中心或个人工作站上最多 16 个 GPU 上的自托管 NVIDIA NIM 和微服务。

加入免费的 NVIDIA 开发者计划后,您可以随时通过 NVIDIA API 目录访问 NIM。要获得企业级安全性、支持和 API 稳定性,请选择通过我们的免费 90 天 NVIDIA AI Enterprise 试用版使用企业电子邮件地址访问 NIM 的选项。

相关文章:

NVIDIA NIM 开发者指南:入门

NVIDIA NIM 开发者指南&#xff1a;入门 NVIDIA 开发者计划 想要了解有关 NIM 的更多信息&#xff1f;加入 NVIDIA 开发者计划&#xff0c;即可免费访问任何基础设施云、数据中心或个人工作站上最多 16 个 GPU 上的自托管 NVIDIA NIM 和微服务。 加入免费的 NVIDIA 开发者计…...

探索Python网络请求新纪元:httpx库的崛起

文章目录 **探索Python网络请求新纪元&#xff1a;httpx库的崛起**第一部分&#xff1a;背景介绍第二部分&#xff1a;httpx库是什么&#xff1f;第三部分&#xff1a;如何安装httpx库&#xff1f;第四部分&#xff1a;简单的库函数使用方法1. 发送GET请求2. 发送POST请求3. 超…...

学了Arcgis的水文分析——捕捉倾泻点,河流提取与河网分级,3D图层转要素失败的解决方法,测量学综合实习网站存着

ArcGIS水文分析实战教程&#xff08;7&#xff09;细说流域提取_汇流域栅格-CSDN博客 ArcGIS水文分析实战教程&#xff08;6&#xff09;河流提取与河网分级_arcgis的dem河流分级-CSDN博客 ArcGIS水文分析实战教程&#xff08;5&#xff09;细说流向与流量-CSDN博客 ArcGIS …...

QQ 小程序已发布,但无法被搜索的解决方案

前言 我的 QQ 小程序在 2024 年 8 月就已经审核通过&#xff0c;上架后却一直无法被搜索到。打开后&#xff0c;再在 QQ 上下拉查看 “最近使用”&#xff0c;发现他出现一下又马上消失。 上线是按正常流程走的&#xff0c;开发、备案、审核&#xff0c;没有任何违规&#xf…...

【C++】拷贝构造 和 赋值运算符重载

目录&#xff1a; 一、拷贝构造 &#xff08;一&#xff09;拷贝函数的特点 二、赋值运算符重载 &#xff08;一&#xff09;运算符重载 &#xff08;二&#xff09;赋值运算符重载 正文 一、拷贝构造 如果一个构造函数的第一个参数是自身类类型的引用&#xff0c;且任何…...

21.UE5游戏存档,读档,函数库

2-23 游戏存档、读档、函数库_哔哩哔哩_bilibili 目录 1.存档蓝图 2.函数库 2.1保存存档 2.2读取存档&#xff1a; 3.加载游戏&#xff0c;保存游戏 3.1游戏实例对象 3.2 加载游戏 3.3保存游戏 这一节的内容较为错综复杂&#xff0c;中间没有运行程序进行阶段性成果的验…...

「Mac玩转仓颉内测版14」PTA刷题篇5 - L1-005 考试座位号

本篇将继续讲解PTA平台上的题目 L1-005 考试座位号&#xff0c;通过考生准考证号与座位号的对应关系&#xff0c;掌握简单的数据查询与映射操作&#xff0c;进一步提升Cangjie编程语言的实际应用能力。 关键词 PTA刷题数据查询映射操作输入输出Cangjie语言 一、L1-005 考试座位…...

Vue3引用高德地图,进行位置标记获取标记信息

首先安装地图插件 cnpm i amap/amap-jsapi-loader --save封装地图子组件 <template><el-dialogtitle"选择地点"width"740px"class"select-map-dialog"v-model"dialogShow":close-on-click-modal"false":modal-or…...

《C++设计模式:重塑游戏角色系统类结构的秘籍》

在游戏开发领域&#xff0c;游戏角色系统的类结构设计至关重要。一个良好的类结构可以使游戏更易于扩展、维护和优化&#xff0c;而 C中的设计模式为我们提供了强大的工具来实现这一目标。 一、理解游戏角色系统的复杂性 游戏角色系统通常具有高度的复杂性。每个角色都有自己…...

深入浅出 Go 语言:现代编程的高效选择

深入浅出 Go 语言:现代编程的高效选择 引言 Go 语言(也称 Golang)是由 Google 开发的一种现代编程语言,面向高效、简单和并发。自 2009 年问世以来,它已迅速成长为许多企业和开发者首选的语言,尤其是在后端开发、云计算和微服务领域。 本文旨在从 Go 语言的设计哲学、…...

RDIFramework.NET CS敏捷开发框架 V6.1发布(.NET6+、Framework双引擎、全网唯一)

RDIFramework.NET C/S敏捷开发框架V6.1版本迎来重大更新与调整&#xff0c;全面重新设计业务逻辑代码&#xff0c;代码量减少一半以上&#xff0c;开发更加高效。全系统引入全新字体图标&#xff0c;整个界面焕然一新。底层引入最易上手的ORM框架SqlSugar&#xff0c;让开发更加…...

vue路由的钩子函数?

在 Vue 中&#xff0c;路由的钩子函数可以用来在导航过程中执行一些操作&#xff0c;比如进行权限验证、页面加载前后的处理等。常用的路由钩子函数包括全局前置守卫、全局解析守卫、全局后置钩子以及路由独享守卫。下面是这些路由守卫函数的简要说明&#xff1a; 全局前置守卫…...

【Java】枚举类映射

在数据库中常用数字来代替字符串类型&#xff0c;编写一个枚举映射类 当数据库的介质类型要存储数字&#xff0c;前端可以任意传参&#xff0c;通过枚举转换后端都会转成数字对应类型 import lombok.Getter;/*** <p>* 存档介质类型* </p>** author Jyang* date 2…...

精华帖分享|浅谈金融时间序列分析与股价随机游走

本文来源于量化小论坛公共讨论区板块精华帖&#xff0c;作者为正扬&#xff0c;发布于2024年6月3日。 以下为精华帖正文&#xff1a; 01 引 时间序列分析是个很唬人的术语&#xff0c;实际上它也不是一个很容易接近的话题。我本科曾经短暂地学过一点点&#xff0c;又看到互联…...

任意文件下载漏洞

1.漏洞简介 任意文件下载漏洞是指攻击者能够通过操控请求参数&#xff0c;下载服务器上未经授权的文件。 攻击者可以利用该漏洞访问敏感文件&#xff0c;如配置文件、日志文件等&#xff0c;甚至可以下载包含恶意代码的文件。 这里再导入一个基础&#xff1a; 你要在网站下…...

LeetCode 445.两数相加 II

题目&#xff1a; 给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数字都不会以零开头。 思路&#xff1a;反转链表 两数相加 I 代码&…...

CentOS 7中查找已安装JDK路径的方法

使用yum安装了jdk8&#xff0c;但是其他中间件需要配置路径的时候&#xff0c;却没办法找到&#xff0c;如何获取jdk路径&#xff1a; 一、确认服务器是否存在jdk java -version 二、查找jdk的 java 命令在哪里 which java 三、找到软链指向的地址 ls -lrt /usr/bin/java l…...

springboot基于Web足球青训俱乐部管理后台系统开发(代码+数据库+LW)

摘 要 随着社会经济的快速发展&#xff0c;人们对足球俱乐部的需求日益增加&#xff0c;加快了足球健身俱乐部的发展&#xff0c;足球俱乐部管理工作日益繁忙&#xff0c;传统的管理方式已经无法满足足球俱乐部管理需求&#xff0c;因此&#xff0c;为了提高足球俱乐部管理效率…...

RHCE的学习(21)

第三章 Shell条件测试 用途 为了能够正确处理Shell程序运行过程中遇到的各种情况&#xff0c;Linux Shell提供了一组测试运算符。 通过这些运算符&#xff0c;Shell程序能够判断某种或者几个条件是否成立。 条件测试在各种流程控制语句&#xff0c;例如判断语句和循环语句中…...

Ubuntu 18.04 配置sources.list源文件(无法安全地用该源进行更新,所以默认禁用该源)

如果你 sudo apt update 时出现诸如 无法安全地用该源进行更新&#xff0c;所以默认禁用该源 的错误&#xff0c;那就换换源吧&#xff0c;链接&#xff1a; https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/ 注意版本&#xff1a; 修改源文件&#xff1a; sudo nano /etc…...

19.UE5道具掉落

2-21 道具掉落&#xff0c;回血、回蓝、升级提升伤害_哔哩哔哩_bilibili 目录 1.道具的创建&#xff0c;道具功能的实现 2.随机掉落 1.道具的创建&#xff0c;道具功能的实现 新建Actor蓝图&#xff0c;并命名为道具总类&#xff0c;添加一个Niagara粒子组件和一个碰撞箱bo…...

MySQL —— MySQL逻辑架构与查询过程

文章目录 MySQL逻辑架构整体分为三层连接层服务层查询缓存解析器优化器执行器 存储引擎层系统文件层 MySQL 查询过程查询过程框图 博客1 博客2 MySQL逻辑架构整体分为三层 最上层为客户端层&#xff0c;并非MySQL所独有&#xff0c;诸如&#xff1a;连接管理、授权认证、权限校…...

ODOO学习笔记(12):自定义模块开发

一、Odoo模块结构基础 基本目录结构 Odoo自定义模块通常有一个特定的目录结构。一个典型的模块目录包含以下文件和文件夹&#xff1a; __init__.py&#xff1a;这是一个Python模块初始化文件。它使得该目录被视为一个Python模块。在这个文件中&#xff0c;你可以通过from. impo…...

Excel单元格中自适应填充多图

实例需求&#xff1a;在Excel插入图片时&#xff0c;由于图片尺寸各不相同&#xff0c;如果希望多个图片填充指定单元格&#xff0c;依靠用户手工调整&#xff0c;不仅费时费力&#xff0c;而且很难实现完全填充。如下图中的产品图册&#xff0c;有三个图片&#xff0c;如下图所…...

20.useMediaQuery

React useMediaQuery 钩子:如何优雅地实现响应式设计? 在现代 Web 开发中,响应式设计是一个关键概念,它允许应用根据不同的屏幕尺寸和设备特性调整其布局和行为。useMediaQuery 钩子提供了一种声明式的方法来在 React 组件中使用媒体查询,使得响应式逻辑的实现变得简单而…...

无人机场景 - 目标检测数据集 - 车辆检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍&#xff1a;无人机场景车辆检测数据集&#xff0c;真实场景高质量图片数据&#xff0c;涉及场景丰富&#xff0c;比如无人机场景城市道路行驶车辆图片、无人机场景城市道边停车车辆图片、无人机场景停车场车辆图片、无人机场景小区车辆图片、无人机场景车辆遮挡、车…...

聚合查询(查询)

count:统计表中所有的行数 指定某一列不统计NULL sum:求和 NULL值不参与计算&#xff08;省略&#xff09; avg()&#xff1a;对所有行的指定列求平均值 max&#xff08;&#xff09; min()&#xff1a;求所有指定行中最大值与最小值 分组查询 group by: ROUDN()小数点 havin…...

QT QLineEdit失去焦点事件问题与解决

本文介绍如何获得QLineEdit的失去焦点事件和获得焦点的输入框也会触发失去焦点事件的问题&#xff01; 目录 一、QLineEdit获得失去焦点事件 1.自定义类继承自QLineEdit 2.重写 focusOutEvent 3.使用 二、失去焦点事件问题 1.问题描述 2.问题解决 三、源码分享 lineed…...

Remora

Remora Remora 模型能够独立于碱基识别过程预测甲基化/修饰碱基的状态。Remora 仓库专注于准备修饰碱基训练数据和训练修饰碱基模型。此外,还提供了一些用于运行 Remora 模型和调查原始信号的功能。对于生产环境中的修饰碱基识别,建议使用 Dorado <https://github.com/na…...

MySQL中将一个字符串字段按层级树状展开

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 文章目录 需求1.分析2.实现3.思路刨析表结构和数据 需求 数据库中有个字段如下 如何将其转换为如下形式&#xff1a; 1.分析 1.他的层级个数是不确定的&#xff0c;也就是说有的有2层有的有5…...

php网站前后台源代码/杭州seo招聘

canvas遇到的坑 1.文字换行 2.真机不能使用网络数据图片&#xff08;真坑&#xff09; 点击显示效果我就不写了&#xff0c;你们可以自己加一下 全部代码贴出来 css#preview {width: 100%;height: 100%;background: rgba(0, 0, 0, 0.6);position: fixed;z-index: 999;top: 0;ov…...

济南网站制作 泉诺/网站seo优化效果

目录&#xff1a;导读一、背景二、基本思路1、在elgalu/selenium基础上简单编译2、用Pythonselenium编写测试用例3、执行和调试4、在Jenkins 运行三、jenkins 并行运行一、背景 目标&#xff1a;使用docker做UI自动化测试并在Jenkins运行 调试环境&#xff1a;MocOS 运行环境&…...

湖北网站建设价格/营销方案推广

TCP/IP网络编程笔记目录Chapter I 开始网络编程Chapter II 基于Linux的编程Chapter I 开始网络编程 1基于Linux的文件操作 2理解网络编程与套接字 3网络编程各基础函数的使用方法 4实现一个简单TCP服务器端与客户端 5基于半关闭的文件传输程序 & shutdown函数 6套接字的多…...

这么用自己的电脑做网站服务器/电商网站建设报价

在密码学中&#xff0c;ElGamal加密算法是一个基于迪菲-赫尔曼密钥交换的非对称加密算法。它在1985年由塔希尔盖莫尔提出。GnuPG和PGP等很多密码学系统中都应用到了ElGamal算法。 ElGamal加密算法可以定义在任何循环群G上。它的安全性取决于G上的离散对数难题。 使用Python实现…...

上海网站seoseodian/seo词库排行

Delphi Live Bindings 初探 Live Bindings&#xff0c;顾名思义&#xff0c;动态绑定。 1、绑定前&#xff1a; 2、点击数据源&#xff1a; 3、绑定连线&#xff1a;点击 蓝色区域&#xff0c; 按住 鼠标左键&#xff0c;一直移动到绿色区域&#xff0c;然后松掉鼠标左键。 系统…...

wordpress分类文章排序/网站关键词优化代理

当前位置:我的异常网 Web前端 浏览器窗口关闭事件的监听收集浏览器窗口关闭事件的监听收集www.myexceptions.net 网友分享于&#xff1a;2013-11-10 浏览&#xff1a;72次浏览器窗口关闭事件的监听搜集方式一&#xff1a;(适用与IE浏览器&#xff0c;而且刷新不提示&#xf…...