مجله دیجی‌کلبه

اخبار تکنولوژی، آموزش‌های کاربردی و ویدیوهای محصولات

«این «مربی هوشمند» به مدل‌های زبانی بزرگ کمک می‌کند بین متن و کد جابه‌جا شوند»

«مدل‌های زبانی بزرگ (LLMs) در استفاده از استدلال متنی برای درک محتوای یک سند و ارائه‌ی پاسخی منطقی درباره‌ی آن بسیار توانمند هستند. اما همین مدل‌ها اغلب در پاسخ صحیح دادن حتی به ساده‌ترین مسائل ریاضی دچار مشکل می‌شوند.»استدلال متنی معمولاً روش چندان مناسبی برای انجام وظایف محاسباتی یا الگوریتمی نیست.

هرچند برخی مدل‌های زبانی بزرگ (LLMs) می‌توانند کدی مانند پایتون تولید کنند تا پرسش‌های نمادین را پردازش کنند، اما این مدل‌ها همیشه نمی‌دانند چه زمانی باید از کد استفاده کنند یا چه نوع کدی بهترین نتیجه را خواهد داشت.

به نظر می‌رسد LLMها به یک «مربی» نیاز دارند تا آن‌ها را به‌سمت بهترین تکنیک هدایت کند. اینجاست که CodeSteer وارد می‌شود؛ یک دستیار هوشمند که توسط پژوهشگران MIT توسعه یافته و LLM را راهنمایی می‌کند تا بین تولید متن و تولید کد جابه‌جا شود تا در نهایت به‌طور صحیح به یک پرسش پاسخ دهد.

خود CodeSteer یک مدل زبانی کوچک‌تر است که به‌طور خودکار مجموعه‌ای از اعلان‌ها (prompts) را تولید می‌کند تا به‌صورت تکراری یک LLM بزرگ‌تر را هدایت کند. این سیستم پس از هر مرحله، پاسخ فعلی و قبلی مدل را بررسی کرده و راهنمایی‌هایی برای اصلاح یا بهبود آن پاسخ ارائه می‌دهد تا زمانی که نتیجه صحیح به‌دست آید.

پژوهشگران دریافتند که افزودن CodeSteer به یک LLM بزرگ، دقت آن را در وظایف نمادین مانند ضرب اعداد، حل سودوکو و چیدن بلوک‌ها بیش از ۳۰ درصد افزایش داد. این سیستم همچنین باعث شد مدل‌های کمتر پیشرفته عملکردی بهتر از مدل‌های پیشرفته‌تر با مهارت‌های استدلال بهبود‌یافته داشته باشند.

این پیشرفت می‌تواند قابلیت حل مسئله در مدل‌های زبانی بزرگ (LLMs) را برای وظایف پیچیده‌ای که تنها با استدلال متنی به‌سختی حل می‌شوند بهبود بخشد؛ وظایفی مانند تولید مسیر برای ربات‌ها در محیط‌های نامطمئن یا زمان‌بندی حمل‌ونقل در یک زنجیره تأمین بین‌المللی.

«یک رقابت برای توسعه‌ی مدل‌هایی در جریان است که هر چه بیشتر و بیشتر بتوانند همه‌چیز را انجام دهند، اما ما رویکردی مکمل اتخاذ کرده‌ایم. پژوهشگران سال‌هاست فناوری‌ها و ابزارهای مؤثری برای حل مشکلات در حوزه‌های مختلف توسعه داده‌اند.

ما می‌خواهیم به LLMها این امکان را بدهیم که ابزار و روش درست را انتخاب کنند و از تخصص دیگران برای افزایش توانایی‌های خود بهره ببرند.» این را چوچو فان، دانشیار هوانوردی و فضانوردی (AeroAstro) و پژوهشگر اصلی در آزمایشگاه سیستم‌های اطلاعات و تصمیم‌گیری MIT (LIDS) می‌گوید. فان که نویسنده ارشد این پژوهش است، در مقاله‌ای درباره این کار با یونگچائو چن، دانشجوی دکتری LIDS؛ یلون هو، دانشجوی دکتری AeroAstro؛ یوئه‌یینگ لیو، دانشجوی دکتری دانشگاه ایلینوی در اربانا-شمپین؛ و یانگ ژانگ، پژوهشگر آزمایشگاه هوش مصنوعی MIT-IBM Watson همکاری کرده است. این تحقیق قرار است در کنفرانس بین‌المللی یادگیری ماشین (ICML) ارائه شود.

یک «مربی» برای LLM

اگر از یک مدل زبانی بزرگ (LLM) بپرسید کدام عدد بزرگ‌تر است، 9.11 یا 9.9، اغلب با استفاده از استدلال متنی پاسخ اشتباه می‌دهد. اما اگر از آن بخواهید برای پاسخ از کد استفاده کند، می‌تواند یک اسکریپت پایتون بنویسد و اجرا کند تا دو عدد را مقایسه کرده و به‌راحتی مسئله را حل کند.

مدل‌های زبانی بزرگ که در ابتدا برای درک و پیش‌بینی زبان انسانی آموزش دیده‌اند، بیشتر تمایل دارند پرسش‌ها را با متن پاسخ دهند، حتی زمانی که استفاده از کد مؤثرتر است. و هرچند این مدل‌ها با ریزتنظیم (fine-tuning) یاد گرفته‌اند کد تولید کنند، اغلب نسخه‌ای نادرست یا کمتر بهینه از کد را تولید می‌کنند.

به‌جای تلاش برای بازآموزی یک مدل زبانی بزرگ (LLM) قدرتمند مانند GPT-4 یا Claude برای بهبود این قابلیت‌ها، پژوهشگران MIT یک مدل کوچک‌تر و سبک‌تر را ریزتنظیم (fine-tune) کردند تا مدل بزرگ‌تر را بین متن و کد هدایت کند. ریزتنظیم یک مدل کوچک‌تر تغییری در LLM بزرگ‌تر ایجاد نمی‌کند، بنابراین هیچ خطری وجود ندارد که توانایی‌های دیگر مدل بزرگ‌تر تضعیف شود.

«ما همچنین از انسان‌ها الهام گرفتیم. در ورزش، ممکن است مربی بهتر از ستاره‌ی تیم نباشد، اما همچنان می‌تواند پیشنهادهای مفیدی برای هدایت ورزشکار ارائه دهد. این روش هدایت برای LLMها هم کار می‌کند.» چن می‌گوید. این مربی، CodeSteer، همراه با LLM بزرگ‌تر کار می‌کند.

ابتدا یک پرسش را بررسی کرده و تعیین می‌کند که برای این مسئله استفاده از متن یا کد مناسب‌تر است و چه نوع کدی بهترین نتیجه را خواهد داشت.سپس CodeSteer یک «پرومپت» برای LLM بزرگ‌تر تولید می‌کند و به آن می‌گوید که از روش کدنویسی یا استدلال متنی برای پاسخ به پرسش استفاده کند. مدل بزرگ‌تر این پرومپت را دنبال کرده و پاسخ را برمی‌گرداند تا توسط CodeSteer بررسی شود.

اگر پاسخ درست نباشد، CodeSteer به درخواست از LLM ادامه می‌دهد تا روش‌های مختلفی را امتحان کند که ممکن است مشکل را حل کند، مثل استفاده از یک الگوریتم جست‌وجو یا افزودن یک محدودیت به کد پایتون، تا زمانی که پاسخ درست به دست آید. «ما دریافتیم که اغلب، LLM بزرگ‌تر تلاش می‌کند تنبلی کند و از یک کد کوتاه‌تر و کم‌بازده‌تر استفاده کند که محاسبه نمادین درست را انجام نمی‌دهد.

ما CodeSteer را طوری طراحی کرده‌ایم که از بروز این پدیده جلوگیری کند.» چن می‌گوید. یک بررسی‌کننده نمادین (symbolic checker) پیچیدگی کد را ارزیابی کرده و در صورتی که کد خیلی ساده یا ناکارآمد باشد، سیگنالی به CodeSteer می‌فرستد. پژوهشگران همچنین یک بررسی‌کننده پاسخ خودکار (self-answer checker) در CodeSteer تعبیه کرده‌اند که LLM را وادار می‌کند کدی تولید کند که جواب را محاسبه کند تا درستی آن تأیید شود.

مقابله با وظایف پیچیده

زمانی که پژوهشگران در حال طراحی CodeSteer بودند، نتوانستند مجموعه‌داده‌های نمادین (symbolic datasets) مناسبی برای ریزتنظیم و آزمایش مدل پیدا کنند، زیرا بسیاری از بنچمارک‌های موجود مشخص نمی‌کنند که آیا یک پرسش خاص بهتر است با متن حل شود یا با کد.

بنابراین، آن‌ها یک مجموعه شامل ۳۷ وظیفه نمادین پیچیده گردآوری کردند؛ شامل استدلال فضایی، ریاضیات، استدلال ترتیبی و بهینه‌سازی. سپس مجموعه‌داده‌ی اختصاصی خودشان را ساختند که آن را SymBench نامیدند.

آن‌ها یک رویکرد ریزتنظیم (fine-tuning) پیاده‌سازی کردند که از SymBench بهره می‌برد تا عملکرد CodeSteer را به حداکثر برساند.

در آزمایش‌های انجام‌شده، CodeSteer از هر ۹ روش مبنایی (baseline) که مورد ارزیابی قرار گرفت بهتر عمل کرد و دقت متوسط را از ۵۳.۳ درصد به ۸۶.۴ درصد افزایش داد. این سیستم حتی در وظایف جدید و دیده‌نشده، و روی انواع مختلف مدل‌های زبانی بزرگ (LLMs) نیز عملکرد مشابهی را حفظ می‌کند.

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

«روش ما از قابلیت‌های خود LLM استفاده می‌کند. با افزودن توانایی استفاده هوشمندانه از کدنویسی به یک LLM، می‌توانیم مدلی را که از پیش بسیار قدرتمند است، حتی بیشتر بهبود دهیم.» چن می‌گوید.

پژوهشگران قصد دارند در آینده فرآیند تکراری پرومپت‌دهی CodeSteer را ساده‌تر کنند تا سرعت آن افزایش یابد. همچنین آن‌ها در حال مطالعه روی این موضوع هستند که چگونه می‌توان یک مدل واحد را به‌طور مؤثر ریزتنظیم کرد تا توانایی جابه‌جایی بین استدلال متنی و تولید کد را داشته باشد، به‌جای اینکه به یک دستیار جداگانه متکی باشد.

«نویسندگان یک راه‌حل زیبا برای چالش حیاتی استفاده از ابزارها در مدل‌های زبانی بزرگ (LLMs) ارائه می‌دهند. این روش ساده اما تأثیرگذار، به LLMهای پیشرفته امکان می‌دهد بدون نیاز به ریزتنظیم مستقیم، بهبودهای چشمگیری در عملکرد به‌دست آورند.» این را جینسونگ یون، پژوهشگر ارشد در Google Cloud AI که در این پروژه نقشی نداشته است، می‌گوید. «این پژوهش نمایانگر یک مشارکت قابل توجه است که وعده می‌دهد به‌طور چشمگیری کاربرد LLMها را در طیف گسترده‌ای از وظایف که در حال حاضر با آن‌ها مشکل دارند، ارتقا دهد.»

«موفقیت آن‌ها در آموزش یک مدل کوچک‌تر و تخصصی برای هدایت راهبردی مدل‌های بزرگ‌تر و پیشرفته‌تر به‌ویژه تأثیرگذار است.» این را چی وانگ، دانشمند ارشد در Google DeepMind که او نیز در این کار مشارکتی نداشته است، اضافه می‌کند. «این همکاری هوشمندانه میان عامل‌های مختلف هوش مصنوعی، مسیر را برای کاربردهای مقاوم‌تر و چندمنظوره‌تر در سناریوهای پیچیده دنیای واقعی هموار می‌کند.»

این پژوهش بخشی از حمایت‌های دفتر تحقیقات نیروی دریایی ایالات متحده (U.S. Office of Naval Research) و آزمایشگاه هوش مصنوعی MIT-IBM Watson بهره‌مند شده است.

منبع:news.mit.edu

اشتراک‌گذاری این مطلب

ثبت دیدگاه

در حال بارگذاري ...
بازگشت به بالا