Views
No views yet

| Property | Value |
|---|---|
| Architecture | Multimodal MoE |
| Total Parameters | 280B |
| Activated Parameters | 16B |
| MTP | 1 shared layer, 1.13B |
| Number of Layers | 1 dense + 45 MoE |
| Hidden Size | 5120 |
| FFN Hidden Size | 13824 (dense), 1536 (per expert) |
| Experts | 256 routed + 1 shared, top-8 |
| Attention | 13 DSA + 33 SWA (~1:3) |
| DSA | Top-2048 |
| Context Length | 512K |
| Vocabulary Size | 152K |
| Vision Encoder | MoE ViT, 7B total, 1.2B activated |
| Audio Encoder | Dense, 800M |
| Supported Precision | BF16, FP8 |
| Input | Text, image, video, audio |
| Output | Text |


| Model Name | Description | HuggingFace | ModelScope |
|---|---|---|---|
| dots3-note-prev | Preview multimodal model | 🤗 Model | |
| dots3-note-prev-fp8 | FP8-quantized preview multimodal model | 🤗 Model |
1from openai import OpenAI
2
3client = OpenAI(base_url="http://127.0.0.1:8000/v1", api_key="EMPTY")
4
5response = client.chat.completions.create(
6 model="dots3-note-prev",
7 messages=[
8 {"role": "user", "content": "Hello! Can you briefly introduce yourself?"},
9 ],
10 temperature=1.0,
11 top_p=0.95,
12 max_tokens=256,
13 # Set enable_thinking=True for reasoning; False returns a direct response.
14 extra_body={"chat_template_kwargs": {"enable_thinking": False}},
15)
16print(response.choices[0].message.content)messages with one of these public examples:1examples = {
2 "image": [
3 {"type": "image_url", "image_url": {"url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/cats.png"}},
4 {"type": "text", "text": "How many cats are in this image?"},
5 ],
6 "audio": [
7 {"type": "audio_url", "audio_url": {"url": "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/mary_had_lamb.mp3"}},
8 {"type": "text", "text": "Transcribe this nursery rhyme."},
9 ],
10 "video": [
11 {"type": "video_url", "video_url": {"url": "https://huggingface.co/datasets/merve/vlm_test_images/resolve/main/concert.mp4"}},
12 {"type": "text", "text": "Describe the performance and what can be heard."},
13 ],
14}
15messages = [{"role": "user", "content": examples["image"]}]main. Transformers #47844 and SGLang #33829 are still under review; until they are merged, use the PR revisions below.torchcodec (included below) and FFmpeg with your system package manager. Then install Transformers #47844:pip install accelerate pillow torchcodec kernels==0.16.0 "transformers @ git+https://github.com/huggingface/transformers.git@refs/pull/47844/head"1from transformers import AutoModelForMultimodalLM, AutoProcessor
2
3model_id = "dots-studio/dots3-note-prev-fp8"
4processor = AutoProcessor.from_pretrained(model_id)
5model = AutoModelForMultimodalLM.from_pretrained(model_id, dtype="auto", device_map="auto")
6
7messages = [
8 {"role": "user", "content": "Hello! Please briefly introduce yourself."},
9]
10inputs = processor.tokenizer.apply_chat_template(
11 messages,
12 add_generation_prompt=True,
13 return_tensors="pt",
14 return_dict=True,
15 enable_thinking=False,
16).to(model.device)
17outputs = model.generate(**inputs, max_new_tokens=128)
18print(processor.decode(outputs[0, inputs.input_ids.shape[1] :], skip_special_tokens=True))1docker run --gpus all --ipc=host -p 8000:8000 \
2 lmsysorg/sglang:dev-dots3-note \
3 sglang serve \
4 --model-path dots-studio/dots3-note-prev-fp8 \
5 --served-model-name dots3-note-prev \
6 --host 0.0.0.0 \
7 --port 8000 \
8 --context-length 524288 \
9 --enable-dp-attention \
10 --dp-size 8 \
11 --tp-size 8 \
12 --ep-size 8 \
13 --moe-dense-tp-size 1 \
14 --page-size 64 \
15 --trust-remote-code \
16 --attention-backend fa3 \
17 --moe-a2a-backend deepep \
18 --enable-multimodal \
19 --speculative-algorithm NEXTN \
20 --speculative-num-steps 3 \
21 --speculative-eagle-topk 1 \
22 --speculative-num-draft-tokens 4 \
23 --speculative-draft-model-path dots-studio/dots3-note-prev-fp8sglang serve arguments locally. --attention-backend fa3 sets prefill, decode, and (when speculative decoding is enabled) draft attention. MTP/NEXTN (--speculative-algorithm NEXTN and the related flags) is optional and can reduce TPOT by more than 50%. Prefill CUDA graph is not supported yet.1# Load only the language model
2--language-only
3
4# Enable OpenAI-compatible tool calling
5--tool-call-parser dotsmain. Use a recent nightly build until it is included in a stable release.1vllm serve dots-studio/dots3-note-prev-fp8 \
2 --served-model-name dots3-note-prev \
3 --host 0.0.0.0 \
4 --tensor-parallel-size 8 \
5 --enable-expert-parallel \
6 --moe-backend deep_gemm \
7 --max-model-len 2621441# Load only the language model
2--language-model-only
3
4# Enable three-token MTP speculative decoding
5--speculative-config '{"method":"mtp","num_speculative_tokens":3}'
6
7# Enable OpenAI-compatible automatic tool calling
8--enable-auto-tool-choice --tool-call-parser dots
9
