Toolformer (FA)

From Systems analysis Wiki
Jump to navigation Jump to search

Toolformer — رویکردی برای ساخت مدل‌های زبانی بزرگ (LLM) است که به آن‌ها امکان می‌دهد به‌طور مستقل از ابزارهای خارجی از طریق فراخوانی API بهره ببرند[1]. این روش در سال ۲۰۲۳ توسط گروهی از پژوهشگران Meta AI Research به همراه دانشگاه Pompeu Fabra (اسپانیا) معرفی شد. نویسندگان در مقاله‌ی خود با عنوان «Toolformer: Language Models Can Teach Themselves to Use Tools» (Timo Schick و همکاران، ۲۰۲۳) به یک تناقض اشاره می‌کنند: LLMهای مدرن توانایی‌های شگفت‌انگیزی در حل وظایف پیچیده‌ی جدید بر اساس نمونه‌های متنی از خود نشان می‌دهند، اما در عین حال اغلب قادر به انجام قابل‌اتکای عملیات پایه — مانند محاسبه یا جستجوی واقعیت‌ها — نیستند[1]. برای غلبه بر این محدودیت‌ها، تیم پژوهشی مدل Toolformer را توسعه داد که به‌صورت خودآموز یاد می‌گیرد ابزارهای خارجی (مانند موتورهای جستجو، ماشین‌حساب یا سرویس‌های ترجمه) را انتخاب و فراخوانی کند تا کیفیت انجام وظایف گوناگون را افزایش دهد[1]. این مدل در فوریه ۲۰۲۳ به صورت پیش‌چاپ در arXiv منتشر شد و سپس در کنفرانس NeurIPS 2023 پذیرفته شد[2].

ایده‌ی اصلی و قابلیت‌های مدل

Toolformer یک مدل زبانی fine-tuning شده است که قادر است تصمیم بگیرد کدام ابزار را فراخوانی کند، در چه زمانی آن را فراخوانی کند، چه پارامترهایی را ارسال کند و چگونه نتیجه‌ی دریافتی را در متن تولیدی جای دهد[3]. آموزش در قالب self-supervised سازماندهی شده است — مدل خودش نمونه‌های استفاده از API را تولید و ارزیابی می‌کند و تنها به تعداد کمی نمونه‌ی نمایشی (به معنای واقعی چند مثال) برای هر ابزار نیاز دارد[3]. برخلاف رویکردهای پیشین، نیازی به برچسب‌گذاری گسترده یا قالب‌های انسانی برای یکپارچه‌سازی ابزارها نیست؛ مدل خودش می‌آموزد کِی و چگونه از هر API استفاده کند، در حالی که توانایی‌های زبانی عمومی خود را حفظ می‌کند و به وظایف محدود مشخصی منحصر نمی‌شود[1].

نویسندگان طیف گسترده‌ای از ابزارهای قابل‌دسترس از طریق فراخوانی‌های ساده‌ی API را در Toolformer یکپارچه کردند. در نسخه‌ی آزمایشی، ابزارهای زیر به‌کار گرفته شدند[3]:

  • ماشین‌حساب — برای انجام محاسبات ریاضی.
  • سیستم پرسش-پاسخ (Q&A) — برای یافتن پاسخ سؤالات واقعی از پایگاه دانش.
  • موتورهای جستجو (۲ موتور متفاوت) — برای جستجوی اطلاعات روزآمد در اینترنت.
  • سیستم ترجمه‌ی ماشینی — برای ترجمه‌ی متن بین زبان‌ها.
  • تقویم — برای دریافت اطلاعات درباره‌ی تاریخ و زمان.

هر ابزار در قالب یک رشته‌ی متنی (برچسب متنی ویژه) نمایش داده می‌شود که به مدل امکان می‌دهد فراخوانی API را مستقیماً در متن تولیدی جاسازی کند[4]. برای مثال، مدل می‌تواند سازه‌ای مانند ‎`[Calculator(...)]`‎ یا ‎`[Search("جستجو")]`‎ را در زمینه‌ی جاری وارد کند تا نیاز به رجوع خارجی را نشان دهد. در حین تولید پاسخ، Toolformer یک نماد ویژه (پیکان ←) تولید می‌کند که سیستم بر اساس آن تولید را متوقف می‌کند و فراخوانی API مربوطه را اجرا می‌کند؛ نتیجه‌ی دریافتی در متن جایگذاری شده و سپس تولید ادامه می‌یابد[4]. این مکانیزم به مدل اجازه می‌دهد به‌صورت پویا از قابلیت‌های سرویس‌های خارجی بهره ببرد، در حالی که همچنان یک ماژول زبانی یکپارچه بدون تغییر معماری باقی می‌ماند.

آموزش مدل (روش‌شناسی)

توسعه‌دهندگان فرآیند آموزش Toolformer را در چند مرحله توصیف کردند[4] و از تکنیک in-context learning برای تولید داده‌های مصنوعی استفاده نمودند[1]:

  1. تولید نامزدهای فراخوانی API. ابتدا متن‌هایی از یک مجموعه‌داده‌ی بزرگ (مانند مقالات یا صفحات وب) گرفته می‌شوند و فراخوانی‌های ابزارها که می‌توانند به ادامه یا تکمیل متن کمک کنند به‌صورت مصنوعی در آن‌ها وارد می‌شوند. این جاسازی‌ها توسط خود مدل با استفاده از N-shot prompting و با تکیه بر چند نمونه‌ی استفاده از هر API که به‌صورت دستی تعریف شده‌اند، تولید می‌شوند[1]. برای مثال، مدل ممکن است قطعه‌ای مانند این دریافت کند: «در سال ۲۰۲۴ جمعیت شهر [QA("جمعیت این شهر چقدر است؟") → ...] نفر بود»، که در آن QA( ) یک فراخوانی سیستم پرسش-پاسخ است که باید داده‌ی مفقود را بازگرداند. برای هر ابزار، زمینه‌های مناسب انتخاب می‌شوند؛ برای مثال، برای ماشین‌حساب، مدل جملاتی را انتخاب می‌کند که حاوی چندین عدد و کلماتی مانند «برابر است با» یا «جمع کل» هستند[4] — جایی که نتیجه‌ی حسابی واقعاً مورد نیاز خواهد بود.
  2. اجرای فراخوانی‌های API و تکمیل داده‌ها. سپس تمام فراخوانی‌های تولیدشده توسط مدل به‌صورت واقعی اجرا می‌شوند — برای مثال، درخواست‌ها به موتور جستجو ارسال یا عبارات در ماشین‌حساب محاسبه می‌شوند. پاسخ‌های دریافتی در متن‌ها جایگذاری می‌شوند و نسخه‌های کامل‌شده‌ای از جملات با جاسازی‌های از نوع ‎`{پاسخ}`‎ تشکیل می‌دهند[4][4]. در عین حال، نسخه‌های «خالی» (بدون جایگذاری پاسخ) و همچنین متن‌های اصلی بدون هیچ فراخوانی — برای مقایسه‌ی بعدی — نگه داشته می‌شوند.
  3. فیلتر کردن و ارزیابی خودکار سودمندی. در این مرحله، Toolformer به‌طور مستقل ارزیابی می‌کند که کدام‌یک از جاسازی‌های API تولیدشده واقعاً برای پیش‌بینی ادامه‌ی متن مفید هستند[4]. احتمال ادامه‌ی متن توسط مدل زبانی در سه سناریو مقایسه می‌شود: (الف) بدون هیچ فراخوانی، (ب) با فراخوانی ابزار اما بدون جایگذاری نتیجه، (ج) با فراخوانی و جایگذاری نتیجه[4]. اگر افزودن پاسخ یک API خاص احتمال مدل برای ادامه‌ی صحیح عبارت را افزایش دهد (یعنی واقعاً به مدل در پیش‌بینی کلمات بعدی کمک کند)، آن نمونه مفید تلقی می‌شود. تنها جاسازی‌هایی که منجر به افزایش احتمال می‌شوند در مجموعه‌داده باقی می‌مانند. این‌گونه مواردی که فراخوانی ابزار اضافی بوده یا اطلاعات جدیدی اضافه نکرده حذف می‌شوند. سرانجام، مدل بر روی dataset فیلترشده‌ی حاصل که شامل نمونه‌های واقعی متن با فراخوانی‌های API بهینه جاسازی‌شده است، fine-tuning می‌شود[1]. آموزش بر اساس هدف استاندارد مدل‌سازی زبانی — پیش‌بینی token بعدی دنباله، از جمله token‌هایی که نتایج فراخوانی‌های ابزار را نشان می‌دهند — انجام می‌پذیرد.

مهم است تأکید شود که برای معرفی هر ابزار جدید تنها چند نمونه‌ی دستی از استفاده از آن کافی بود — و پس از آن، تولید داده‌های آموزشی به‌صورت خودکار ادامه می‌یافت[3]. به این ترتیب، رویکرد Toolformer عملاً به وجود مجموعه‌داده‌های برچسب‌گذاری‌شده‌ی تخصصی وابسته نیست و هزینه‌ی برچسب‌گذاری داده را به حداقل می‌رساند. مدل خودش قالب و مناسب بودن فراخوانی‌های API را فرا می‌گیرد و در عین حال جهانی‌بودن خود را حفظ می‌کند: ابزارها را تنها زمانی به‌کار می‌گیرد که واقعاً برای حل وظیفه‌ی مطرح‌شده نیاز باشد[1].

نتایج آزمایشی

برای ارزیابی آزمایشی روش، پژوهشگران از مدل زبانی موجود GPT-J (۶.۷ میلیارد پارامتر) — یک LLM متن‌باز آموزش‌دیده بر روی مجموعه‌داده‌ی The Pile — استفاده کردند[4]. این مدل طبق رویه‌ی توصیف‌شده fine-tuning شد و Toolformer مبتنی بر GPT-J به دست آمد. عملکرد رویکرد جدید در حالت zero-shot (بدون نمونه) روی مجموعه‌ای از وظایف استاندارد، از جمله حل مسائل ریاضی متنی، جستجوی واقعیت‌ها و پاسخ به سؤالات دانشی (QA)، ترجمه و پر کردن جاهای خالی در متن ارزیابی شد. به عنوان داده‌های آزمون از مجموعه‌داده‌های باز سؤال مانند Natural Questions، TriviaQA (برای ارزیابی دانش واقعی) و مجموعه‌داده‌های ASDiv، MAWPS، SVAMP (مسائل ریاضی متنی ارتیمتیکی)، و همچنین benchmark‌های چندزبانه‌ی MLQA، LAMA استفاده شد[5].

نتایج نشان داد که Toolformer در بسیاری از وظایف به‌طور چشمگیری از مدل اصلی هم‌اندازه پیشی می‌گیرد[1]. علاوه بر این، به لطف اتصال ابزارها، مدل نسبتاً کوچک (۶.۷ میلیارد پارامتر) توانست از نظر برخی معیارها از مدل بسیار بزرگ‌تر GPT-3 (۱۷۵ میلیارد پارامتر) پیشی بگیرد[1][6]. برای مثال، در مسائل ریاضی متنی که نیاز به محاسبات دقیق دارند، Toolformer پیشرفت بسیار محسوسی نسبت به LLMهای معمولی نشان داد و این مسائل را دقیقاً با استفاده از ماشین‌حساب حل کرد، در حالی که حتی GPT-3 نیز مرتکب خطا می‌شد[1]. در آزمون‌های پرسش-پاسخ واقعی (QA) نیز Toolformer مبتنی بر GPT-J کیفیت پاسخ‌دهی برابر یا بهتر از GPT-3 را نشان داد، زیرا می‌توانست برای اطلاعات روزآمد جستجوی اینترنتی انجام دهد[1]. در عین حال، نکته‌ی مهم این است که رویکرد جدید توانایی‌های عمومی مدل زبانی را کاهش نداد، مانند ادامه‌ی منسجم متن بر روی داده‌های معمولی: Toolformer سطح تولید زبان طبیعی بدون ابزار را در حد GPT-J اصلی حفظ کرد[3]. به عبارت دیگر، افزودن قابلیت فراخوانی API مهارت‌های پایه‌ی مدل را «نگرفت»، بلکه آن‌ها را با امکانات اضافی گسترش داد.

اهمیت این کار و پژوهش‌های بعدی

توسعه‌ی Toolformer امکان اصولی آموزش مدل برای استفاده از ابزارهای خارجی با حداقل برچسب‌گذاری دستی را از طریق تولید داده‌های مصنوعی و ارزیابی خودکار سودمندی به اثبات رساند. این دستاورد مسیری را به سوی LLMهای کارآمدتر و قابل‌اتکاتر می‌گشاید: به جای افزایش میلیاردها پارامتر برای حفظ واقعیت‌ها یا قوانین ریاضی، یک مدل نسبتاً فشرده می‌تواند به‌صورت پویا از منابع خارجی (پایگاه‌های دانش، ماشین‌حساب‌ها، سرویس‌ها) بهره‌مند شود تا کاستی‌های خود را جبران کند[1]. این رویکرد امکان کاهش «توهمات» (زمانی که مدل اطلاعات ساختگی تولید می‌کند)، افزایش دقت پاسخ‌ها و به‌روز نگه داشتن دانش را بدون بازسازی کامل مدل فراهم می‌آورد. در اصل، Toolformer به «بهترین ترکیب دو دنیا» دست می‌یابد — با ترکیب مهارت‌های زبانی مدل بزرگ و دقت ابزارهای تخصصی[3].

کار Schick و همکاران از اولین کارهایی بود که خودآموزی مستقل LLMها در استفاده از APIهای خارجی را نشان داد و علاقه‌ی زیادی در جامعه‌ی پژوهشی برانگیخت. پژوهش‌های بیشتری که این ایده را توسعه می‌دهند پدیدار شدند. برای مثال، در سال ۲۰۲۳ مدل Graph-ToolFormer معرفی شد که اصول Toolformer را برای کار با داده‌های گراف تطبیق می‌دهد. با تکیه بر راهنمایی‌های تولیدشده توسط ChatGPT، Graph-ToolFormer به مدل زبانی می‌آموزد که ابزارهای خارجی را برای حل وظایف تحلیل گراف (مانند دریافت ویژگی‌های گراف، کار با شبکه‌های دانش و غیره) فراخوانی کند[7]. یک توسعه‌ی دیگر قابل‌توجه مدل Gorilla (دانشگاه کالیفرنیا، برکلی، ۲۰۲۳) است که بر استفاده‌ی دقیق از تعداد زیادی از APIهای نرم‌افزاری شخص ثالث تمرکز دارد[8]. Gorilla یک مدل LLaMA fine-tuning شده روی مجموعه‌ی گسترده‌ای از توابع مستندشده است؛ این مدل قادر است فراخوانی‌های صحیح API را بر اساس توصیف وظیفه تولید کند و در آزمایش‌ها چنان موفق بوده که حتی از GPT-4 در دقت شکل‌دهی فراخوانی‌های کتابخانه‌ها و سرویس‌ها پیشی گرفته است[8]. در Gorilla یکپارچه‌سازی با مکانیزم جستجو در مستندات پیاده‌سازی شده که امکان به‌روزرسانی اطلاعات درباره‌ی تغییرات API را فراهم می‌کند و خطاها و توهمات در استفاده از ابزارها را به‌طور قابل‌توجهی کاهش می‌دهد[8]. این کارها اهمیت جهتی را که Toolformer گشود تأیید می‌کنند: ترکیب LLMها با ابزارهای خارجی به عنوان مسیری امیدبخش به سوی ساخت سیستم‌های AI قوی‌تر و قابل‌اتکاتر در نظر گرفته می‌شود.

شایان ذکر است که ایده‌ی یکپارچه‌سازی ابزارها در مدل‌های زبانی نه‌تنها در پژوهش، بلکه در صنعت نیز در حال توسعه است. برای مثال، در مارس ۲۰۲۳ شرکت OpenAI سیستم پلاگین‌های ChatGPT را معرفی کرد — یک رابط ویژه که به مدل امکان می‌دهد به سرویس‌های خارجی (مرورگر وب، پایگاه‌های دانش، موتورهای محاسباتی و غیره) برای دریافت اطلاعات روزآمد و انجام محاسبات متصل شود[9]. کاربران مدت‌ها چنین قابلیتی را درخواست کرده بودند و ظهور پلاگین‌ها در عمل مفهومی مشابه Toolformer را تحقق می‌بخشد: مدل با «ابزارها» برای گسترش توانایی‌هایش در پاسخ به درخواست‌های گوناگون کاربران تکمیل می‌شود[9]. بدین‌سان، Toolformer در روند کلی توسعه‌ی هوش مصنوعی جای می‌گیرد، جایی که مدل‌های زبانی بزرگ به پلتفرمی تبدیل می‌شوند که می‌تواند به درخواست، از دانش و محاسبات خارجی بهره بگیرد. پژوهشی که توسط تیم Meta AI و UPF انجام شد، پایه‌ی مهمی برای این جهت گذاشت و نشان داد که LLMها چگونه می‌توانند بدون راهنمایی دستی یاد بگیرند با ابزارها کار کنند و بدین‌ترتیب به دستیار هوشمندی جهانی‌تر و ایمن‌تر نزدیک شوند[1][3].

پیوندها

  • مقاله‌ی اصلی «Toolformer: Language Models Can Teach Themselves to Use Tools» در arXiv
  • مرور Toolformer در Synced Review
  • صفحه‌ی Toolformer در OpenReview
  • مرور Toolformer در Medium
  • مقاله‌ی مدل Gorilla در arXiv
  • صفحه‌ی پلاگین‌های ChatGPT در وب‌سایت OpenAI

منابع

  • 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. [۹]