رفتن به محتوای اصلی
توضیح کوهستاناستفاده از ابزار هوش مصنوعیتوضیح و تشریح۱۱ شهریور ۱۴۰۵، ۰:۲۰· 6 دقیقه مطالعه· در هوش مصنوعی

سازوکار استفاده ابزاری در هوش مصنوعی: مدل‌های زبانی چگونه فراخوانی توابع را اجرا می‌کنند؟

فراخوانی توابع، شکاف میان تولید متن احتمالی و نرم‌افزار قطعی را پُر می‌کند و به مدل‌های هوش مصنوعی اجازه می‌دهد تا با APIهای خارجی، پایگاه‌های داده و ابزارهای دنیای واقعی تعامل داشته باشند.

به قلم فرشید جمشیدی

خوش‌بینان عاملیت‌گرا 40%شکاکان امنیت و قابلیت اطمینان 35%توسعه‌دهندگان متن‌باز 25%
خوش‌بینان عاملیت‌گرا
معتقدند فراخوانی توابع، پُل حیاتی برای رسیدن به جریان‌های کاری هوش مصنوعی کاملاً خودمختار است.
شکاکان امنیت و قابلیت اطمینان
هشدار می‌دهند که اعطای دسترسی به APIهای قطعی به مدل‌های احتمالی، سطوح حمله عظیمی ایجاد می‌کند.
توسعه‌دهندگان متن‌باز
بر دموکراتیزه کردن استفاده از ابزار از طریق مدل‌های تخصصی و کوچک‌تر تمرکز دارند.

نکات کلیدی

  • فراخوانی توابع به مدل‌های هوش مصنوعی اجازه می‌دهد به جای متن محاوره‌ای، درخواست‌های JSON ساختاریافته تولید کنند.
  • هوش مصنوعی خود کد را اجرا نمی‌کند؛ بلکه برای اجرای API به یک برنامه بک‌اند سنتی متکی است.
  • این فرآیند نیازمند یک حلقه پنج مرحله‌ای است که عملاً تأخیر (Latency) تولید متن استاندارد را دو برابر می‌کند.
  • مدل‌هایی مانند Gorilla و Toolformer ثابت کردند که هوش مصنوعی را می‌توان به طور خاص برای هماهنگ‌سازی دقیق API تنظیم دقیق کرد.
  • تابلوی امتیازات فراخوانی توابع برکلی (BFCL) استاندارد صنعتی برای ارزیابی دقت استفاده از ابزار است.

چرا مهم است

درک فراخوانی توابع، نحوه عملکرد واقعی عامل‌های هوش مصنوعی را روشن می‌سازد. این سازوکار نشان می‌دهد که مدل‌ها خودشان کد را اجرا نمی‌کنند، بلکه به عنوان هماهنگ‌کننده‌هایی عمل می‌کنند که درخواست‌های ساختاریافته‌ای را برای اجرای نرم‌افزار شما تولید می‌کنند و این امر، نحوه ساخت برنامه‌های کاربردی مدرن را به طور اساسی تغییر می‌دهد.

برای سال‌ها، تعامل با هوش مصنوعی به معنای صحبت کردن با یک پیشگوی محبوس بود. شما می‌توانستید از یک مدل زبانی بخواهید که یک غزل بنویسد، یک رویداد تاریخی را خلاصه کند یا فیزیک کوانتوم را توضیح دهد، اما اگر از آن می‌خواستید که پروازی رزرو کند، تقویم شما را بررسی کند یا یک محاسبه ریاضی پیچیده انجام دهد، تنها می‌توانست عذرخواهی کند یا پاسخی توهم‌آمیز ارائه دهد. مدل کاملاً محدود به داده‌های ایستا بود که بر اساس آن‌ها آموزش دیده بود. آن دوران انزوا به سرعت در حال پایان است. گذار از چت‌بات‌هایی که صرفاً صحبت می‌کنند به عامل‌های خودکار که واقعاً عمل می‌کنند، توسط یک سازوکار نرم‌افزاری بنیادی واحد هدایت می‌شود: فراخوانی توابع (Function Calling). فراخوانی توابع با پُل زدن میان تولید متن احتمالی و اجرای نرم‌افزار قطعی، به مدل‌ها اجازه می‌دهد تا به دنیای واقعی دسترسی پیدا کنند.

در هسته خود، فراخوانی توابع – که اغلب به عنوان استفاده از ابزار (Tool Use) شناخته می‌شود – یک لایه ترجمه بین مدل زبانی و سیستم‌های خارجی است. مدل‌های زبانی اساساً پیش‌بینی‌کننده‌های متن هستند؛ آن‌ها معماری بومی برای اجرای کد، مرور اینترنت زنده، یا جستجو در پایگاه داده امن ندارند. برای اعطای این توانایی‌ها به هوش مصنوعی، توسعه‌دهندگان به مدل یاد نمی‌دهند که چگونه مستقیماً اسکریپت‌های پایتون یا کوئری‌های SQL را اجرا کند. در عوض، به مدل آموزش می‌دهند که چگونه یک درخواست متنی بسیار ساختاریافته – تقریباً همیشه در قالب یک شیء JSON – تولید کند که یک بک‌اند نرم‌افزاری سنتی بتواند به راحتی آن را تجزیه و به نمایندگی از مدل اجرا کند. این امر هوش مصنوعی را از یک پاسخ‌دهنده منفعل به یک هماهنگ‌کننده فعال تبدیل می‌کند.[1]

سازوکار این هماهنگی از یک حلقه اجرای دقیق پنج مرحله‌ای پیروی می‌کند که توسعه‌دهندگان باید آن را پیاده‌سازی کنند. ابتدا، توسعه‌دهنده پرامپت کاربر را به مدل ارسال می‌کند، اما در کنار متن استاندارد، یک «شِما» (Schema) را نیز اضافه می‌کند – یک لیست با جزئیات و با فرمت JSON از ابزارهای موجود، توضیحات آن‌ها و پارامترهای مورد نیازشان. اگر کاربری بپرسد: «آب و هوای پاریس چطور است؟»، مدل پرامپت را تحلیل می‌کند و تشخیص می‌دهد که فاقد داده‌های بلادرنگ مورد نیاز برای پاسخ دقیق است. در مرحله دوم، مدل به جای تولید یک پاسخ محاوره‌ای، فرآیند استاندارد تولید متن خود را متوقف کرده و یک شیء JSON ساختاریافته تولید می‌کند که درخواست تابع خاص get_weather را دارد و آرگومان location: Paris را نیز منتقل می‌کند.[1]

اینجاست که مرحله سوم رخ می‌دهد، و این همان لحظه‌ای است که بسیاری از توسعه‌دهندگانی را که برای اولین بار با این فناوری روبرو می‌شوند، شگفت‌زده می‌کند: هوش مصنوعی در واقع تابع را اجرا نمی‌کند. مدل صرفاً رشته JSON ساختاریافته را به برنامه کاربردی بازمی‌گرداند. در مرحله چهارم، کد بک‌اند سنتی برنامه کاربردی، JSON را تجزیه می‌کند، فراخوانی واقعی API را به یک سرویس آب و هوای زنده اجرا می‌کند و نتیجه قطعی را بازیابی می‌کند – به عنوان مثال، «۷۲ درجه و آفتابی». در نهایت، در مرحله پنجم، برنامه کاربردی این داده‌های خام را به عنوان یک ورودی جدید به مدل زبانی بازمی‌گرداند. تنها در این مرحله است که مدل داده‌ها را ترکیب کرده و پاسخ زبان طبیعی را که کاربر در نهایت می‌بیند، تولید می‌کند.

مدل صرفاً رشته JSON ساختاریافته را به برنامه کاربردی بازمی‌گرداند.

این تغییر معماری، مدل زبانی را به طور بنیادی از یک تولیدکننده متن تک‌مرحله‌ای به یک موتور هماهنگ‌سازی چندمرحله‌ای تبدیل می‌کند. در حالی که تولید متن خودرگرسیو استاندارد تنها به یک مرحله استنتاج برای تولید پاسخ نیاز دارد، فراخوانی توابع حداقل به دو مرحله مجزا نیاز دارد که عملاً تأخیر (Latency) و هزینه محاسباتی تعامل را دو برابر می‌کند. با این حال، این سربار، بهای ضروری برای قابلیت اطمینان واقعی است. با واگذاری بازیابی اطلاعات واقعی، جستجوهای بلادرنگ و محاسبات ریاضی به APIهای خارجی و قطعی، مدل نرخ توهم‌زایی خود را به شدت کاهش می‌دهد و پاسخ‌های خود را در واقعیت قابل تأیید تثبیت می‌کند.[5]

این قابلیت به صورت تصادفی پدید نیامد؛ بلکه نتیجه پیشرفت‌های هدفمند در آموزش در جامعه تحقیقاتی باز است. در اوایل سال ۲۰۲۳، محققان Meta AI مقاله مهم Toolformer را معرفی کردند که نشان می‌داد مدل‌های زبانی می‌توانند از طریق یادگیری خودنظارتی، استفاده از ابزارهای خارجی را به خود بیاموزند. محققان به جای تکیه بر مجموعه‌داده‌های عظیم و گران‌قیمت با حاشیه‌نویسی انسانی، یک مدل را برای پیش‌بینی توکن‌های فراخوانی API خاص، تنظیم دقیق کردند. از طریق این فرآیند، Toolformer یاد گرفت که به طور مستقل تشخیص دهد چه زمانی یک ابزار مفید خواهد بود، نحو (Syntax) کوئری مناسب را فرموله کند و خروجی ابزار را بدون برهم زدن جریان محاوره‌ای، به طور یکپارچه در متن تولید شده خود بگنجاند.[2]

به دنبال کار بنیادی Toolformer، محققان دانشگاه UC Berkeley با مدل Gorilla، مرزهای مقیاس و دقت را جابجا کردند. Gorilla مدلی بود که به طور خاص برای تعامل با اکوسیستم‌های عظیم و پیچیده API تنظیم دقیق شده بود. تیم تحقیقاتی Gorilla تشخیص داد که در حالی که مدل‌های پیشرو قدرتمند هستند، اغلب آرگومان‌های API را توهم‌زایی می‌کنند یا سعی در استفاده از نقاط پایانی نرم‌افزاری منسوخ شده دارند. با آموزش مدل خود بر روی APIBench – یک مجموعه داده با دقت بالا شامل بیش از ۱۶۰۰ API دنیای واقعی که از Hugging Face، TorchHub و TensorHub جمع‌آوری شده‌اند – Gorilla نشان داد که مدل‌های زبانی می‌توانند درخواست‌های JSON پیچیده و تودرتو را برای هزاران ابزار متمایز به درستی قالب‌بندی کنند و در وظایف هماهنگ‌سازی، به طور قابل توجهی بهتر از مدل‌های استاندارد عمل کنند.[3]

از آنجایی که استفاده از ابزار به سرعت به ویژگی تعیین‌کننده هوش مصنوعی سازمانی مدرن تبدیل شده است، ارزیابی این قابلیت‌ها نیازمند چارچوب‌های معیارگذاری کاملاً جدیدی بوده است. تابلوی امتیازات فراخوانی توابع برکلی (BFCL) به عنوان استاندارد صنعتی برای این منظور ظهور کرده است و مدل‌ها را در برابر هزاران جفت سؤال-تابع پیچیده در چندین زبان برنامه‌نویسی، از جمله Python، Java و REST APIها، آزمایش می‌کند. BFCL نه تنها استفاده ساده و تک‌ابزاری را ارزیابی می‌کند، بلکه سناریوهای بسیار پیچیده‌ای مانند فراخوانی موازی توابع – که در آن یک مدل باید چندین ابزار را به طور همزمان برای پاسخ به یک سؤال ترکیبی فراخوانی کند – و تعاملات چندمرحله‌ای که در آن خروجی یک ابزار، ورودی ابزار بعدی را تعیین می‌کند، مورد سنجش قرار می‌دهد.[4]

برای توسعه‌دهندگانی که نسل بعدی برنامه‌های کاربردی را می‌سازند، مرز فراخوانی توابع اکنون به شدت بر قابلیت اطمینان اجرا و امنیت متمرکز است. ویژگی‌هایی مانند «خروجی‌های ساختاریافته» (Structured Outputs) شرکت OpenAI، پایبندی دقیق و ریاضی‌گونه به شمای JSON تعریف‌شده توسط توسعه‌دهنده را اعمال می‌کنند و تضمین می‌کنند که درخواست‌های مدل هرگز به دلیل یک ویرگول جاافتاده، یک نوع پارامتر توهم‌زده یا یک رشته بدشکل، برنامه بک‌اند را از کار نیندازند. با بلوغ این سازوکارهای اجرایی و کاهش تأخیر حلقه چندمرحله‌ای، مرز بین تولید متن و اجرای اقدامات دنیای واقعی همچنان محو خواهد شد و زیربنای دائمی برای عامل‌های هوش مصنوعی کاملاً خودمختار را فراهم می‌کند.[1]

آنچه نمی‌دانیم

  • چگونه می‌توان سربار تأخیر حلقه اجرای چندمرحله‌ای را به طور کامل حذف کرد.
  • آیا مدل‌های آینده به جای تکیه بر تجزیه بک‌اند خارجی، کد را به صورت بومی اجرا خواهند کرد.
  • چگونه می‌توان ایمنی معنایی را هنگامی که مدل‌ها به APIهای مخرب مانند حذف پایگاه داده دسترسی پیدا می‌کنند، تضمین کرد.

منابع

پوشش منابع

5 منبع

3 دیدگاه شناسایی‌شده

خوش‌بینان عاملیت‌گرا 40%شکاکان امنیت و قابلیت اطمینان 35%توسعه‌دهندگان متن‌باز 25%
  1. [1]OpenAIخوش‌بینان عاملیت‌گرا

    Function calling - OpenAI API

    مطالعه در OpenAI
  2. [2]arXivتوسعه‌دهندگان متن‌باز

    Toolformer: Language Models Can Teach Themselves to Use Tools

    مطالعه در arXiv
  3. [3]arXivتوسعه‌دهندگان متن‌باز

    Gorilla: Large Language Model Connected with Massive APIs

    مطالعه در arXiv
  4. [4]Hugging Faceتوسعه‌دهندگان متن‌باز

    Berkeley Function Calling Leaderboard

    مطالعه در Hugging Face
  5. [5]تیم سردبیری کوهستان

    تحلیل تیم سردبیری کوهستان

    مطالعه در تیم سردبیری کوهستان

نظرات

همیشه در جریان باشید

هر زاویه. هر روز.

دریافت هوش مصنوعی اخبار همراه با پوشش کامل منابع و تحلیل دیدگاه‌ها، مستقیم در صندوق ورودی شما.