Model reference · open weights
Intern-S1 is an open-weight language model from internlm. Intern-S1 (BF16) weighs 481 GB; the smallest configuration that runs it is 4× H200 141 GB.
Summary of the internlm/Intern-S1 model card, 2026-10-01
What it is
| Released by | internlm |
|---|---|
| Released | 2025-07-24 |
| Parameters | 240.7B |
| VRAM | 481 GB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory | |
|---|---|---|---|---|
| 8K each | 32K each | |||
| RTX 3060 12 GB … B200 180 GB 12 smaller cards | — | — | — | |
| 4× H200 141 GB tensor parallel | 18 | 4 | all 64K | 138 GB a card |
| 8× H100 80 GB tensor parallel | 19 | 4 | all 64K | 78.1 GB a card |
| 8× A100 80 GB tensor parallel | 38 | 9 | all 64K | 78.2 GB a card |
| 4× B200 180 GB tensor parallel | 104 | 26 | all 64K | 176 GB a card |
| Requests at once | 8K tokens each | 32K tokens each |
|---|---|---|
| 1 | 486 GB | 491 GB |
| 5 | 492 GB | 516 GB |
| 8 | 497 GB | 535 GB |
| 16 | 510 GB | 585 GB |
| 32 | 535 GB | 686 GB |
| 64 | 585 GB | 888 GB |
One card, with vLLM's small-card settings.
From the model card
💻Github Repo • 🤗Model Collections • 📜Technical Report • 💬Online Chat
We introduce Intern-S1, our most advanced open-source multimodal reasoning model to date. Intern-S1 combines strong general-task capabilities with state-of-the-art performance on a wide range of scientific tasks, rivaling leading closed-source commercial models. Built upon a 235B MoE language model (Qwen3) and a 6B Vision encoder (InternViT), Intern-S1 has been further pretrained on 5 trillion tokens of multimodal data, including over 2.5 trillion scientific-domain tokens. This enables the model to retain strong general capabilities while excelling in specialized scientific domains such as interpreting chemical structures, understanding protein sequences, and planning compound synthesis routes, making Intern-S1 to be a capable research assistant for real-world scientific applications. Features
Strong performance across language and vision reasoning benchmarks, especially scientific tasks.
Continuously pretrained on a massive 5T token dataset, with over 50% specialized scientific data, embedding deep domain expertise.
Dynamic tokenizer enables native understanding of molecular formulas, protein sequences, and seismic signals.
We evaluate the Intern-S1 on various benchmarks including general datasets and scientifc datasets. We report the performance comparsion with the recent VLMs and LLMs below.
Note: ✅ means the best performance among open-sourced models, 👑 indicates the best performance among all models.
We use the OpenCompass and VLMEvalkit to evaluate all models. Please refer to this page to quickly start the text-only evaluation task.
We recommend using the following hyperparameters to ensure better results
top_p = 1.0
top_k = 50
min_p = 0.0
temperature = 0.7
The following provides demo code illustrating how to generate based on text and multimodal inputs.
Please use transformers>=4.53.0 to ensure the model works normally.
from transformers import AutoProcessor, AutoModelForCausalLM
import torch
model_name = "internlm/Intern-S1"
processor = AutoProcessor.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto", torch_dtype="auto", trust_remote_code=True)
messages = [
{
"role": "user",
"content": [
{"type": "text", "text": "tell me about an interesting physical phenomenon."},
],
}
]
inputs = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt").to(model.device, dtype=torch.bfloat16)
generate_ids = model.generate(**inputs, max_new_tokens=32768)
decoded_output = processor.decode(generate_ids[0, inputs["input_ids"].shape[1] :], skip_special_tokens=True)
print(decoded_output)
from transformers import AutoProcessor, AutoModelForCausalLM
import torch
model_name = "internlm/Intern-S1"
processor = AutoProcessor.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto", torch_dtype="auto", trust_remote_code=True)
messages = [
{
"role": "user",
"content": [
{"type": "image", "url": "http://images.cocodataset.org/val2017/000000039769.jpg"},
{"type": "text", "text": "Please describe the image explicitly."},
],
}
]
inputs = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt").to(model.device, dtype=torch.bfloat16)
generate_ids = model.generate(**inputs, max_new_tokens=32768)
decoded_output = processor.decode(generate_ids[0, inputs["input_ids"].shape[1] :], skip_special_tokens=True)
print(decoded_output)
Please ensure that the decord video decoding library is installed via pip install decord.
from transformers import AutoProcessor, AutoModelForCausalLM
import torch
model_name = "internlm/Intern-S1"
processor = AutoProcessor.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto", torch_dtype="auto", trust_remote_code=True)
messages = [
{
"role": "user",
"content": [
{
"type": "video",
"url": "https://huggingface.co/datasets/hf-internal-testing/fixtures_videos/resolve/main/tennis.mp4",
},
{"type": "text", "text": "What type of shot is the man performing?"},
],
}
]
inputs = processor.apply_chat_template(
messages,
return_tensors="pt",
add_generation_prompt=True,
video_load_backend="decord",
tokenize=True,
return_dict=True,
).to(model.device, dtype=torch.float16)
generate_ids = model.generate(**inputs, max_new_tokens=32768)
decoded_output = processor.decode(generate_ids[0, inputs["input_ids"].shape[1] :], skip_special_tokens=True)
print(decoded_output)
The minimum hardware requirements for deploying Intern-S1 series models are:
| Model | A100(GPUs) | H800(GPUs) | H100(GPUs) | H200(GPUs) |
|---|---|---|---|---|
| [internlm/Intern-S1](https://hugg |
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.