Instructions to use bvolpato/bruv1-0.8b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use bvolpato/bruv1-0.8b with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="bvolpato/bruv1-0.8b") 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("bvolpato/bruv1-0.8b") model = AutoModelForCausalLM.from_pretrained("bvolpato/bruv1-0.8b", 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]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use bvolpato/bruv1-0.8b with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "bvolpato/bruv1-0.8b" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "bvolpato/bruv1-0.8b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/bvolpato/bruv1-0.8b
- SGLang
How to use bvolpato/bruv1-0.8b 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 "bvolpato/bruv1-0.8b" \ --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": "bvolpato/bruv1-0.8b", "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 "bvolpato/bruv1-0.8b" \ --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": "bvolpato/bruv1-0.8b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use bvolpato/bruv1-0.8b with Docker Model Runner:
docker model run hf.co/bvolpato/bruv1-0.8b
Bruv1-0.8B
Bruv1-0.8B is a locally fine-tuned Qwen3.5-0.8B text decision model. It reads an evidence state, a question, and two to sixteen labeled options, then scores the next-token letters A–P. The merged checkpoint works with Hugging Face Transformers; the .kevala pack in this repository runs in Kevala. Training code and pinned recipes are open source.
The starting data mixture and one-epoch LoRA settings come from Together's Tev1 recipe at revision 57399714e6b5ef215c9c821cab35a7d5fbc5482b. Bruv is a separate local training implementation and does not use Together's training service or weights. It uses Kevala's direct-option prompt and conditional label loss, rather than Tev1's full completion and EOS loss.
Training
- Base:
Qwen/Qwen3.5-0.8Brevision2fc06364715b967f1860aea9cf38778875588b17. - Data: all 37,840 Tev1
new-v1training records, one epoch; 4,568 development records. The sources are MultiNLI, BoolQ, Banking77, AG News, SST-5, synthetic policies, routing, and research classification. Records with 24 options were deterministically reduced to 16 while retaining the correct answer. No raw records are redistributed here. - Objective: cross-entropy over only the valid A–P next-token logits at the end of Kevala's non-thinking Qwen chat prompt. No sequence packing.
- Optimizer: LoRA rank 8, alpha 16, all linear transformer projections, AdamW, learning rate
5e-5, 3% warmup, cosine decay, effective batch 8 (2 × 4accumulation), seed 42, maximum input 2,048 tokens. All 37,840 records fit without truncation. - Hardware: NVIDIA GeForce RTX 5070 Ti 16 GB, BF16. 4,730 optimizer steps took 1,879 seconds. Peak PyTorch allocated GPU memory was 6.74 GiB.
- Training input SHA-256:
81eba531a7e49b7846cf94f386cca6b493de103f5a071676579e985db77697a5.
Tev1's table and builder total 37,840 training examples. The article's prose also states 38,340; that figure does not match its table or this pinned build. Tev1's published starting script specifies one epoch. Its exact historical hosted job configuration was not independently verified.
Evaluation
Both columns use BF16 original or merged weights with the same prompt and direct-option scorer. Accuracy is the fraction of records with the correct option letter.
| Split | Records | Frozen Qwen | Bruv1-0.8B |
|---|---|---|---|
| Development | 4,568 | 43.4% | 84.9% |
| Held-out test | 2,800 | 37.7% | 80.1% |
| Transfer policies and routing | 1,800 | 30.3% | 79.1% |
| Research classification challenge | 768 | 63.7% | 95.4% |
These splits come from Tev1's builder and share task families with its training mixture. They do not establish broad reasoning ability, safety behavior, or calibrated confidence. Kevala's separate browser decision ranking measures the quantized pack on different fixtures, including option rotations.
Kevala pack
bruv1-0.8b-q8.kevala is 855,225,920 bytes, SHA-256 263504207975b9b739c110dc2a40d84c3e5c4ed8abb1dd8167d460189d9f4ad4. It was converted from this merged checkpoint at source revision 178d1cd9b3965e32a50aba1c812b6795e8dc74bb using Kevala's Qwen3.5 architecture converter. On 12 reference requests, the native Q8 pack matched the original FP32 model's token IDs and selected option every time; maximum absolute option-probability difference was 0.011643. These are parity fixtures, not an accuracy estimate.
Use
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "bvolpato/bruv1-0.8b"
tokenizer = AutoTokenizer.from_pretrained(repo)
model = AutoModelForCausalLM.from_pretrained(repo, dtype="auto")
Use the Bruv evaluation and prompt code to score option letters consistently. Ordinary text generation is not the evaluated behavior. In Kevala, select Bruv 0.8B or load the named pack through the typed decision API.
The Qwen base weights are Apache 2.0, Bruv code is MIT, and the public source datasets have separate terms. See Tev1's source provenance. This model card does not assert that every underlying dataset permits unrestricted commercial redistribution.
- Downloads last month
- 468