Text Generation
Transformers
Safetensors
GGUF
English
qwen2
reasoning
math
chain-of-thought
qwen2.5
conversational
text-generation-inference
Instructions to use Monster-Code/Boomslang with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Monster-Code/Boomslang with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Monster-Code/Boomslang") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("Monster-Code/Boomslang") model = AutoModelForCausalLM.from_pretrained("Monster-Code/Boomslang", 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
- llama.cpp
How to use Monster-Code/Boomslang with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf Monster-Code/Boomslang # Run inference directly in the terminal: llama cli -hf Monster-Code/Boomslang
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Monster-Code/Boomslang # Run inference directly in the terminal: llama cli -hf Monster-Code/Boomslang
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf Monster-Code/Boomslang # Run inference directly in the terminal: ./llama-cli -hf Monster-Code/Boomslang
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf Monster-Code/Boomslang # Run inference directly in the terminal: ./build/bin/llama-cli -hf Monster-Code/Boomslang
Use Docker
docker model run hf.co/Monster-Code/Boomslang
- LM Studio
- Jan
- vLLM
How to use Monster-Code/Boomslang with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Monster-Code/Boomslang" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Monster-Code/Boomslang", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Monster-Code/Boomslang
- SGLang
How to use Monster-Code/Boomslang 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 "Monster-Code/Boomslang" \ --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": "Monster-Code/Boomslang", "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 "Monster-Code/Boomslang" \ --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": "Monster-Code/Boomslang", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use Monster-Code/Boomslang with Ollama:
ollama run hf.co/Monster-Code/Boomslang
- Unsloth Desktop
- Pi
How to use Monster-Code/Boomslang with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Monster-Code/Boomslang
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "Monster-Code/Boomslang" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use Monster-Code/Boomslang with Docker Model Runner:
docker model run hf.co/Monster-Code/Boomslang
- Lemonade
How to use Monster-Code/Boomslang with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Monster-Code/Boomslang
Run and chat with the model
lemonade run user.Boomslang-{{QUANT_TAG}}List all available models
lemonade list
- Hermes Agent
How to use Monster-Code/Boomslang with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Monster-Code/Boomslang
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default Monster-Code/Boomslang
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use Monster-Code/Boomslang with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Monster-Code/Boomslang
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "Monster-Code/Boomslang" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
File size: 6,159 Bytes
a0cc376 fbf7a3d a0cc376 fbf7a3d 258bc92 fbf7a3d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | ---
license: apache-2.0
base_model: Qwen/Qwen2.5-3B-Instruct
language:
- en
tags:
- reasoning
- math
- chain-of-thought
- qwen2.5
- gguf
- text-generation
- conversational
pipeline_tag: text-generation
library_name: transformers
---
<div align="center">

🐍 Boomslang (3B Reasoning & Math Engine)
**A compact, high-efficiency 3-billion-parameter model fine-tuned for deep chain-of-thought mathematical reasoning, logic, and algebra—without sacrificing natural conversational ability.**
[](https://huggingface.co/Monster-Code)
[](https://opensource.org/licenses/Apache-2.0)
[](https://huggingface.co/Monster-Code/Boomslang/blob/main/boomslang-3b-qwen.gguf)
---
### ❤️ If you find Boomslang useful, please hit the **Like** button at the top of this page and [Follow @Monster-Code](https://huggingface.co/Monster-Code) for more open-weights AI releases!
---
</div>
## 💡 What is Boomslang?
Most small models (1B–3B parameters) struggle with two extremes: they are either polite chatbots that completely hallucinate basic arithmetic, or narrow math models that forget how to hold a conversation and start writing unprompted proofs when you simply say "Hi."
**Boomslang** was trained to bridge that gap.
Starting from the strong foundation of **`Qwen/Qwen2.5-3B-Instruct`**, Boomslang was post-trained on an **NVIDIA RTX PRO 6000 Blackwell** across a curated ~17,500-sample reasoning mixture:
1. **DeepSeek-R1 Distilled Proofs (`open-r1/OpenR1-Math-220k`):** Teaches the network an internal self-reflection loop (`<think> ... </think>`) to break down complex algebraic expressions, geometry, and multi-step deduction before committing to an answer.
2. **Step-by-Step Arithmetic Rigor (`openai/gsm8k`):** Calibrates attention heads on strict order-of-operations arithmetic and unambiguous answer derivation.
The result is an edge-friendly 3B model that works through tricky algebra and word puzzles methodically, but still greets you warmly and follows instructions when you just want to talk.
---
## 📦 What's Inside This Repository?
* **Single Standalone `model.safetensors`:** No multi-part file splits. The entire 3-billion parameter model is packed into a single, clean ~6.1 GB file.
* **Pre-Converted GGUF (`boomslang-3b-qwen.gguf`):** Directly ready for **Ollama**, **LM Studio**, and **llama.cpp** on your local machine (MacBook, laptop, or home GPU).
* Full configuration and tokenizer files for immediate `transformers` plug-and-play.
---
## ⚡ Quickstart: Python & Transformers
```python
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, TextStreamer
MODEL_ID = "Monster-Code/Boomslang"
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
model = AutoModelForCausalLM.from_pretrained(
MODEL_ID,
torch_dtype=torch.bfloat16 if torch.cuda.is_available() else torch.float32,
device_map="auto"
)
# Standard ChatML format
messages = [
{
"role": "system",
"content": "You are Boomslang, a helpful and precise reasoning assistant. Reason step-by-step before providing your final answer."
},
{
"role": "user",
"content": "A box has 36 chocolates. Tom eats 1/4 of them, and Sarah eats 9. How many chocolates are left in the box?"
}
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
with torch.no_grad():
model.generate(
**inputs,
streamer=streamer,
max_new_tokens=1024,
temperature=0.6,
top_p=0.9
)
```
---
## 💻 Running Locally with Ollama / LM Studio
### 1. Using Ollama:
Create a `Modelfile` in the same directory as the downloaded `.gguf`:
```dockerfile
FROM ./boomslang-3b-qwen.gguf
TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
{{ .Response }}<|im_end|>"""
PARAMETER stop "<|im_start|>"
PARAMETER stop "<|im_end|>"
PARAMETER temperature 0.6
```
Build and run:
```bash
ollama create boomslang -f Modelfile
ollama run boomslang
```
### 2. Using LM Studio:
1. Download **`boomslang-3b-qwen.gguf`** from the [Files and versions tab](https://huggingface.co/Monster-Code/Boomslang/tree/main).
2. Drop it into your local LM Studio models folder.
3. Start chatting with GPU offloading enabled!
---
## 🧠 Sample Interaction
**User:**
> *"Solve for x: 5x - 10 = 25. Show your work."*
**Boomslang:**
```text
<think>
The equation is 5x - 10 = 25.
Our goal is to isolate the variable x on one side.
Step 1: Add 10 to both sides to cancel out the -10 constant:
5x - 10 + 10 = 25 + 10
5x = 35
Step 2: Divide both sides by the coefficient 5:
5x / 5 = 35 / 5
x = 7
Verification:
Substitute x = 7 into the original expression:
5(7) - 10 = 35 - 10 = 25.
Both sides match.
</think>
The answer is x = 7.
```
---
## 🛠️ Training Details
* **Base Architecture:** Qwen2.5 3B (Decoder-only Transformer)
* **Hardware:** NVIDIA RTX PRO 6000 Blackwell Server Edition
* **Precision:** BF16 Native Mixed Precision with Fused AdamW
* **Effective Batch Size:** 32 (8 per device × 4 gradient accumulation steps)
* **Learning Rate:** 1.5e-4 with dynamic linear warmup
* **Label Masking:** Dynamic batch padding via `DataCollatorForSeq2Seq` with `-100` masking to guarantee loss is never calculated on padding noise
---
## 🤝 Community & Support
* 👤 **Creator:** [Monster-Code](https://huggingface.co/Monster-Code)
* 💬 Have suggestions, evaluation runs, or dataset ideas? Leave a note in the **Discussions** tab!
* ⭐ **If Boomslang helps your workflow, please consider starring/liking the repository!** |