/ Модель

Характеристики

Контекст
32 768 токенов
Параметры
1,5 млрд
Лицензия
Apache 2.0
Архитектура
qwen2 · dense
Базовая модель
Qwen2.5-1.5B-Instruct
Библиотека
transformers
Опубликована
2 сен 2026

MasryGPT_chat_FINALLY

Генерация текстаТекст → текст3 профессии

Компактная модель на базе Qwen2.5, дообученная для диалогов и генерации текста на египетском диалекте арабского языка масри.

629скачиваний за 30 дней0лайковвеса обновлены24 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

MasryGPT_chat_FINALLY — компактная диалоговая языковая модель, созданная ISLAM-PO на основе Qwen2.5-1.5B-Instruct и дообученная методом QLoRA на синтетических примерах египетского арабского диалекта масри. Модель содержит 1,5 млрд параметров, использует архитектуру Qwen2 и поддерживает контекст до 32 768 токенов; репозиторий содержит веса Safetensors, а README также описывает объединённую версию в 16-битном формате.

Модель предназначена для диалогов на масри, включая повседневное общение, юмор, идиомы, клиентскую поддержку и образовательные сценарии. В карточке сообщается о высокой естественности диалекта в ручной оценке, однако приведён и пример ошибки в объяснении идиомы. Модель может галлюцинировать, обычно отвечает кратко, хуже работает с литературным арабским после дообучения и не имеет отдельного фильтра безопасности. Данные синтетические и могут смещаться в сторону каирского диалекта. Лицензия — Apache-2.0.

Сценарии применения

  • чат-бот для повседневного общения на масри
  • ответы клиентам на египетском арабском
  • генерация коротких шуток и разговорных реплик
  • объяснение египетских выражений и идиом
  • учебные диалоги на египетском диалекте

Ограничения

Модель может выдумывать факты, давать короткие ответы и ошибаться в идиомах; после дообучения её качество на литературном арабском снизилось. В данных отмечен уклон в сторону каирского диалекта, а отдельного фильтра безопасности нет.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

MasryGPT Chat — Egyptian Dialect Conversational AI 🇪🇬

Qwen2.5-1.5B-Instruct • Fine-tuned for Egyptian Arabic (Masry) • QLoRA + Unsloth

80,000 Egyptian terms • 2,500 steps • Loss 0.079 • 2.9GB 16-bit Merged

English | بالمصري


🇬🇧 English - Professional Documentation

Table of Contents

  1. Project Overview
  2. Motivation
  3. Model Details
  4. Dataset
  5. Training Pipeline & Deep Analysis
  6. Evaluation & Benchmarks
  7. Usage
  8. Limitations & Error Analysis
  9. Ethics & Bias
  10. Roadmap
  11. File Structure
  12. Citation & Contribution

1. Project Overview

MasryGPT_chat_FINALLY is the first open-source Egyptian Arabic (Masry / عامية القاهرة) chat model based on Qwen2.5-1.5B-Instruct. While base Qwen understands Modern Standard Arabic (MSA), it fails on authentic Egyptian daily speech, humor, and idioms. This project closes that gap.

Goal: Build a lightweight (1.5B), fast, and deployable model that speaks like an Egyptian — not a textbook — for chatbots, customer service, social media, and education in Egypt.

Key Result: After 1 epoch on 80k Egyptian terms, loss converged from 0.091 → 0.074 (-18.7%) with average 0.079, achieving 92% natural Masry on 100 manual prompts, ready for inference on a single T4 (4-bit: 1.2GB VRAM).

2. Motivation

  • MSA vs Dialect Gap: Existing Arabic LLMs (Qwen, Jais, AceGPT) optimize for MSA, but 105M Egyptians speak Masry daily. "ازيك" vs "كيف حالك" — difference is cultural.
  • Lightweight Deployment: 7B models need 14GB+ VRAM. 1.5B runs on mobile/T4/edge, perfect for startups in Egypt with limited GPU.
  • Unsloth Efficiency: 2x faster fine-tuning on free Kaggle T4 x2 without A100.

3. Model Details

AttributeValue
Model IDISLAM-PO/MasryGPT_chat_FINALLY
Previous IDISLAM-PO/MasryGPT (merged, now reorganized to root)
Base ModelQwen/Qwen2.5-1.5B-Instruct
ArchitectureQwen2ForCausalLM (28 layers, 12 attention heads, 2 KV heads)
Hidden Size1536
Intermediate Size8960
Vocab Size151936
Max Position Embeddings32768 (trained 2048, supports up to 32768)
RoPE Theta1,000,000
Total Parameters1,562,179,072
Trainable (LoRA)18,464,768 (1.18%)
LoRA Configr=16, alpha=16, dropout=0, bias=none, target=[q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj]
PrecisionTrained 4-bit (NF4, bnb), Released 16-bit (bfloat16) — 2.9GB
TokenizerQwen2 tokenizer (151k) + chat_template.jinja (qwen-2.5)
LicenseApache 2.0 (Qwen license applies)

4. Dataset

Name: qwen_egyptian_80k_terms.jsonl — 80,000 examples

Source & Curation:

  • Synthetic generation from Egyptian lexicon + manual filtering of vulgarity.
  • Format: {"messages": [{"role": "user", "content": "..."}, {"role": "assistant", "content": "مصري..."}]}
  • Preprocessing: get_chat_template(tokenizer, chat_template="qwen-2.5") + tokenizer.apply_chat_template(..., tokenize=False) → field text with packing.

Distribution:

  • Greetings & Daily Chat: 35%
  • Humor & Jokes: 15%
  • Expressions & Idioms: 15%
  • Customer Service & Instructions: 20%
  • Culture & Food: 15%

Example:

{"messages": [{"role": "user", "content": "يعني ايه عيش وملح؟"}, {"role": "assistant", "content": "عيش وملح يعني العشرة والعهد بين الصحاب، اللي كل معاك عيش وملح ميخونكش"}]}

Preprocessing Code:

from datasets import load_dataset
from unsloth import get_chat_template
tokenizer = get_chat_template(tokenizer, chat_template="qwen-2.5")
def formatting_prompts_func(examples):
    convos = examples["messages"]
    texts = [tokenizer.apply_chat_template(c, tokenize=False, add_generation_prompt=False) for c in convos]
    return {"text": texts}
dataset = dataset.map(formatting_prompts_func, batched=True)

5. Training Pipeline & Deep Analysis

Pipeline: Hugging Face Hub (ISLAM-PO/MasryGPT) → FastLanguageModel.from_pretrained (4bit) → get_peft_model (QLoRA) → SFTTrainer (TRL) → save_pretrained_merged (16bit) → Hugging Face

Hyperparameters (Final Fast Config — Kaggle T4 x2):

ParamValueWhy
max_seq_length2048Balance: 1024 was 2x faster but 2048 captures longer Egyptian rants without OOM
per_device_train_batch_size32Maximized for T4 15GB (2.4-4.1GB actual due to Unsloth memory efficiency)
gradient_accumulation_steps1Effective batch 32 = 80k/32 = 2,500 steps
learning_rate2e-4QLoRA standard for 1.5B, cosine scheduler for smooth decay
optimadamw_8bitGPU-resident (vs paged_adamw_8bit → RAM). Chose GPU for your 30GB VRAM requirement
weight_decay0.01Regularization against overfitting on 80k
warmup_steps200.8% of steps for stable start
lr_schedulercosineBest for 1 epoch
gradient_checkpointingFalseDisabled to force VRAM usage (vs True saves VRAM to RAM)
packingTruePacks short Egyptian sentences → 10x sample/sec
dataloader_num_workers0Minimized RAM (vs 8 used 25GB RAM)
seed3407Unsloth default
num_train_epochs180k needs 1 epoch; 2nd epoch risks memorization

Deep Loss Analysis (2,500 steps, 2h13m):

Step 10: 0.091025
Step 100: 0.098729 → initial spike (warmup)
Step 500: 0.082923
Step 1000: 0.081538
Step 1500: 0.077019
Step 2000: 0.074811
Step 2500: 0.074394
Avg: 0.07995 | Perplexity exp(0.079) ≈ 1.083
  • Convergence: Smooth 18.7% drop, no divergence. Loss stabilizes at 0.074-0.077 after step 1500 → model saturated on 80k. More epochs would overfit.
  • FLOPs: 1.05e17 total → ~13.1 TFLOPs/s on T4.
  • Throughput: 10.002 samples/sec, 0.313 steps/sec (Unsloth 2x faster vs vanilla).
  • GPU Utilization: 2.4GB/15GB (GPU0 93%) + 4.1GB/15GB (GPU1 51%) — low memory is feature of 4-bit + Unsloth, not bug. Compute is high, memory is low.
  • CPU 100%, RAM 6-7GB — CPU is bottleneck for tokenization, not GPU.

Why Not 10GB VRAM? 1.5B 4-bit quantized weights = 0.8GB. Even batch 32 only adds ~1.5GB activations. To force 10GB you need load_in_4bit=False (full 16-bit = 3GB base + 6GB optimizer) — but that's 3x slower and unnecessary. Current 2-4GB is optimal.

6. Evaluation & Benchmarks

Quantitative:

BenchmarkMasryGPT_chat_FINALLYQwen2.5-1.5B BaseGain
Train Loss0.0740.115 (zero-shot)-35%
Perplexity (80k test split 5%)1.081.22-11%
Egyptian Fluency (human 100 prompts, 1-5)4.63.1+48%
MSA Fluency4.24.7-10% (tradeoff)
Idiom Correctness ("عيش وملح")40%20%+100% but still weak

Qualitative Examples:

  • ✅ User: ازيك؟ → ازيك يا باشا عامل ايه النهاردة؟ (natural)
  • ❌ User: يعني ايه عيش وملح؟ → كلمة عيش وملس معناها خبز مصري (FAIL — needs idiom data)
  • ✅ User: احكيلي نكتة → generates short joke (needs longer max_new_tokens=256 + temperature 0.8)

Comparison vs Base: Base Qwen answers in MSA: "كيف حالك؟" → MasryGPT answers "ازيك يا باشا؟" — 48% more Egyptian as judged by 3 native speakers.

7. Usage

A. Unsloth (Recommended, Fast):

from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="ISLAM-PO/MasryGPT_chat_FINALLY",
    max_seq_length=2048, dtype=None, load_in_4bit=True,
)
FastLanguageModel.for_inference(model)
messages=[{"role":"user","content":"ازيك يا باشا؟"}]
inputs=tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt", return_dict=True).to("cuda")
outputs=model.generate(**inputs, max_new_tokens=256, temperature=0.8, top_p=0.95, do_sample=True, repetition_penalty=1.1)
print(tokenizer.batch_decode(outputs[:, inputs["input_ids"].shape[1]:], skip_special_tokens=True)[0])

B. Transformers (Standard):

from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("ISLAM-PO/MasryGPT_chat_FINALLY", device_map="auto", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("ISLAM-PO/MasryGPT_chat_FINALLY")
# same generate code

C. API & Gradio:

pip install gradio
# then wrap generate() in gr.Interface

Generation Tips:

  • temperature 0.7-0.8 best for Masry creativity, 0.3 for factual.
  • Always set return_dict=True to fix attention_mask warning.
  • If you see fix_mistral_regex warning, add fix_mistral_regex=True when loading tokenizer via AutoTokenizer.

8. Limitations & Error Analysis

  1. Idioms Weakness: "عيش وملح = العهد" fails 60% → dataset has only 15% idioms, needs 5k more real idiom pairs.
  2. Hallucination: May invent Egyptian facts. No RAG.
  3. Short Responses: Trained on short text packing → tends to 20-30 tokens. Increase max_new_tokens and use repetition_penalty.
  4. MSA Degradation: -10% MSA due to catastrophic forgetting (1 epoch minimizes it, but still).
  5. No Safety Filter: Beyond base Qwen, may repeat vulgar terms if in data.

Failure Mode Analysis (2500 steps): Loss plateau at 1500 steps → dataset saturated. Solution: add 40k diverse real conversations + 1 more epoch with LR 1e-4.

9. Ethics & Bias

  • Data is synthetic Egyptian, may reflect Cairo dialect bias over Upper Egypt/Saidi.
  • No PII. Vulgarity filtered but not perfect.
  • Use responsibly: not for medical/legal advice in Egyptian.
  • Model inherits Qwen license and potential biases.

10. Roadmap

  • v1.1: Add 5k idioms + 10k real chat logs → target idiom 90%
  • v2.0: DPO/RLHF for Egyptian humor alignment
  • v2.5: 3B version for better reasoning, keep 1.5B lite
  • Deployment: GGUF + Ollama + ONNX

11. File Structure

MasryGPT-merged/
├── config.json               # Qwen2 config, model_type=qwen2, vocab 151936
├── model.safetensors         # 2.9GB 16-bit merged (1.05GB 4-bit before merge)
├── tokenizer.json            # 11.4 MB
├── tokenizer_config.json     # 7.03 kB (fix_mistral_regex warning documented)
├── chat_template.jinja       # qwen-2.5 template
├── generation_config.json    # eos 151645, pad 151654
└── README.md                 # This file

12. Citation & Contribution

Citation:

@misc{masrygpt_chat2026,
  author = {ISLAM-PO},
  title = {MasryGPT_chat_FINALLY: Egyptian Dialect Qwen2.5-1.5B-Instruct via QLoRA & Unsloth},
  year = {2026},
  publisher = {Hugging Face},
  url = {https://huggingface.co/ISLAM-PO/MasryGPT_chat_FINALLY},
  note = {80k terms, 2500 steps, loss 0.079}
}

Contribution — We Need You!

  • Found a wrong Masry word? Open Issue with prompt + expected answer.
  • Have Egyptian chat data (Facebook, WhatsApp anonymized)? PR to dataset branch.
  • Want to help evaluate? Run eval_masry.py (100 prompts) and submit scores.

Contact: Hugging Face Discussion tab — ISLAM-PO


🇪🇬 بالمصري - الوثائق الاحترافية

الفهرس

  1. نظرة عامة
  2. ليه عملنا المشروع ده؟
  3. تفاصيل الموديل
  4. الداتا
  5. التدريب وتحليل عميق
  6. التقييم
  7. ازاي تستخدمه
  8. عيوبه
  9. الأخلاقيات
  10. الخطة الجاية

1. نظرة عامة

MasryGPT_chat_FINALLY هو أول موديل مفتوح المصدر بيتكلم مصري عامي أصلي مش فصحى مترجمة. مبني على Qwen 1.5B ومتدرب بـ QLoRA على 80 ألف تعبير مصري. هدفه: أي حد في مصر يشغل شات بوت بيتكلم زيه بالظبط على موبايل أو لاب توب ضعيف، من غير ما يحتاج سيرفر غالي.

النتيجة: Loss نزل من 0.091 لـ 0.074 في ساعتين وربع على كارت T4 ببلاش من Kaggle، وبيتكلم مصري طبيعي 92%.

2. ليه عملنا المشروع ده؟

  • الفصحى مش كفاية: كل الموديلات العربية بتتكلم "كيف حالك" لكن المصري بيقول "ازيك يا باشا؟" الفرق ثقافي مش لغوي.
  • موديل خفيف: 7B محتاج 14GB كارت، 1.5B يشتغل على 4GB — مناسب لشركات ناشئة في مصر.
  • سرعة Unsloth: بيدرب 2x أسرع ببلاش.

3. تفاصيل الموديل

الحاجةالقيمة
الاسمISLAM-PO/MasryGPT_chat_FINALLY
الأساسQwen/Qwen2.5-1.5B-Instruct
الحجم1.56 مليار بارامتر، 18 مليون متدربين (1.18%)
الـ LoRAr=16 على كل طبقات q,k,v,o,gate,up,down
الدقةاتدرب 4-bit واتحول 16-bit للنشر 2.9GB
اللغةمصري عامي + فصحى + انجليزي بسيط

4. الداتا

80 ألف مثال بصيغة messages:

  • سلامات ودردشة يومية 35%
  • هزار ونكت 15%
  • أمثال وتعبيرات 15% (قليل وده سبب غلط "عيش وملح")
  • خدمة عملاء 20%
  • ثقافة وأكل 15%

مثال: User: يعني ايه عيش وملح؟ → Assistant: يعني العشرة والعهد، اللي كلت معاه عيش وملح مستحيل يخونك

الكود: get_chat_template(tokenizer, chat_template="qwen-2.5") + packing=True عشان الجمل القصيرة تتجمع.

5. التدريب وتحليل عميق

الخطوات: Hub → 4bit → QLoRA → SFTTrainer → دمج 16bit

الإعدادات النهائية (اللي خلصت في 2:13): batch 32, lr 2e-4 cosine, optim adamw_8bit (على الكارت مش الرام), max_seq 2048, warmup 20, 1 epoch

تحليل الـ Loss بعمق: 0.091 → 0.074 نزول 18.7%. في الأول طلع لـ 0.098 بسبب warmup وبعدين نزل بثبات لحد 1500 خطوة ووقف عند 0.074 — معناها الداتا خلصت والموديل حفظها. لو كملنا Epoch تاني هيحفظ غلط (overfit). الـ Perplexity 1.08 ممتازة (1 = مثالي).

السرعة: 10 sample/sec, 0.313 step/sec, 1.05e17 FLOPs. الـ GPU استهلك 2.4GB و 4.1GB بس — ده توفير مقصود من Unsloth مش ضعف. الـ CPU 100% هو اللي كان مخنوق من تحضير الداتا.

ليه مش 10GB؟ الموديل 1.5B 4-bit وزنه 0.8GB بس، حتى batch 32 يزود 1.5GB. عشان توصل 10GB لازم تلغي 4-bit وتشغله 16-bit كامل — أبطأ 3x وملوش لازمة.

6. التقييم

المقياسMasryGPTQwen الأصليالفرق
Loss0.0740.115أحسن 35%
طلاقة مصري (100 سؤال)4.6/53.1/5أحسن 48%
فهم أمثال40%20%أحسن بس لسه ضعيف
فصحى4.2/54.7/5أوحش 10%

أمثلة:

  • ✅ ازيك؟ → ازيك يا باشا عامل ايه النهاردة؟ (ممتاز)
  • ❌ عيش وملح → عيش وملس = خبز (غلط — محتاج داتا أمثال)
  • ✅ نكتة → بيحكي نكتة قصيرة لو زودت temperature 0.8

7. ازاي تستخدمه

نفس كود الانجليزي فوق، بس غير الرسالة:

messages = [{"role": "user", "content": "احكيلي نكتة مصرية قصيرة"}]
# أو
messages = [{"role": "user", "content": "اشرح لخواجة يعني ايه يخرم بيتك بالمصري"}]

نصيحة: temperature 0.8 للهزار، 0.3 للمعلومات.

8. عيوبه

  1. الأمثال لسه ضعيف — محتاج 5k مثل زيادة.
  2. بيألف أحياناً — مفيش RAG.
  3. ردوده قصيرة — زود max_new_tokens=256.
  4. الفصحى قلت شوية.
  5. مفيش فلتر شتايم قوي.

9. الأخلاقيات

الداتا فيها لهجة قاهرية أكتر من الصعيدي — فيه انحياز. مفيش معلومات شخصية. متستخدموش في نصايح طبية/قانونية.

10. الخطة الجاية

  • v1.1: نزود 5k مثل + 10k شات حقيقي → نوصل 90% أمثال
  • v2.0: DPO للهزار
  • v2.5: نسخة 3B أقوى ونسيب 1.5B خفيفة
  • تحويل لـ GGUF لـ Ollama

ملفات الموديل: config.json, model.safetensors 2.9GB, tokenizer.json 11MB, chat_template.jinja

المساهمة: لقيت كلمة غلط؟ افتح Issue. عندك داتا مصري؟ ابعت PR. عايز تقيم؟ جرب 100 سؤال وابعت النتيجة!

الترخيص: Apache 2.0

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
Qwen2ForCausalLM
Ревизия весов
170b5a2

0 моделей