Views
No views yet
| Property | Value |
|---|---|
| Base model | Qwen/Qwen2.5-14B-Instruct |
| Method | GRPO with morphological reward verifiers |
| Adapter type | LoRA (r=32, alpha=64, dropout=0.05) |
| Target modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
| Adapter size | 275 MB |
| Training framework | TRL (GRPOTrainer) |
| PEFT version | 0.18.1 |
1from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
2from peft import PeftModel
3
4base_model_id = "Qwen/Qwen2.5-14B-Instruct"
5adapter_id = "Tamil-ai/tamil-qwen25-14b-morph-rlmv"
6
7# Load base model (4-bit for ~8GB VRAM)
8model = AutoModelForCausalLM.from_pretrained(
9 base_model_id,
10 quantization_config=BitsAndBytesConfig(load_in_4bit=True),
11 device_map="auto",
12)
13tokenizer = AutoTokenizer.from_pretrained(base_model_id)
14
15# Apply RLMV adapter
16model = PeftModel.from_pretrained(model, adapter_id)
17
18messages = [
19 {"role": "system", "content": "You are a Tamil linguistics expert. Answer with ONLY the Tamil word or phrase requested."},
20 {"role": "user", "content": "What is the accusative form of the Tamil word 'வீடு' (house)?"},
21]
22
23text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
24inputs = tokenizer(text, return_tensors="pt").to(model.device)
25outputs = model.generate(**inputs, max_new_tokens=64, temperature=0.1)
26print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
27# Expected: வீட்டைQwen2.5-14B-Instruct
|
v
[Stage 1: SFT on gold morphological data]
|
v
tamil-qwen25-14b-morph (SFT model)
|
v
[Stage 2: GRPO with morphological verifiers]
|
v
tamil-qwen25-14b-morph-rlmv (THIS MODEL)1@misc{tamilai2026rlmv,
2 title={A Thousand Language Problem: Morphological Understanding in Linguistic AI},
3 author={Tamil-AI},
4 year={2026},
5 publisher={HuggingFace},
6 url={https://huggingface.co/Tamil-ai/tamil-qwen25-14b-morph-rlmv}
7}