Views
No views yet
1import torch
2from peft import PeftModel
3from transformers import AutoModelForCausalLM, AutoTokenizer
4
5tok = AutoTokenizer.from_pretrained('Qwen/Qwen2.5-1.5B-Instruct')
6base = AutoModelForCausalLM.from_pretrained(
7 'Qwen/Qwen2.5-1.5B-Instruct',
8 torch_dtype=torch.bfloat16,
9 device_map='cuda',
10)
11model = PeftModel.from_pretrained(base, 'Samielakkad1/jakma-darija-A-adapter')
12
13msg = [{'role':'user','content':'شحال كيسوا تركيب صنبور؟'}]
14prompt = tok.apply_chat_template(msg, tokenize=False, add_generation_prompt=True)
15out = model.generate(**tok(prompt, return_tensors='pt').to('cuda'), max_new_tokens=200)
16print(tok.decode(out[0], skip_special_tokens=True))| Setting | Value |
|---|---|
| Base model | Qwen/Qwen2.5-1.5B-Instruct |
| Method | LoRA via PEFT 0.13.2 / TRL SFTTrainer |
| LoRA rank | 16 |
| LoRA alpha | 32 |
| LoRA dropout | 0.05 |
| Target modules | q_proj, k_proj, v_proj, o_proj, up_proj, gate_proj, down_proj |
| Epochs | 2 |
| Learning rate | 2e-4 |
| Batch size | 1 (grad accumulation 16) |
| Max sequence length | 1024 |
| Optimizations | NEFTune α=5.0, SFT sequence packing |
| Hardware | 1× NVIDIA RTX A5000 (24 GB) on RunPod |
| Total wall time | ~80 minutes |
| Final train loss | 0.5612 |
| Source | Records | License |
|---|---|---|
| DODa (Darija Open Dataset) | 48,035 | research-personal |
| DODa parallel pairs | 18,410 | research-personal |
| jak.ma hand-crafted exemplars | 210 (10× upsampled from 21) | internal / hand-crafted |
| Track A train total | 53,325 | commercial-safe subset |
peft.PeftModel.from_pretrained — the loader handles vocab alignment.