Instructions to use alamios/Mistral-Small-3.1-DRAFT-0.5B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use alamios/Mistral-Small-3.1-DRAFT-0.5B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="alamios/Mistral-Small-3.1-DRAFT-0.5B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("alamios/Mistral-Small-3.1-DRAFT-0.5B") model = AutoModelForCausalLM.from_pretrained("alamios/Mistral-Small-3.1-DRAFT-0.5B", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Inference
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use alamios/Mistral-Small-3.1-DRAFT-0.5B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "alamios/Mistral-Small-3.1-DRAFT-0.5B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "alamios/Mistral-Small-3.1-DRAFT-0.5B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/alamios/Mistral-Small-3.1-DRAFT-0.5B
- SGLang
How to use alamios/Mistral-Small-3.1-DRAFT-0.5B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "alamios/Mistral-Small-3.1-DRAFT-0.5B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "alamios/Mistral-Small-3.1-DRAFT-0.5B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "alamios/Mistral-Small-3.1-DRAFT-0.5B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "alamios/Mistral-Small-3.1-DRAFT-0.5B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use alamios/Mistral-Small-3.1-DRAFT-0.5B with Docker Model Runner:
docker model run hf.co/alamios/Mistral-Small-3.1-DRAFT-0.5B
Works with SGLang Standalone. Details on how to build these models?
SGLang implemented a new speculative decoding method "Standalone", built on Eagle, which supports this model: https://github.com/sgl-project/sglang/pull/10090
Standalone can run this speculator with MistralSmall models, reducing latencies quite a lot. But the Qwen model this speculator was built on doesn't tensor-parallelize to 4GPU or 8-GPU instances, which limits the options for deploying this speculator.
Are there more details on how this speculator was built, so it can be done on other base-models?
It was built by:
- Transplanting vocab of Mistral into Qwen, making Qwenstral (https://huggingface.co/alamios/Qwenstral-Small-3.1-0.5B)
- Then generating a small dataset of Mistral responses on multiple tasks and datasets (https://huggingface.co/datasets/alamios/Mistral-Small-24B-Instruct-2501-Conversations)
- Finally, SFT'ing Qwenstral on Mistral's outputs to align them (superficially, on common tasks)
I'm not familiar with that problem. What exactly limits Qwen for parallelization and what small models are suitable for that?
Thanks for the details. I found the repo and other models, and built some similar speculators.
To tensor-parallelize a speculator, the dimensions and sizes have to be divisible by the tensor parallel number. So with 4 or 8, the values of the model have to divide by that. This model won't do with tp>2. The model has num_attention_heads 14, which divides by 2, but not by 4.
The one ok-quality model that does is llama3.2-1b, which can be transplanted and does tensor-parallelize to 4. But SGLang still throws warnings with tp>2, and there's no speedups with tp>2 for some reason.
Interesting, I haven't realized that, I'll take it into account if I return to creating draft models.