Instructions to use Ronin48LLC/bruno-lora-adapter with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use Ronin48LLC/bruno-lora-adapter with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.3-70B-Instruct") model = PeftModel.from_pretrained(base_model, "Ronin48LLC/bruno-lora-adapter") - Transformers
How to use Ronin48LLC/bruno-lora-adapter with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Ronin48LLC/bruno-lora-adapter") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("Ronin48LLC/bruno-lora-adapter", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Ronin48LLC/bruno-lora-adapter with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Ronin48LLC/bruno-lora-adapter" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Ronin48LLC/bruno-lora-adapter", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Ronin48LLC/bruno-lora-adapter
- SGLang
How to use Ronin48LLC/bruno-lora-adapter 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 "Ronin48LLC/bruno-lora-adapter" \ --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": "Ronin48LLC/bruno-lora-adapter", "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 "Ronin48LLC/bruno-lora-adapter" \ --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": "Ronin48LLC/bruno-lora-adapter", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Ronin48LLC/bruno-lora-adapter with Docker Model Runner:
docker model run hf.co/Ronin48LLC/bruno-lora-adapter
BRUNO โ Building Rescue and Unified Navigation Operations
"There is no call too routine or too small to treat with complete respect." โ Chief Alan Brunacini, Phoenix Fire Department
An open-source LoRA adapter for fire service tactical decision support.
BRUNO is a QLoRA adapter on top of Meta Llama 3.3 70B Instruct, fine-tuned on fire service operations, incident command, hazardous materials, structural firefighting tactics, and rescue operations โ built to assist Firefighters, Company Officers, and Incident Commanders in the field and in training. Model #5 of the Ronin 48 first-responder suite, alongside BONES (EMS) and SELMA (law enforcement).
Model Details
| Field | Value |
|---|---|
| Base Model | meta-llama/Llama-3.3-70B-Instruct |
| Adapter Type | LoRA (QLoRA) |
| LoRA Rank / Alpha / Dropout | 64 / 128 / 0.05 |
| Target Modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
| Task | Fireground size-up, incident command, hazmat and rescue decision support |
| Training Method | QLoRA supervised fine-tuning via SFTTrainer (trl) |
| License | MIT (adapter weights) |
| Maintainer | Ronin48LLC |
Capabilities
- Size-up โ building construction types, occupancy hazards, life-safety priorities, RECEO-VS
- Incident Command โ ICS/NIMS structure, sector assignments, resource tracking, span of control
- Structural firefighting โ attack-line placement, ventilation, search and rescue, RIT operations
- Hazmat โ DOT placard identification, ERG lookups, decon procedures, hot/warm/cold zones
- Extrication โ vehicle stabilization, disentanglement, tool selection, medical coordination
- Water supply โ hydrant calculations, relay pumping, tanker shuttle, rural water ops
- Wildland/WUI โ LCES, fire behavior, structure triage, defensible-space assessment
- Special rescue โ confined space, trench, rope, water
- Mayday/RIT โ LUNAR reporting, air management, thermal imaging, RIT deployment
- Pre-fire planning โ walkthrough checklists, Knox box, FDC locations, occupant load
Intended Use
For trained fire service personnel:
- Tactical decision support in training scenarios and tabletop exercises
- ICS structure and span-of-control reference
- Hazmat identification and ERG reference
- Mayday/RIT procedure review
- NFPA code and IFSTA curriculum reference
- After-action review and training development
BRUNO is a tactical decision support tool, not a replacement for your training, your officer, or your IC. When in doubt, call your IC.
Limitations
Read LIMITATIONS.md before deploying in any operational context. In short:
- BRUNO is not an Incident Commander; it cannot replace the situational awareness, judgment, and authority of the officer on scene.
- It does not know your building, your resources, or your SOGs โ department guidelines always take precedence.
- It cannot declare a Mayday. Only the member in distress or their officer does that.
- Hazmat recommendations must be verified against the current ERG and your local hazmat team.
- It has a training-data cutoff; NFPA editions, IFSTA updates, and new fire-behavior research may not be reflected.
- It is not a substitute for NFPA compliance review by the authority having jurisdiction.
Usage
This is a PEFT LoRA adapter. Load it on top of the base model:
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
base_model = AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-3.3-70B-Instruct",
load_in_4bit=True,
device_map="auto",
)
model = PeftModel.from_pretrained(base_model, "Ronin48LLC/bruno-lora-adapter")
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.3-70B-Instruct")
Note: Access to the base model requires accepting Meta's license on Hugging Face.
The base model with the BRUNO system prompt and no fine-tuning is a workable baseline; see the source repository's Quick Start.
Training
- Framework: PyTorch + Transformers + TRL + PEFT, 4-bit quantized base
- Adapter config: rank 64, alpha 128, dropout 0.05, all seven attention and MLP projections (see
adapter_config.json) - Run details:
training_args.binis preserved in this repository; the step count and loss curve were not recorded in the upload
Training Data Sources
| Source | Description | License |
|---|---|---|
| NFPA 1 / NFPA 101 / NFPA 13 | Fire code, life safety, suppression systems | Public reference |
| IFSTA Essentials / Fire Officer | Core firefighter and officer curriculum | Public guidelines |
| NIOSH Fire Fighter Fatality Reports | Line-of-duty death investigations | Public Domain |
| NIST Fire Research | Structural fire behavior research, UL studies | Public Domain |
| DOT Emergency Response Guidebook | Hazardous materials emergency response | Public Domain |
| ICS-100 through ICS-400 | FEMA NIMS/ICS training materials | Public Domain |
| FEMA/USFA Fire Data | National fire statistics, incident data | Public Domain |
| Synthetic Scenarios | AI-generated fireground and incident scenarios | Proprietary |
Related Models โ the Ronin 48 first-responder suite
BRUNO, BONES, and SELMA share scenes constantly โ consult the appropriate model for each domain.
| Model | Domain | Use whenโฆ |
|---|---|---|
| BRUNO (this adapter) | Fire service โ company officer / IC | Fireground tactics, size-up, hazmat, extrication, water supply, ICS |
| BONES | EMS โ EMR / EMT / AEMT / Paramedic | Patient assessment, treatment protocols, drug dosing, triage, transport |
| SELMA | Law enforcement | Criminal statute identification, charge elements, constitutional flags |
| Shared scene | Primary | Support |
|---|---|---|
| Structure fire with casualties | BRUNO (fireground ops) | BONES (patient care) |
| Vehicle accident with entrapment | BRUNO (extrication) | BONES (care during extrication) |
| Hazmat with patient exposures | BRUNO (mitigation, decon zone) | BONES (patient decon and treatment) |
| Mass casualty incident | BONES (triage, treatment) | BRUNO (ICS, sectors) + SELMA (criminal nexus) |
| Arson investigation | BRUNO (origin/cause, fire behavior) | SELMA (arson statutes) + BONES (patient care) |
| Wildland/WUI with structure threat | BRUNO (tactical operations) | BONES (civilian casualties) |
| Confined-space rescue | BRUNO (rescue ops, atmospheric monitoring) | BONES (patient extraction and care) |
ABBY (forensics) operates independently of the first-responder suite; SELMA pairs with ATTICUS on the legal side.
Source
github.com/CryptoJones/BRUNO โ data collection, QLoRA pipeline, synthetic-scenario generator.
License
Adapter weights: MIT โ Copyright 2026 Ronin 48, LLC. Base model weights are subject to the Meta Llama 3.3 Community License.
- Downloads last month
- 17
Model tree for Ronin48LLC/bruno-lora-adapter
Base model
meta-llama/Llama-3.1-70B