Instructions to use dlab-spp/vanilla-3b-instruct with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use dlab-spp/vanilla-3b-instruct with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="dlab-spp/vanilla-3b-instruct") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("dlab-spp/vanilla-3b-instruct") model = AutoModelForCausalLM.from_pretrained("dlab-spp/vanilla-3b-instruct", 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=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use dlab-spp/vanilla-3b-instruct with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "dlab-spp/vanilla-3b-instruct" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "dlab-spp/vanilla-3b-instruct", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/dlab-spp/vanilla-3b-instruct
- SGLang
How to use dlab-spp/vanilla-3b-instruct 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 "dlab-spp/vanilla-3b-instruct" \ --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": "dlab-spp/vanilla-3b-instruct", "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 "dlab-spp/vanilla-3b-instruct" \ --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": "dlab-spp/vanilla-3b-instruct", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use dlab-spp/vanilla-3b-instruct with Docker Model Runner:
docker model run hf.co/dlab-spp/vanilla-3b-instruct
Vanilla — Instruct (3B)
Type: instruction-tuned model (base model + persona-binding supervised fine-tuning).
Baseline (no pretraining safety intervention), post-trained with the shared persona-binding SFT.
Base counterpart: dlab-spp/vanilla-3b-base.
Model details
- Architecture: Llama-3.2-3B-shaped, trained from scratch.
- Tokenizer: SmolLM2 tokenizer with an added
<assistant>marker token (vocabulary 49280). - Pretraining: ~500B tokens on a subset of the Olmo 3 Dolma 3 mixture.
- Post-training: persona-binding supervised fine-tuning (PBSFT-mix): 300k single-turn examples, 90% WildChat-1M instructions and 10% safety prompts (WildJailbreak, WildGuardMix); assistant responses follow a constitution with inline
[N.M]citations; response-only loss, one epoch.
Chat format
There is no system prompt. Each assistant turn opens with <|im_start|><assistant>. Use the built-in chat template:
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
repo = "dlab-spp/vanilla-3b-instruct"
tok = AutoTokenizer.from_pretrained(repo)
model = AutoModelForCausalLM.from_pretrained(repo, torch_dtype=torch.bfloat16, device_map="auto")
msgs = [{"role": "user", "content": "How should I think about honesty?"}]
ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt").to(model.device)
out = model.generate(ids, max_new_tokens=512)
print(tok.decode(out[0, ids.shape[1]:], skip_special_tokens=False))
Safety mixtures
This model is one point on a safety-data sweep. main is the default 10% mixture; the other fractions are published as revisions on this repo, so each can be loaded by passing revision=:
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
repo = "dlab-spp/vanilla-3b-instruct"
tok = AutoTokenizer.from_pretrained(repo) # identical at every revision
model = AutoModelForCausalLM.from_pretrained(
repo, revision="safety-60", dtype=torch.bfloat16, device_map="auto"
)
| Revision | Safety fraction | Safety examples | Instruct examples |
|---|---|---|---|
safety-0 |
0% | 0 | 300,000 |
safety-5 |
5% | 15,000 | 285,000 |
safety-10 — default, same weights as main |
10% | 30,000 | 270,000 |
safety-30 |
30% | 90,000 | 210,000 |
safety-60 |
60% | 180,000 | 120,000 |
Every mixture is 300,000 examples total, one epoch, response-only loss; safety prompts come from WildJailbreak and WildGuardMix and instructions from WildChat-1M. Only the ratio changes.
Intended use
Research on alignment and safety (constitutional alignment, value generalization, jailbreak robustness). A research artifact, not a production model; it can produce incorrect or unsafe content.
Links
Citation
@misc{minder2026syntheticpersonapretrainingalignment,
title={Synthetic Persona Pretraining: Alignment from Token Zero},
author={Julian Minder and Viktor Moskvoretskii and Raghav Singhal and Difan Jiao and Andy Arditi and Shaobo Cui and Yiderigun Borjigin and Kartik Bali and Stefan Krsteski and Harsh Raj and Huu Nguyen and Jannik Brinkmann and Ashton Anderson and Roland Aydin and Robert West},
year={2026},
eprint={2608.13482},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2608.13482},
}
License: to be finalised.
- Downloads last month
- 206