گوریلا: چگونه آموزش آگاه از بازیابی توهمات API در مدلهای زبانی بزرگ را از ۷۸٪ به ۱۱٪ کاهش میدهد
مطالعه مقاله گوریلا (Patil et al., 2023, arXiv:2305.15334, NeurIPS 2024) از این جهت حائز اهمیت است که در تلاقی دو مشکلی قرار دارد که مدام با آنها روبرو میشوم: چگونه میتوانیم یک عامل LLM را وادار کنیم تا ابزار مناسب را با آرگومانهای درست فراخوانی کند، و چگونه این توانایی را با تغییر APIها حفظ کنیم؟ پاسخهای ارائه شده در اینجا کاربردی هستند و ارقام بهطور شگفتانگیزی قویاند — اما فرضیات نهفته در ارزیابیها شایسته بررسی دقیقتری نسبت به آنچه معمولاً انجام میشود، هستند.
مقاله
گوریلا، اثر شیشیر جی. پاتیل، تیانجون ژانگ، شین وانگ و جوزف ای. گونزالز در دانشگاه UC Berkeley، به یک حالت شکست ملموس میپردازد: پیشرفتهترین مدلهای زبانی در فراخوانی API دچار توهم میشوند. هنگامی که از آنها خواسته میشود کدی بنویسند که یک تابع کتابخانهای خاص را فراخوانی کند، GPT-4 (تا اواسط ۲۰۲۳) مکرراً امضاهای تابعِ به ظاهر منطقی اما اشتباه، مدلهای غیرموجود یا نام آرگومانهای منسوخ تولید میکند. گوریلا یک مدل ۷ میلیارد پارامتری مبتنی بر LLaMA است که بهطور اختصاصی برای تولید فراخوانیهای دقیق API تنظیم دقیق شده و با تکنیکی که نویسندگان آن را «آموزش آگاه از بازیابی» (RAT) مینامند، آموزش دیده است. ایده ساده است: در طول آموزش، مستندات API بازیابی شده در کنار پرسوجوی کاربر به مدل نشان داده میشود که با فرمت "از این مستندات API برای مرجع استفاده کنید: <retrieved_API_doc_JSON>" قالببندی شده است. این کار به مدل میآموزد که هم مستندات را بخواند و هم در زمان استنتاج، زمانی که مستندات تغییر کردهاند، به بافتار (context) بازیابی شده بیش از حافظه پارامتریک خود اعتماد کند.
مجموعه داده ارزیابی، APIBench، شامل ۹۲۵ API از HuggingFace Model Hub، ۹۵ API از TorchHub و ۶۹۶ API از TensorFlow Hub است که برای هر API ده پرسوجوی دستور-پیرو مصنوعی از طریق self-instruct تولید شده است. معیار ارزیابی، مطابقت زیر-درخت AST است — فراخوانی API تولید شده تجزیه (parse) شده و از نظر صحت عملکردی بررسی میشود — که برای اولین بار در این حوزه، اندازهگیری اصولی نرخ توهم را امکانپذیر میکند.
ایدههای کلیدی
- RAT مستندات را در زمان استنتاج خواندنی میکند. گوریلا با آموزش بر روی پرومپتهایی که شامل مستندات بازیابی شده هستند، یاد میگیرد که به متن بازیابی شده اتکا کند تا اینکه جزئیات API را از وزنهای خود به یاد آورد. این بدان معناست که مدل با تکامل APIها بدون نیاز به آموزش مجدد، بهروز میماند.
- دقت صفر-شات (Zero-shot): گوریلا ۵۹–۸۴٪، در مقابل GPT-4 ۱۸– ۳۹٪. در TorchHub، گوریلا به ۵۹.۱۳٪ در مقابل ۳۸.۷۰٪ GPT-4 دست مییابد. در HuggingFace، این نسبت ۷۱.۶۸٪ در مقابل ۱۹.۸۰٪ و در TensorFlow Hub، ۸۳.۷۹٪ در مقابل ۱۸.۲۰٪ است. بیشترین اختلاف در جایی است که فضای API متنوعتر است.
- کاهش توهم تیتر اصلی است. نرخ توهم گوریلا در TorchHub برابر ۶.۹۸٪، در HuggingFace برابر ۱۰.۹۵٪ و در TensorFlow Hub برابر ۵.۴۰٪ است. نرخهای GPT-4 در همین مجموعه دادهها از ۳۶.۵۵٪ تا ۷۸.۶۵٪ متغیر است.
- بازیاب اوراکل (ایدهآل) سقف عملکرد است. با بازیابی سند مرجع واقعی (حالت اوراکل)، دقت به ۶۷–۹۴٪ میرسد. این بهترین حالت تئوری برای هر سیستم مبتنی بر RAG است و فاصله بین گوریلای صفر-شات تا این سقف، فضای موجود برای بهبود بازیاب (retriever) را نشان میدهد.
- بازیابهای واقعی ضعیف عمل میکنند. تغییر از اوراکل به GPT-Index در زمان ارزیابی، دقت را ۲۹.۲۰٪ کاهش میدهد؛ BM25 آن را ۵۲.۲۷٪ کاهش میدهد. استحکام مدل در برابر نویزِ بازیابی واقعی است، اما نامحدود نیست.
- ارزیابی AST تعمیمپذیر است. رویکرد مطابقت زیر-درخت اندازهگیری میکند که آیا فراخوانی تولید شده از نظر عملکردی درست است یا خیر، نه فقط اینکه از نظر نحوی مشابه باشد. این معیار درستی برای هر وظیفهای است که خروجی آن کدی است که واقعاً اجرا خواهد شد.
چه چیزی پابرجا میماند — و چه چیزی نه
ادعای اصلی ثابت است: تنظیم دقیق روی پرومپتهای تقویت شده با مستندات، دقت فراخوانی API را بهطور چشمگیری بهبود میبخشد و توهم را کاهش میدهد. روش ارزیابی AST واقعاً نوآورانه است و به وضوح بهتر از مطابقت رشتهای یا ارزیابی انسانی در مقیاس بالا عمل میکند. RAT یک ایده شفاف و قابل بازتولید است.
آنچه من نسبت به آن تردید دارم، دامنه بنچمارک است. هر سه مجموعه داده — HuggingFace، TorchHub و TensorFlow Hub — مخازن مدلهای یادگیری ماشین با ساختار API بسیار منظم هستند: شما یک مدل را با نام بارگذاری میکنید، احتمالاً با چند آرگومان کلیدی، و یک متد شبیه predict را فراخوانی میکنید. دستورالعملها بهصورت مصنوعی تولید شدهاند، به این معنی که توزیع تست به شدت به توزیع آموزش نزدیک است. مدلی که بر روی مستندات API یادگیری ماشین آموزش دیده و با پرسوجوهای خود-آموز برای همان APIها ارزیابی شده، در معرض سختیهایی که در واقعیت تولید رخ میدهد قرار نگرفته است: درخواستهای مبهم، جریانهای کاری چند مرحلهای، اجبار نوع آرگومان (type coercion)، احراز هویت، محدودیتهای نرخ فراخوانی (rate limits) یا بازیابی خطا.
افت ناشی از بازیابی نیز بزرگتر از آن چیزی است که در مقاله قاببندی شده است. افت دقت ۵۲ درصدی با بازیابی BM25 فاجعهبار است. اگر بازیابی که در محیط عملیاتی مستقر میکنید بیشتر شبیه BM25 باشد تا یک اوراکل، دستاوردها تبخیر میشوند. نویسندگان این شکاف را میپذیرند اما راهی برای بستن آن ارائه نمیدهند.
در نهایت، خود مدل یک نسخه تنظیم دقیق شده از LLaMA 7B است. مقایسه با GPT-4 صفر-شات خیرهکننده است اما کاملاً منصفانه نیست: GPT-4 برای استفاده از مستندات بازیابی شده آموزش ندیده است. یک GPT-4 تقویت شده با RAG و پرومپت سیستمی طراحی شده برای خواندن اسناد API، تقریباً بهطور قطع این شکاف را به میزان قابل توجهی کاهش میدهد.
چرا این موضوع برای هوش مصنوعی مالی اهمیت دارد
الگوی RAT مستقیماً برای عوامل بازنویسی (write-back agents) در Beancount قابل استفاده است. یک عامل Beancount باید دستورات CLI مانند (bean-query و bean-report)، APIهای پایتون (beancount.loader و beancount.core) و سرویس FastAPI دفتر کل beancount را فراخوانی کند — که هر کدام دارای معانی خاص آرگومان هستند که مستند شدهاند اما لزوماً در دادههای آموزشی مدل نیستند. رویکرد گوریلا میگوید: قطعه مستندات مربوطه را در زمان استنتاج بازیابی کنید، آن را به بافتار تزریق کنید و مدل را برای خواندن و پیروی از آن آموزش دهید.
اعداد مربوط به توهم مفیدترین سیگنال برای بافتار مالی هستند. نرخ توهم ۱۰ درصدی در نام مدلهای یادگیری ماشین آزاردهنده است. اما نرخ توهم ۱۰ درصدی در فراخوانیهای تغییر دفتر کل — نامهای حساب اشتباه، کدهای ارز نادرست، علامتهای معکوس بدهکار/بستانکار — یک مشکل در صحت دادههاست. نتیجه این است که حتی یک عامل آموزش دیده به سبک گوریلا، قبل از نهایی شدن هرگونه ثبت (write)، به یک اعتبارسنج در زمان اجرا نیاز دارد، مشابه آنچه CRITIC (LOG-012) درباره نقد تعاملی ابزار نشان داد. یافتههای مربوط به افت بازیابی نیز این موضوع را تقویت میکند: اگر بازیابی در دنیای واقعی دقت را به نصف کاهش میدهد، شبکه ایمنی نمیتواند تنها کیفیت بازیابی باشد.
روششناسی ارزیابی AST بهطور طبیعی قابل ترجمه است. تراکنشهای Beancount ساختاری قابل تجزیه دارند و بررسی دایرکتیوهای تولید شده در برابر یک طرحواره (schema) با استفاده از مطابقت AST دقیقاً همان نوع اعتبارسنج س بکوزنی است که میتواند در یک hook پیش از ثبت (pre-commit) یا حلقه عامل اجرا شود.
مطالب پیشنهادی برای مطالعه بیشتر
- ToolLLM: Facilitating Large Language Models to Master 16000+ Real-world APIs (arXiv:2307.16789) — مسئله فراخوانی API را به ۱۶,۰۰۰ API واقعی REST با زنجیرههای استفاده از ابزار چند مرحلهای گسترش میدهد؛ مستقیماً به محدودیت گوریلا در ارزیابی صرفاً فراخوانیهای تکمرحلهای مخازن یادگیری ماشین میپردازد.
- The Berkeley Function Calling Leaderboard (BFCL) (OpenReview:2GmDdhBdDk, NeurIPS 2024 poster) — تکامل مستقیم گوریلا به یک تابلوی امتیازات زنده که چگونگی بهبود مدلهای پیشرو در فراخوانی تابع را در طول زمان دنبال میکند؛ نسخه ۳ تعاملات چند مرحلهای و نسخه ۴ جستجوی وب عاملیتمحور را اضافه کرده است.
- API-Bank: A Comprehensive Benchmark for Tool-Augmented LLMs — مدلهای زبانی بزرگ را در ۷۳ API در طیف گستردهتری از حوزهها از جمله مالی و خدمات وب، با استفاده از ابزار چند مرحلهای ارزیابی میکند؛ مکملی مفید برای تمرکز محدودتر APIBench بر یادگیری ماشین.
