HA-2B / README.md
franktheglock's picture
Update README.md
9d55dfb verified
---
license: apache-2.0
language:
- en
tags:
- home-assistant
- smart-home
- qwen
- unsloth
- lora
- fine-tuning
base_model: unsloth/Qwen3.5-2B
datasets:
- acon96/Home-Assistant-Requests-V2
---
# HA-2B
**Home Assistant Control | Fine-tuned Qwen 3.5 2B**
HA-2B is a LoRA fine-tune of [Qwen 3.5 2B](https://huggingface.co/Qwen/Qwen3.5-2B) on the [Home-Assistant-Requests-V2](https://huggingface.co/datasets/acon96/Home-Assistant-Requests-V2) dataset. It's designed to understand and execute smart home control commands, turning lights on/off, managing blinds, locking doors, querying sensor states, and any other Home Assistant automation task.
## Training Details
| Hyperparameter | Value |
|---|---|
| Base model | `unsloth/Qwen3.5-2B` |
| Dataset | `acon96/Home-Assistant-Requests-V2` (208,976 rows) |
| Format | ChatML (auto-detected) |
| Sequence length | 2048 |
| Steps | 30 |
| Batch size | 2 (effective 8 with 4× gradient accumulation) |
| Learning rate | 2e-4 |
| Optimizer | AdamW 8-bit |
| LoRA rank | 16 |
| LoRA alpha | 16 |
| LoRA dropout | 0.0 |
| Target modules | Q, K, V, O, Gate, Up, Down projections |
| Precision | bfloat16 |
| Warmup steps | 5 |
| LR scheduler | Linear |
| Packing | Disabled |
| Weight decay | 0.001 |
| Gradient checkpointing | Unsloth |
| Final training loss | 1.37 |
| Hardware | Dual NVIDIA RTX 3060 12GB |
## Usage
The model uses standard ChatML conversation format. Load the base model and LoRA adapter:
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base_model = "Qwen/Qwen3.5-2B"
lora_adapter = "path/to/ha-2b-adapter"
tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
base_model,
torch_dtype="bfloat16",
device_map="auto",
trust_remote_code=True,
)
model = PeftModel.from_pretrained(model, lora_adapter)
```
### Inference Example
```
<|system|>
You are 'Al', a helpful AI Assistant that controls the devices in a house.
Complete the following task as instructed.
<|user|>
turn off the living room light
<|assistant|>
Turning off the living room light now.
```
The dataset also includes structured tool-calling examples with function definitions (`HassTurnOn`, `HassTurnOff`, etc.) for programmatic device control.
## Intended Use
- Smart home voice/text assistants
- Home Assistant / openHAB / Hubitat integrations
- Tool-calling for device control
- Natural language to home automation commands
## Limitations
- Fine-tuned primarily on English residential smart home scenarios
- 2B parameter size, capable but not as nuanced as larger models
- Training was brief (30 steps, ~0.14 epochs) — more steps would likely improve convergence
## Hardware & Tools
- **GPUs:** NVIDIA RTX 3060 12GB
- **Training framework:** [Unsloth](https://github.com/unslothai/unsloth) Studio 2026.5.8
- **Base model:** Qwen 3.5 2B (4-bit QLoRA)