File size: 2,634 Bytes
b14fd32 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
---
license: mit
---
```python
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
import os
# خطوة تشخيصية: دعنا نرى محتويات المجلد للتأكد
main_output_dir = "/content/gpt2-openhermes-finetuned-tpu"
print(f"محتويات المجلد '{main_output_dir}':")
# قد يكون المجلد فارغًا أو يحتوي فقط على مجلدات الـ checkpoints
# وهذا سيؤكد سبب المشكلة
!ls -l {main_output_dir}
# تحديد مسار نقطة التفتيش التي تريد اختبارها
checkpoint_path = "/content/gpt2-openhermes-finetuned-tpu/checkpoint-4000"
# اسم النموذج الأصلي الذي تم التدريب عليه
base_model_name = "gpt2"
# 1. تحميل النموذج من نقطة التفتيش المحلية
print(f"\nتحميل النموذج من: {checkpoint_path}")
finetuned_model = AutoModelForCausalLM.from_pretrained(checkpoint_path)
# 2. تحميل المُرمِّز من المصدر الأصلي على Hugging Face Hub
# <--- هذا هو الحل النهائي الذي يتجاوز مشكلة الملفات المفقودة
print(f"تحميل المُرمِّز الأصلي من: '{base_model_name}'")
finetuned_tokenizer = AutoTokenizer.from_pretrained(base_model_name)
# GPT-2 لا يملك pad_token افتراضيًا، لذلك يجب تعيينه
# هذه خطوة ضرورية جدًا لتجنب الأخطاء والتحذيرات أثناء التوليد
if finetuned_tokenizer.pad_token is None:
finetuned_tokenizer.pad_token = finetuned_tokenizer.eos_token
# نقوم بتحديث إعدادات النموذج أيضًا
finetuned_model.config.pad_token_id = finetuned_model.config.eos_token_id
# إعداد pipeline لتوليد النصوص
generator = pipeline(
"text-generation",
model=finetuned_model,
tokenizer=finetuned_tokenizer,
device=-1 # استخدام CPU للاختبار
)
# قائمة بالأسئلة
questions = [
"What is the capital of Egypt and what is it famous for",
"How does a computer work",
]
# اختبار النموذج على الأسئلة
print("\n--- اختبار النموذج من Checkpoint-4000 ---")
for prompt in questions:
result = generator(
prompt,
max_new_tokens=150,
do_sample=True,
temperature=0.7,
top_p=0.9,
top_k=50,
pad_token_id=finetuned_tokenizer.eos_token_id # ممارسة جيدة لتمرير هذا
)
print(f"\nالسؤال: {prompt}")
print(f"إجابة النموذج:\n{result[0]['generated_text']}")
``` |