المستوى: مبتدئ — وقت القراءة: 6 دقائق
لو سألت AI سؤال زي "معايا 23 تفاحة، أكلت 5، اشتريت ضعف اللي فضل، عندي كام؟" وجالك رد غلط، المشكلة مش في ذكاء النموذج. المشكلة إنه بيحاول يجاوب من غير ما يفكّر. Chain-of-Thought بيحل ده بسطر واحد، وبيرفع الدقة في المسائل المعقدة بنسبة توصل لـ 39% حسب بحث Google Brain سنة 2022.
إيه هو Chain-of-Thought ببساطة شديدة
تخيّل تلميذ في الصف بيحل امتحان رياضيات. لو سألته "كام 17 × 24؟" وطلبت منه يقولك الناتج فورًا في ثانية، احتمال يخطئ كبير. لكن لو قلتله "اكتب الخطوات على الورقة الأول"، هيقسّمها: 17 × 20 = 340، 17 × 4 = 68، 340 + 68 = 408. الإجابة بقت أدق لأنه فكّر بصوت عالي بدل ما يحزر.
نماذج اللغة الكبيرة شغّالة بنفس المنطق بالظبط. لمّا تطلب منها تفكّر خطوة بخطوة، بتقسّم المسألة لمسائل أصغر، وكل خطوة بتبني على اللي قبلها. النتيجة: دقة أعلى في المسائل اللي محتاجة أكتر من خطوة.
التعريف العلمي بدقة
Chain-of-Thought أو اختصارًا CoT، هو أسلوب prompting قدّمه Jason Wei وفريق Google Brain في ورقة بحثية اتنشرت يناير 2022. الفكرة: بدل ما تطلب من الـ LLM الإجابة النهائية مباشرة، تطلب منه يكتب خطوات تفكيره قبل ما يدّيك الإجابة. الورقة أثبتت إن CoT بيرفع الدقة على benchmark GSM8K (مسائل رياضية كلامية) من 18% إلى 57% على نموذج PaLM بحجم 540 مليار parameter.
المشكلة: ليه الإجابة المباشرة بتفشل
نماذج اللغة بتولّد token واحد في كل مرة بناءً على اللي قبله. لو طلبت الإجابة النهائية على طول، النموذج بيحاول يحزر الناتج من غير "مساحة" يحط فيها العمليات الوسيطة. زي ما تطلب من حد يحل معادلة من غير ورقة وقلم — ممكن يجيبها صح في المسائل السهلة، بس في المسائل اللي فيها 3 خطوات أو أكتر، احتمال الخطأ بيزيد بشكل أُسّي.
الحل: سطر واحد بيغيّر كل حاجة
أبسط شكل لـ CoT هو إضافة جملة "فكّر خطوة بخطوة" أو "Think step by step" في الـ prompt. مفيش كود معقد، مفيش fine-tuning، مفيش setup. سطر واحد بيخلّي النموذج ينتج reasoning قبل الإجابة.
مثال تنفيذي شغّال على Anthropic SDK
import anthropic
client = anthropic.Anthropic()
prompt_direct = """محل بيع 8 لابتوبات بسعر 12,500 جنيه للوحدة.
كل لابتوب تكلفته 9,800 جنيه. الضريبة 14% على الربح.
كام صافي الربح بعد الضريبة؟"""
prompt_cot = prompt_direct + """
فكّر خطوة بخطوة:
1. احسب إجمالي المبيعات
2. احسب إجمالي التكلفة
3. احسب الربح الإجمالي
4. احسب الضريبة (14% من الربح)
5. اطرح الضريبة وادّيني الناتج النهائي في سطر منفصل"""
response = client.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
messages=[{"role": "user", "content": prompt_cot}]
)
print(response.content[0].text)
الناتج المتوقع: النموذج هيكتب الخطوات الخمسة، وبعدين يعرض الإجابة الصحيحة (23,220 جنيه). من غير CoT، النموذج ممكن يخطئ في حساب الضريبة على المبيعات بدل الربح، أو يخلط بين الأرقام.
أرقام حقيقية من البحث
- على GSM8K (مسائل رياضية): الدقة قفزت من 18% إلى 57% — تحسّن +39 نقطة
- على المسائل المنطقية المعقدة: تحسّن متوسط +18 نقطة دقة
- مع تقنية Self-Consistency (تشغيل CoT كذا مرة وأخذ الأغلبية): الدقة على GSM8K وصلت 74%
- الزيادة في عدد التوكنز: 30-50% فوق الإجابة المباشرة
الأرقام دي متكررة في عشرات الأبحاث المنشورة بعد ورقة 2022. مش ادعاءات تسويقية.
متى تستخدم CoT
- مسائل حسابية فيها أكتر من خطوة
- تحليل بيانات يحتاج مقارنة عدة عوامل
- اتخاذ قرار له شروط متعددة (مثلاً: "الزبون يستحق خصم لو A و B وكمان C")
- كتابة كود معقد محتاج تخطيط قبل التنفيذ
- تلخيص نص طويل بترتيب منطقي
متى لا تستخدم هذه الطريقة
- استعلام معلوماتي بسيط ("إيه عاصمة فرنسا؟") — الإجابة المباشرة كافية
- تنسيق بسيط (تحويل نص لـ JSON محدد)
- تصنيف سريع (positive / negative)
- نماذج صغيرة (أقل من 100B parameter): البحث أثبت إن CoT مش بيظهر فايدة على النماذج الصغيرة. الميزة دي emergent property بتظهر مع الحجم
- تطبيقات latency-critical: لو محتاج رد في أقل من 200ms، CoT هيعطّلك
Trade-offs لازم تعرفها قبل ما تستخدمه
المكسب: دقة أعلى ملموسة في المسائل المعقدة، أحيانًا الفرق بين إجابة صح وإجابة كارثية.
الثمن:
- توكنز أكتر: التفكير بياخد مكان في الـ output. التكلفة بتزيد 30-50% بالمتوسط.
- زمن استجابة أبطأ: لأن النموذج بيكتب reasoning قبل الإجابة. متوسط زيادة 1.5x إلى 2x في latency.
- مش كل الأسئلة محتاجاه: لو استخدمته في مسائل بسيطة، بتدفع زيادة من غير عائد.
الافتراض هنا إنك بتشتغل بنموذج كبير (Claude Opus، GPT-4، Gemini Pro). لو بتستخدم نموذج صغير على جهازك، النتائج هتكون مختلفة.
ملاحظة عن 2026: Extended Thinking بيعمل CoT تلقائيًا
كذا نموذج حديث في 2026 (زي Claude مع Extended Thinking وOpenAI o-series) بقى بيعمل reasoning تلقائيًا لمّا تفعّل الميزة. الميزة دي بتعمل CoT داخليًا بدون ما تشوفه في الـ output. لكن فهم المبدأ يدويًا مهم في حالتين: لمّا تحتاج تتحكم في طريقة التفكير بشكل دقيق، أو لمّا تشتغل بنماذج ما عندهاش الميزة دي مدمجة.
الخطوة التالية
خد آخر prompt في تطبيقك بيرجع نتيجة فيها أخطاء أحيانًا. ضيف عليه جملة: "فكّر خطوة بخطوة، ثم اعرض الإجابة النهائية في سطر منفصل في النهاية". شغّله 10 مرات قبل وبعد، احسب نسبة الإجابات الصحيحة في كل حالة. لو الفرق أقل من 5%، يبقى المسألة مش محتاجة CoT أصلًا. لو الفرق 15% أو أكتر، CoT يستحق التكلفة الإضافية.
المصادر
- Wei et al., "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models", arXiv:2201.11903 (2022)
- Anthropic Claude API Documentation: Let Claude think (chain of thought prompting)
- Google Research Blog: Language Models Perform Reasoning via Chain of Thought
- Wharton GAIL Technical Report: The Decreasing Value of Chain of Thought in Prompting
- Wang et al., "Self-Consistency Improves Chain of Thought Reasoning" (2022)