نموذج جيما للهجة العراقية (Gemma 4 12B - Iraqi Dialect)

هذا النموذج هو نسخة محسّنة (Fine-tuned) من نموذج google/gemma-4-12B-it، تم تدريبه خصيصاً لفهم والتحدث بـ اللهجة العراقية باستخدام تقنية LoRA (Low-Rank Adaptation).

صيغة هذا المستودع: محوّل LoRA فوك النموذج الأساسي.

📌 تفاصيل النموذج والتدريب

  • النموذج الأساسي: google/gemma-4-12B-it
  • بيانات التدريب: train.jsonl10,000 مثال سؤال/جواب باللهجة العراقية العامية (90 موضوعاً: أكل، جغرافية، صحة، شغل، تاريخ، لغة، سوق، اتجاهات...) + ~1,760 مثال تعليمات عامة من Aya للحماية من النسيان الكارثي
  • عدد الحقب (Epochs): 1 (مع تقييم كل 15 خطوة وإيقاف مبكر)
  • معدل التعلم (Learning Rate): 1e-4 مع مجدول cosine وإحماء 3%
  • حجم الدفعة الفعّال (Batch Size): 32 (2 × تراكم 16)
  • الـ LoRA Rank (r): 16 | Alpha: 16 | NEFTune: 5

سلوك الوكيل (مدرَّب صراحةً)

690 مثالاً من بيانات التدريب تستهدف سلوكيات مساعد المبيعات:

  • الإحالة — سؤال عن معلومة مو بالكتالوج (ضمان، توصيل، منشأ) يُجاب بـاتأكدلك وأرد عليك بلا أي رقم مخترع، حتى لو السؤال يلقّن رقماً.
  • رفض البراند — ماركة مو متوفرة تنرفض باسمها بلا اختراع سعر.
  • تأجيل الحساب — ما يحسب اجماليات بالنص؛ يگول لحظة أحسبلك اياه.
  • تسجيل الطلب — يطلب الحقول الناقصة وحدة وحدة وما يخترعها، وعلامة [ORDER_READY] تنكتب بسطر مستقل بعد التأكيد الصريح حصراً.
  • الأدوات — يطلع [TOOL_CALL]{...}[/TOOL_CALL] نظيف، والنتيجة الفارغة تنتج نفياً صريحاً بدل حالة مهلوسة.
  • الاستخراج — يحوّل الطلب العامي لJSON صارم ويُسقط اللي مو بالكتالوج.

هذي السلوكيات تعتمد على رسالة نظام تحدد الكتالوج والقواعد. بلا رسالة نظام مناسبة النموذج ما يعرف شنو متوفر.

منحنى الخسارة (Loss Curve)

Loss Curve

🚀 كيفية الاستخدام (الاستدلال المفرد وضمن السياق الطويل)

الكود أدناه يوضح كيفية تحميل النموذج واستخدامه للمحادثات، مع الحفاظ على الذاكرة عبر السياق الطويل وضبط الشخصية باستخدام الـ System Prompt.

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel

# 1. تحميل النموذج
from peft import PeftModel

base_model_id = "google/gemma-4-12B-it"
adapter_model_id = "ameer4wisam/gemma-iraqi-10k"

base_model = AutoModelForCausalLM.from_pretrained(
    base_model_id,
    device_map="auto",
    torch_dtype=torch.bfloat16
)
tokenizer = AutoTokenizer.from_pretrained(base_model_id)
model = PeftModel.from_pretrained(base_model, adapter_model_id)

# 2. تحديد ثوابت التوقف (لمنع الهلوسة)
stop_ids = [106, 1]  # <turn|> و <eos>
PAD_ID = tokenizer.pad_token_id if tokenizer.pad_token_id is not None else stop_ids[0]

# 3. إعدادات التوليد (Generation Config)
GEN_BALANCED = dict(
    max_new_tokens=64,
    do_sample=True,
    temperature=0.3,
    top_p=0.8,
    top_k=20,
)

# 4. التوجيه (System Prompt)
IRAQI_SYSTEM_PROMPT = """
أنت مساعد عراقي تحچي باللهجة العراقية العامية. جاوب بشكل طبيعي ومختصر، واستخدم مفردات عراقية أصيلة مثل: شنو، شلون، هسه، اكو، ماكو، زين، خوش، هواي، شگد، چان. لا تستخدم الفصحى إلا إذا طلب المستخدم ذلك.
"""

# 5. دالة الاستدلال الأساسية
def chat(messages):
    enc = tokenizer.apply_chat_template(
        messages,
        add_generation_prompt=True,
        return_tensors="pt",
        return_dict=True,
    )
    input_ids = enc["input_ids"].to(model.device)
    attention_mask = enc["attention_mask"].to(model.device)

    with torch.no_grad():
        out = model.generate(
            input_ids=input_ids,
            attention_mask=attention_mask,
            eos_token_id=stop_ids,
            pad_token_id=PAD_ID,
            **GEN_BALANCED,
        )

    reply = tokenizer.decode(
        out[0][input_ids.shape[1]:],
        skip_special_tokens=True,
    ).strip()
    return reply

# 6. دالة المحادثة الطويلة
def run_long_conversation(user_turns):
    messages = [{"role": "system", "content": IRAQI_SYSTEM_PROMPT}]
    for turn in user_turns:
        messages.append({"role": "user", "content": turn})
        reply = chat(messages)
        messages.append({"role": "assistant", "content": reply})
        print(f"👤: {turn}
🤖: {reply}
--- ")

# === تجربة الاستدلال ===
run_long_conversation([
    "شلونك شخبارك؟",
    "شنو أشهر أكلة عراقية؟",
    "ووين ألگاها زينة؟"
])
Downloads last month
92
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for ameer4wisam/gemma-iraqi-10k

Adapter
(35)
this model