internlm/Intern-S2-Preview · Hugging Face

Reddit r/LocalLLaMA 模型

摘要

InternLM 发布 Intern-S2-Preview,一款 35B 的科学多模态基础模型,通过任务缩放和全链条训练流程,在专业科学任务上达到与万亿级模型相当的性能。

# 简介 我们推出 **Intern-S2-Preview**,一款高效的 **35B** 科学多模态基础模型。除了传统的参数和数据缩放,Intern-S2-Preview 还探索了**任务缩放**:增加科学任务的难度、多样性和覆盖范围,进一步释放模型能力。通过将专业科学任务扩展为从预训练到强化学习的全链条训练流程,Intern-S2-Preview 在多个核心专业科学任务上达到了与万亿级规模 Intern-S1-Pro 相当的性能,而仅使用了 **35B 参数(在 Qwen3.5 基础上继续预训练)**。同时,它保持了强大的通用推理、多模态理解和智能体能力。 # [](https://huggingface.co/internlm/Intern-S2-Preview#features)特性 * **科学任务缩放与全链条训练。** Intern-S2-Preview 将从预训练到强化学习的数百个专业科学任务进行缩放,仅用 35B 参数就在多个专业领域展现出强劲性能。它进一步增强了小分子结构的空间建模能力,并引入了实值预测模块,成为首个同时具备材料晶体结构生成能力和强大通用能力的开源模型。 * **面向科学工作流的增强智能体能力。** Intern-S2-Preview 在上一代基础上显著提升了智能体能力,在多个科学智能体基准测试中取得了强劲成绩。 * **通过 MTP 和 CoT 压缩实现高效强化学习推理。** 在强化学习阶段,Intern-S2-Preview 采用带 KL 损失的共享权重 MTP,减少训练与推理行为之间的不匹配,显著提高了 MTP 接受率和 token 生成速度。它还引入了 CoT 压缩技术,在保持强大推理能力的同时缩短响应长度,实现了性能与效率的双重提升。
查看原文
查看缓存全文

缓存时间: 2026/05/15 11:00

internlm/Intern-S2-Preview · Hugging Face

来源:https://huggingface.co/internlm/Intern-S2-Preview 👋 加入我们的 Discord (https://discord.gg/xa29JuW87d) 和微信 (https://cdn.vansin.top/intern-s1.jpg)

简介 (https://huggingface.co/internlm/Intern-S2-Preview#introduction)

我们推出Intern-S2-Preview,一个高效的 35B 科学多模态基础模型。除了传统的参数和数据缩放,Intern-S2-Preview 还探索了任务缩放:通过增加科学任务的难度、多样性和覆盖范围,进一步释放模型能力。

通过将专业科学任务扩展到从预训练到强化学习的全链路训练管线,Intern-S2-Preview 在多个核心专业科学任务上实现了与万亿级 Intern-S1-Pro 相当的性能,而参数仅为 35B(基于 Qwen3.5 继续预训练)。同时,它保持了强大的通用推理、多模态理解和智能体能力。

特点 (https://huggingface.co/internlm/Intern-S2-Preview#features)

  • 全链路训练的科学任务缩放。 Intern-S2-Preview 将数百个专业科学任务从预训练扩展到 RL,使得仅 35B 参数即可在多个专业领域实现强大性能。它进一步增强了小分子结构的空间建模,并引入了实值预测模块,成为首个同时具备材料晶体结构生成能力和强大通用能力的开源模型。
  • 增强的科学工作流智能体能力。 相比上一代,Intern-S2-Preview 显著提升了智能体能力,在多个科学智能体基准上取得了优异成绩。
  • 使用 MTP 和思维链压缩的高效 RL 推理。 在 RL 阶段,Intern-S2-Preview 采用共享权重的 MTP 结合 KL 损失,以减少训练与推理行为之间的不匹配,大幅提高 MTP 接受率和令牌生成速度。同时引入思维链压缩技术,在保持强大推理能力的同时缩短响应长度,在性能和效率方面均实现提升。

使用 MTP 和思维链压缩的高效 RL 推理
图 1:在复杂数学基准上的推理效率。准确率 vs. 平均响应长度。Intern-S2-Preview(红色星标)显著优于万亿级 Intern-S1-Pro(红色圆圈),并在中等规模模型中实现了更高的准确率和更好的令牌效率。

性能 (https://huggingface.co/internlm/Intern-S2-Preview#performance)

我们在各类基准上评估了 Intern-S2-Preview,包括通用数据集和科学数据集。下面报告与近期 VLM 和 LLM 的性能比较。

性能对比表格 (https://huggingface.co/internlm/Intern-S2-Preview/blob/main/figs/performance.png)

**注意:**下划线表示开源模型中的最佳性能,加粗表示所有模型中的最佳性能。

我们使用 OpenCompass (https://github.com/open-compass/OpenCompass/) 和 VLMEvalKit (https://github.com/open-compass/vlmevalkit) 评估所有模型。对于文本推理基准,Intern-S2-Preview 的最大推理长度为 128K 令牌;对于多模态基准,最大推理长度为 64K 令牌。

快速开始 (https://huggingface.co/internlm/Intern-S2-Preview#quick-start)

采样参数 (https://huggingface.co/internlm/Intern-S2-Preview#sampling-parameters)

建议使用以下超参数以获得更好的结果:

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

服务部署 (https://huggingface.co/internlm/Intern-S2-Preview#serving)

Intern-S2-Preview 可以使用以下任一 LLM 推理框架进行部署:

  • LMDeploy
  • vLLM
  • SGLang

这些框架的详细部署示例可在模型部署指南 (https://huggingface.co/internlm/Intern-S2-Preview/blob/main/deployment_guide.md) 中找到。

高级用法 (https://huggingface.co/internlm/Intern-S2-Preview#advanced-usage)

工具调用 (https://huggingface.co/internlm/Intern-S2-Preview#tool-calling)

工具调用让模型能够通过调用外部工具和 API 来扩展其能力。以下示例展示了如何使用兼容 OpenAI 的 API(基于 lmdeploy api server)获取最新的天气预报。

`` from openai import OpenAI import json

def get_current_temperature(location: str, unit: str = “celsius”): “”“获取某地当前温度。

Args:
    location: 要获取温度的地点,格式为"城市, 州, 国家"。
    unit: 返回温度的单位,默认为"celsius"。(可选值:["celsius", "fahrenheit"])

Returns:
    包含温度、地点和单位的字典
"""
return {
    "temperature": 26.1,
    "location": location,
    "unit": unit,
}

def get_temperature_date(location: str, date: str, unit: str = “celsius”): “”“获取某地某日的温度。

Args:
    location: 要获取温度的地点,格式为"城市, 州, 国家"。
    date: 要获取温度的日期,格式为"年-月-日"。
    unit: 返回温度的单位,默认为"celsius"。(可选值:["celsius", "fahrenheit"])

Returns:
    包含温度、地点、日期和单位的字典
"""
return {
    "temperature": 25.9,
    "location": location,
    "date": date,
    "unit": unit,
}

def get_function_by_name(name): if name == “get_current_temperature”: return get_current_temperature if name == “get_temperature_date”: return get_temperature_date

tools = [{ ‘type’: ‘function’, ‘function’: { ‘name’: ‘get_current_temperature’, ‘description’: ‘获取某地当前温度。’, ‘parameters’: { ‘type’: ‘object’, ‘properties’: { ‘location’: { ‘type’: ‘string’, ‘description’: ‘要获取温度的地点,格式为“城市, 州, 国家“。’ }, ‘unit’: { ‘type’: ‘string’, ‘enum’: [ ‘celsius’, ‘fahrenheit’ ], ‘description’: ‘返回温度的单位,默认为“celsius“。’ } }, ‘required’: [ ‘location’ ] } } }, { ‘type’: ‘function’, ‘function’: { ‘name’: ‘get_temperature_date’, ‘description’: ‘获取某地某日的温度。’, ‘parameters’: { ‘type’: ‘object’, ‘properties’: { ‘location’: { ‘type’: ‘string’, ‘description’: ‘要获取温度的地点,格式为“城市, 州, 国家“。’ }, ‘date’: { ‘type’: ‘string’, ‘description’: ‘要获取温度的日期,格式为“年-月-日“。’ }, ‘unit’: { ‘type’: ‘string’, ‘enum’: [ ‘celsius’, ‘fahrenheit’ ], ‘description’: ‘返回温度的单位,默认为“celsius“。’ } }, ‘required’: [ ‘location’, ‘date’ ] } } }]

messages = [ {‘role’: ‘user’, ‘content’: ‘今天日期是2024-11-14,旧金山现在的温度是多少?明天的呢?’} ]

openai_api_key = “EMPTY” openai_api_base = “http://0.0.0.0:23333/v1” client = OpenAI( api_key=openai_api_key, base_url=openai_api_base, ) model_name = client.models.list().data[0].id response = client.chat.completions.create( model=model_name, messages=messages, max_tokens=32768, temperature=0.8, top_p=0.95, extra_body=dict(spaces_between_special_tokens=False), tools=tools) print(response.choices[0].message) messages.append(response.choices[0].message)

for tool_call in response.choices[0].message.tool_calls: tool_call_args = json.loads(tool_call.function.arguments) tool_call_result = get_function_by_name(tool_call.function.name)(**tool_call_args) tool_call_result = json.dumps(tool_call_result, ensure_ascii=False) messages.append({ ‘role’: ‘tool’, ‘name’: tool_call.function.name, ‘content’: tool_call_result, ‘tool_call_id’: tool_call.id })

response = client.chat.completions.create( model=model_name, messages=messages, temperature=0.8, top_p=0.95, extra_body=dict(spaces_between_special_tokens=False), tools=tools) print(response.choices[0].message) ``

切换思考与非思考模式 (https://huggingface.co/internlm/Intern-S2-Preview#switching-between-thinking-and-non-thinking-modes)

Intern-S2-Preview 默认启用思考模式,增强模型的推理能力以生成更高质量的响应。可以通过在 tokenizer.apply_chat_template 中设置 enable_thinking=False 来禁用此功能:

text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True, enable_thinking=False # 思考模式指示符 )

在服务 Intern-S2-Preview 模型时,您可以通过调整请求中的 enable_thinking 参数来动态控制思考模式:

`` from openai import OpenAI import json

messages = [ { ‘role’: ‘user’, ‘content’: ‘你是谁’ }, { ‘role’: ‘assistant’, ‘content’: ‘我是一个人工智能’ }, { ‘role’: ‘user’, ‘content’: ‘AGI是什么?’ }]

openai_api_key = “EMPTY” openai_api_base = “http://0.0.0.0:23333/v1” client = OpenAI( api_key=openai_api_key, base_url=openai_api_base, ) model_name = client.models.list().data[0].id

response = client.chat.completions.create( model=model_name, messages=messages, temperature=0.8, top_p=0.95, max_tokens=2048, extra_body={ “chat_template_kwargs”: {“enable_thinking”: False} } ) print(json.dumps(response.model_dump(), indent=2, ensure_ascii=False)) ``

注意:对于智能体任务,我们不建议禁用思考模式。

智能体集成 (https://huggingface.co/internlm/Intern-S2-Preview#agent-integration)

Intern-S2-Preview 可以通过两种方式接入智能体框架:连接到自托管部署,或调用官方 InternLM API。下面我们介绍这两种方式,并提供智能体框架(如 OpenClaw、Hermes 等)和 Claude Code 的示例。

1. 自托管部署(以 LMDeploy 为例)

首先按照模型部署指南 (https://huggingface.co/internlm/Intern-S2-Preview/blob/main/deployment_guide.md) 使用 LMDeploy 启动模型服务。以下示例假设服务运行在 http://0.0.0.0:23333

连接智能体框架

大多数智能体框架(如 OpenClaw、Hermes 等)接受兼容 OpenAI 的端点。将其指向 LMDeploy 服务的 base url http://0.0.0.0:23333/v1

您可以使用以下命令检查连接:

curl http://0.0.0.0:23333/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer EMPTY" \ -d '{ "model": "internlm/Intern-S2-Preview", "messages": [ {"role": "user", "content": "你好"} ], "temperature": 0.8, "top_p": 0.95 }'

或者通过环境变量配置您的智能体框架:

export OPENAI_API_KEY=EMPTY export OPENAI_BASE_URL=http://0.0.0.0:23333/v1 export OPENAI_MODEL=internlm/Intern-S2-Preview

记得启动 LMDeploy 时添加 --tool-call-parser interns2-preview 参数,以确保工具调用被正确解析。

连接 Claude Code

LMDeploy 暴露了一个兼容 Anthropic 的 /v1/messages 端点,Claude Code 可以直接与之通信。将以下内容添加到 ~/.claude/settings.json

{ "env": { "ANTHROPIC_BASE_URL": "http://127.0.0.1:23333", "ANTHROPIC_AUTH_TOKEN": "dummy", "ANTHROPIC_MODEL": "internlm/Intern-S2-Preview", "ANTHROPIC_CUSTOM_MODEL_OPTION": "internlm/Intern-S2-Preview" } }

关于完整的使用指南(包括 curl 验证、模型路由、故障排除),请参阅 LMDeploy × Claude Code (https://lmdeploy.readthedocs.io/en/latest/integration/claude_code.html)。

2. 官方 Intern API

如果您不想自托管,可以使用官方 Intern API。在 internlm.intern-ai.org.cn (https://internlm.intern-ai.org.cn/) 注册并创建一个 API 令牌(sk-xxxxxxxx)。

连接智能体框架

该服务兼容 OpenAI,因此任何智能体框架都可以使用。您可以在命令行或配置文件中将 base url 设置为 https://chat.intern-ai.org.cn/api/v1,模型名称设置为 intern-s2-preview

您可以使用以下命令检查连接:

curl https://chat.intern-ai.org.cn/api/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-xxxxxxxx" \ -d '{ "model": "intern-s2-preview", "messages": [ {"role": "user", "content": "你好"} ], "temperature": 0.8, "top_p": 0.95 }'

有关当前端点、可用模型名称、速率限制和高级参数,请参阅 Intern API 文档 (https://internlm.intern-ai.org.cn/api/document?lang=en)。

连接 Claude Code

Claude Code 可以通过将 ANTHROPIC_BASE_URL 指向 Intern 兼容 Anthropic 的网关来路由到官方 Intern API:

{ "env": { "ANTHROPIC_BASE_URL": "http://chat.staging.intern-ai.org.cn", "ANTHROPIC_AUTH_TOKEN": "your-api-token", "ANTHROPIC_MODEL": "intern-s2-preview", "ANTHROPIC_SMALL_FAST_MODEL": "intern-s2-preview" } }

然后使用以下命令启动 claude code:

claude --model intern-s2-preview

有关分步设置,请参阅 Intern API × Claude Code 集成指南 (https://internlm.intern-ai.org.cn/api/document?lang=en)。

相似文章

ML-Intern

Product Hunt

Hugging Face 推出 AI 代理 ML-Intern,可自动完成机器学习工作流中的后训练任务。

HY-3 预览版

Reddit r/LocalLLaMA

腾讯发布 2950 亿参数的 MoE 模型 Hy3-preview,激活参数 210 亿,在 STEM 推理、指令遵循、编程与智能体任务上表现卓越。