CodeEvo: داستان یه رفیق‌بازی هوشمند برای ساخت دیتا برنامه‌نویسی باحال!

Fall Back

اگه با موضوع ساخت مدل‌های زبان بزرگ (LLM) برای تولید کد آشنا باشی، می‌دونی که پیدا کردن دیتای باکیفیت که شامل جفت دستورالعمل و کد باشه، واقعا کار سختیه. یعنی باید کلی دیتای خوب داشته باشی که توش یه دستور داده شده و بعد مدل جواب رو به صورت یه کد برگردونه. خب این دیتای درست و حسابی رو گرفتن کار وقت‌گیر و گرونی هست و اصولاً نمی‌شه مقیاسش رو بزنی بالا، چون هرچی بیشتر بخوای باید بیشتر آدم جمع کنی تا دیتای دستی بسازن!

تا همین حالا کلی روش برای درست‌کردن دیتاهای برنامه‌نویسی اومده؛ مثلاً اینکه بیان رو کدهای آماده خوب کار کنن و دیتاها رو گسترش بدن یا از یه سری روش‌های خودکار (که بهش میگن Heuristics) بهره ببرن که یعنی یه قانونای از پیش تعیین شده رو پیاده کنن. ولی اینا یه مشکل بزرگ دارن: اصلاً نمی‌تونن کیفیت دیتا رو درست کنترل کنن! نتیجه‌اش چیه؟ دیتای تولیدی یا بیخود درمیاد، یا خیلی ساده‌ست، یا عیناً تکراریه.

اما این وسط، بچه‌های مقاله CodeEvo اومدن یه فکر خیلی باحال زدن! اونا الهام گرفتن از روش‌هایی که تو برنامه‌نویسی تیمی و همکاری همیشه پیش میاد (یعنی همون که چند نفر باهم کد می‌زنن و یکی نظارت می‌کنه و فیدبک می‌ده). اینا گفتن چرا با کمک هوش مصنوعی دو تا عامل (Agent) نسازیم که باهم تعامل داشته باشن تا دیتا بسازن و کیفیت رو هم خودشون کنترل کنن؟

اینجوری شد که CodeEvo ساخته شد. تو این فریم‌ورک، دو تا مدل LLM باهم کار می‌کنن:

  • یکی «Coder» یا همون برنامه‌نویس، که از روی دستورالعمل (مثلاً “یه تابع بنویس که دو عدد رو جمع کنه”) کد می‌نویسه و براش تست‌کیس هم درست می‌کنه. تست‌کیس یعنی همون مثال‌هایی که نشون می‌ده کد کار می‌کنه یا نه.
  • اون یکی می‌شه «Reviewer»، یعنی بازبین یا منتقد، که نقش استاد رو داره! این بازبین میاد هم دستور جدید میده، هم روی خروجی‌های قبلی نظر می‌ده و مسیر بهتری پیشنهاد می‌ده.

این تعامل دائمی باعث می‌شه دیتاهایی تولید بشه که فقط یه‌وری فکر نشده باشن، بلکه هر مرحله، یکی دیگه داره قضاوتش می‌کنه و بهبود میده.

یه چیز جالب دیگه — تو CodeEvo یه سیستم تغذیه هیبرید هم هست! یعنی بازخورد‌ها رو از دو جهت می‌گیرن: هم خود مدل‌ها کامنت می‌دن (یعنی می‌گن این خوب بود اون بد بود)، هم با کمک کامپایلر (همون نرم‌افزاری که کد رو اجرا می‌کنه و چک می‌کنه که اساساً کارایی که باید رو انجام می‌ده یا نه). ترکیب این دو جور بازخورد باعث می‌شه دیتا هم خلاق باشه هم دقیق و کاربردی!

تازه روی کلی مدل هم تستش کردن و جالبه بدونی مدل‌هایی که با دیتای تولید شده توسط CodeEvo فاین‌تیون (چیزیه شبیه تربیت اختصاصی با دیتاهای خاص) شدن، حسابی بهتر از مدل‌هایی شدن که با دیتای سنتی یاد گرفتن — تو کلی معیار مختلف برای تولید کد، چه آسون چه سخت، واقعاً خیلی بهتر عمل کردن.

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

در کل، CodeEvo یعنی یه چارچوب خفن که باعث می‌شه بشه با همکاری هوشمند دو مدل زبانی، دیتاهایی فوق‌العاده برای آموزش مدل‌های برنامه‌نویسی ساخت. خلاصه که واسه کسایی که دنبال هوش مصنوعی برای کدنویسی هستن، این مقاله حسابی جذابه!

(اگه یه اصطلاحی گیجت کرد، مثلاً “Generative AI” یعنی هوش مصنوعی که خودش محتوا تولید می‌کنه، یا “LLM Agents” که یعنی مدل‌های زبانی بزرگ که مستقل مثل یه عامل رفتار می‌کنن، یا “Compiler” همونی هست که کد رو اجرا می‌کنه و خطاهاش رو درمیاره.)

منبع: +