InternLM/Intern-S2-Mobius
模型介绍
文件和版本
Pull Requests
讨论
分析

Intern-S2-Mobius

 

💻GitHub 代码仓库 • 🤗模型合集 • 🌳架构空间

引言

我们推出 Intern-S2-Mobius,一个基于 Mobius-v0 架构构建的 35B 基础模型,该架构由 Xtuner 和 LMDeploy 实现。与传统的 Transformer 模型将知识存储与推理计算逐层绑定不同,Mobius 将知识组织为全局共享的 记忆库(Memory),并让多个 推理器(Reasoner) 针对这一共享存储反复查询和优化隐藏状态。

这种知识与推理的分离赋予了 Intern-S2-Mobius 两项原生能力:反向残差连接(Backward Residual Connection),使推理阶段能够访问超出其局部层层级的知识;以及动态潜在推理(Dynamic Latent Reasoning),将深思、精炼和多词元预测内化到高密度连续状态中。Intern-S2-Mobius 从 Qwen3.5-35B 持续预训练而来,并经过 SFT 和 RL 的进一步后训练,在保持强大下游能力的同时,显著提升了端到端推理效率,技术报告中报道的加速比接近 4 倍。

特性

  • 知识与推理解耦的架构。 Intern-S2-Mobius 用全局共享的记忆库取代了与层绑定的 FFN 知识存储,从而将知识向量与推理算子分离。这使得每个推理器都能访问更广阔的知识空间,相较于标准 Transformer 布局,知识压缩效率也更高。

  • 反向残差连接。 通过共享记忆库,浅层与深层的推理阶段可以跨模型访问知识,而不仅仅依赖前向逐层的信息流动。这使得跨层知识组合更加灵活,帮助模型以更少的推理步骤综合有用信息。

  • 动态潜在推理。 Mobius 在解码之前通过循环潜在迭代来精炼连续的隐藏状态。这在一定程度上内化了思考过程,减少了对长可视思维链的依赖,并动态地为不同词元分配计算资源。

  • 以简洁推理实现更高推理效率。 在推理基准测试上,Intern-S2-Mobius 达到了与 Qwen3.5-35B 基线相当或更优的分数,同时生成的推理轨迹明显更短,请求吞吐量更高,在所报告的评测中实现了近 4 倍的端到端推理加速。

  • 出色的通用与科学性能。 Intern-S2-Mobius 在通用推理基准上的平均得分相较 Qwen3.5-35B 有所提升,并在生物指令(Biology-Instructions)、分子指令(Mol-Instructions)和 MolecularIQ 等科学任务上展现出显著增益。

Mobius 推理效率 图1:推理基准上的推理效率。Intern-S2-Mobius 在保持强劲推理性能的同时,相较于 Transformer 基线提升了请求吞吐量,该增益主要来自更短、更紧凑的推理轨迹。 思维链 图2:基于 Qwen3.5 持续预训练的 Mobius 的平均输出长度。

性能表现

我们在多种基准上对 Intern-S2-Mobius 进行了评估,涵盖通用数据集与科学数据集。下表展示了与 Qwen3.5-35B 的性能对比。所有模型均使用 OpenCompass 进行评测。对于文本基准,Intern-S2-Mobius 在 MMLU Pro、SimpleQA 和 HLE 上的最大推理长度为 64K tokens,其余文本基准为 128K tokens。

performance 图3:通用与科学基准上的性能对比。每一行中的最高分以加粗标注。 case study 图4:Intern-S2-Mobius-35B 与 Qwen3.5-35B 在线性代数选择题上的逐步推理对比。两个模型均选出了正确答案(选项 C)。Token 数量使用 Qwen3.5-35B 分词器计算。Mobius 以更少的 token 完成了相同的推理步骤,主要得益于其省去了重复推导与校验过程。

快速开始

Intern-S2-Mobius 发布版本为 35B 模型,权重以 bfloat16 格式存储。本指南提供以下配置的部署示例:

  • MTP 投机解码(推荐)
  • 不带 MTP 的基础服务

注意:以下命令为参考配置。推理框架仍在积极开发中,请在调优生产部署时参考最新版框架文档,并结合本地验证结果进行配置。

Intern-S2-Mobius 可通过以下任一 LLM 推理框架进行部署:

  • LMDeploy
  • Transformer
  • vLLM

采样参数

我们建议使用以下超参数以获得更佳效果。

top_p = 1
top_k = 50
min_p = 0.0
temperature = 0.8

LMDeploy

请使用支持Intern-S2-Mobius的最新版LMDeploy。以下示例均基于单GPU服务。

  • 使用MTP模式提供服务(推荐)
lmdeploy serve api_server \
    internlm/Intern-S2-Mobius \
    --trust-remote-code \
    --backend pytorch \
    --tp 1 \
    --speculative-algorithm qwen3_5_mtp \
    --speculative-num-draft-tokens 4 \
    --dtype bfloat16 \
    --max-batch-size 64 
  • 基础服务(不含 MTP)
lmdeploy serve api_server \
    internlm/Intern-S2-Mobius \
    --trust-remote-code \
    --backend pytorch \
    --dtype bfloat16 \
    --tp 1 

Transformers

请使用支持远程代码加载的最新版 Transformers。

  • 基础推理
import torch
from transformers import AutoModelForImageTextToText, AutoTokenizer

model_path = "internlm/Intern-S2-Mobius"

tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = AutoModelForImageTextToText.from_pretrained(
    model_path,
    trust_remote_code=True,
    torch_dtype=torch.bfloat16,
    device_map="auto",
).eval()

messages = [
    {"role": "user", "content": "Give me a short introduction to Intern-S2-Mobius."}
]

text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
)
inputs = tokenizer(text, return_tensors="pt").to(model.device)

with torch.no_grad():
    output_ids = model.generate(
        **inputs,
        max_new_tokens=512,
        do_sample=True,
        temperature=0.8,
        top_p=1,
    )

response_ids = output_ids[0][inputs["input_ids"].shape[-1]:]
print(tokenizer.decode(response_ids, skip_special_tokens=True))

vLLM

请使用最新的 vLLM Docker 镜像或从源码构建以支持 Intern-S2-Mobius。

  • 使用 MTP 进行服务部署(推荐)
vllm serve \
    internlm/Intern-S2-Mobius \
    --trust-remote-code \
    --tensor-parallel-size 2 \
    --reasoning-parser qwen3 \
    --enable-auto-tool-choice \
    --tool-call-parser qwen3_coder \
    --spec-method mtp \
    --spec-tokens 4
  • 不包含MTP的基础服务
vllm serve \
    internlm/Intern-S2-Mobius \
    --trust-remote-code \
    --tensor-parallel-size 2 \
    --reasoning-parser qwen3 \
    --enable-auto-tool-choice \
    --tool-call-parser qwen3_coder