FemtoXO / src /model.py
abdelkader-dev's picture
Upload 16 files
b287045 verified
Raw
History Blame Contribute Delete
1.21 kB
"""
model.py - بناء وتحميل نموذج Transformer صغير لتصنيف حركات XO.
"""
from transformers import BertConfig, BertForSequenceClassification
def build_model(tokenizer):
"""
ينشئ نموذج BERT صغير جداً بـ 9 رؤوس تصنيف (الخانات 0-8).
المُدخل: tokenizer (لمعرفة حجم المفردات ورمز padding).
المُخرج: النموذج الجاهز.
"""
config = BertConfig(
vocab_size=len(tokenizer),
hidden_size=64,
num_hidden_layers=2,
num_attention_heads=2,
intermediate_size=128,
max_position_embeddings=16,
num_labels=9,
pad_token_id=tokenizer.pad_token_id,
)
model = BertForSequenceClassification(config)
print(f"✅ تم بناء النموذج ({sum(p.numel() for p in model.parameters()):,} معلمة)")
return model
def load_model(model_path="./xo_model"):
"""
يحمّل نموذجاً مدرباً مسبقاً.
"""
model = BertForSequenceClassification.from_pretrained(model_path)
print(f"📂 تم تحميل النموذج من {model_path}")
return model