|
|
|
|
|
""" |
|
|
اختبار الموديل العراقي 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 = """### 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() |
|
|
|