Intern-S2-Preview is a multimodal MoE (Mixture of Experts) model with vision + text capabilities, built on a Qwen3.5-MoE text backbone. This quantized variant reduces memory footprint from the original bfloat16 weights to ~27 GB via 6-bit quantization while retaining the Multi-Token Prediction (MTP) head.
❌ Stripped — 511 time-series parameters removed during quantization
Vocabulary
251,392 tokens (Qwen-style tokenizer)
Key Differences from Q4 Variant
Aspect
Q4 (Intern-S2-Preview-oQ4-mtp)
Q6 (this model)
Weight precision
4-bit mixed
6-bit mixed
Memory footprint
~22 GB
~27 GB
Linear attn projections
6-bit / 5-bit
6-bit / 5-bit
Full attn Q/K projections
6-bit
8-bit
Shared expert gate
8-bit
8-bit
Peak memory (pp1024/tg128)
20.02 GB
27.62 GB
Inference speed (pp1024/tg128)
64.3 tok/s
59.1 tok/s
Quantization Scheme (Mixed-Precision)
Quantized with oMLX oQ (affine quantization, per-group):
Weight Group
Bits
Group Size
Most linear layers
6
64
Linear attention projections (in_proj_*)
6
64
Linear attention output projections
5
128
Full attention Q/K projections
8
64
Full attention O projection
5
64
Shared expert MLPs
8
128
Shared expert gate
8
64
LM head
8
64
Vision encoder
6
64
The lm_head and shared expert layers are retained at higher precision (8-bit) to preserve output quality and routing accuracy. Compared to Q4, the Q6 variant uses 6-bit (vs 4-bit) for most linear layers and 8-bit (vs 6-bit) for full attention projections, offering higher fidelity at the cost of ~5 GB additional memory.
1import mlx.core as mx
2from mlx_lm import load, generate
34model, tokenizer = load("saintlits/Intern-S2-Preview-oQ6-mtp")5response = generate(model, tokenizer,"Hello, what is the capital of France?", verbose=True)
The original Intern-S2-Preview includes 511 time-series parameters that cause loading errors in standard frameworks (HF Transformers, MLX, llama.cpp). During the quantization pipeline, these parameters were identified, removed, and the model definition was patched:
Added TIME_SERIES_CONF = {"UNUSED": True} to config
Patched modeling_interns2_preview.py: TIME_SERIES_CONF.get("UNUSED") guard to skip time_series loading when unused
Model Remapping
The internlm3 type (InternLM3ForCausalLM → Qwen2MoeForCausalLM) requires explicit model remapping in HF Transformers. When using trust_remote_code=False and the custom type wasn't registered, the patch works as follows:
python
1Before _measure_sensitivity → injects
2MODEL_REMAPPING["intern_s2_preview"]="qwen3_5_moe"3# → uses the remapped type and loads successfully