NVIDIA NIM 简介
NVIDIA NIM(NVIDIA Inference Microservices)是 NVIDIA 提供的优化推理服务,将大语言模型打包为 Docker 容器,利用 NVIDIA GPU 实现极致推理性能。NIM 提供 OpenAI 兼容的 API,可以无缝接入 OpenClaw。
前置要求
- NVIDIA GPU(推荐 A100/H100/L40S 或消费级 RTX 4090)
- NVIDIA Driver 535+
- Docker 和 NVIDIA Container Toolkit
- NVIDIA NGC API Key
安装 NVIDIA Container Toolkit
# Ubuntu/Debian
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
获取 NGC API Key
- 访问 build.nvidia.com 并注册
- 进入 API Key 管理页面
- 生成新的 API Key
部署 NIM 容器
以 Llama 3.1 为例部署 NIM:
export NGC_API_KEY="your-ngc-api-key"
docker run -d \
--name nim-llama \
--gpus all \
-p 8000:8000 \
-e NGC_API_KEY=$NGC_API_KEY \
nvcr.io/nim/meta/llama-3.1-8b-instruct:latest
等待模型加载完成(首次启动需要下载模型,可能需要几分钟):
# 检查服务状态
curl http://localhost:8000/v1/health/ready
在 OpenClaw 中配置
{
"providers": {
"nvidia-nim": {
"type": "openai",
"baseUrl": "http://localhost:8000/v1",
"apiKey": "not-used",
"models": ["meta/llama-3.1-8b-instruct"]
}
},
"models": {
"nim-llama": {
"provider": "nvidia-nim",
"model": "meta/llama-3.1-8b-instruct",
"temperature": 0.7,
"maxTokens": 4096
}
}
}
NIM 本地部署不需要 API Key,但 OpenClaw 配置要求该字段存在,可以填任意值。
使用 NVIDIA API Catalog
如果没有本地 GPU,可以使用 NVIDIA 云端 API:
{
"providers": {
"nvidia-cloud": {
"type": "openai",
"baseUrl": "https://integrate.api.nvidia.com/v1",
"apiKey": "{{NGC_API_KEY}}",
"models": [
"meta/llama-3.1-405b-instruct",
"meta/llama-3.1-70b-instruct",
"nvidia/llama-3.1-nemotron-70b-instruct"
]
}
}
}
多 GPU 部署
对于大模型需要多 GPU 支持,使用张量并行:
docker run -d \
--name nim-large \
--gpus '"device=0,1,2,3"' \
-p 8000:8000 \
-e NGC_API_KEY=$NGC_API_KEY \
-e NIM_TENSOR_PARALLEL_SIZE=4 \
nvcr.io/nim/meta/llama-3.1-70b-instruct:latest
性能优化
NIM 容器支持多种优化参数:
docker run -d \
--name nim-optimized \
--gpus all \
-p 8000:8000 \
-e NGC_API_KEY=$NGC_API_KEY \
-e NIM_MAX_BATCH_SIZE=32 \
-e NIM_MAX_MODEL_LEN=8192 \
-e NIM_GPU_MEMORY_UTILIZATION=0.9 \
nvcr.io/nim/meta/llama-3.1-8b-instruct:latest
NIM_MAX_BATCH_SIZE:最大批处理大小,增大可提高吞吐NIM_MAX_MODEL_LEN:最大序列长度NIM_GPU_MEMORY_UTILIZATION:GPU 显存利用率
监控 GPU 使用
# 查看 GPU 使用情况
nvidia-smi
# 持续监控
watch -n 1 nvidia-smi
连接验证
openclaw doctor --provider nvidia-nim
也可以直接测试 NIM API:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "meta/llama-3.1-8b-instruct",
"messages": [{"role": "user", "content": "Hello"}]
}'
总结
NVIDIA NIM 是追求极致推理性能的最佳选择。对于有 GPU 资源的团队,本地部署 NIM 可以实现低延迟、高吞吐的推理服务,完美配合 OpenClaw 构建高性能 AI 助手。