chatbox / test_iraqi_model.py
anaspro
updatE
b7cdae4
raw
history blame
2.3 kB
#!/usr/bin/env python3
"""
اختبار الموديل العراقي 4-bit
"""
import os
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
def test_model():
model_path = "anaspro/iraqi-7b"
hf_token = os.getenv("HF_TOKEN")
print("جاري تحميل المودل العراقي...")
tokenizer = AutoTokenizer.from_pretrained(
model_path,
token=hf_token,
trust_remote_code=True
)
model = AutoModelForCausalLM.from_pretrained(
model_path,
device_map="auto",
trust_remote_code=True,
token=hf_token,
torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32,
low_cpu_mem_usage=True
)
if tokenizer.pad_token is None:
tokenizer.pad_token = tokenizer.eos_token
# اختبار الـ prompt الجديد
prompt = """### Instruction:أنت ذكاء صناعي يتحدث باللهجة العراقية ويجيب باحترافية وذكاء. الإجابات دائما تستخدم اللهجة العراقية.
### Input:[|Human|] مرحبا كيفك؟
[|AI|]
### Response :"""
inputs = tokenizer(prompt, return_tensors="pt")
input_ids = inputs['input_ids'].to('cuda' if torch.cuda.is_available() else 'cpu')
attention_mask = inputs['attention_mask'].to('cuda' if torch.cuda.is_available() else 'cpu')
print("جاري توليد الرد...")
outputs = model.generate(
input_ids,
attention_mask=attention_mask,
max_length=input_ids.shape[-1] + 100,
temperature=0.3,
top_p=0.8,
do_sample=True,
pad_token_id=tokenizer.pad_token_id,
eos_token_id=tokenizer.eos_token_id
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
# استخراج الرد الجديد فقط
if "### Response :" in response:
response = response.split("### Response :")[-1].strip()
print("=" * 50)
print("الاختبار نجح! ✅")
print(f"الموديل: {model_path}")
print("الـ prompt: ذكاء صناعي باللهجة العراقية (مع التأكيد على استخدام اللهجة دائماً)"
print(f"الرد: {response}")
print("=" * 50)
if __name__ == "__main__":
test_model()