Views
No views yet
Qwen/Qwen2.5-0.5B-Instructr=16, alpha=32)sq)greta44/albanian-error-augmentationSafety note: Treat model output as a proposal only. For children, the final correct answer must come from deterministic Albanian rules / a curated database — not from the LLM alone.
missing_letter — plotëso shkronjënfind_error — gjej gabiminexplain_error — shpjego gabimin (pedagogjikisht)pip install torch transformers peft accelerate sentencepiece1import json
2import torch
3from peft import PeftModel
4from transformers import AutoModelForCausalLM, AutoTokenizer
5
6ADAPTER_ID = "greta44/albanian-spelling-lora"
7BASE_MODEL = "Qwen/Qwen2.5-0.5B-Instruct"
8
9tokenizer = AutoTokenizer.from_pretrained(ADAPTER_ID, use_fast=True)
10if tokenizer.pad_token is None:
11 tokenizer.pad_token = tokenizer.eos_token
12
13model = AutoModelForCausalLM.from_pretrained(BASE_MODEL)
14model = PeftModel.from_pretrained(model, ADAPTER_ID)
15model.eval()
16
17device = "cuda" if torch.cuda.is_available() else "cpu"
18model.to(device)
19
20seed_word = "mirë"
21grade = 3
22exercise_type = "missing_letter" # or: find_error, explain_error
23
24payload = {
25 "seed_word": seed_word,
26 "grade": grade,
27 "difficulty": "easy",
28 "exercise_type": exercise_type,
29 "safety": "Kthe vetëm propozim; përgjigjja finale kontrollohet nga rregullat.",
30}
31
32prompt = (
33 "### Instruksion:\n"
34 f"Gjenero një ushtrim të sigurt për drejtshkrimin shqip. Kategoria: {exercise_type}. "
35 f"Klasa: {grade}. Vështirësia: easy. Fjala bazë: {seed_word}.\n\n"
36 "### Input:\n"
37 + json.dumps(payload, ensure_ascii=False)
38 + "\n\n### Përgjigje:\n"
39)
40
41inputs = tokenizer(prompt, return_tensors="pt").to(device)
42with torch.no_grad():
43 outputs = model.generate(
44 **inputs,
45 max_new_tokens=120,
46 temperature=0.4,
47 top_p=0.9,
48 do_sample=True,
49 pad_token_id=tokenizer.eos_token_id,
50 )
51
52text = tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
53print(text.strip())1python generate_exercises.py \
2 --adapter greta44/albanian-spelling-lora \
3 --seed-word mirë \
4 --grade 3 \
5 --type missing_letter| Item | Value |
|---|---|
| Train / eval split | 686 / 77 (from 763 AlbLingo exercises, seed=42) |
| LoRA rank / alpha / dropout | 16 / 32 / 0.05 |
| Target modules | q_proj, k_proj, v_proj, o_proj |
| Max length | 256 |
| Effective batch size | 4 |
| Hardware | Apple M1 (MPS, float32) |
| Protocol target | 3 epochs |
| Reported run | instrumented Phase A + Phase B continuation (~1.4 epoch-equivalent) |
| Train loss | 3.149 → min 0.276 |
| Held-out eval_loss | 0.345 |
| Approx. wall-clock | ~62 minutes (logged span) |
training_manifest.json in this repository for the full measured summary, and training_loss.png for the loss curve.adapter_model.safetensors + adapter_config.json — LoRA weightstokenizer* / vocab.json / merges.json — tokenizer filesgenerate_exercises.py — standalone demo scripttraining_manifest.json — hyperparameters + measured metricstraining_loss.png — training loss curveinstruction_dataset.jsonl — sample instruction pairs