نماذج اللغة2023متوسط11 دقيقة قراءة
ReAct: دمج الاستدلال والفعل في النماذج اللغوية
ReAct: Synergizing Reasoning and Acting in Language Models
Yao, S. · Zhao, J. · Yu, D. · Du, N. · Shafran, I. · Narasimhan, K. · Cao, Y. — ICLR
المشكلة
بحلول 2022 كانت النماذج اللغوية الكبيرة تملك قدرتين مبهرتين لكنّ كلاً منهما تعمل بمعزل عن الأخرى: أسلوب يمنحها القدرة على الاستدلال خطوة بخطوة، وتوليد الأفعال يتيح لها التفاعل مع الأدوات. لكنّ الاستدلال وحده يُنتج هلوسة — يختلق النموذج حقائق تبدو معقولة اعتماداً على معرفته الداخلية فقط. والفعل وحده أعمى — ينفّذ النموذج إجراءات دون أن يفهم لماذا يفعلها أو ماذا يصنع بنتائجها. لم يستطع أيٌّ من المنهجين بمفرده حلّ المهام التي تتطلّب استرجاع معلومات واستدلالاً متعدد الخطوات في آن واحد.
الإسهام
ReAct: أسلوب تحفيز يُراوح بين خطوات الاستدلال والأفعال المرتبطة بالمهمة داخل نموذج لغوي واحد. يولّد النموذج أفكاراً (لتفكيك الأهداف وتتبّع التقدّم ومعالجة الاستثناءات) وأفعالاً (للتفاعل مع أدوات خارجية كويكيبيديا) بالتناوب. في مهام الإجابة عن الأسئلة (HotpotQA) (FEVER) يقضي ReAct على الهلوسة بربط الاستدلال بحقائق مُسترجَعة فعلياً. وفي مهام اتخاذ القرار التفاعلي (ALFWorld وWebShop) يتفوّق على أساليب والتعلّم المعزَّز بنسبة 34% و10% في معدّل النجاح، مستخدماً مثالاً أو مثالين سياقيين فقط.
الأثر
يُعدّ ReAct النموذج المؤسِّس للذكاء الاصطناعي الوكيلي. أثبت أن نموذجاً لغوياً واحداً يمكن أن يكون «العقل» الذي يستدلّ و«اليدين» اللتين تنفّذان، كلاهما في مستقل. أُطُر العمل الحديثة مثل LangChain وAutoGPT وغيرها مبنية في جوهرها على حلقة ReAct. الفكرة المحورية للورقة — أنّ ربط الاستدلال بملاحظات خارجية يقضي على الهلوسة، وأنّ الاستدلال يجعل الأفعال هادفة — أصبحت الأساس الذي تقوم عليه النماذج اللغوية القادرة على .
تخيّل طالباً يستعدّ لامتحان. أمامه طريقتان: الطالب الذي يفكّر فقط يُغمض عينيه ويحاول استرجاع كل شيء من ذاكرته، فيختلق حتماً حقائق لم يدرسها قط. أما الطالب الذي يتصرّف فقط فيقلّب الكتب عشوائياً ويُظلّل فقرات دون أن يعرف أهميتها.
طالب ReAct يفعل ما يفعله أيّ متعلّم ذكيّ: يقرأ السؤال، يفكّر فيما يحتاج إليه، يفتح الكتاب المناسب، يقرأ الفقرة المطلوبة، يفكّر في دلالتها، ثم يقرّر: هل يبحث عن المزيد أم يكتب الإجابة؟ التفكير يوجّه البحث، والبحث يمنح التفكير أرضاً صلبة.
المشكلة: الاستدلال والفعل كانا في عالمَين منفصلَين
بحلول 2022 ظهرت في قدرتان قويتان، لكنّ كلاً منهما طُوِّرت بمعزل عن الأخرى:
-
سلسلة التفكير تتيح للنموذج أن «يفكّر بصوت عالٍ» — يفكّك المسائل إلى خطوات، ويُجري حسابات، ويستخلص نتائج. لكنّها حلقة مغلقة: النموذج يعتمد كلياً على معرفته الداخلية دون وسيلة للتحقّق من صحة ما يعرفه أو جمع معلومات جديدة. وحين تكون تلك المعرفة خاطئة أو ناقصة تحدث — أي يولّد النموذج حقائق مُختلقة تبدو مقنعة.
-
توليد الأفعال يتيح للنموذج التفاعل مع أدوات خارجية — كالبحث في الويب أو الاستعلام من قواعد بيانات أو التنقّل داخل بيئات مختلفة. لكن بدون استدلال يتحرّك النموذج بلا بوصلة: لا يستطيع تفكيك الأهداف، ولا تتبّع ما أنجزه، ولا التعامل مع نتائج غير متوقّعة، ولا تركيب إجابة نهائية ممّا يجده.
البشر لا يفصلون التفكير عن الفعل. حين تطبخ تقول لنفسك «أحتاج ملحاً»، تمدّ يدك فتكتشف أنه نَفِد، فتفكّر «ربما صلصة الصويا تفي بالغرض»، ثم تتكيّف. هذا التداخل المستمرّ بين التفكير والفعل هو سرّ متانة حلّ المشكلات عند البشر، وReAct ينقل هذا النمط إلى النماذج اللغوية.
الفكرة: إضافة التفكير إلى فضاء الأفعال
فكرة ReAct أنيقة في بساطتها. لنتصوّر وكيلاً يتفاعل مع ما. في كل خطوة زمنية يتلقّى الوكيل وينفّذ فعلاً . في الوضع المعتاد يحتوي على أفعال البيئة فقط — بحث، نقر، تنقّل.
ما يفعله ReAct هو توسيع هذا الفضاء ليصبح ، حيث فضاء اللغة الطبيعية. حين ينفّذ الوكيل فعلاً من فضاء — أي فكرة أو — فإنّ ذلك لا يؤثّر على البيئة الخارجية ولا يُنتج أي ملاحظة، وإنما يُحدِّث السياق الداخلي للوكيل فيساعده على التخطيط والاستدلال واتخاذ القرار.
بعبارة أخرى، الأفكار «مجانية» — لا تستهلك خطوة بيئية ولا تُحدث أثراً جانبياً، لكنّها تُثري السياق الذي يستند إليه النموذج في اختيار فعله الحقيقي التالي. هكذا يتناوب النموذج بين التفكير (في فضاء اللغة ) والتنفيذ (في فضاء البيئة )، فتنشأ حلقة تفكير-فعل-ملاحظة.
الحلقة عملياً: جولة على مثال من HotpotQA
يعتمد ReAct على : يُعطى النموذج عدداً محدوداً من المسارات التي أعدّها بشر كأمثلة، ثم يولّد مساراته الخاصة لمسائل جديدة. كل مسار عبارة عن تسلسل من خطوات تفكير-فعل-ملاحظة.
في المهام التي تحتاج معرفة كثيفة مثل HotpotQA ( في الإجابة عن الأسئلة) وFEVER (التحقّق من الحقائق)، يتناوب النموذج بين الأفكار والأفعال بكثافة — كل فعل تسبقه فكرة تشرح ماذا ينبغي فعله ولماذا. فضاء الأفعال هنا واجهة بسيطة لويكيبيديا بثلاث عمليات: search[entity] تُعيد أول 5 جمل من صفحة ويكيبيديا، وlookup[string] تُحاكي البحث داخل الصفحة، وfinish[answer] تُرسل الإجابة النهائية.
العرض أدناه يُظهر المسار الكامل لسؤال حقيقي من HotpotQA. لاحظ كيف تخدم كل فكرة غرضاً واضحاً: تفكيك السؤال، واستخلاص الحقائق من الملاحظات، وإعادة صياغة البحث حين يفشل، وتركيب الإجابة النهائية.
أبعد من الأسئلة: ReAct في اتخاذ القرار التفاعلي
لا يقتصر ReAct على الإجابة عن الأسئلة. تختبره الورقة أيضاً على بيئتين تفاعليتين لاتخاذ القرار، حيث يحتاج الوكيل إلى تنفيذ سلسلة طويلة من الأفعال:
-
ALFWorld — لعبة نصّية يتنقّل فيها الوكيل داخل منزل مُحاكى لإنجاز مهام من قبيل «ضَع سكيناً نظيفاً على سطح المنضدة». عليه أن يخطّط لأهداف فرعية (جِد السكين ← نظّفه ← ضعه في مكانه)، وأن يستدلّ على الأماكن المرجّحة لأدوات المنزل (السكين غالباً على المنضدة أو في الدُّرج)، وأن يتتبّع ما أنجزه من هذه الأهداف.
-
WebShop — بيئة تسوّق إلكتروني تضمّ 1.18 مليون منتج حقيقي. على الوكيل إيجاد المنتج المطابق لتعليمات المستخدم وشراؤه، عبر البحث والمقارنة واختيار الخصائص الصحيحة.
في هذه البيئات تظهر الأفكار بشكل متفرّق — عند نقاط القرار المفصلية فحسب، لا قبل كل فعل. النموذج نفسه يقرّر متى يحتاج إلى التوقّف والتفكير. هذه المرونة في توزيع الأفكار إحدى نقاط قوة ReAct: فهو يُكيِّف كثافة الاستدلال بحسب طبيعة المهمة.
النتائج عبر جميع المقاييس المرجعية
قيّمت الورقة ReAct على أربعة مقاييس مرجعية متنوّعة باستخدام PaLM-540B مع تحفيز بأمثلة قليلة. وجاءت النتائج متباينة بشكل مثير:
في FEVER (التحقّق من الحقائق) تفوّق ReAct بوضوح على سلسلة التفكير (60.9 مقابل 56.3 في الدقة)، لأنّ التحقّق من الادعاءات يستلزم في الغالب استرجاع حقائق دقيقة قد تُخطئ فيها المعرفة الداخلية للنموذج ولو بفارق طفيف.
في HotpotQA (الإجابة متعددة القفزات) تأخّر ReAct قليلاً عن سلسلة التفكير (27.4 مقابل 29.4 في التطابق التام)، لأنّ الاستدلال الحرّ في سلسلة التفكير أكثر مرونة من بنية تفكير-فعل-ملاحظة الصارمة. غير أنّ الأسلوب الأفضل إجمالاً هو الجمع بينهما: ReAct→CoT-SC يحقّق 35.1، وCoT-SC→ReAct يحقّق 34.2 — وهو تفوّق واضح على كلّ منهما منفرداً.
في كلٍّ من ALFWorld وWebShop تفوّق ReAct بفارق كبير على جميع خطوط الأساس، ما يُبرهن أنّ الاستدلال يكون أعظم أثراً في البيئات التفاعلية التي يحتاج فيها الوكيل إلى التخطيط على مدى خطوات كثيرة.
لماذا ReAct أكثر موثوقية: تحليل أنماط الإخفاق
أجرى المؤلفون تحليلاً بشرياً مفصّلاً لـ 200 مسار من ReAct وسلسلة التفكير على HotpotQA، وجاءت النتائج لافتة:
بين المسارات الناجحة، كانت 14% من إجابات سلسلة التفكير صحيحة بالمصادفة — احتوت سلسلة الاستدلال على حقائق مُختلقة لكنّها قادت بالصدفة إلى الإجابة الصحيحة. في المقابل، لم تتجاوز هذه النسبة 6% عند ReAct. أما بين المسارات الفاشلة فالصورة أوضح بكثير: 56% من إخفاقات سلسلة التفكير سببها الهلوسة — اختلق النموذج حقائق واستدلّ منها بثقة. في ReAct، لم تتسبّب الهلوسة في أيٍّ من الإخفاقات (0%). فـ على مصادر خارجية يقضي تماماً على اختلاق الحقائق.
لكنّ لـ ReAct نمط إخفاق خاصاً به: أخطاء نتائج البحث (23% من الإخفاقات)، حيث يُعيد البحث نتائج فارغة أو غير مفيدة فينحرف الاستدلال عن مساره. هذه هي المقايضة بين الدقة الواقعية والمرونة. لكنّ المؤلفين يُبيّنون أنّ الجمع بين ReAct وCoT-SC يُخفّف هذه المشكلة — بالعودة إلى الاستدلال الداخلي حين يفشل البحث، أو العكس.
من التحفيز إلى الضبط الدقيق: كيف يتغيّر الأداء؟
من أهمّ نتائج الورقة ما يتعلّق بسلوك ReAct عند تغيير حجم النموذج وأسلوب التدريب. بالتحفيز وحده يحقّق ReAct أسوأ أداء بين جميع الأساليب حين يُطبَّق على نماذج صغيرة (PaLM-8B وPaLM-62B) — فتعلّم الاستدلال والتنفيذ معاً من أمثلة سياقية مهمّة معقّدة جداً على النماذج الأصغر حجماً.
لكن حين يُجرى على 3,000 مسار ReAct فقط مع إجابات صحيحة، تنقلب الصورة تماماً. يصبح ReAct المضبوط الأفضل عبر جميع أحجام النماذج. PaLM-8B المضبوط بأسلوب ReAct يتفوّق على كل أساليب التحفيز مع PaLM-62B، وPaLM-62B المضبوط بأسلوب ReAct يتفوّق على كل أساليب التحفيز مع PaLM-540B. والسبب واضح: الضبط الدقيق للأسلوب العادي أو سلسلة التفكير يُعلّم النموذج حفظ حقائق (قد تكون مُختلقة)، بينما الضبط الدقيق لـ ReAct يُعلّمه كيف يبحث ويستدلّ — وهي مهارة أقدر على التعميم بكثير.
الشفافية والتحكّم البشري
من أبرز مزايا ReAct الشفافية. بما أنّ النموذج يكتب استدلاله بلغة طبيعية قبل كل فعل، يستطيع الإنسان مراقبة عملية اتخاذ القرار لحظة بلحظة. هذا يُتيح قدرتين مهمّتين:
-
تشخيص الأخطاء: حين يُخطئ ReAct، تكشف سلسلة الاستدلال بدقة أين انحرف التفكير — هل أساء النموذج فهم ملاحظة، أم اختلق حقيقة، أم صاغ استعلام بحث خاطئاً. هذا أوضح بكثير من نموذج يعمل كصندوق أسود ويُعطي إجابة خاطئة دون تفسير.
-
تعديل التفكير أثناء التنفيذ: بما أنّ الأفكار مجرد نصّ، يستطيع الإنسان تعديلها في منتصف المسار. تُبيّن الورقة أنّ حذف جملة مُختلقة وإضافة تلميح بسيط يكفيان لتوجيه مسار فاشل نحو النجاح. هذا يفتح باباً لنمط جديد من التعاون بين الإنسان والنموذج: الإنسان يُعدّل تفكير النموذج، لا أفعاله.
الأثر الذي أحدثه ReAct
2022
ReAct — ولادة النمط
المراوحة بين خطوات الاستدلال والأفعال داخل نموذج لغوي كبير واحد. أثبت أنّ التأسيس على مصادر خارجية يقضي على الهلوسة، وأنّ الاستدلال يجعل الأفعال هادفة.
2023
Toolformer — النماذج تتعلّم استدعاء الواجهات البرمجية
وسّع الفكرة بتمكين النماذج اللغوية من أن تقرّر ذاتياً متى وكيف تستدعي أدوات خارجية كالآلات الحاسبة والمترجمات ومحرّكات البحث.
2023
LangChain وAutoGPT — أُطُر العمل الوكيلية
أصبحت حلقة ReAct العمود الفقري لأطر عمل الوكلاء. وكيل ReAct بدون أمثلة في LangChain جعل استخدام الأدوات بالذكاء الاصطناعي في متناول كل مطوّر.
2024
Claude وGPT-4 وGemini — استخدام الأدوات صار معياراً
كل نموذج لغوي كبير رئيسي يدعم الآن استخدام الأدوات بشكل أصيل. نمط فكِّر-نفِّذ-لاحِظ الذي ابتكره ReAct أصبح مدمجاً في بنية الاستدلال لديها.
2025
الذكاء الاصطناعي الوكيلي — وكلاء مستقلون متعددو الخطوات
وكلاء استخدام الحاسوب ووكلاء البرمجة ووكلاء البحث كلها تعود في أصلها إلى الفكرة الجوهرية لـ ReAct: المراوحة بين الاستدلال والتفاعل مع البيئة.
الإسهام الأعمق لـ ReAct ليس نموذجاً ولا خوارزمية — إنه نمط. حلقة فكِّر-نفِّذ-لاحِظ صارت أساسية لدرجة يصعب معها تخيّل بناء وكيل ذكاء اصطناعي من دونها. كلّما استخدم Claude أداة، وكلّما بحث وكيل ذكاء اصطناعي في الويب أو تصفّح صفحة أو نفّذ شيفرة، فإنّ نمط ReAct هو الذي يعمل في الخلفية: فكِّر فيما ستفعله، نفِّذه، لاحِظ النتيجة، ثم فكِّر من جديد.
الفكرة في شيفرة برمجية
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
def react(question, llm, env, max_steps=7):
"""حلقة ReAct: فكِّر، نفِّذ، لاحِظ، كرِّر."""
context = f"Question: {question}\n"
for step in range(1, max_steps + 1):
# النموذج يولّد فكرة وفعلاً معاً
output = llm.generate(context) # مثلاً "Thought: أحتاج أن أبحث عن X\nAction: search[X]"
thought, action = parse(output)
# الفكرة تُحدِّث السياق (مجانية — بلا تفاعل مع البيئة)
context += f"Thought {step}: {thought}\n"
# الفعل يتفاعل مع البيئة ← يُنتج ملاحظة
observation = env.execute(action) # مثلاً نتيجة بحث في ويكيبيديا
context += f"Action {step}: {action}\n"
context += f"Observation {step}: {observation}\n"
if action.startswith("finish"):
return extract_answer(action)
return "لم يُعثَر على إجابة ضمن حدّ الخطوات"
# هذا كل شيء. فكِّر، نفِّذ، لاحِظ، كرِّر.
# هذه الحلقة — أو ما تفرّع عنها — تعمل داخل كل وكيل ذكاء اصطناعي حديث.المرجعYao, Zhao, Yu, Du, Shafran, Narasimhan, Cao. ReAct: Synergizing Reasoning and Acting in Language Models. ICLR, 2023.
مصطلحات هذه الورقة
- سلسلة الاستدلالReasoning Trace
- فضاء الأفعالAction Space
- التأسيسGrounding
- ملاحظةObservation
- استخدام الأدواتTool Use
- وكيلAgent
- الهلوسة الرقميةHallucination
- سلسلة التفكيرChain of Thought
- التحفيز بأمثلة قليلةFew-Shot Prompting
- الضبط الدقيقFine-Tuning