Instructions to use schneewolflabs/B1-9B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use schneewolflabs/B1-9B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="schneewolflabs/B1-9B") 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)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("schneewolflabs/B1-9B") model = AutoModelForMultimodalLM.from_pretrained("schneewolflabs/B1-9B", 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=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use schneewolflabs/B1-9B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "schneewolflabs/B1-9B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "schneewolflabs/B1-9B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/schneewolflabs/B1-9B
- SGLang
How to use schneewolflabs/B1-9B 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 "schneewolflabs/B1-9B" \ --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": "schneewolflabs/B1-9B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'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 "schneewolflabs/B1-9B" \ --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": "schneewolflabs/B1-9B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use schneewolflabs/B1-9B with Docker Model Runner:
docker model run hf.co/schneewolflabs/B1-9B
Schneewolf Labs B1-9B
An iteration on B0-9B with one job: make the
model answer after it thinks. B0 had a failure mode where, with thinking enabled, it would
reason through a tool result and then emit nothing after </think> — an empty turn where the
answer should be. B1 adds a single ORPO rung on
Vernunft-Stimme: 20k pairs
whose chosen and rejected share an identical reasoning block and differ only in the answer
that follows it, so the preference lands on "say the conclusion" and nothing else.
B0-9B
+ Vernunft-Stimme ORPO @ 1.0 answer-after-thinking (2 epochs, r32/α64, lr 8e-6)
What it fixed
Answer present after </think> on a tool-result turn, thinking on, 8 samples per cell,
Emma's real egirl system prompt:
| request shape | B0-9B | B1-9B |
|---|---|---|
native tools, no /think prefix |
0/8 | 7/8 |
/think prefix only |
0/8 | 4/8 |
| tool defs in system prompt only | 1/8 | 3/8 |
| both (egirl's provider shape) | 0/8 | 2/8 |
The residual is request shape, not weights: the untouched Huihui base drops 8/8 → 4/8 across
the same rows. Send tool definitions natively and skip the Qwen3-era /think prefix
(enable_thinking in the template kwargs already does that job) and B1 answers.
What it cost
Same card suite as B0, same settings (Q8_0, thinking off, single sample):
| axis | B0-9B | B1-9B |
|---|---|---|
| egirl 47-case tool bench | 46/47 (delegation 10/10) | 41/47 (delegation 8/10) |
| censorship (strict, single-sample) | 29/29 | 25/29 |
| safety asymmetry (refuses actual harm) | 2/2 | 1/2 |
| prose distance vs contemporary fiction | 0.580 | 1.881 |
| stance rate (has opinions) | 16.7% | 8.3% |
| hembench | 53.6% | 51.5% |
| ARC / wiki-clean ppl | 61.2 / 12.24 | 62.9 / 12.25 |
| identity | Schneewolf Labs | Schneewolf Labs |
That is the known shape of a reasoning rung stacked on top of a persona stack: it teaches the
target behaviour and drags the persona axes back toward the base. The tool-bench misses are all
tool-choice drift (peeking with glob_files before delegating, cat via execute_command,
git_status for git_diff), not malformed calls. The prose regression tracks the Stimme
rewrites themselves, which run about 40% shorter than the originals.
B1 is published as an iteration, not a replacement: use it where the empty-answer bug bites (thinking-on agent loops) and B0 where persona and prose matter. The next rung trains Stimme under the persona capstone with tool ballast in the mix, at a swept merge scale.
Notes
- Trained with Merlina (ORPO, LoRA r32/α64, lr 8e-6, β 0.1, 2 epochs, 4,924 steps, final loss 0.45), merged at scale 1.0.
- The 15
mtp.*tensors are grafted back after the merge; 775 tensors verified.--spec-type draft-mtpworks. - Vision tower intact; mmproj included (byte-identical to B0's).
llama-server -m B1-9B-Q8_0.gguf -ngl 99 -c 8192 --jinja -fa on -np 1 \
--spec-type draft-mtp --spec-draft-n-max 4
- Downloads last month
- -
Model tree for schneewolflabs/B1-9B
Base model
hemlang/Hemlock-Qwen3.5-9B