资讯中心

多节点集群实战:Nemotron-4-340B-Instruct用NeMo+Slurm搭建推理服务的完整教程

📅 2026/8/23 16:37:06
多节点集群实战:Nemotron-4-340B-Instruct用NeMo+Slurm搭建推理服务的完整教程
多节点集群实战Nemotron-4-340B-Instruct用NeMoSlurm搭建推理服务的完整教程【免费下载链接】Nemotron-4-340B-Instruct项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/Nemotron-4-340B-Instruct本文带你用NeMo Framework和Slurm为 NVIDIA 3400 亿参数开源大模型Nemotron-4-340B-Instruct搭建一个多节点集群推理服务从获取模型、配置张量/流水线并行到提交双节点作业共 4 个步骤适合拥有 H100/A100 集群、想自建大模型推理服务的新手工程师。 Nemotron-4-340B-Instruct 是什么Nemotron-4-340B-Instruct 是 NVIDIA 开源的 decoder-only Transformer 大语言模型由 Nemotron-4-340B-Base 经 SFT、DPO 和 RPO 多轮对齐得到专为英语单轮/多轮对话场景优化支持 4,096 token 上下文在数学推理、代码生成与指令跟随上表现突出。核心架构参数可在仓库根目录的model_config.yaml中查证参数数值说明总参数量340B需要多节点 GPU 才能 BF16 推理层数96num_layers隐藏维度18,432hidden_size注意力头96采用 GQA8 组 KV RoPE激活函数squared-reluMegatron 风格 FFN推理精度BF16trainer.precisionbf16️ 硬件需求要准备几张 GPUBF16 推理的最低配置如下8× H200单节点16× H100双节点16× A100 80GB双节点本教程以2 节点 × 8 卡16 张 H100/A100为例并行策略为节点内张量并行 TP8 节点间流水线并行 PP2。 为什么这样分张量并行需要 NVLink 级的高速通信放在节点内部最划算跨节点带宽有限用流水线并行把 96 层按节点切开更稳妥。 先认识模型文件仓库里都有什么克隆仓库后你会看到以下关键文件文件 / 目录作用README.md模型介绍、评测结果与官方部署示例model_config.yaml模型架构与训练配置96 层、hidden 18432、bf16model_weights/Zarr 分片格式的模型权重按层组织common.pt未分片的公共参数8223bf8e…_megatron_2.model/eb5528fd…_megatron_2.modelSentencePiece 分词器文件LICENSENVIDIA Open Model License可商用model_weights/内部按权重名分目录例如model.decoder.layers.self_attention.linear_qkv.weight/存放各层 QKV 投影矩阵的分片model.decoder.layers.mlp.linear_fc1.weight/存放 MLP 第一层矩阵model.embedding.word_embeddings.weight/存放词嵌入。96 层权重被切成 96 个分片加载时由 NeMo 自动重组——这正是它能被多节点分布式加载的关键。 第一步获取 Nemotron-4-340B-Instruct 模型权重git clone https://gitcode.com/hf_mirrors/ai-gitcode/Nemotron-4-340B-Instruct⚠️ 务必将模型目录放在所有节点都可访问的共享文件系统NFS、Lustre 等上这是 Slurm 多节点任务能同时读到权重的前提。⚙️ 第二步NeMo 推理服务启动脚本在 NeMo 容器镜像nvcr.io/nvidia/nemo:24.05中启动脚本nemo_inference.sh的核心命令是/usr/bin/python3 /opt/NeMo/examples/nlp/language_modeling/megatron_gpt_eval.py \ gpt_model_file$NEMO_FILE \ serverTrue tensor_model_parallel_size8 \ trainer.precisionbf16 pipeline_model_parallel_size2 \ trainer.devices8 trainer.num_nodes2 \ web_serverFalse port1424 关键参数速查参数取值含义tensor_model_parallel_size8张量并行一层权重切到 8 张卡节点内pipeline_model_parallel_size2流水线并行96 层分给 2 个节点trainer.num_nodes/trainer.devices2 / 82 节点 × 每节点 8 卡trainer.precisionbf16使用 BFloat16 精度port1424推理服务 HTTP 端口脚本还内置了一个等待逻辑只有主节点SLURM_NODEID0会轮询探测1424端口确认 2 个节点全部加载完成后再运行客户端测试脚本call_server.py最后清理进程。 第三步用 Slurm 提交双节点作业新建一个 sbatch 提交脚本把整个流程交给集群调度#!/bin/bash #SBATCH -N 2 #SBATCH --ntasks-per-node8 #SBATCH --gpus-per-node8 #SBATCH -J nemotron-340b MODEL模型仓库路径 CONTAINERnvcr.io/nvidia/nemo:24.05 MOUNTS--container-mounts脚本目录:/scripts,${MODEL}:/model srun -o out.log -e err.log \ --container-image$CONTAINER $MOUNTS \ bash -c bash /scripts/nemo_inference.sh /model参数解读-N 2申请 2 个计算节点--ntasks-per-node8/--gpus-per-node8每节点 8 个进程、独占 8 张 GPU--container-image用 Slurm 的容器插件直接在容器内启动无需手工部署环境提交后srun会在 2 个节点各拉起 8 个进程NeMo 负责跨节点通信与权重加载通常十几分钟内服务就绪。 第四步调用 Nemotron-4-340B-Instruct 推理服务服务就绪后客户端只需向http://localhost:1424/generate发送一个 PUT 请求。注意它采用专用的对话模板extra_id_0System extra_id_1User {你的问题} extra_id_1Assistant 官方建议System 部分留空直接写用户问题即可。Python 客户端call_server.py的核心非常短resp requests.put(http://localhost:1424/generate, json{ sentences: [prompt], tokens_to_generate: 1024, temperature: 1.0, end_strings: [/s, extra_id_1], }) print(resp.json()[sentences][0])多轮对话时按extra_id_1User … extra_id_1Assistant交替拼接历史即可。 模型能力一览部署完成后你可以参考以下基准来自README.md评测结果了解模型上限基准分数MT-BenchGPT-4 评审8.22 / 10MMLU 0-shot78.7GSM8K 0-shot数学92.3HumanEval 0-shot代码73.2IFEval 指令遵循严格86.1❓ 常见问题怎么确认服务已就绪启动脚本用curl -X PUT轮询1424端口连接成功即代表双节点都已完成权重加载。能改成单节点 8×H200 吗可以。把tensor_model_parallel_size8、pipeline_model_parallel_size1、trainer.num_nodes1Slurm 侧改成-N 1即可。商用有限制吗模型采用 NVIDIA Open Model License可免费商用、可发布衍生模型NVIDIA 不主张对模型生成内容的所有权详见仓库LICENSE。上下文只有 4096是的该模型按 4,096 token 序列长度训练长文任务请做好分段。✅ 小结只需 3 个脚本——NeMo 启动脚本、Slurm 提交脚本、Python 客户端——就能把Nemotron-4-340B-Instruct跑在双节点 16 卡集群上TP8 吃满节点内显存带宽PP2 横跨节点切分 96 层BF16 精度下稳定对外提供/generate推理接口。掌握这套「NeMo Slurm」组合后续接入更多大模型推理服务也会事半功倍。【免费下载链接】Nemotron-4-340B-Instruct项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/Nemotron-4-340B-Instruct创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考