
Intern-S2-397B 生产部署指南LMDeploy / vLLM / SGLang 基础服务、MTP 投机解码与 YaRN 超长上下文配置本篇指南围绕 Intern-S2-397B 的模型服务化部署展开完整覆盖三大主流推理框架LMDeploy、vLLM、SGLang的启动命令、关键参数与适用版本。你将掌握三种部署形态不启用投机解码的基础服务、开启 MTPMulti-Token Prediction投机解码的加速服务以及通过 YaRN RoPE 扩展到 512k 乃至 1M token 的超长上下文推理配置并了解各框架参数的底层语义与模型架构依据可直接复制到 H100/H200 集群上运行。一、部署前的硬件与模型准备Intern-S2-397B 是 Intern 系列面向科学智能与长周期 Agent 任务的多模态基础模型。从仓库的 config.json 可以确认其核心架构事实文本主干采用Qwen3_5MoeForConditionalGeneration架构model_type为qwen3_5_moe共 60 层其中 47 层为linear_attention线性注意力对应 Gated DeltaNet 类线性注意力结构13 层为full_attention全注意力full_attention_interval为 4MoE 层包含 512 个专家num_experts、每个 token 激活 10 个num_experts_per_tok并配置了共享专家词表大小为 251392config.json。权重以 FP8 精度发布部署时模型 ID 为internlm/Intern-S2-FP8由 188 个 safetensors 分片组成model.safetensors.index.json 中total_size约为 806 GB806,846,206,816 字节。由于模型体量庞大官方推荐在H100 (x8) 或 H200 (x8) 节点上部署即以 8 卡为一个基本部署单元。以下三套框架的示例命令均以此为前提框架最低版本并行策略适用场景LMDeploy 0.14.0--dp 4 --ep 8数据并行 × 专家并行默认推荐功能最全含工具调用解析、时间序列推理vLLM v0.22.1--tensor-parallel-size 8张量并行生态成熟配合 FlashInfer MoE 后端SGLang v0.5.13--tp-size 8张量并行原生支持 NEXTN 投机解码说明internlm/Intern-S2-FP8是部署时传给推理框架的模型标识HF Hub 模型 ID--model-name/--served-model-name指定对外暴露的服务名通常为internlm/Intern-S2-397B二者在 OpenAI 兼容 API 的model字段中必须与部署一致。若本地已下载权重也可将模型 ID 替换为本地目录路径。二、LMDeploy 部署 0.14.0LMDeploy 的 PyTorch 后端针对 MoE 模型支持 数据并行DP与 专家并行EP组合--dp 4 --ep 8表示 4 路数据并行叠加 8 路专家并行将 512 个专家分布到 8 卡适合 8 卡节点上的大模型张量切分。2.1 基础服务不启用 MTPLMDeploy 的完整服务由两段组成先启动一个轻量 proxy server负责请求转发与调度再启动 api_server 并将--proxy-url指向它# proxy server lmdeploy serve proxy --server-name ${proxy_server_ip} --server-port ${proxy_server_port} # api_server lmdeploy serve api_server \ internlm/Intern-S2-FP8 \ --model-name internlm/Intern-S2-397B \ --trust-remote-code \ --backend pytorch \ --dp 4 \ --ep 8 \ --enable-prefix-caching \ --proxy-url http://${proxy_server_ip}:${proxy_server_port} \ --reasoning-parser default \ --tool-call-parser interns2-preview关键参数说明--backend pytorch指定使用 LMDeploy 的 PyTorch 推理后端这是官方针对该模型推荐的后端--enable-prefix-caching开启前缀缓存多轮对话与批量请求共享前缀时可显著降低重复 prefill 开销对 Agent 类长会话尤其重要--reasoning-parser default启用推理thinking内容的解析。Intern-S2-397B 默认开启思考模式输出中会包含think.../think结构解析器负责将其与最终回答正确分离保证 OpenAI 兼容接口返回的reasoning_content字段正确--tool-call-parser interns2-preview工具调用解析器与模型的工具调用格式tool_call/function...XML 风格见 chat_template.jinja对应。后续对接 Agent 框架时必须保留该参数否则工具调用无法被正确解析--trust-remote-code允许加载仓库自带的远程代码实现如 tokenization_interns1.py 中的InternS1Tokenizer与模型代码。2.2 开启 MTP 投机解码Intern-S2-397B 的权重中内置了 MTPMulti-Token Prediction模块从 config.json 可以看到mtp_num_hidden_layers: 1且 model.safetensors.index.json 中包含mtp.fc.weight、mtp.layers.0.mlp.experts.*等完整权重键。MTP 模块在训练时被训练为并行预测后续多个 token推理时可作为投机解码的 draft 模型——用轻量的多 token 预测为自回归解码提供草稿再由主模型批量验证从而在保证输出质量不变的前提下提升吞吐。lmdeploy serve api_server \ internlm/Intern-S2-FP8 \ --model-name internlm/Intern-S2-397B \ --trust-remote-code \ --backend pytorch \ --dp 4 \ --ep 8 \ --enable-prefix-caching \ --proxy-url http://${proxy_server_ip}:${proxy_server_port} \ --reasoning-parser default \ --tool-call-parser interns2-preview \ --speculative-algorithm qwen3_5_mtp \ --speculative-num-draft-tokens 4 \ --max-batch-size 256相比基础服务新增的参数--speculative-algorithm qwen3_5_mtp启用与该模型架构qwen3_5_moe配套的 MTP 投机解码算法--speculative-num-draft-tokens 4每次生成的草稿 token 数量。该值需与模型的 MTP 预测能力匹配本模型 MTP 深度为 1 层配合多步草稿生成设置过大可能因草稿被拒绝而收益下降--max-batch-size 256投机解码会放大单次前向的批大小草稿 token 并行验证需要更大的 batch 上限来容纳同时验证的多个序列因此 MTP 模式下建议显式调大该值。2.3 超长上下文服务YaRN RoPE 512kIntern-S2-397B 的默认上下文长度为 256kconfig.json中max_position_embeddings: 262144tokenizer_config.json 中model_max_length同为 262144。要扩展到更长上下文需要同时配置--session-len服务端 KV 缓存窗口与 YaRN RoPE 参数外推旋转位置编码二者缺一不可。以下示例将上下文扩展到 512klmdeploy serve api_server \ internlm/Intern-S2-FP8 \ --model-name internlm/Intern-S2-397B \ --trust-remote-code \ --backend pytorch \ --dp 4 \ --ep 8 \ --enable-prefix-caching \ --reasoning-parser default \ --tool-call-parser interns2-preview \ --session-len 512000 \ --max-batch-size 64 \ --hf-overrides {text_config: {rope_parameters: {mrope_interleaved: true, mrope_section: [11, 11, 10], rope_type: yarn, rope_theta: 10000000, partial_rotary_factor: 0.25, factor: 4.0, original_max_position_embeddings: 262144}}}--hf-overrides中的 JSON 通过覆盖 HuggingFace 配置中的text_config.rope_parameters来注入 YaRN 参数。将该 JSON 与仓库默认配置对照即可理解每个字段的含义默认值见 config.json参数默认值config.jsonYaRN 覆盖值作用mrope_interleavedtruetrue保持不变多模态位置编码采用交错排布图像/视频/文本三维位置不可改动mrope_section[11, 11, 10][11, 11, 10]保持不变三个维度的 RoPE 分段维度数与视觉 token 的位置编码机制绑定不可改动rope_typedefaultyarn切换为 YaRN 旋转插值扩展算法是超长上下文的开关rope_theta1000000010000000保持不变RoPE 基础频率保持与预训练一致partial_rotary_factor0.250.25保持不变仅 25% 的隐藏维度参与旋转线性注意力层的结构约束不可改动factor无4.0YaRN 扩展倍率决定有效上下文长度262144 × 4 ≈ 1Moriginal_max_position_embeddings262144262144预训练原始最大位置数YaRN 以它为基准进行插值其中factor: 4.0与original_max_position_embeddings: 262144的组合意味着理论最大扩展长度约为 1,048,5761M。示例中--session-len 512000选择了 512k 作为服务窗口——session-len决定实际分配的 KV 缓存长度应根据显存余量与业务需求调整不必顶满理论上限。长上下文对显存占用极大因此该示例将--max-batch-size降为 64以控制显存峰值。三、vLLM 部署 v0.22.1vLLM 部署前需要设置三个环境变量分别控制 DeepGEMM 与 FlashInfer MoE 后端的启用策略export VLLM_DEEP_GEMM_WARMUPskip export VLLM_USE_DEEP_GEMM0 export VLLM_FLASHINFER_MOE_BACKENDlatencyVLLM_DEEP_GEMM_WARMUPskip与VLLM_USE_DEEP_GEMM0跳过 DeepGEMM 的预热并关闭该内核路径。DeepGEMM 的自动调优预热耗时较长且在大 MoE 模型上未必是吞吐最优选择官方部署示例默认关闭VLLM_FLASHINFER_MOE_BACKENDlatency指定 FlashInfer 的 MoE 调度后端为latency延迟优先模式。FlashInfer 的 MoE 内核提供了吞吐优先与延迟优先两种调度策略此模型官方示例选择延迟优先以稳定单请求延迟。3.1 基础服务不启用 MTPvllm serve internlm/Intern-S2-FP8 \ --served-model-name internlm/Intern-S2-397B \ --trust-remote-code \ --tensor-parallel-size 8 \ --enable-auto-tool-choice \ --tool-call-parser qwen3_coder \ --reasoning-parser qwen3 \ --mm-encoder-tp-mode data参数说明--tensor-parallel-size 88 卡张量并行将 512 个专家按 MoE 张量并行方式切分到各卡--enable-auto-tool-choice启用工具调用的自动选择模式--tool-call-parser qwen3_coder工具调用解析器选用 qwen3_coder与 LMDeploy 侧不同这是 vLLM 内置的解析器名称--reasoning-parser qwen3推理内容解析器对应模型输出的思考结构--mm-encoder-tp-mode data多模态编码器采用数据并行模式的张量并行避免视觉编码器参数在 8 卡间重复广播带来的显存浪费适配多模态输入的批处理。3.2 开启 MTP 投机解码export VLLM_DEEP_GEMM_WARMUPskip export VLLM_USE_DEEP_GEMM0 export VLLM_FLASHINFER_MOE_BACKENDlatency vllm serve internlm/Intern-S2-FP8 \ --served-model-name internlm/Intern-S2-397B \ --trust-remote-code \ --tensor-parallel-size 8 \ --enable-auto-tool-choice \ --tool-call-parser qwen3_coder \ --mm-encoder-tp-mode data \ --reasoning-parser qwen3 \ --speculative-config {method:mtp,num_speculative_tokens:3}vLLM 使用--speculative-config以 JSON 形式声明投机解码策略method: mtp启用模型的 MTP 模块作为 draft 模型对应权重中内置的mtp.*模块num_speculative_tokens: 3每轮草稿生成 3 个 tokenLMDeploy 侧为 4两框架均可按显存与命中率微调。3.3 超长上下文服务YaRN RoPE 约 1MvLLM 通过VLLM_ALLOW_LONG_MAX_MODEL_LEN1放开--max-model-len超过模型默认max_position_embeddings的限制再配合--hf-overrides注入 YaRN 参数VLLM_ALLOW_LONG_MAX_MODEL_LEN1 vllm serve internlm/Intern-S2-FP8 \ --served-model-name internlm/Intern-S2-397B \ --tensor-parallel-size 8 \ --max-model-len 1010000 \ --reasoning-parser qwen3 \ --hf-overrides {text_config: {rope_parameters: {mrope_interleaved: true, mrope_section: [11, 11, 10], rope_type: yarn, rope_theta: 10000000, partial_rotary_factor: 0.25, factor: 4.0, original_max_position_embeddings: 262144}}}要点--max-model-len 1010000目标上下文长度约 1M token。之所以比理论上限 1,048,576 略小是给生成阶段预留 token 空间模型总序列 输入 输出不能超过max-model-lenYaRN 覆盖 JSON 与 LMDeploy 侧完全一致factor: 4.0将有效长度从 262,144 扩展到约 1MVLLM_ALLOW_LONG_MAX_MODEL_LEN1是必需的不设置时vLLM 会因max-model-len超过模型配置的最大位置数而直接拒绝启动该示例未显式开启投机解码MTP 与超长上下文可组合使用但需在--speculative-config与--max-model-len之间平衡显存。四、SGLang 部署 v0.5.13SGLang 使用python3 -m sglang.launch_server启动核心并行参数为--tp-size 88 路张量并行。4.1 基础服务不启用 MTPpython3 -m sglang.launch_server \ --model-path internlm/Intern-S2-FP8 \ --served-model-name internlm/Intern-S2-397B \ --trust-remote-code \ --tp-size 8 \ --mem-fraction-static 0.8 \ --enable-flashinfer-allreduce-fusion \ --reasoning-parser qwen3 \ --tool-call-parser qwen3_coder参数说明--mem-fraction-static 0.8预分配 80% 的可用显存作为静态 KV 缓存池剩余留给激活值与计算开销。显存紧张时需调低该值--enable-flashinfer-allreduce-fusion启用 FlashInfer 的 AllReduce 算子融合将 MoE 专家并行的多路 AllReduce 合并执行减少通信开销--reasoning-parser qwen3与--tool-call-parser qwen3_coder与 vLLM 相同的解析器选型。4.2 开启 MTP 投机解码NEXTNSGLang 侧的投机解码采用 NEXTN 方案也是基于模型内置 MTP 模块的多 token 预测并通过SGLANG_ENABLE_SPEC_V21启用其新一代投机解码框架SGLANG_ENABLE_SPEC_V21 \ python3 -m sglang.launch_server \ --model-path internlm/Intern-S2-FP8 \ --served-model-name internlm/Intern-S2-397B \ --trust-remote-code \ --tp-size 8 \ --reasoning-parser qwen3 \ --tool-call-parser qwen3_coder \ --mem-fraction-static 0.8 \ --mamba-scheduler-strategy extra_buffer \ --enable-flashinfer-allreduce-fusion \ --speculative-algo NEXTN \ --speculative-eagle-topk 1 \ --speculative-num-steps 3 \ --speculative-num-draft-tokens 4投机解码相关参数--speculative-algo NEXTN指定 NEXTN 投机解码算法--speculative-eagle-topk 1EAGLE 树状候选的 top-k 取 1即每步只保留一条最优草稿分支不做树状扩展--speculative-num-steps 3每轮最多推进 3 步草稿生成--speculative-num-draft-tokens 4草稿 token 总数上限为 4与 LMDeploy 侧一致--mamba-scheduler-strategy extra_buffer为线性注意力Mamba 系层配置额外的调度缓冲保证投机解码过程中线性注意力状态SSM 隐状态的保存与回滚正确。注SGLang 示例未单列超长上下文命令如需扩展上下文可参考 LMDeploy / vLLM 中相同的--hf-overridesYaRN 参数方式配合 SGLang 的--context-length参数使用以所用 SGLang 版本参数名为准。五、部署形态对比与选型建议维度LMDeployvLLMSGLang并行方式DP(4) × EP(8)TP(8)TP(8)投机解码qwen3_5_mtp草稿 4mtp草稿 3NEXTN草稿 4 / 步数 3长上下文示例512k--session-len~1M--max-model-len参照 hf-overrides 方式工具调用解析器interns2-previewqwen3_coderqwen3_coder推理解析器defaultqwen3qwen3特殊能力时间序列推理见 README.md Advanced Usage——选型建议追求开箱即用与官方推荐路径优先 LMDeploy其interns2-preview工具调用解析器与模型原生格式见 chat_template.jinja 中的tool_call结构严格对应且时间序列推理等高级能力仅在其上支持已深度使用 vLLM 生态选用 vLLM注意启动前必须设置三个 DeepGEMM / FlashInfer 环境变量超长上下文需配合VLLM_ALLOW_LONG_MAX_MODEL_LEN1需要 NEXTN 多步草稿解码选用 SGLang其投机解码参数更细粒度步数、草稿数、top-k 可分别调节。六、部署后的验证服务启动成功后可用 OpenAI 兼容接口快速验证。LMDeploy 默认监听 23333 端口README 中工具调用示例即基于http://0.0.0.0:23333/v1curl http://0.0.0.0:23333/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer EMPTY \ -d { model: internlm/Intern-S2-397B, messages: [ {role: user, content: Hello} ], temperature: 0.8, top_p: 0.95 }请求体中的model必须与部署时的--model-name/--served-model-name完全一致。推荐的采样参数可参考 generation_config.jsontemperature: 0.6、top_k: 20、top_p: 0.95与 README.md Quick Starttop_p 0.95、top_k 50、min_p 0.0、temperature 0.8具体取值按任务类型微调。七、注意事项小结版本门槛不可降LMDeploy 0.14.0、vLLM v0.22.1、SGLang v0.5.13旧版本可能缺少 MTP / YaRN 相关参数支持YaRN 覆盖参数必须整体一致mrope_interleaved、mrope_section、rope_theta、partial_rotary_factor必须保持与 config.json 默认值一致仅修改rope_type、factor、original_max_position_embeddings相关项否则多模态位置编码会被破坏长上下文与批量需权衡--session-len/--max-model-len越大--max-batch-size应越小官方示例分别使用 64 与 1010000 的搭配否则极易 OOMMTP 需要显存余量投机解码会额外加载/计算 MTP 模块mtp_num_hidden_layers: 1与草稿 token 的前向若显存紧张可先跑基础服务加载远程代码必须开启--trust-remote-code模型依赖仓库内置的 tokenization_interns1.pyInternS1Tokenizer含 SMILES / 蛋白质 / DNA/RNA 领域专用子词模型与自定义建模代码未开启该标志会加载失败。至此你已掌握 Intern-S2-397B 在三套主流推理框架下的完整部署方法从基础服务、MTP 投机解码加速到 YaRN 驱动的 512k / 1M 超长上下文均可按本文示例直接落地。创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考