نماذج اللغة2023متوسط12 دقيقة قراءة
Toolformer: نماذج اللغة تستطيع تعليم نفسها استخدام الأدوات
Toolformer: Language Models Can Teach Themselves to Use Tools
Schick, T. · Dwivedi-Yu, J. · Dessì, R. · Raileanu, R. · Lomeli, M. · Zettlemoyer, L. · Cancedda, N. · Scialom, T. — NeurIPS
المشكلة
نماذج اللغة الكبيرة تستطيع حلّ مهام جديدة من أمثلة قليلة، لكنها — وهذا هو المفارقة — تفشل في مهارات أساسية تتقنها أنظمة بسيطة متخصصة: الحساب، واسترجاع الحقائق، وحساب التواريخ، بل وحتى ترجمة اللغات قليلة الموارد. تكبير النموذج وحده لا يحلّ هذه المشكلات. والمحاولات السابقة لتعليم النماذج كانت إما تتطلّب كمًّا ضخمًا من التعليقات البشرية، أو تحصر النموذج في مهمة واحدة تُستدعى فيها الأداة دائمًا، فيخسر مرونته كنموذج عام.
الإسهام
منهج ذاتي الإشراف يُعلِّم نموذج اللغة أن يستخدم أدوات خارجية — آلة حاسبة، ونظام أسئلة وأجوبة، ومحرّكات بحث، ونظام ترجمة، وتقويم — من خلال استدعاءات واجهات برمجية تظهر مباشرة داخل النص. النموذج هو من يقرّر متى يستدعي كل أداة، وماذا يُمرّر لها من مدخلات، وكيف يدمج نتائجها. لا يحتاج خط إلا بضعة أمثلة توضيحية لكل واجهة: النموذج يولّد استدعاءات مُرشَّحة ثم يُنفّذها، ولا يحتفظ إلا بما يُخفّض الحيرة على الرموز اللاحقة. بعد ضبط GPT-J (6.7 مليار معامل)، يحقّق Toolformer أداءً صفري العيّنات ينافس GPT-3 (175 مليار معامل) في عدّة مهام.
الأثر
أثبت Toolformer أن النماذج تستطيع تعلّم استخدام الأدوات دون إشراف بشري مكثّف، فأطلق موجة كاملة من النماذج اللغوية المعزَّزة بالأدوات. أثّر مباشرة في HuggingGPT وGorilla، وفي قدرات استدعاء الدوال التي أصبحت الآن جزءًا أساسيًّا من الواجهات التجارية مثل GPT-4 وClaude. الفكرة الجوهرية — أن إشارة الخسارة الخاصة بالنموذج نفسه تكفي لتعلّم استخدام الأدوات — أصبحت ركيزة في حركة الذكاء الاصطناعي الوكيلي.
تخيّل كاتبة موهوبة محبوسة في غرفة ليس فيها سوى آلة طباعة. تستطيع أن تكتب ببراعة عن تاريخ روما، لكن اطلب منها حساب فائدة مركّبة وستقف عاجزة. تخيّل الآن أنك تُدخل لها من تحت الباب آلة حاسبة وموسوعة وتقويمًا — لكن بلا أيّ دليل استخدام. تلتقط كل أداة وتجرّبها في سياقات مختلفة، ولا تستمرّ في استخدامها إلا حين تتأكّد أن الإجابة حسّنت كتابتها فعلًا.
هذا هو Toolformer. لا يحتاج معلّمًا يشرح له متى يلجأ إلى الآلة الحاسبة — يكتشف ذلك بنفسه عبر اختبار بسيط: هل استجابة الأداة ساعدته في التنبؤ بالكلمة التالية؟ لا تعليقات بشرية ولا قواعد جامدة — مجرّد نموذج يتعلّم أن يمدّ يده نحو الأداة المناسبة في اللحظة المناسبة.
المفارقة: براعة لغوية وعمى في الأساسيات
النماذج اللغوية الكبيرة تكتب الشعر وتُلخّص عقودًا قانونية وتجتاز امتحانات — ومع ذلك تتفوّق عليها آلة حاسبة جيب في الحساب، وتتغلّب عليها قاعدة بيانات بسيطة في استرجاع الحقائق. المفارقة واضحة: التوسّع الذي يُنتج قدرات استدلالية جديدة لا يُعالج هذه الثغرات الجوهرية.
المشكلة أعمق من مجرّد نقص في المعلومات. النماذج تختلق حقائق لأنها لا تملك آلية تتحقّق بها من ادّعاءاتها مقابل مصدر موثوق. وتفشل في الحساب لأن هدف التدريب — التنبؤ بـ التالي — لم يُلزمها يومًا بتعلّم عمليات حسابية دقيقة. كذلك لا تستطيع الوصول إلى معلومات آنية لأن معرفتها مجمَّدة عند لحظة جمع بيانات التدريب.
نحن البشر نحلّ هذا بلا عناء: نستخدم الآلة الحاسبة حين تتعقّد الأرقام، ونبحث في الإنترنت حين تخوننا الذاكرة، ونفتح التقويم حين يتعلّق الأمر بتواريخ. السؤال إذن: هل يستطيع نموذج لغوي أن يتعلّم الشيء نفسه؟
الفكرة المحورية: الاستدعاءات ليست إلا نصًّا
أول فكرة ذكية في Toolformer تتعلّق بالتمثيل: يمكن كتابة كسلسلة نصية عادية باستخدام رموز خاصة. الاستدعاء يتضمّن اسم الأداة والمدخل والاستجابة، وكلّها محاطة بعلامات تمييز. مثلًا، استدعاء الآلة الحاسبة يبدو هكذا: [Calculator(171 + 312) → 483].
بفضل هذا الترميز، لا يحتاج النموذج وحدةً منفصلة ولا تعديلًا في بنيته. كل ما عليه هو أن يتعلّم توليد هذه الرموز الخاصة في المواضع المناسبة من النص. من منظور ، لا فرق بين استدعاء أداة وتوليد أي تسلسل آخر من الرموز — الجوهر كلّه في تعلّم متى يولّدها.
هذا التصميم يجعل Toolformer غير مرتبط بأداة بعينها: أيّ أداة يمكن التعبير عن مدخلها ومخرجها نصيًّا يُمكن إضافتها. الورقة تعرض خمس أدوات — آلة حاسبة، ومحرّكا بحث (ويكيبيديا وبحث ويب عام)، ونظام أسئلة وأجوبة، ونظام ترجمة آلية، وتقويم — لكن الإطار قابل للتوسعة لأيّ واجهة برمجية نصية.
خط المعالجة: توليد، تنفيذ، ترشيح
جوهر Toolformer هو خط معالجة من ثلاث مراحل يُحوّل مجموعة بيانات نصية عادية إلى مجموعة مُعزَّزة تحتوي استدعاءات أدوات مفيدة. تخيّله كخط تجميع لضبط الجودة: النموذج يقترح إدراجات أدوات كثيرة، ثم يُختبَر كل اقتراح على أرض الواقع، وفي النهاية لا يبقى إلا ما أثبت فائدته فعلًا.
الخطوة الأولى — التوليد: لكل جملة في بيانات التدريب، يقترح النموذج استدعاءات واجهات مُرشَّحة في مواضع واعدة. يستخدم في ذلك : تُضاف بضعة أمثلة توضيحية لاستدعاءات قبل النص، ثم يولّد النموذج استدعاءاتٍ مرشَّحة عن طريق أخذ عيّنات. تُرتَّب المواضع حسب مدى توقّع النموذج ظهور رمز <API> فيها.
الخطوة الثانية — التنفيذ: كل استدعاء مرشَّح يُنفَّذ فعليًّا — الآلة الحاسبة تحسب العملية، ومحرّك البحث يسترجع نتائج، ونموذج الأسئلة يُجيب. هذا هو اختبار الواقع: المُخرج الحقيقي للأداة يحلّ محل تخمين النموذج.
الخطوة الثالثة — الترشيح: هذه هي الخطوة الحاسمة. لا يُحتفظ بالاستدعاء إلا إذا كان إدراج استجابة الأداة يُخفّض خسارة النموذج في التنبؤ بالرموز التالية. إن لم تُفِد إجابة الأداة — أو أضرّت — يُحذف الاستدعاء. ما ينجو يُشكّل مجموعة التدريب المعزَّزة.
معيار الترشيح: هل أفادت الأداة فعلًا؟
معيار الترشيح هو ما يجعل المنهج بأكمله . الفكرة بسيطة: قارن جودة تنبؤ النموذج بالرموز التي تلي موضع الاستدعاء في حالتين — حين تكون استجابة الأداة موجودة، وحين لا تكون (أو تكون فارغة).
يحسب النموذج خسارة الموزونة على الرموز التي تأتي بعد موضع الاستدعاء. إذا انخفضت الخسارة بوجود نتيجة الأداة انخفاضًا ملموسًا مقارنة بغيابها، يُعدّ الاستدعاء مفيدًا ويُحتفظ به. العتبة تُحدّد مقدار التحسّن المطلوب.
بلغة أبسط، السؤال هو: هل معرفة إجابة الأداة تجعل النموذج «أقل دهشة» ممّا يأتي بعدها؟ إذا أعادت الآلة الحاسبة العدد 483 واستمرّ النص بـ «483»، فالجواب نعم — الأداة قلّصت شكّ النموذج بشكل كبير. أما إذا كانت الإجابة لا علاقة لها بالسياق، فالخسارة لا تتغيّر تقريبًا ويُحذف الاستدعاء.
صندوق الأدوات: خمس واجهات ونموذج واحد
يعرض Toolformer منهجه من خلال خمس أدوات متنوّعة، كلّ واحدة تسدّ ثغرة مختلفة في النماذج اللغوية:
الآلة الحاسبة — تتولّى العمليات الحسابية التي تُخطئ فيها النماذج عادةً. يتعلّم النموذج توليد تعبيرات مثل Calculator(171 × 3) وإدراج الناتج مكانها.
بحث ويكيبيديا — يسترجع فقرات ذات صلة حين يحتاج النموذج إلى تأسيس وقائعي. يولّد النموذج استعلامات مثل WikiSearch("ارتفاع برج إيفل").
بحث الويب — محرّك بحث أوسع نطاقًا لاسترجاع المعرفة العامة حين لا تُغطّي ويكيبيديا الموضوع.
الإجابة عن الأسئلة — يستدعي نموذج أسئلة وأجوبة خارجيًّا يُجيب عن أسئلة وقائعية اعتمادًا على شواهد مسترجَعة، فيُكمّل أدوات البحث.
الترجمة الآلية — تترجم النصوص من لغات أخرى وإليها، وتبرز فائدتها مع اللغات قليلة الموارد.
التقويم — يُعيد التاريخ الحالي، فيُتيح للنموذج الإجابة عن أسئلة مرتبطة بالزمن يستحيل التعامل معها بمعرفة مجمَّدة.
كل أداة لا تحتاج سوى 5–10 أمثلة توضيحية مكتوبة يدويًّا في موجّه . من هذه البذور البسيطة، يُولّد النموذج آلاف الأمثلة التدريبية عبر خط التوليد والتنفيذ والترشيح.
التدريب: ضبط GPT-J على البيانات المعزَّزة
النموذج الأساسي هو GPT-J بحجم 6.7 مليار معامل. يُعلّق خط المعالجة جزءًا من مجموعة بيانات CCNet باستدعاءات واجهات — حتى 25,000 مثال لكل أداة. النقطة المحورية أن المجموعة المعزَّزة تحتوي أيضًا الأمثلة الأصلية غير المُعلَّقة، حتى لا ينسى النموذج كيف يولّد نصًّا عاديًّا بلا أدوات.
يعتمد التدريب على خسارة نمذجة اللغة الانحدارية المعتادة. يتعلّم النموذج التنبؤ برموز الاستدعاء (بما فيها علامتا <API> و</API>) كجزء من تدفّق الرموز المعتاد. عند ، يُدخَل تعديل بسيط على استراتيجية فك الترميز: كلما ظهر رمز <API> ضمن أعلى رمزًا احتمالًا (وليس الأول فقط)، يُسمح للنموذج ببدء استدعاء. هذا يرفع معدّل استخدام الأدوات دون أن يشترط ثقة كاملة من النموذج بأنه يحتاج إلى أداة.
التدريب خفيف الوزن: حتى 2,000 خطوة على 8 وحدات NVIDIA A100 باستخدام DeepSpeed ZeRO-3، بـ 128 و . النتيجة الأهم أن هذا لم يُضعف قدرات النموذج الأصلية — على المعايير المعتادة بقيت دون تغيّر.
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
def should_keep_api_call(model, text, position, api_call, response, tau):
"""احتفظ بالاستدعاء فقط إذا خفّضت استجابة الأداة الخسارة."""
# الخسارة مع تضمين استجابة الأداة
loss_with_tool = compute_loss(model, text, position,
insert=api_call + " → " + response)
# خط الأساس 1: بدون استدعاء أصلًا
loss_no_call = compute_loss(model, text, position, insert=None)
# خط الأساس 2: الاستدعاء بدون الاستجابة
loss_no_response = compute_loss(model, text, position,
insert=api_call + " → ")
# اختر خط الأساس الأفضل (الأقل خسارة)
loss_baseline = min(loss_no_call, loss_no_response)
# احتفظ فقط إذا ساعدت الاستجابة بما يكفي
return (loss_baseline - loss_with_tool) >= tauالنتائج: نموذج بـ 6.7 مليار ينافس عملاقًا بـ 175 مليار
يُقيَّم Toolformer في وضع — لا تُقدَّم أيّ أمثلة خاصة بالمهمة عند الاستدلال. النتائج لافتة:
في معايير الرياضيات (ASDiv وSVAMP وMAWPS)، يتفوّق Toolformer مع الآلة الحاسبة بفارق كبير على GPT-J وعلى نماذج أضخم منه بكثير مثل OPT (66 مليار) وGPT-3 (175 مليار). الآلة الحاسبة تمنحه دقة حسابية شبه مثالية، وهو أمر لا يستطيع التوسيع وحده تحقيقه مهما بلغ حجم النموذج.
في الأسئلة الوقائعية (مجموعات SQuAD وGoogleRE وT-REx من LAMA)، يتفوّق Toolformer مع أدوات البحث على GPT-J بهامش واسع. أدوات البحث والأسئلة تُرسي إجابات النموذج على حقائق مسترجَعة بدلًا من معرفة محفوظة قد تكون ملفّقة.
في الاستدلال الزمني على معيار TempLAMA، يمنح التقويم Toolformer تفوّقًا ملموسًا — يستطيع الإجابة عن أسئلة حول التواريخ الحالية، وهي أسئلة سيُخطئ فيها أيّ نموذج معرفته مجمَّدة.
والأهم أنه في المهام التي لا تُفيد فيها الأدوات — كالتوليد الإبداعي والفهم اللغوي العام — يُؤدّي Toolformer تمامًا كنموذج GPT-J الأساسي. لم يخسر شيئًا من عموميته.
حجم النموذج: استخدام الأدوات قدرة ناشئة
من النتائج المهمة أن القدرة على استخدام الأدوات لا تظهر عند كل أحجام النماذج. اختبر المؤلفون نسخ GPT-2 من 124 مليون إلى 1.6 مليار معامل، فوجدوا أن النماذج الأصغر لم تنجح في تعلّم استخدام الأدوات بفاعلية — أداؤها مع Toolformer كان أفضل بالكاد من خط الأساس، وأحيانًا أسوأ.
هذا يُشير إلى أن تعلّم متى تُستخدم الأداة يتطلّب مستوى معيّنًا من الفهم اللغوي لا ينشأ إلا في النماذج الأكبر. النموذج يحتاج سعة كافية ليُمثّل أمرين معًا: مفهوم استدعاء الأدوات بحدّ ذاته (وهو مهارة فوقية)، والفهم اللغوي اللازم لتحديد أيّ أداة تناسب كل سياق.
عند حجم GPT-J (6.7 مليار)، تبرز القدرة بوضوح: النموذج يُدرج استدعاءات واجهات بشكل صحيح ومنتظم حيث تُفيد، ويمتنع عنها حيث لن تُضيف شيئًا. وهذا يتّسق مع الملاحظة الأعمّ بأن كثيرًا من قدرات النماذج اللغوية الكبيرة هي قدرات ناشئة — لا تظهر إلا بعد تجاوز عتبة معيّنة من الحجم.
الطريق نحو النماذج اللغوية المعزَّزة بالأدوات
2021
WebGPT — استخدام الأدوات عبر التغذية الراجعة البشرية
درّبت OpenAI نموذج GPT-3 على استخدام متصفّح ويب عبر عروض بشرية وتعلّم معزَّز. كان فعّالًا، لكنه احتاج آلاف الحلقات المُعلَّقة بشريًّا.
2022
Self-Instruct — توليد بيانات التعليمات ذاتيًّا
أظهر وانغ وآخرون أن النماذج اللغوية الكبيرة قادرة على توليد بيانات اتّباع التعليمات بنفسها، ممّا يُقلّل الحاجة إلى التعليقات البشرية. وسّع Toolformer هذا المبدأ ليشمل استخدام الأدوات.
2023
Toolformer
استخدام أدوات ذاتي الإشراف عبر استدعاءات واجهات مُرمَّزة كرموز نصية. نموذج بـ 6.7 مليار مع أدوات ينافس نموذجًا بـ 175 مليار بدونها. لا حاجة لتعليقات بشرية على الاستدعاءات.
2023
ReAct — الاستدلال والتنفيذ معًا
دمج ياو وآخرون الاستدلال التسلسلي مع إجراءات الأدوات، فأصبح النموذج يُفكّر في الأداة التالية التي يحتاجها قبل استدعائها. عالج هذا العمل عجز Toolformer عن تسلسل الأدوات.
2023
HuggingGPT — تنسيق نماذج ذكاء اصطناعي كأدوات
وسّع فكرة استخدام الأدوات لتشمل نماذج ذكاء اصطناعي كاملة. نموذج لغوي مُنسِّق يتولّى التخطيط واختيار النماذج المتخصصة من منصة Hugging Face وتنسيق عملها معًا.
2024
استدعاء الدوال يصبح معيارًا صناعيًّا
أصبحت GPT-4 وClaude وGemini جميعها مزوّدة بقدرات استدعاء دوال مدمجة. انتقل استخدام الأدوات من فكرة بحثية إلى معيار إنتاجي مُعتمَد، بناءً على الأسس التي أرساها Toolformer.
الإسهام الدائم لـ Toolformer لا يكمن في أداة بعينها ولا في نتيجة معيارية محدّدة — بل في إثبات أن إشارة الخسارة الخاصة بـالنموذج اللغوي تكفي وحدها للإشراف على تعلّم استخدام الأدوات دون أيّ تعليقات بشرية. هذه الرؤية هي ما فتح عصر النماذج اللغوية المعزَّزة بالأدوات. اليوم، كل نموذج لغوي رئيسي يستطيع استدعاء دوال وتصفّح الويب وتنفيذ شيفرة والتفاعل مع قواعد بيانات. الخطّ الممتد من Toolformer إلى الذكاء الاصطناعي الوكيلي الحديث خطٌّ مباشر ومتّصل.
المرجعSchick, Dwivedi-Yu, Dessì, Raileanu, Lomeli, Zettlemoyer, Cancedda, Scialom. Toolformer: Language Models Can Teach Themselves to Use Tools. NeurIPS, 2023.
مصطلحات هذه الورقة
- استخدام الأدواتTool Use
- التعلم ذاتي الإشرافSelf-Supervised Learning
- استدعاءات الواجهات البرمجيةAPI Calls
- معيار الحيرة الاحتماليةPerplexity
- الضبط الدقيقFine-Tuning
- التعلم في السياقIn-Context Learning
- النمط الصفريZero-Shot
- النموذج اللغويLanguage Model
- العشوائية المتقاطعةCross Entropy
- النموذج التوليدي التراجعيAutoregressive Model
- وحدة لغوية (رمز)Token
- تجزئة النصوصTokenization
- النمط القليل العيّناتFew-Shot
- التدريب المسبقPretraining
- المعيار المرجعيBenchmark