""" 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