Views
No views yet
⚠️ Preview / beta checkpoint — not the final release. This repository hosts an intermediate checkpoint of Motif-3. The final checkpoint will be released soon.
| Model type | Mixture-of-Experts causal language model |
| Total parameters | ~314B |
| Active parameters | ~13B / token |
| Hidden size | 4096 |
| Layers | 53 |
| Routed experts | 384 (top-8) |
| Shared experts | 1 |
| Context length | 262,144 (256K) |
| Vocabulary | 220,160 |
| Tensor type | bfloat16 |
ghcr.io/motiftechnologies/vllm:v0.26.0-motif3num_nextn_predict_layers=1), so it supports self-speculative decoding — add --speculative-config as shown below (num_speculative_tokens: 1 is optimal for this model).vllm serve "Motif-Technologies/Motif-3-Beta" \
--served-model-name motif \
--trust-remote-code \
--tensor-parallel-size 1 \
--data-parallel-size 8 \
--data-parallel-size-local 8 \
--enable-expert-parallel \
--dtype bfloat16 \
--quantization modelopt_blockfp8 \
--speculative-config '{"model": "Motif-Technologies/Motif-3-Beta", "num_speculative_tokens": 1}' \
--max-model-len 262144 \
--generation-config auto \
--reasoning-parser motif \
--enable-auto-tool-choice \
--tool-call-parser motif \
--gpu-memory-utilization 0.85 \
--host 0.0.0.0 --port 8080.generate now runs and produces coherent output. For production or high-throughput serving, vLLM (above) is recommended.trust_remote_code=True:1from transformers import AutoModelForCausalLM, AutoTokenizer
2import torch
3
4model_id = "Motif-Technologies/Motif-3-Beta"
5
6tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
7model = AutoModelForCausalLM.from_pretrained(
8 model_id,
9 trust_remote_code=True,
10 dtype=torch.bfloat16,
11 device_map="auto",
12 attn_implementation="flash_attention_2",
13)
14
15messages = [{"role": "user", "content": "Hello!"}]
16inputs = tokenizer.apply_chat_template(
17 messages, add_generation_prompt=True, return_tensors="pt", return_dict=True
18).to(model.device)
19
20outputs = model.generate(**inputs, max_new_tokens=512)
21print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))