ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Model-Optimizer 量化模型 SGLang 部署实战:从服务启动到 MoE/FP4 后端调优

Model-Optimizer 量化模型 SGLang 部署实战:从服务启动到 MoE/FP4 后端调优 人工智能大模型模型优化模型量化模型压缩【免费下载链接】Model-OptimizerA unified library of SOTA model optimization techniques like quantization, distillation, pruning, neural architecture search, speculative decoding, etc. It compresses deep learning models for downstream deployment frameworks like TensorRT-LLM, TensorRT, vLLM, etc. to optimize inference speed.项目地址https://gitcode.com/GitHub_Trending/te/Model-Optimizer点击查看免费下载本文是一份面向 Model-Optimizer 量化模型FP8 / NVFP4的 SGLang 部署参考指南。你将掌握三种服务化启动方式OpenAI 兼容服务器、Python API、HuggingFace Hub 直连、EAGLE/EAGLE3 投机解码配置、Blackwell 与 Hopper 两类 GPU 上 MoE/FP4 后端参数的选择以及一套以 SGLang cookbook 为权威来源的启动参数核对方法论。文中所有命令与参数均以当前仓库plugins/modelopt/skills/deployment/references/sglang.md为骨架并结合仓库内的部署脚本、specdec_bench 源码与测试用例展开可直接复制到实际部署流程中使用。为什么用 SGLang 部署 Model-Optimizer 量化模型Model-Optimizer 产出的统一 HF 格式量化检查点PTQ 导出时使用--export_fmt hf可以直接交给 SGLang 加载无需额外格式转换。在仓库的部署决策流程SKILL.md中SGLang 被推荐用于需要最佳模型支持的场景——尤其是 DeepSeek、Llama 4 等架构当用户未指定框架时通用场景默认推荐 vLLM追求极限吞吐则用 TRT-LLM。SGLang 支持 Matrix-Optimizer 导出的两种主流量化格式量化标志quantization flag与 vLLM 完全一致量化格式说明SGLang 量化标志FP88 位浮点E4M3modeloptNVFP4NVIDIA 4 位浮点含 NVFP4_AWQ 变体modelopt_fp4支持矩阵的完整定义见 references/support-matrix.md其中明确指出SGLang 的最低支持版本为 v0.4.10INT4_AWQ 与 W4A8_AWQ 两种格式仅 TRT-LLM 支持不能用于 vLLM/SGLang。该矩阵的唯一事实来源是 docs/source/deployment/3_unified_hf.rst 中的 Model Support Matrix 一节而矩阵条目又全部来自 tests/examples/hf_ptq/test_deploy.py——后者精确到每个组合的检查点、张量并行度与最小 SM 版本。环境准备安装与最低版本pip install sglang[all]最低版本SGLang 0.4.10这是quantizationmodelopt被识别的硬性门槛见 references/setup.md。部署前可用如下命令确认已安装版本python -c import sglang; print(fSGLang {sglang.__version__})Docker 镜像选择官方镜像为lmsysorg/sglang:latest见 references/setup.md。需要特别注意的是RTX PRO 6000SM120上:latest并不支持必须改用lmsysorg/sglang:dev夜间构建镜像详见下文硬件注意事项。GPU 显存估算决定张量并行度SKILL.md 给出了按参数量的显存估算规则用于决定是否需要--tpBF16参数量 × 2 字节8B 模型约 16 GBFP8参数量 × 1 字节8B 模型约 8 GBFP4参数量 × 0.5 字节8B 模型约 4 GB另需预留约 2–4 GB 给 KV cache 与框架开销当模型超出单卡显存时使用张量并行--tp num_gpus。权威配方来源先用 SGLang cookbook 核对启动参数原文档反复强调的一点是对于任何非平凡的模型大型 MoE、多节点、Blackwell FP4在手工拼写启动参数之前务必先用 SGLang cookbook 核对启动命令。cookbook 相当于recipes.vllm.ai在 SGLang 体系中的对应物——一个以(硬件, 变体, 量化, 策略, 节点数)元组为键的、经过验证的命令生成器。使用要点URL 结构cookbook 页面路径形如docs.sglang.io/cookbook/category/org/model例如autoregressive/DeepSeek/DeepSeek-V4通过 URL fragment 选择变体例如#hwb200variantflashquantfp4strategylow-latencynodessingle。JS 渲染Mintlify问题直接 fetch 页面通常拿不到命令需要改为抓取raw markdown路径形如raw.githubusercontent.com/sgl-project/sglang/main/docs_new/cookbook/category/org/model.mdxURL 路径与目录树一一对应。旧的sgl-project/sgl-cookbook仓库已归档活跃源在sgl-project/sglang主仓库的docs_new/目录。cookbook 的权威范围并行布局--tp/--ep及多节点/数据并行设置、MoE 后端、策略驱动标志MTP、CUDA-graph 批量大小、Docker 镜像 tag、以及所选变体对应的最小 SGLang 版本。正确用法从 cookbook 取布局与标志再根据你实际拥有的 GPU 型号做适配——不要照抄硬编码。服务端部署的三种方式方式一OpenAI 兼容服务器推荐这是最常用、可直接对接各类 OpenAI SDK 客户端的部署方式python -m sglang.launch_server \ --model-path checkpoint_path \ --quantization modelopt \ --tp num_gpus \ --host 0.0.0.0 --port 8000--model-path本地检查点路径或 HF 模型 ID 均可。--quantization modeloptFP8 检查点NVFP4 检查点改用--quantization modelopt_fp4。--tp张量并行度须与可用 GPU 数匹配。方式二Python APIsgl.Engine在脚本或 Notebook 中直接以 Python API 方式加载并生成import sglang as sgl llm sgl.Engine(model_pathcheckpoint_path, quantizationmodelopt) # 对于 FP4 检查点quantizationmodelopt_fp4 sampling_params {temperature: 0.8, top_p: 0.95} outputs llm.generate([Hello, my name is], sampling_params) for output in outputs: print(fGenerated: {output[text]})仓库中 examples/model_hub/run_llama_fp8_sglang.py 提供了完整可运行的对照示例——它使用nvidia/Llama-3.1-8B-Instruct-FP8检查点配合quantizationmodelopt批量生成 4 条提示词并逐条打印结果前置条件是完成huggingface-cli login认证见 examples/model_hub/README.md。方式三从 HuggingFace Hub 直连无需本地下载直接指定 HF 模型 IDimport sglang as sgl llm sgl.Engine(model_pathnvidia/Llama-3.1-8B-Instruct-FP8, quantizationmodelopt) outputs llm.generate([What is AI?], {temperature: 0.8})进阶用仓库自带 deploy.sh 一键部署仓库的 deployment skill 提供 scripts/deploy.sh封装了 GPU 检测、量化格式自动识别FP8/FP4、服务生命周期管理start/stop/restart/status、健康检查轮询与 API 自测$SKILL_DIR/scripts/deploy.sh start --model ./llama-70b-nvfp4 --framework sglang --tp 4 $SKILL_DIR/scripts/deploy.sh test $SKILL_DIR/scripts/deploy.sh status $SKILL_DIR/scripts/deploy.sh stop该脚本对 SGLang 启动的封装对应上述launch_server命令其量化标志自动检测逻辑如下本地检查点优先读hf_quant_config.json中的quantization.quant_algo含fp4/nvfp4→modelopt_fp4含fp8→modelopt若不存在则回退检查config.json中的quantization_config.quant_method modeloptHF ID 则退化为按模型名启发式判断。也可用deploy.sh detect --model path单独执行检测。投机解码EAGLE / EAGLE3SGLang 支持使用 EAGLE 与 EAGLE3 草稿模型进行投机解码命令行方式python -m sglang.launch_server \ --model-path target_model \ --speculative-algorithm EAGLE \ --speculative-draft-model-path draft_model \ --speculative-num-steps 3 \ --speculative-eagle-topk 4 \ --tp num_gpus \ --host 0.0.0.0 --port 8000源码级对照specdec_bench 的 SGLANGModel 封装仓库的 specdec_bench 基准examples/specdec_bench/specdec_bench/models/sglang.py为 SGLang 引擎封装了完整的参数透传逻辑是理解 CLI 参数背后对应关系的最佳参考算法名映射仓库通用算法名被翻译为 SGLang 原生名——MTP→EAGLE、DRAFT_TARGET→STANDALONE、NGRAM→LOOKAHEAD、NONE→None而DSPARK会抛出NotImplementedError仅 vLLM 引擎支持。投机解码默认值非 DFLASH 路径下speculative_num_draft_tokens默认 4、speculative_num_steps默认 3、speculative_eagle_topk默认 1与上述 launch_server 示例的显式--speculative-num-steps 3一致DFLASH 路径则改为speculative_num_draft_tokens默认 8并额外设置disable_cuda_graph_paddingTrue以避免 CUDA-graph 桶填充不匹配。引擎关键参数透传tp_size、ep_sizeMoE 专家并行、mem_fraction_static默认 0.8、attention_backend、enable_torch_compile、cuda_graph_max_bs、max_running_requests、context_length对应 run.py 的--max_seq_len见下文均通过engine_kwargs字典透传给sgl.Engine(...)。混合架构特例对 Qwen3.5 等 MambaAttention 混合模型可传入mamba_scheduler_strategy调整调度器策略。跨引擎参数映射--max_seq_len 与 context_lengthexamples/specdec_bench/run.py 中维护了一个跨引擎序列长度参数的翻译表_MAX_SEQ_LEN_KEY同一概念在不同引擎里拼写不同——vLLM 叫max_model_lenTRT-LLM 叫max_seq_lenSGLang 叫context_length。基准脚本用统一的--max_seq_len参数运行时按--engine自动映射到对应名称None时引擎会从模型配置自动推导。这一点在直接使用sgl.Engine()时同样适用。测试用例验证SGLang 部署路径在 tests/_test_utils/deploy_utils.py 的_deploy_sglang_impl()中有可执行的验证实现其关键行为与本文一致量化标志按模型名自动选择模型 ID 含fp4→modelopt_fp4否则modeloptEAGLE3 组合的完整参数speculative_algorithmEAGLE3、speculative_num_steps3、speculative_eagle_topk1、speculative_num_draft_tokens4、mem_fraction_static0.7、context_length1024Nemotron 混合Mambaattention模型需额外设置mamba_scheduler_strategyextra_buffer并导出SGLANG_ENABLE_SPEC_V21环境变量以保证 radix cache 与投机解码的兼容性常规模型路径tp_sizetrust_remote_codeTruecontext_length4096随后对一组提示词执行llm.generate(prompts)并断言每个输出均为非空字符串。该测试类被 tests/examples/hf_ptq/test_deploy.py 中的大量组合引用backend(vllm, trtllm, sglang)等构成支持矩阵中加载并生成冒烟检查的可执行基础。关键 SGLang 标志速查标志说明--model-path检查点路径或 HF 模型 ID--quantizationmodeloptFP8或modelopt_fp4FP4--tp张量并行度--ep专家并行度用于 MoE 模型--enable-torch-compile开启 torch.compile 提升性能--cuda-graph-max-bsCUDA graphs 的最大批处理大小--attention-backendflashinfer默认或triton补充说明结合 specdec_bench 源码这些参数大多与sgl.Engine的engine_kwargs一一对应例如tp_size、ep_size、enable_torch_compile、cuda_graph_max_bs、attention_backendPython API 与 CLI 仅是同一套配置的两种入口。MoE / FP4 后端标志Blackwell vs Hopper对于大型 MoE 模型cookbook 配方是权威依据——下表是它按硬件选出的标志。量化后的 DeepSeek 风格检查点通常是FP4 experts FP8 attention/dense的混合精度结构标志用途--moe-runner-backend flashinfer_mxfp4BlackwellSM100/SM103上默认的 FP4 MoE runner--moe-runner-backend marlinHopper 上的 W4A16 FP4 MoE runner--moe-a2a-backend deepep默认的专家 all-to-all 后端--moe-a2a-backend megamoe仅 Blackwell面向高吞吐策略--deepep-mode auto\|normal\|low_latencyDeepEP 调度模式策略参数联动策略low-latency / balanced / high-throughput会联动调优--cuda-graph-max-bs、--max-running-requests以及 MTPMulti-Token Prediction的草稿步数/词元数——这些应当取自 cookbook 变体而非凭经验猜测。硬件注意事项Blackwell B200/B300/GB200/GB300SM100/SM103使用flashinfer_mxfp4MoE runnermegamoe仅用于高吞吐策略。HopperH100/H200FP4 通过 Marlin W4A16 内核运行。若需更丰富的并行能力可改用转换好的 FP8 检查点如sgl-project/DeepSeek-V4-*-FP8。RTX PRO 6000SM120:latest镜像不支持SM120必须使用lmsysorg/sglang:dev夜间镜像。NVFP4 推理的前置条件support-matrix 明确指出 NVFP4 推理需要 Blackwell GPUB100/B200/B300/GB200/GB300Hopper 只能做 FP4 校准不能推理且 B300/GB300 属于sm_103需要 CUDA-13 服务镜像——cu12 镜像缺少sm_103FP4 内核。部署前用nvidia-smi核实 GPU 型号集群的 GPU 标签可能过期。常见问题与排查问题修复quantizationmodelopt无法识别升级 SGLang 至 0.4.10DeepSeek FP4 不工作检查支持矩阵——SGLang 的 FP4 支持因模型而异启动时 OOM增大--tp或减小--max-total-tokens结合 SKILL.md 的部署错误处理表可再补充两条高频场景hf_quant_config.json找不到说明检查点并非 Model-Optimizer 导出格式需用export_hf_checkpoint()重新导出或直接去掉--quantization标志按未量化模型部署健康检查Connection refused大模型启动需要时间等待 30–60 秒再重试并检查服务日志。部署后的验证与基准服务启动后按 SKILL.md 第 5 步完成三层验证全部通过才可认为部署成功# 健康检查返回 200 curl -s http://localhost:8000/health # 列出可用模型 curl -s http://localhost:8000/v1/models | python -m json.tool # 测试生成 curl -s http://localhost:8000/v1/completions \ -H Content-Type: application/json \ -d { model: model_name, prompt: The capital of France is, max_tokens: 32 } | python -m json.tool若需要吞吐/延迟基准仓库 deployment skill 提供了 references/benchmarking.md使用 AIPerfOpenAI 兼容客户端基准测量注意aiperf profile的--extra-inputs ignore_eos:true参数与profile_export_aiperf.json结果的解读方式。小结围绕 Model-Optimizer 量化检查点搭建 SGLang 服务核心要点可归纳为四条版本达标SGLang 0.4.10、量化标志正确FP8 用modeloptNVFP4 用modelopt_fp4、复杂模型先查 cookbook 再手写参数并行布局、MoE 后端与策略标志以 cookbook 为准、硬件选对后端Blackwell 用flashinfer_mxfp4Hopper 用marlin。在此基础上本文补充的 specdec_bench 封装源码与test_deploy.py/deploy_utils.py测试用例为你理解参数背后的实际调用关系提供了仓库内的第一手证据遇到未收录于支持矩阵的模型可直接参考 references/support-matrix.md 的兜底策略查框架官方文档 → 直接试跑 → 向用户确认。赞分享人工智能大模型模型优化模型量化模型压缩【免费下载链接】Model-OptimizerA unified library of SOTA model optimization techniques like quantization, distillation, pruning, neural architecture search, speculative decoding, etc. It compresses deep learning models for downstream deployment frameworks like TensorRT-LLM, TensorRT, vLLM, etc. to optimize inference speed.项目地址https://gitcode.com/GitHub_Trending/te/Model-Optimizer点击查看免费下载相关推荐Model Optimizer 实战从 NVIDIA Hugging Face Model Hub 一键部署 FP8 量化模型到 TensorRT-LLM、vLLM 与 SGLangModel Optimizer 实战从 NVIDIA Hugging Face Model Hub 一键部署 FP8 量化模型到 TensorRT LLM、v人工智能大模型模型优化模型量化模型压缩Model-Optimizer ONNX 后训练量化PTQ实战指南从 INT8/FP8/INT4 量化到 TensorRT 部署Model Optimizer ONNX 后训练量化PTQ实战指南从 INT8/FP8/INT4 量化到 TensorRT 部署 导读 本文围绕 exam人工智能大模型模型优化模型量化模型压缩Model-Optimizer 实战TensorRT-LLM 部署量化模型完整指南Model Optimizer 实战TensorRT LLM 部署量化模型完整指南 本文聚焦 Model Optimizer 项目中 TensorRT LLM人工智能大模型模型优化模型量化模型压缩上一篇你的鼠标真的靠谱吗解锁专业级性能测试的秘密武器下一篇魔兽争霸3终极兼容性解决方案WarcraftHelper完全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表