مع انتقال نماذج اللغات الكبيرة (LLMs) من كونها فضوليات تجريبية إلى مكونات بنية تحتية أساسية، لم يكن الطلب على التقييم الدقيق أعلى من قبل. بينما يسهل قياس السلاسة الأساسية والاستدعاء الواقعي، يظل الاستدلال متعدد الخطوات الكأس المقدسة لقدرات نماذج اللغات الكبيرة. تستكشف هذه المقالة كيفية تقييم النماذج بشكل فعال باستخدام تقنيات التوجيه القائمة على تفكير السلسلة (Chain-of-Thought أو CoT)، وتوفر خارطة طريق تقنية للمطورين الذين يهدفون إلى تقييم الاستدلال المنطقي المعقد.
قيود التقييم بدون أمثلة سابقة (Zero-Shot)
غالباً ما تعتمد مقاييس التقييم التقليدية على التوجيه بدون أمثلة سابقة (Zero-shot prompting)، حيث يُطلب من النموذج تقديم إجابة مباشرة. بالنسبة للأسئلة البسيطة في الحساب أو الحقائق، يعمل هذا بشكل جيد. ومع ذلك، عندما تتطلب المهام خطوات منطقية وسيطة—مثل حل مشكلة جبرية متعددة المتغيرات أو التنقل في تشريع قانوني معقد—غالباً ما تظهر مخرجات التوجيه بدون أمثلة سابقة "منطقاً متوهماً" (Hallucinated logic). قد يصل النموذج إلى الإجابة الصحيحة عن طريق الصدفة أو يستخدم استدلالات خاطئة لا يمكن التحقق منها دون فحص الخطوات الوسيطة.
للتغلب على هذا، يجب علينا تحويل تركيزنا من دقة النتيجة فقط إلى التحقق الموجه للعملية. هنا يصبح تقييم تفكير السلسلة ضرورياً. من خلال إجبار النموذج على توليد مسار استدلاليه، يمكننا تقييم ليس فقط المخرجات النهائية، بل أيضاً اتساق وصحة الرحلة المنطقية.
تنفيذ تقييم تفكير السلسلة
يتطلب تقييم تفكير السلسلة نهجاً هيكلياً. نحتاج إلى تحليل مخرجات النموذج لاستخلاص كل من خطوات الاستدلال والاستنتاج النهائي. فيما يلي مثال عملي بلغة Python باستخدام مكتبة transformers لتوضيح كيفية هيكلة خط أنابيب تقييم تفكير السلسلة. يسلط هذا النص البرمجي الضوء على كيفية توجيه النموذج للتفكير خطوة بخطوة، ثم استخراج الإجابة النهائية للمقارنة مع الحقيقة الأرضية (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):
"""
يقيم قدرة النموذج على أداء الاستدلال متعدد الخطوات
باستخدام التوجيه القائم على تفكير السلسلة.
"""
# يشجع توجيه تفكير السلسلة على التفكير خطوة بخطوة
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 = "إذا كان لدى جون 5 تفاحات وأعطى 2 لجين، ثم اشترى 3 أخرى، فكم عدد التفاحات التي لديه؟"
result = evaluate_cot_reasoning(model, tokenizer, question, 6)
print(result)
المقاييس الرئيسية لتقييم تفكير السلسلة
بمجرد توليد مسارات الاستدلال، تدخل عدة مقاييس حيز التنفيذ:
- المطابقة الدقيقة (EM): هل تطابق الإجابة المستخرجة نهائياً مع الحقيقة الأرضية؟
- دقة الخطوات: باستخدام مقيمين متخصصين (مثل نموذج لغة كحكم)، يمكننا التحقق من صحة كل خطوة منطقية وسيطة.
- معدل الاتساق: تشغيل الاستفسار نفسه عدة مرات. يجب أن ينتج النموذج عالي الأداء مسارات استدلال متسقة، حتى لو اختلفت الصياغة الوسيطة.
الخاتمة
لم يعد تقييم نماذج اللغات الكبيرة في الاستدلال متعدد الخطوات اختيارياً؛ بل أصبح مطلباً حاسماً لنشر أنظمة ذكاء اصطناعي موثوقة. من خلال اعتماد معايير تقييم تفكير السلسلة، يمكن للمطورين تجاوز فحوصات السلاسة السطحية واكتساب رؤى عميقة حول القدرات المنطقية للنموذج. مع تطور المجال، ابحث عن أدوات تلقائية يمكنها تحليل وسلسلة هذه الاستدلالات بشكل أصلي، مما يضمن أن نماذج اللغات الكبيرة لا تتحدث فحسب، بل تفكر فعلياً.