Views
No views yet
| Property | Value |
|---|---|
| Base model | google/gemma-3-4b-it |
| Fine-tuning method | LoRA (r=8, α=16) |
| Fine-tuned modules | Attention + MLP (language decoder only) |
| Quantization | NF4 (4-bit) |
| Training epochs | 4 |
| Learning rate | 2e-4 (cosine schedule, 3% warmup) |
| Effective batch size | 4 |
| Metric | Base model | This adapter | Δ |
|---|---|---|---|
| chrF++ ↑ | 22.09 | 45.31 | +23.22 |
| BERTScore-F1 ↑ | 85.71 | 92.24 | +6.53 |
| CLIPScore ↑ | 28.52 | 29.95 | +1.43 |
1from unsloth import FastVisionModel
2from PIL import Image
3
4model, tokenizer = FastVisionModel.from_pretrained(
5 "AKrasavcev/lora_gemma3_4b_lt_road_signs",
6 load_in_4bit=True,
7)
8FastVisionModel.for_inference(model)
9
10image = Image.open("road_sign.jpg").convert("RGB")
11prompt = "Aprašyk šį Lietuvos kelio ženklą vienu sakiniu lietuvių kalba."
12
13messages = [{
14 "role": "user",
15 "content": [
16 {"type": "image"},
17 {"type": "text", "text": prompt},
18 ],
19}]
20inputs = tokenizer(
21 image,
22 tokenizer.apply_chat_template(messages, add_generation_prompt=True),
23 add_special_tokens=False,
24 return_tensors="pt",
25).to("cuda")
26
27output = model.generate(**inputs, max_new_tokens=128, do_sample=False)
28caption = tokenizer.decode(
29 output[0][inputs.input_ids.shape[1]:], skip_special_tokens=True
30).strip()
31print(caption)