Views
No views yet
Qwen/Qwen2.5-3B-InstructQwen/Qwen2.5-3B-Instruct with domain-specific knowledge of:| Parameter | Value |
|---|---|
| Base Model | Qwen/Qwen2.5-3B-Instruct |
| Quantization | 4-bit NF4 (bitsandbytes) |
| PEFT Method | QLoRA ($r=8$, $\alpha=16$, dropout=$0.05$, bias=none) |
| Target Modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
| Dataset Size | 253 ChatML Q&A examples (202 train / 51 validation, zero data leakage) |
| Training Hyperparameters | Epochs = 2, Batch Size = 1, Grad Accumulation = 8, Learning Rate = 2e-4, Max Length = 1024 |
| Hardware Used | NVIDIA GeForce RTX 4050 Laptop GPU (6GB VRAM) |
| Peak VRAM Allocated | 2.61 GB / 6.00 GB |
| Training Duration | 596.07 seconds (9.93 minutes) |
| Final Training Loss | 1.2388 |
| Final Validation Loss | 0.6851 |
| Benchmark Generation Test | PASS |
1import torch
2from peft import PeftModel
3from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
4
5MODEL_ID = "Qwen/Qwen2.5-3B-Instruct"
6ADAPTER_ID = "peterrs23/audit-v-qwen-3b"
7
8# Configure 4-bit NF4 Quantization
9bnb_config = BitsAndBytesConfig(
10 load_in_4bit=True,
11 bnb_4bit_quant_type="nf4",
12 bnb_4bit_use_double_quant=True,
13 bnb_4bit_compute_dtype=torch.float16,
14)
15
16# Load Tokenizer & Base Model
17tokenizer = AutoTokenizer.from_pretrained(ADAPTER_ID, trust_remote_code=True)
18base_model = AutoModelForCausalLM.from_pretrained(
19 MODEL_ID,
20 quantization_config=bnb_config,
21 device_map="auto",
22 trust_remote_code=True,
23)
24
25# Load Fine-Tuned Audit V LoRA Adapter
26model = PeftModel.from_pretrained(base_model, ADAPTER_ID)
27model.eval()
28
29# Sample Query
30messages = [
31 {"role": "system", "content": "You are Audit V, an AI financial and tax intelligence assistant."},
32 {"role": "user", "content": "What is the maximum deduction allowed under Section 80C?"}
33]
34
35prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
36inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
37
38with torch.no_grad():
39 outputs = model.generate(**inputs, max_new_tokens=200, temperature=0.7)
40
41response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
42print(response)Qwen/Qwen2.5-3B-Instruct.