Model reference · open weights
Intern-S1-mini is an open-weight language model from internlm. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.
Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.
What it is
| Maker | internlm |
|---|---|
| Type | Language models |
| Task | Vision + text |
| Parameters (lead) | 8.5B |
| Runs with | transformers |
| Released | 2025-08-18 |
| Popularity | 8k downloads / month |
| Licence | Open weights |
About
💻Github Repo • 🤗Model Collections • 📜Technical Report • 🏠Project Page
We introduce Intern-S1-mini, a lightweight open-source multimodal reasoning model based on the same techniques as Intern-S1. Built upon an 8B dense language model (Qwen3) and a 0.3B Vision encoder (InternViT), Intern-S1-mini 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-mini to be a capable research assistant for real-world scientific applications.
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 and protein sequences.
We evaluate the Intern-S1-mini on various benchmarks including general datasets and scientific datasets. We report the performance comparison with the recent VLMs and LLMs below.
| Intern-S1-mini | Qwen3-8B | GLM-4.1V | MiMo-VL-7B-RL-2508 | ||
|---|---|---|---|---|---|
| General | MMLU-Pro | 74.78 | 73.7 | 57.1 | 73.93 |
| MMMU | 72.33 | N/A | 69.9 | 70.4 | |
| MMStar | 65.2 | N/A | 71.5 | 72.9 | |
| GPQA | 65.15 | 62 | 50.32 | 60.35 | |
| AIME2024 | 84.58 | 76 | 36.2 | 72.6 | |
| AIME2025 | 80 | 67.3 | 32 | 64.4 | |
| MathVision | 51.41 | N/A | 53.9 | 54.5 | |
| MathVista | 70.3 | N/A | 80.7 | 79.4 | |
| IFEval | 81.15 | 85 | 71.53 | 71.4 | |
| Scientific | SFE | 35.84 | N/A | 43.2 | 43.9 |
| Physics | 28.76 | N/A | 28.3 | 28.2 | |
| SmolInstruct | 32.2 | 17.6 | 18.1 | 16.11 | |
| ChemBench | 76.47 | 61.1 | 56.2 | 66.78 | |
| MatBench | 61.55 | 45.24 | 54.3 | 46.9 | |
| MicroVQA | 56.62 | N/A | 50.2 | 50.96 | |
| ProteinLMBench | 58.47 | 59.1 | 58.3 | 59.8 | |
| MSEarthMCQ | 58.12 | N/A | 50.3 | 47.3 | |
| XLRS-Bench | 51.63 | N/A | 49.8 | 12.29 |
We use the OpenCompass and VLMEvalkit to evaluate all models.
We recommend using the following hyperparameters to ensure better results
top_p = 1.0
top_k = 50
min_p = 0.0
temperature = 0.8
The following provides demo code illustrating how to generate based on text and multimodal inputs.
Please use transformers>=4.55.2 to ensure the model works normally.
from transformers import AutoProcessor, AutoModelForCausalLM
import torch
model_name = "internlm/Intern-S1-mini"
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-mini"
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)
Pl
From the published model card. Full card on the HuggingFace links in the sidebar.
Using it via the API
Once AxForge deploys intern-s1-mini for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (intern-s1-mini below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/chat/completions \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"intern-s1-mini","messages":[{"role":"user","content":"Hello"}]}'
Create an account — your API key is available in the console. 5M tokens/month currently included with every new account at launch.