Toolformer — نموذج لغوي مُعزَّز بالأدوات

From Systems analysis wiki
Jump to navigation Jump to search

Toolformer هو نهج لإنشاء نماذج لغة كبيرة (LLM) يسمح لها باستخدام أدوات خارجية بشكل مستقل من خلال استدعاءات API[1]. تم اقتراح هذه الطريقة في عام 2023 من قبل مجموعة من الباحثين من Meta AI Research بالتعاون مع جامعة بومبيو فابرا (إسبانيا). في ورقتهم البحثية «Toolformer: Language Models Can Teach Themselves to Use Tools» (Timo Schick et al., 2023)، يشير المؤلفون إلى مفارقة: تُظهر نماذج اللغة الكبيرة الحديثة قدرات مذهلة على حل مهام جديدة ومعقدة من خلال أمثلة نصية، ولكنها في الوقت نفسه غالبًا ما تكون غير قادرة على أداء العمليات الأساسية بشكل موثوق، مثل الحساب أو البحث عن الحقائق[1]. للتغلب على هذه القيود، طور الفريق نموذج Toolformer، الذي يتعلم ذاتيًا اختيار واستدعاء الأدوات الخارجية (مثل محركات البحث أو الآلات الحاسبة أو خدمات الترجمة) لتحسين جودة أداء مجموعة متنوعة من المهام[1]. في فبراير 2023، تم تقديم هذا النموذج كنسخة أولية على arXiv، وحصل لاحقًا على اعتراف وتم قبوله في مؤتمر NeurIPS 2023[2].

الفكرة الرئيسية وقدرات النموذج

يمثل Toolformer نموذجًا لغويًا تم ضبطه بدقة، وهو قادر على تحديد الأداة التي يجب استدعاؤها، ومتى يتم استدعاؤها، وما هي المعلمات التي يجب تمريرها، وكيفية دمج النتيجة التي تم الحصول عليها في النص الذي يتم إنشاؤه[3]. يتم تنظيم التدريب في وضع الإشراف الذاتي (self-supervised) — حيث يقوم النموذج بنفسه بتوليد وتقييم أمثلة استخدام الـ API، متطلبًا فقط مجموعة صغيرة من العروض التوضيحية (بضعة أمثلة حرفيًا) لكل أداة[3]. على عكس الأساليب السابقة، لا يتطلب الأمر بيانات مصنفة واسعة النطاق أو قوالب موجهة من قبل الإنسان لدمج الأدوات؛ فالنموذج يتعلم بنفسه متى وكيف يطبق واجهة برمجة تطبيقات معينة، مع الحفاظ على قدراته اللغوية العامة وعدم الاقتصار على مهام محددة بدقة[1].

قام المؤلفون بدمج مجموعة واسعة من الأدوات في Toolformer، متاحة عبر استدعاءات API بسيطة. في النسخة التجريبية، تم استخدام الأدوات المساعدة التالية[3]:

  • آلة حاسبة – لإجراء العمليات الحسابية.
  • نظام «سؤال-جواب» (Q&A) – للبحث عن إجابات لأسئلة واقعية في قاعدة معرفية.
  • محركات بحث (نوعان مختلفان) – للبحث عن المعلومات الحديثة على الإنترنت.
  • نظام ترجمة آلية – لترجمة النصوص بين اللغات.
  • تقويم – للحصول على معلومات حول التواريخ والأوقات.

تُعرض كل أداة في شكل جزء نصي (علامة نصية خاصة)، مما يسمح للنموذج بتضمين استدعاء الـ API مباشرةً في النص الذي ينشئه[4]. على سبيل المثال، يمكن للنموذج إدراج بنية مثل `[Calculator(...)]` أو `[Search("query")]` في السياق الحالي، للإشارة إلى الحاجة لطلب خارجي. أثناء استنتاج الإجابة، يُنشئ Toolformer رمزًا خاصًا (سهم →)، والذي يقوم النظام بناءً عليه بإيقاف التوليد مؤقتًا وتنفيذ استدعاء الـ API المقابل؛ ثم يتم إدراج النتيجة التي تم الحصول عليها في النص، وبعد ذلك يستمر توليد الجزء التالي[4]. تسمح هذه الآلية للنموذج بالاستعانة ديناميكيًا بقدرات الخدمات الخارجية، مع الحفاظ على كونه وحدة لغوية موحدة دون تغيير في بنيته.

تدريب النموذج (المنهجية)

وصف المطورون عملية تدريب Toolformer في عدة مراحل[4]، باستخدام تقنية التعلم ضمن السياق (in-context learning) لتوليد بيانات اصطناعية[1]:

  1. توليد استدعاءات API مرشحة. أولاً، يتم أخذ نصوص من مجموعة بيانات كبيرة (مثل المقالات أو صفحات الويب) ويتم إدراج استدعاءات أدوات بشكل مصطنع فيها، والتي يمكن أن تساعد في استكمال أو إثراء النص. يقوم النموذج بتوليد هذه الإضافات بنفسه باستخدام التوجيه المعتمد على عدد قليل من الأمثلة (N-shot prompting)، بالاعتماد على بعض النماذج المحددة يدويًا لاستخدام كل API[1]. على سبيل المثال، قد يتلقى النموذج جزءًا نصيًا: «في عام 2024، كان عدد سكان المدينة [QA("ما هو عدد سكان هذه المدينة؟") → ...] نسمة»، حيث QA() هو استدعاء لنظام الأسئلة والأجوبة الذي يجب أن يعيد البيانات المفقودة. لكل أداة، يتم اختيار سياقات مناسبة؛ فبالنسبة للآلة الحاسبة، يختار النموذج الجمل التي تحتوي على عدة أرقام وكلمات مثل «يساوي» أو «المجموع»[4] — حيث تكون النتيجة الحسابية ضرورية بالفعل.
  2. تنفيذ استدعاءات الـ API وإثراء البيانات. بعد ذلك، يتم تنفيذ جميع الاستدعاءات التي أنشأها النموذج فعليًا — على سبيل المثال، إرسال استعلامات إلى محرك بحث أو حساب تعبيرات على الآلة الحاسبة. يتم إدراج الإجابات التي تم الحصول عليها مرة أخرى في النصوص، لتشكيل صيغ مكتملة من الجمل مع إضافات مثل `{answer}`[4][4]. في الوقت نفسه، يتم الاحتفاظ بالصيغ «الفارغة» (بدون إدراج الإجابة)، وكذلك النصوص الأصلية بدون أي استدعاءات — للمقارنة لاحقًا.
  3. التصفية والتقييم الذاتي للفائدة. في هذه المرحلة، يقوم Toolformer بتقييم أي من استدعاءات الـ API التي تم إنشاؤها مفيدة حقًا للتنبؤ ببقية النص بشكل مستقل[4]. تتم مقارنة احتمالية استكمال النموذج للنص في ثلاثة سيناريوهات: (أ) بدون أي استدعاء، (ب) مع استدعاء الأداة دون إدراج النتيجة، (ج) مع استدعاء الأداة وإدراج النتيجة[4]. إذا أدت إضافة إجابة API معينة إلى زيادة احتمالية النموذج للتنبؤ الصحيح ببقية الجملة (أي أنها تساعد النموذج بالفعل على التنبؤ بالكلمات اللاحقة)، فإن هذا المثال يعتبر مفيدًا. يتم الاحتفاظ فقط بالإضافات التي تحقق زيادة في الاحتمالية في مجموعة البيانات. وبهذه الطريقة، يتم استبعاد الحالات التي كان فيها استدعاء الأداة زائدًا عن الحاجة أو لم يضف معلومات جديدة. أخيرًا، يتم ضبط النموذج بدقة (fine-tuning) على مجموعة البيانات المصفاة الناتجة، والتي تحتوي على أمثلة حقيقية من النصوص مع استدعاءات API مدرجة على النحو الأمثل[1]. يتم التدريب وفقًا للهدف القياسي لنمذجة اللغة — التنبؤ بالرمز (token) التالي في التسلسل، بما في ذلك الرموز التي تمثل نتائج استدعاءات الأدوات.

من المهم التأكيد على أن دمج كل أداة جديدة تطلب فقط بضعة أمثلة يدوية لاستخدامها — وبعد ذلك، استمر توليد بيانات التدريب تلقائيًا[3]. بفضل هذا، فإن نهج Toolformer لا يعتمد تقريبًا على توفر مجموعات بيانات مصنفة متخصصة ويقلل من الجهد المطلوب لتصنيف البيانات. يتعلم النموذج بنفسه تنسيق ومدى ملاءمة استدعاءات الـ API ويحافظ في نفس الوقت على طابعه العالمي: فهو يستخدم الأدوات فقط عندما تكون ضرورية حقًا لحل المهمة المطروحة[1].

النتائج التجريبية

لإجراء اختبار تجريبي للطريقة، استخدم الباحثون نموذجًا لغويًا موجودًا بالفعل وهو GPT-J (6.7 مليار معلمة) — وهو نموذج لغة كبير مفتوح المصدر تم تدريبه على مجموعة بيانات The Pile[4]. تم ضبط هذا النموذج بدقة وفقًا للإجراء الموصوف، مما أدى إلى إنشاء Toolformer على أساس GPT-J. تم تقييم أداء النهج الجديد في وضع zero-shot (بدون أمثلة) على عدد من المهام القياسية، بما في ذلك حل المسائل الرياضية النصية، والبحث عن الحقائق، والإجابة على الأسئلة المعرفية (QA)، بالإضافة إلى الترجمة وملء الفراغات في النص. كبيانات اختبار، تم استخدام مجموعات بيانات مفتوحة مثل Natural Questions و TriviaQA (لتقييم المعرفة الواقعية) ومجموعات مسائل ASDiv و MAWPS و SVAMP (مسائل رياضية نصية حسابية)، بالإضافة إلى معايير QA متعددة اللغات مثل MLQA و LAMA[5].

أظهرت النتائج أن Toolformer يتفوق بشكل كبير على النموذج الأصلي من نفس الحجم في العديد من المهام[1]. علاوة على ذلك، بفضل ربط الأدوات، تمكن النموذج الصغير نسبيًا (6.7 مليار معلمة) من التفوق على نموذج GPT-3 الأكبر بكثير (175 مليار معلمة) في عدد من المقاييس[1][6]. على سبيل المثال، في المسائل الرياضية النصية التي تتطلب حسابات دقيقة، أظهر Toolformer تقدمًا ملحوظًا بشكل خاص مقارنة بنماذج اللغة الكبيرة العادية، حيث حل هذه المسائل بدقة بفضل الآلة الحاسبة، بينما كان حتى GPT-3 يرتكب أخطاء[1]. في اختبارات الأسئلة الواقعية (QA)، أظهر Toolformer المستند إلى GPT-J أيضًا جودة إجابة مماثلة أو أفضل من GPT-3، حيث كان بإمكانه إجراء بحث على الإنترنت للحصول على معلومات محدثة[1]. في الوقت نفسه، من المهم أن النهج الجديد لم يضعف القدرات اللغوية العامة للنموذج، مثل استكمال النص بشكل متماسك على البيانات العادية: حافظ Toolformer على مستوى توليد اللغة الطبيعية بدون أدوات على نفس مستوى GPT-J الأصلي[3]. بعبارة أخرى، لم تؤدِ إضافة وظيفة استدعاء الـ API إلى «سلب» النموذج مهاراته الأساسية، بل وسعتها بقدرات إضافية.

أهمية العمل والأبحاث المستقبلية

أظهر تطوير Toolformer إمكانية مبدئية لـتدريب نموذج على استخدام أدوات خارجية عمليًا بدون تصنيف يدوي، وذلك من خلال توليد بيانات اصطناعية وتقييم ذاتي للفائدة. يفتح هذا الإنجاز الطريق نحو نماذج لغة كبيرة أكثر كفاءة وموثوقية: فبدلاً من زيادة مليارات المعلمات لحفظ الحقائق أو القواعد الرياضية، يمكن لنموذج صغير نسبيًا الاستعانة ديناميكيًا بمصادر خارجية (قواعد بيانات معرفية، آلات حاسبة، خدمات) لتعويض نقاط ضعفه[1]. يسمح هذا النهج بتقليل عدد «الهلوسات» (عندما يختلق النموذج معلومات غير موجودة)، وزيادة دقة الإجابات وحداثة المعرفة دون الحاجة إلى إعادة تدريب النموذج بالكامل. في جوهره، يحقق Toolformer «أفضل ما في العالمين» — حيث يجمع بين المهارات اللغوية لنموذج كبير ودقة الأدوات المتخصصة[3].

أصبح عمل Schick وزملائه من أوائل الأعمال التي أظهرت إتقان نماذج اللغة الكبيرة لواجهات برمجة التطبيقات الخارجية بشكل مستقل، وأثار اهتمامًا كبيرًا في المجتمع. ظهرت أبحاث لاحقة تطور هذه الفكرة. على سبيل المثال، في عام 2023، تم اقتراح نموذج Graph-ToolFormer، الذي يكيف مبادئ Toolformer للعمل مع البيانات الرسومية. بالاعتماد على التوجيهات التي تم إنشاؤها بواسطة ChatGPT، يعلم Graph-ToolFormer النموذج اللغوي استدعاء أدوات خارجية لحل مهام التحليل الرسومي (مثل الحصول على خصائص الرسم البياني، والعمل مع شبكات المعرفة، وما إلى ذلك)[7]. وهناك تطور آخر ملحوظ هو نموذج Gorilla (من جامعة كاليفورنيا، بيركلي، 2023)، الذي يركز على الاستخدام الدقيق للعديد من واجهات برمجة التطبيقات البرمجية الخارجية[8]. Gorilla هو نموذج LLaMA تم ضبطه بدقة على مجموعة واسعة من الوظائف الموثقة؛ وهو قادر على توليد استدعاءات API صحيحة بناءً على وصف المهمة، وبنجاح كبير لدرجة أنه تفوق في التجارب حتى على GPT-4 في دقة صياغة استدعاءات المكتبات والخدمات[8]. يشتمل Gorilla على تكامل مع آلية بحث في التوثيق، مما يسمح بتحديث المعلومات حول تغييرات الـ API ويقلل بشكل كبير من الأخطاء والهلوسات عند استخدام الأدوات[8]. تؤكد هذه الأعمال أهمية الاتجاه الذي فتحه Toolformer: يُنظر إلى الجمع بين نماذج اللغة الكبيرة والأدوات الخارجية كمسار واعد لإنشاء أنظمة ذكاء اصطناعي أكثر قوة وموثوقية.

يُلاحظ أن فكرة دمج الأدوات في نماذج اللغة لا تتطور في الأبحاث فحسب، بل في الصناعة أيضًا. ففي مارس 2023، قدمت شركة OpenAI نظام الإضافات (plugins) لـ ChatGPT – وهو واجهة خاصة تسمح بربط النموذج بخدمات خارجية (متصفح ويب، قواعد بيانات معرفية، محركات حسابية، إلخ) للحصول على معلومات محدثة وإجراء العمليات الحسابية[9]. لطالما طلب المستخدمون مثل هذه الوظيفة، وظهور الإضافات يطبق عمليًا مفهومًا مشابهًا لـ Toolformer: يتم استكمال النموذج بـ «أدوات» لتوسيع قدراته في حل مجموعة متنوعة من استفسارات المستخدمين[9]. وهكذا، يندرج Toolformer ضمن الاتجاه العام لتطور الذكاء الاصطناعي، حيث تصبح نماذج اللغة الكبيرة منصة قادرة على استخدام المعرفة والحسابات الخارجية عند الطلب. لقد وضع البحث الذي أجراه فريق Meta AI و UPF أساسًا مهمًا لهذا الاتجاه، حيث أظهر كيف يمكن لنماذج اللغة الكبيرة أن تتعلم العمل مع الأدوات عمليًا بدون إشراف يدوي، وبالتالي تقترب من أن تصبح مساعدًا ذكيًا أكثر عالمية وأمانًا[1][3].

روابط خارجية

مراجع

  • Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
  • Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. NeurIPS 2023. OpenReview.
  • Li, M. et al. (2023). API-Bank: A Comprehensive Benchmark for Tool-Augmented LLMs. arXiv:2304.08244.
  • Zhang, T. et al. (2023). Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT. arXiv:2304.11116.
  • Patil, S. G. et al. (2023). Gorilla: Large Language Model Connected with Massive APIs. arXiv:2305.15334.
  • Qin, Y. et al. (2023). ToolLLM: Facilitating Large Language Models to Master 16 000+ Real-World APIs. arXiv:2307.16789.
  • Li, Y. et al. (2024). Tool Learning with Large Language Models: A Survey. arXiv:2405.17935.
  • OpenAI (2023). ChatGPT Plugins. OpenAI Blog.
  • Brown, T. B. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
  • Schick, T. et al. (2023). Meta AI & UPF’s Toolformer: Enabling Language Models to Teach Themselves to Use External Tools. Synced Review.


هوامش

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 Schick, T. et al. «Meta AI & UPF's Toolformer: Enabling Language Models to Teach Themselves to Use External Tools». Synced. [١]
  2. Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». OpenReview. [٢]
  3. 3.0 3.1 3.2 3.3 3.4 3.5 3.6 Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». arXiv. [٣]
  4. 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 OXEN AI. «Arxiv Dives Toolformer: Language models can teach themselves to use tools». Medium. [٤]
  5. «Toolformer: Language Models Can Teach Themselves to Use Tools». Papers With Code. [٥]
  6. Brown, Tom B. et al. «Language Models are Few-Shot Learners». arXiv. [٦]
  7. Zhang, Tingkai et al. «Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT». arXiv. [٧]
  8. 8.0 8.1 8.2 Patil, Shishir G. et al. «Gorilla: Large Language Model Connected with Massive APIs». arXiv. [٨]
  9. 9.0 9.1 «ChatGPT plugins». OpenAI. [٩]