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']}")
```