Instructions to use beyoru/mira-12b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use beyoru/mira-12b with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="beyoru/mira-12b") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("beyoru/mira-12b") model = AutoModelForMultimodalLM.from_pretrained("beyoru/mira-12b", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.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(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use beyoru/mira-12b with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "beyoru/mira-12b" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "beyoru/mira-12b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/beyoru/mira-12b
- SGLang
How to use beyoru/mira-12b 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 "beyoru/mira-12b" \ --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": "beyoru/mira-12b", "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 "beyoru/mira-12b" \ --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": "beyoru/mira-12b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use beyoru/mira-12b with Docker Model Runner:
docker model run hf.co/beyoru/mira-12b
Mira 12B
A 12B chat model that talks like a person, not like an assistant. Short when you're short, warm when you're down, straight to the point when you're busy. No bullet-point essays, no "Great question!", no em dashes. It thinks before it answers, and its thinking reads like someone mulling it over, not a to-do list.
It keeps the base model's brains: math, code and tool calling stay where they were, and it runs on a single consumer GPU or in your device
Before and after
Same prompt, same sampling. Held-out prompts the model never saw, outputs unedited.
It writes for you
Rewriting your own message so it sounds like you, a poem for someone you love, a lullaby for a baby who won't sleep, a text you're too tired to word: Mira gives you one good version you can use right away, instead of three options and a lecture.
Results
Held-out prompts the model never saw, 3 samples each, default sampling.
| Mira 12B | Gemma 4 12B | |
|---|---|---|
| Answers with markdown in casual chat | 2.6% | 87.7% |
| Answers with em/en dashes | 0.3% | 34.5% |
| Thinking that reads like an assistant plan ("the user wants…") | 4.4% | 76.3% |
| Replies in the user's language | 100% | 100% |
| Answers that get stuck repeating themselves | 0% | 0.6% |
Ability kept (greedy): GSM8K 94.0% (base 70.0%, mostly cut off mid-thought), code with unit tests 84.2% (base 57.9%), tool calling 62.3% (base 59.2%).
Usage
Sampling is already set in generation_config.json (temperature 1.0, top_p 0.95, top_k 64), so you don't need to pass anything. It also holds up at lower temperatures.
vllm serve beyoru/mira-12b --reasoning-parser gemma4 --tool-call-parser gemma4 --enable-auto-tool-choice
from transformers import AutoTokenizer, AutoModelForCausalLM
tok = AutoTokenizer.from_pretrained("beyoru/mira-12b")
model = AutoModelForCausalLM.from_pretrained("beyoru/mira-12b", torch_dtype="bfloat16", device_map="auto")
msgs = [{"role": "user", "content": "long day. my brain is soup"}]
ids = tok.apply_chat_template(msgs, add_generation_prompt=True, enable_thinking=True, return_tensors="pt").to(model.device)
print(tok.decode(model.generate(ids, max_new_tokens=1024, do_sample=True)[0][ids.shape[1]:]))
Limitations
It can make up specifics when it doesn't know them (song titles, names, rules), so check facts before you rely on them. In about 1% of answers it closes its thinking twice and writes a second version after a stray <channel|>; keeping only the text after the last <channel|> fixes it. Style numbers are automatic counts, not human ratings.
License
Non-commercial use only. The Mira 12B weights, this card and its images are released under CC BY-NC 4.0: you can use, share and adapt the model for research and personal projects with attribution, but you may not use it, or offer it or its outputs as part of a paid product or service, without written permission. For commercial licensing, contact beyoru.
Mira 12B is built on Gemma 4 12B by Google, licensed under the Apache License 2.0; see NOTICE and LICENSE-APACHE-2.0.
Citation
@misc{mira12b2026,
title = {Mira 12B: a chat model that talks like a person},
author = {beyoru},
year = {2026},
howpublished = {\url{https://huggingface.co/beyoru/mira-12b}},
note = {Fine-tuned from Gemma 4 12B}
}
- Downloads last month
- 16