一文阐述国内网络环境下使用NIM方法

NVIDIA NIM(NVIDIA Inference Microservice)是一套容器化的微服务套件,旨在通过优化的推理引擎和标准的 API 接口,帮助企业和开发者在任何基础设施上以极低的代码开销快速、高效地部署和运行大语言模型等 AI 应用。

使用步骤

0.0 前提

测试脚本

bash 复制代码
echo "=== 1. 操作系统版本 ===" && cat /etc/os-release | grep -E "PRETTY_NAME" && \
echo -e "\n=== 2. 显卡驱动与 CUDA 版本 ===" && nvidia-smi && \
echo -e "\n=== 3. Docker 版本 ===" && docker --version && \
echo -e "\n=== 4. NVIDIA Container Toolkit 版本 ===" && nvidia-container-toolkit --version

返回, 我的显卡驱动(Driver Version) 不支持,CUDA 版本也不支持

bash 复制代码
=== 1. 操作系统版本 ===
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"

=== 2. 显卡驱动与 CUDA 版本 ===
Wed Jul 29 15:26:38 2026       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.147.05   Driver Version: 525.147.05   CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| 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 A40          Off  | 00000000:4F:00.0 Off |                    0 |
|  0%   31C    P0    71W / 300W |   4580MiB / 46068MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA A40          Off  | 00000000:52:00.0 Off |                    0 |
|  0%   29C    P0    71W / 300W |      0MiB / 46068MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   2  NVIDIA A40          Off  | 00000000:56:00.0 Off |                    0 |
|  0%   30C    P0    74W / 300W |      0MiB / 46068MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   3  NVIDIA A40          Off  | 00000000:D1:00.0 Off |                    0 |
|  0%   31C    P0    73W / 300W |      0MiB / 46068MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   4  NVIDIA A40          Off  | 00000000:D5:00.0 Off |                    0 |
|  0%   30C    P0    70W / 300W |      0MiB / 46068MiB |      3%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      4435      C   python                           4578MiB |
+-----------------------------------------------------------------------------+

=== 3. Docker 版本 ===
Docker version 28.0.4, build b8034c0

=== 4. NVIDIA Container Toolkit 版本 ===
NVIDIA Container Runtime Hook version 1.14.5
commit: 9ea336070134e612145d342e495f2fc616aab063

后面需要先升级才能继续!

自 2025 年 2 月 15 日起,官方直接请求 nvcr.io 下载 NIM 镜像和模型的 API/CLI 路径对中国大陆 IP 进行了拦截与限制。官方常规文档中的注册、直接 docker login 以及默认 nvcr.io 拉取等步骤,在纯国内网络环境下均会触发 unauthorized 或被拒绝下载。国内用户请直接从下文的"国内专用通道"开始操作。文中0.1~0.3 都是没用的,可以直接跳转到1开始

0.1Register:

API Key 获取https://org.ngc.nvidia.com/setup/api-keys

0.2 Login

0.3 docker 拉取&服务启动

bash 复制代码
export NIM_LLM_IMAGE=nvcr.io/nim/meta/llama-3.1-8b-instruct:2.0.9
export LOCAL_NIM_CACHE=/data/nim-cache

docker run --gpus=all \
  -e NGC_API_KEY=$NGC_API_KEY \
  -v "$LOCAL_NIM_CACHE:/opt/nim/.cache" \
  -p 8000:8000 \
  ${NIM_LLM_IMAGE}```

如果直接按照官方,然后就会出现下面的问题:
> CND 必需 自 2025 年 2 月 15 日起,所有来自中国 IP 地址用于下载 NIM 镜像和模型的 API/CLI 请求将被拒绝
> 对于中国用户,请使用以下链接跳转到我们中国 NIM 合作伙伴提供的地址下载 NIM 镜像和模型:
> https://catalog.ngc.nvidia.com/china-nim-distributors

1. 国内环境下使用流程

所以国内情况下,上面三个步骤都是踩的坑

点击网址会跳转到这么个地方,三个都可以,选一个喜欢的

选一个你可以能使用的,喜欢的模型

下载镜像:

bash 复制代码
sudo tgc   --user 'tgc$cnd***'   --token 'CQm****3ZQ'   --type c   --container tgcr.turing-agi.com/cnd/nim/qwen/qwen-2.5-7b-instruct:latest
  1. 设置模型缓存目录:这个要设置大一点的目录,df -h 看下,选择一个合适的
bash 复制代码
export LOCAL_NIM_CACHE=/data/nim/
mkdir -p "$LOCAL_NIM_CACHE"
sudo chmod 0777 -R "$LOCAL_NIM_CACHE"
  1. 拉去模型文件
bash 复制代码
sudo tgc  --user 'tgc$cnd****'  --token 'CQ****3ZQ'  --type m  --container tgcr.turing-agi.com/cnd/nim/qwen/qwen-2.5-7b-instruct:latest  --save_dir "$LOCAL_NIM_CACHE"
  1. 启动

默认可以使用全部GPU

bash 复制代码
sudo docker run  --name nim-qwen25-7b  -itd \
 --gpus all  \
 --ipc=host  \
 --ulimit memlock=-1  \
 --ulimit stack=67108864  \
 -v "$LOCAL_NIM_CACHE":/opt/nim/.cache \
  -p 18000:8000  \
  tgcr.turing-agi.com/cnd/nim/qwen/qwen-2.5-7b-instruct:latest

固定使用特定GPU

bash 复制代码
# 使用一张
sudo docker run --name nim-qwen25-7b -itd \
--gpus '"device=0"' \
--ipc=host \
--ulimit memlock=-1 \
--ulimit stack=67108864 \
-v /data/nim-cache:/opt/nim/.cache \
-p 18000:8000 \
tgcr.turing-agi.com/cnd/nim/qwen/qwen-2.5-7b-instruct:latest

# 使用多张
sudo docker run --name nim-qwen25-7b -itd \
--gpus '"device=1,2"' \
--ipc=host \
--ulimit memlock=-1 \
--ulimit stack=67108864 \
-v /data/nim-cache:/opt/nim/.cache \
-p 18000:8000 \
tgcr.turing-agi.com/cnd/nim/qwen/qwen-2.5-7b-instruct:latest
  1. 检查&使用
bash 复制代码
# 检查健康
curl http://localhost:8000/v1/health/ready

# 使用大模型
curl -X 'POST' \
  'http://localhost:8000/v1/chat/completions' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "qwen/qwen-2.5-7b-instruct",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant."
    },
    {
      "role": "user",
      "content": "你好,请介绍一下你自己。"
    }
  ],
  "max_tokens": 512,
  "temperature": 0.7
}'

附录 模型占用显存换算公式

第一步:计算模型基础权重显存(Core Weight Memory)

这是模型躺在显存里"静止"时占用的空间,公式为:

权重显存 (GB) = 模型参数量 (B) × 每个参数字节数 10 9 \text{权重显存 (GB)} = \frac{\text{模型参数量 (B)} \times \text{每个参数字节数}}{10^9} 权重显存 (GB)=109模型参数量 (B)×每个参数字节数

  • 常见精度的字节数速查:
  • FP32 / 全精度 :4 字节/参数
  • FP16 / BF16 (半精度,标准):2 字节/参数
  • INT8 (8位量化):1 字节/参数
  • INT4 / AWQ / GPTQ / EXL2 (4位量化):0.5 字节/参数

💡 快速口算示例 :

一个 32B (320亿参数)的模型,如果用 FP16 跑:

32 × 2 1 = 64 GB \frac{32 \times 2}{1} = 64 \text{ GB} 132×2=64 GB 基础权重。


第二步:乘以框架与运行时安全系数(Runtime Overhead)

大模型跑起来时,GPU 驱动、CUDA 上下文以及推理框架(如 vLLM、Triton、NIM)会占用额外的显存。因此,需要把基础权重乘以一个安全系数(通常取 1.25):

实际运行底座显存 (GB) = 权重显存 × 1.25 \text{实际运行底座显存 (GB)} = \text{权重显存} \times 1.25 实际运行底座显存 (GB)=权重显存×1.25


第三步:加上上下文与并发显存(KV Cache)

KV Cache 用于存储对话的历史上下文和长文本。它不是固定的,而是随着并发请求数(Batch Size)和上下文长度(Context Length)动态变化的。

  • 简易估算经验值:
  • 短文本/单用户轻量测试 :预留 2 ~ 4 GB 即可。
  • 长文本(如 32k+)/ 高并发生产环境 :建议额外预留 8 ~ 16 GB 甚至更多。

📌 终极通用估算公式

将上述三步合二为一,得出最终的总显存需求公式:

所需总显存 (GB) = ( 参数量 (B) × 每个参数字节数 × 1.25 ) + KV Cache 预留空间 \text{所需总显存 (GB)} = \left( \text{参数量 (B)} \times \text{每个参数字节数} \times 1.25 \right) + \text{KV Cache 预留空间} 所需总显存 (GB)=(参数量 (B)×每个参数字节数×1.25)+KV Cache 预留空间


📋 常见规格对照参考表(以 FP16/BF16 为例)

模型参数量 仅加载权重 (FP16) 建议最低显存(跑起来) 推荐安全/生产显存(带并发和长文本)
7B / 8B ~14 GB 18 - 20 GB 24 GB (如 RTX 3090/4090)
14B / 13B ~28 GB 35 - 38 GB 48 GB (如单张 A40 / A100)
32B / 34B ~64 GB 80 - 85 GB 96 GB+ (如双卡 A40 / A100)
70B / 72B ~140 GB 175 - 185 GB 256 GB+ (如 4卡 或 8卡集群)

Reference

Prerequisites

Installation & Configuration

Configuration

NVIDIA NIM for Large Language Models-QuickStart

图灵

相关推荐
法狗狗技术团队4 小时前
2026年标书审查工具测评:AI标书检查软件怎么选?
人工智能·招投标·投标·标书检查·标书审查·标书制作·投标全流程
“AI国潮设计-小江”4 小时前
【SDXL实战】用AI生成“财神爷蛋糕×英歌舞人物”潮汕国潮甜品IP,附Prompt与批量生成思路
开发语言·人工智能·python·aigc
Bode_20024 小时前
企业数智孪生构建方法
人工智能·智能制造
jqpwxt4 小时前
启点创新科技景区私有化票务管理系统:智慧景区数字化建设核心服务商,以本地部署筑牢景区数字化安全与稳定底座
大数据·人工智能·科技·云计算·旅游
skywalk81634 小时前
Deepseek harness的4种模式 配置文件内容
linux·人工智能·ubuntu·deepseek·harness
货拉拉技术5 小时前
构建稳定的 AI Agent:Harness 工程的核心机制与实践思考
人工智能·后端·数据分析
Herbert_hwt5 小时前
拒绝“猜谜式”编程:从 Google PTCF 到 AI 编程五要素框架
人工智能
2601_965742225 小时前
短视频脚本创作方法分享:本地生活类账号的起步思路
大数据·人工智能·算法·ai·新媒体运营·生活
xhy_07075 小时前
Git 合并冲突怎么解决?用 AI 处理冲突的流程、Prompt 和 4 个易错点
人工智能·git·安全·prompt·ai编程·代码复审
马剑威(威哥爱编程)5 小时前
【AI全栈后端12-02】Spring Boot 跑通第一个 AI 对话接口:HR 政策问答机器人实战
java·人工智能·spring boot·机器人