با گذر مدلهای زبانی بزرگ (LLMs) از کنجکاویهای آزمایشی به اجزای زیرساخت اصلی، تقاضا برای ارزیابی دقیق هرگز به این اندازه نبوده است. در حالی که روانکلامی و بازیابی اطلاعات ساده نسبتاً قابل اندازهگیری هستند، استدلال چندمرحلهای همچنان جام مقدس تواناییهای LLMها باقی مانده است. این مقاله به بررسی نحوه ارزیابی مؤثر مدلها با استفاده از تکنیکهای پرسوجوی زنجیرهی تفکر (Chain-of-Thought یا CoT) میپردازد و یک نقشه راه فنی برای توسعهدهندگانی که هدفشان سنجش استدلال منطقی پیچیده است، ارائه میدهد.
محدودیتهای ارزیابی بدون نمونه (Zero-Shot)
معیارهای ارزیابی سنتی اغلب بر پرسوجوی بدون نمونه (Zero-shot) تکیه دارند، جایی که از مدل خواسته میشود پاسخ مستقیمی ارائه دهد. برای مسائل ریاضی ساده یا پرسشهای مبتنی بر واقعیت، این روش به خوبی کار میکند. با این حال، زمانی که وظایف نیازمند مراحل منطقی میانی هستند—مانند حل یک مسئله جبری چندمتغیره یا تفسیر یک قانون پیچیده حقوقی—خروجیهای بدون نمونه اغلب دچار «منطق توهمی» میشوند. مدل ممکن است به صورت تصادفی به پاسخ صحیح برسد یا از هورستیکهای معیوبی استفاده کند که بدون بررسی مراحل میانی، قابل تأیید نیستند.
برای رفع این مشکل، باید تمرکز خود را از دقت صرفاً مبتنی بر نتیجه به سمت تأیید فرآیندمحور تغییر دهیم. اینجاست که معیارسنجی زنجیرهی تفکر (CoT) ضروری میشود. با مجبور کردن مدل به تولید مسیر استدلال خود، میتوانیم نه تنها خروجی نهایی، بلکه انسجام و صحت سفر منطقی آن را ارزیابی کنیم.
پیادهسازی معیارسنجی زنجیرهی تفکر
ارزیابی CoT نیازمند یک رویکرد ساختاریافته است. ما نیاز داریم تا خروجی مدل را تجزیه کنیم تا هم مراحل استدلال و هم نتیجه نهایی را استخراج کنیم. در زیر یک مثال عملی پایتون با استفاده از کتابخانه transformers آورده شده است که نشان میدهد چگونه میتوانیم یک خط لوله ارزیابی CoT را ساختاردهی کنیم. این اسکریپت برجسته میکند که چگونه از مدل بخواهیم گامبهگام فکر کند و سپس پاسخ نهایی را برای مقایسه با حقیقت زمینی (Ground Truth) استخراج کنیم.
import transformers
# بارگذاری یک مدل از پیش آموزشدیده (مثلاً Llama-2 یا Mistral)
model_name = "meta-llama/Llama-2-7b-chat-hf"
tokenizer = transformers.AutoTokenizer.from_pretrained(model_name)
model = transformers.AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=transformers.bfloat16,
device_map="auto"
)
def evaluate_cot_reasoning(model, tokenizer, question, ground_truth):
"""
توانایی مدل در انجام استدلال چندمرحلهای را
با استفاده از پرسوجوی زنجیرهی تفکر ارزیابی میکند.
"""
# پرسوجوی CoT به تفکر گامبهگام تشویق میکند
prompt = f"""لطفاً مسئله زیر را گامبهگام حل کنید:
سوال: {question}
بیایید گامبهگام فکر کنیم:
"""
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
# تولید متن با دمای مشخص برای تشویق به تنوع در استدلال
outputs = model.generate(
**inputs,
max_new_tokens=500,
temperature=0.7,
do_sample=True
)
# رمزگشایی پاسخ تولید شده
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
# نکته: در محیط تولید، باید از یک عبارت باقاعده (Regex) یا تجزیهگر NLP
# برای استخراج پاسخ نهایی از متن استفاده کنید.
return response
# مثال استفاده
question = "اگر جان ۵ سیب داشته باشد و ۲ تا به جین بدهد، اما سپس ۳ تا دیگر بخرد، چند سیب دارد؟"
result = evaluate_cot_reasoning(model, tokenizer, question, 6)
print(result)
معیارهای کلیدی برای ارزیابی CoT
پس از تولید ردپاهای استدلال، معیارهای متعددی مطرح میشوند:
- تطابق دقیق (Exact Match - EM): آیا پاسخ نهایی استخراج شده با حقیقت زمینی مطابقت دارد؟
- دقت گامها: با استفاده از ارزیابهای تخصصی (مانند مدل زبانی به عنوان داور)، میتوانیم بررسی کنیم که آیا هر مرحله منطقی میانی معتبر است یا خیر.
- نرخ سازگاری: اجرای یک پرسش چندین بار. یک مدل با عملکرد بالا باید مسیرهای استدلال سازگاری تولید کند، حتی اگر عبارتبندی میانی متفاوت باشد.
نتیجهگیری
ارزیابی LLMها در استدلال چندمرحلهای دیگر یک انتخاب نیست؛ بلکه یک نیاز حیاتی برای استقرار سیستمهای هوش مصنوعی قابل اعتماد است. با اتخاذ معیارسنجی زنجیرهی تفکر، توسعهدهندگان میتوانند فراتر از بررسیهای سطحی روانکلامی حرکت کنند و بینش عمیقی درباره تواناییهای منطقی یک مدل کسب نمایند. با پیشرفت این حوزه، به دنبال ابزارهای خودکاری باشید که بتوانند این زنجیرههای استدلال را به صورت بومی تجزیه و اعتبارسنجی کنند، تا اطمینان حاصل شود که LLMهای شما نه تنها صحبت میکنند، بلکه واقعاً فکر میکنند.