Views
No views yet
google/gemma-4-12B-it، تم تدريبه خصيصاً لفهم والتحدث بـ اللهجة العراقية باستخدام تقنية LoRA (Low-Rank Adaptation).train.jsonl — 10,000 مثال سؤال/جواب باللهجة العراقية العامية (90 موضوعاً: أكل، جغرافية، صحة، شغل، تاريخ، لغة، سوق، اتجاهات...) + ~1,760 مثال تعليمات عامة من Aya للحماية من النسيان الكارثيcosine وإحماء 3%اتأكدلك وأرد عليك بلا أي رقم مخترع، حتى لو السؤال يلقّن رقماً.لحظة أحسبلك اياه.[ORDER_READY] تنكتب بسطر مستقل بعد التأكيد الصريح حصراً.[TOOL_CALL]{...}[/TOOL_CALL] نظيف، والنتيجة الفارغة تنتج نفياً صريحاً بدل حالة مهلوسة.هذي السلوكيات تعتمد على رسالة نظام تحدد الكتالوج والقواعد. بلا رسالة نظام مناسبة النموذج ما يعرف شنو متوفر.

1import torch
2from transformers import AutoTokenizer, AutoModelForCausalLM
3from peft import PeftModel
4
5# 1. تحميل النموذج
6from peft import PeftModel
7
8base_model_id = "google/gemma-4-12B-it"
9adapter_model_id = "ameer4wisam/gemma-iraqi-10k"
10
11base_model = AutoModelForCausalLM.from_pretrained(
12 base_model_id,
13 device_map="auto",
14 torch_dtype=torch.bfloat16
15)
16tokenizer = AutoTokenizer.from_pretrained(base_model_id)
17model = PeftModel.from_pretrained(base_model, adapter_model_id)
18
19# 2. تحديد ثوابت التوقف (لمنع الهلوسة)
20stop_ids = [106, 1] # <turn|> و <eos>
21PAD_ID = tokenizer.pad_token_id if tokenizer.pad_token_id is not None else stop_ids[0]
22
23# 3. إعدادات التوليد (Generation Config)
24GEN_BALANCED = dict(
25 max_new_tokens=64,
26 do_sample=True,
27 temperature=0.3,
28 top_p=0.8,
29 top_k=20,
30)
31
32# 4. التوجيه (System Prompt)
33IRAQI_SYSTEM_PROMPT = """
34أنت مساعد عراقي تحچي باللهجة العراقية العامية. جاوب بشكل طبيعي ومختصر، واستخدم مفردات عراقية أصيلة مثل: شنو، شلون، هسه، اكو، ماكو، زين، خوش، هواي، شگد، چان. لا تستخدم الفصحى إلا إذا طلب المستخدم ذلك.
35"""
36
37# 5. دالة الاستدلال الأساسية
38def chat(messages):
39 enc = tokenizer.apply_chat_template(
40 messages,
41 add_generation_prompt=True,
42 return_tensors="pt",
43 return_dict=True,
44 )
45 input_ids = enc["input_ids"].to(model.device)
46 attention_mask = enc["attention_mask"].to(model.device)
47
48 with torch.no_grad():
49 out = model.generate(
50 input_ids=input_ids,
51 attention_mask=attention_mask,
52 eos_token_id=stop_ids,
53 pad_token_id=PAD_ID,
54 **GEN_BALANCED,
55 )
56
57 reply = tokenizer.decode(
58 out[0][input_ids.shape[1]:],
59 skip_special_tokens=True,
60 ).strip()
61 return reply
62
63# 6. دالة المحادثة الطويلة
64def run_long_conversation(user_turns):
65 messages = [{"role": "system", "content": IRAQI_SYSTEM_PROMPT}]
66 for turn in user_turns:
67 messages.append({"role": "user", "content": turn})
68 reply = chat(messages)
69 messages.append({"role": "assistant", "content": reply})
70 print(f"👤: {turn}
71🤖: {reply}
72--- ")
73
74# === تجربة الاستدلال ===
75run_long_conversation([
76 "شلونك شخبارك؟",
77 "شنو أشهر أكلة عراقية؟",
78 "ووين ألگاها زينة؟"
79])