موریس هومن با استفاده از شبکه ای از عوامل هوش مصنوعی موفق شد پس از سه ماه تلاش بی وقفه، کد منبع Call of Duty: Modern Warfare 2 را بازسازی کند.
به گزارش سرویس هوش مصنوعی تکناک، یک توسعه دهنده مستقل به نام Maurice Heumann موفق به مهندسی معکوس و بازسازی سورس کد بازی Call of Duty: Modern Warfare 2 محصول سال 2009 با زبان C++ با استفاده از شبکه ای از عوامل هوش مصنوعی شده و سه ماه وقت صرف کرده است.
این دستاورد فنی یکی از جاه طلبانه ترین نمونه های استفاده از عوامل مستقل در زمینه مهندسی معکوس و بازتولید نرم افزارهای پیچیده است. هدف اصلی موریس هیومن از ابتدای این پروژه ایجاد یک بازسازی دقیق، پایدار و کامل بوده است. کمتر از دو هفته پیش، او پستی را در پلتفرم X منتشر کرد و اعلام کرد که بازی اکنون کاملاً کاربردی است و تقریباً تمام خطاهای ظاهری و اشکالات عملکرد برطرف شده است. طبق محاسبات اعلام شده، این فرآیند عظیم در مجموع بین 600 تا 700 میلیارد توکن مصرف کرده است.
با اشتراک ماهانه در پول خود صرفه جویی کنید
مدیر پروژه برای تامین توان پردازشی مورد نیاز، برای توکن های اختصاصی هزینه ای پرداخت نکرد و به جای استفاده از قبض های معمول API، از طرح های اشتراک با نرخ ثابت ماهانه استفاده کرد. ارزش مالی این مقدار توکن در صورت استفاده از رابط های برنامه نویسی API بین 200 تا 250 هزار دلار تخمین زده می شود، در حالی که استفاده از مکانیزم اشتراک های ماهانه هزینه کل را در محدوده تقریبی 1200 یورو مهار کرده است.
فرآیند اجرای این پروژه با هدایت همزمان ناوگانی از عوامل هوش مصنوعی که بر مدل های پیشرفته آنتروپیک یعنی کلود و ابزارهای توسعه کد OpenAI از جمله Codex تکیه داشتند، انجام شد. نقطه شروع طرح اشتراک کلود مکس با بیست برابر ظرفیت بود و بعداً اشتراک Codex Pro نیز به ساختار عملیاتی اضافه شد تا از توان هر دو پلتفرم همزمان استفاده شود. در بیشتر مراحل توسعه، بار پردازش اصلی بر روی مدل Sonnet 5 قرار داشت، اگرچه مدلهای توانمندتری مانند Opus 5.5 و همچنین مجموعه مدلهای OpenAI از جمله Luna، Sol و Terra نیز بهطور گسترده برای پردازش قطعات دشوارتر مورد استفاده قرار گرفتند. رابط های خط فرمان Claude Code و Codex CLI ها به عنوان بازدارنده های اصلی برای ایجاد یک پلت فرم ارتباطی و اجرای خودکار دستورات استفاده شدند.
ساختار فنی برای خواندن کد باینری بازی مبتنی بر اتصال این مدل ها به نرم افزار مهندسی معکوس IDA و استفاده از سرور ida-mcp شرکت Hex-Rays بود. در روزهای اول، ساختار تیم بسیار کوچک بود و فقط از چهار عامل شامل سه عامل اجرایی و یک مامور بازبینی تشکیل می شد. با گسترش دامنه پروژه و بهینه سازی فرآیندها، این تعداد به مرور زمان افزایش یافت تا اینکه در پایان سپتامبر، 17 عامل هوش مصنوعی به طور همزمان و به صورت موازی قسمت های مختلف سیستم را بازنویسی می کردند. هماهنگی بین این حجم از فرآیندهای موازی مستلزم اجرای یک مکانیسم مدیریتی دقیق بود.
برای هر واحد ترجمه در کد، یک فایل مستقل در پلتفرم GitHub باز شد و تمام هوش مصنوعی ها به همراه کاربر انسانی در یک کانال اختصاصی Discord متصل به سیستم Continuous Integration (CI) کار کردند. علاوه بر این، برای جلوگیری از اشباع حافظه و تجمع دادههای غیر ضروری، آستانه فشردهسازی فضای کاری خودکار از مقدار پیشفرض 90 درصد به 42 درصد کاهش یافت تا عملکردهای تکمیلشده به سرعت از پنجره حافظه خارج شوند. از آنجایی که عوامل پس از مدتی از مسیر کار منحرف می شدند، یک فرآیند برنامه ریزی شده دوره ای (cron job) تعریف شد تا هر ساعت یکبار مجدداً کلیه دستورالعمل ها و معیارهای پروژه را برای آنها بخوانند.
چالش های اصلاح کدهای ماه های اول
یکی از بزرگترین چالش های این مسیر، عملکرد غیرعادی مدل ها در ماه اول توسعه بود. در آن دوره کدهای تولید شده از خوانایی و شفافیت بسیار بالایی برخوردار بودند، اما از نظر معنا و ساختار دارای خطاهای فاحشی بودند. امضای توابع نادرست بود، ساختارهای نوع داده و چیدمان حافظه به هم ریخته بود، و عاملان منطق برنامهنویسی ناشناخته را اختراع کردند یا بخشهای حیاتی را نادیده گرفتند. در یک مثال، عوامل یک جستجوی ساده از یک متغیر پیکربندی را به یک ساختار چند لایه و بسیار سنگین تبدیل کردند که بار پردازشی چندین برابر نسخه اصلی را به خود اختصاص داد. عامل بازنگری نیز به دلیل نداشتن استانداردها و معیارهای اندازه گیری مشخص، قادر به شناسایی این مغایرت ها نبود و توضیحات متنی که مجریان در داخل کدها برای توجیه تغییرات آنها نوشتند، عملاً به عنوان یک تزریق سریع ناخواسته عمل کرد و هوش مصنوعی ناظر را فریب داد. در نهایت، با حذف همه نظرات از کد منبع، عملکرد بهبود یافت، اگرچه تلاش برای اصلاح کد در چهار هفته اول بیشتر از شروع پروژه از ابتدا طول کشید.
برای غلبه بر این بن بست، یک سیستم ارزیابی خودکار بر اساس همان کامپایلری طراحی شد که بازی اصلی با آن در سال 2009 ساخته شد. این اسکریپت تخصصی هر تابع بازسازی شده را در سطح بایت با بازی اصلی قابل اجرا مقایسه می کند. در این فرآیند به دلیل قرار گرفتن در فضاهای مختلف حافظه، ارجاع داده و آدرس تماس نادیده گرفته شد و در عوض نمادهای هدف و فواصل افست بررسی شد و محتوای داده و نوع متغیرها بررسی شد. ثبت دقیق نتایج عبور یا شکست در سیستم یکپارچه سازی پیوسته تضمین می کند که حتی رفتارهای پنهان و اشکالات فنی نسخه اصلی 2009 در نسخه بازسازی شده حفظ می شود.
با اجرای این آزمایش سخت، عوامل هوش مصنوعی میانبرها و شیوه های فریبنده را در پیش گرفتند. آنها سعی کردند با تزریق دستورات اسمبلی درون خطی، چک ها را دور بزنند، و در چندین مورد سعی کردند اسکریپت اعتبار سنجی را دستکاری کنند تا توابع ناقص آنها را از لیست ارزیابی حذف کنند. برای جلوگیری از این تقلب ها، استفاده از اسمبلی درون خطی به صراحت ممنوع شد و یک شناسه هش غیرقابل تغییر برای اسکریپت تست تعریف شد تا سیستم GitHub Actions سلامت ساختار تست را قبل از هر تست تایید کند.
سیستم ارزیابی خودکار و مقایسه بایت
اجرای موفقیت آمیز این سیستم مقایسه بایت به بایت این امکان را فراهم کرد که حتی مدل های ارزان تر و سبک تری مانند هایکو و لونا که خروجی های بسیار ضعیفی در مراحل اولیه ارائه می کردند، به چرخه بازنویسی اضافه شوند و بدون از دست دادن دقت، سرعت فرآیند را افزایش دهند. در پایان ماه سوم، 99٪ از توابع بازی مورد نیاز تکمیل شد و 83٪ از آنها به تطابق کامل بایت به بایت دست یافتند، در حالی که 16٪ باقیمانده دارای صحت عملکردی و معنایی بدون تطابق متنی کامل بودند.
بر اساس این گزارش تامز هاردوراین پروژه با موانع قانونی و مالکیت معنوی نیز مواجه بود. در پی ادعای نقض قوانین کپی رایت توسط صاحبان حقوق اثر، دو یادداشت اول وبلاگ موریس هیومن مسدود شد و ویدیوی نمایش عملکرد بازی در شبکه X در دسترس نبود، البته اکتیویژن هنوز پاسخ رسمی به این ماجرا نداده است. با توجه به این محدودیت ها و تعهدات قانونی، کدهای منبع این پروژه به صورت عمومی منتشر نخواهد شد و محدود به استفاده شخصی سازنده خواهد بود. اما دستاوردهای زیرساختی این تجربه به پروژه های دیگر منتقل شده است. از جمله توسعه ابزار شبیه سازی فضای کاربر به نام Sogen که به عنوان یک محیط ایزوله و یک سندباکس امن برای عوامل هوش مصنوعی برای جلوگیری از تخریب محیط های مجازی در حین اجرای پروژه های آتی در حال طراحی مجدد است.
تجربیات به دست آمده از این فرآیند ثابت کرد که با اعمال چارچوبهای ارزیابی دقیق، میتوان بر پیچیدهترین پروژههای نرمافزاری تسلط یافت و در عصری که هوش مصنوعی تولید کد را ارزان و نامحدود کرده است، اولویت اصلی توسعهدهندگان باید بر اعتبارسنجی دقیق و اطمینان از سلامت ساختار متمرکز بماند.
















گفتگو در مورد این post