首页 教程 分类 Skills下载 关于
ZH EN JA KO
模型接入

NVIDIA NIM 推理服务接入教程

· 8 分钟

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

  1. 访问 build.nvidia.com 并注册
  2. 进入 API Key 管理页面
  3. 生成新的 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 助手。

OpenClaw 是开源免费的个人AI助手,支持 WhatsApp、Telegram、Discord 等多平台接入