◈ My Notes
KNOWLEDGE / NOTE

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

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

در مقاله‌ی قبلی با عنوان ماشین گودل داروین (DGM) دیدیم که یک ماشین خودبهبوددهنده با تغییر کد خود و آزمایش تجربی، به‌تدریج بهتر می‌شد. اما برای رسیدن به نتیجه‌ی مطلوب، به هزاران نمونه و ارزیابی نیاز داشت.

مقاله‌ای دیگر با عنوان شینکااولو ShinkaEvolve می‌گوید مشکل اصلی امروز، نه خودبهبودی است و نه کاوش باز-پایان، بلکه چیزی است با نام «بی‌کفایتی نمونه‌ای». به بیان ساده، روش‌های فعلی برای پیدا کردن یک راه‌حل خوب، بیش از حد انرژی مصرف می‌کنند: هزاران بار مدل زبانی را فرا می‌خوانند، هزاران برنامه تولید می‌کنند و به سختی به نتیجه می‌رسند. شینکااولو می‌خواهد همان مسیر تکاملی را طی کند، اما با انرژی کمتر. در ادبیات زیست‌شناسی تکاملی مشخص شده که انتخاب طبیعی نیز کم‌مصرف‌تر از آن است که تصور می‌کردیم.

بنابراین تفاوت بنیادی این دو مقاله آن است که DGM یک سیستم خودارجاع بود: عامل کدنویس، کد خود را بازنویسی می‌کرد و آرشیوی از نسخه‌های مختلف خود می‌ساخت. شینکااولو اما یک چارچوب تکاملی عمومی است که روی هر برنامه‌ای، و نه فقط روی خودش، اعمال می‌شود. DGM روی بهبود عامل کدنویس متمرکز بود؛ شینکااولو روی حل مسائل علمی و مهندسی متنوع، از چیدمان دایره‌ها تا طراحی تابع زیان برای آموزش مدل‌های زبانی. DGM از اثبات ریاضی فاصله گرفت و به آزمایش تجربی پرداخت، شینکااولو این آزمایش را تا سطح بهینه‌سازی دقیق‌تر می‌برد و به‌جای تولید انبوه، روی کیفیت نمونه‌ها سرمایه‌گذاری می‌کند.

چگونه می‌توان با نمونه‌های کمتر، بهتر تکامل یافت؟ پژوهشگران این مقاله، سه نوآوری را، که دوتای آنها وامدار فهم جدید از تکامل است، برای حل مشکل بی‌کفایتی نمونه‌ای معرفی می‌کنند.

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

دومین نوآوری، «رد کردن نمونه‌های تکراری» بر اساس شباهت کد است. وقتی مدل زبانی برنامه‌ای تولید می‌کند، این برنامه با استفاده از یک مدل تعبیه‌سازی به بردار تبدیل می‌شود و شباهت آن با برنامه‌های موجود در آرشیو سنجیده می‌شود. اگر شباهت از حد آستانه‌ای فراتر رود، برنامه رد می‌شود و مدل دوباره تلاش می‌کند. این مکانیزم ساده اما مؤثر، از هدر رفتن منابع برای تولید نسخه‌های تقریباً یکسان جلوگیری می‌کند. مقاله نشان می‌دهد که حذف این مرحله، عملکرد را به‌طور چشمگیری کاهش می‌دهد. (به عبارتی در نوآوری نخست اجازه ورود افراد بیشتری به فرایند داده می‌شود اما نوآوری دوم به هر فردی هم اجازه‌ی ورود نمی‌دهد.)

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

نتیجه؟ شینکااولو روی چهار حوزه‌ی مختلف آزمایش شد و در همه‌ی موارد نتایج چشمگیری داشت. در مسئله‌ی چیدمان دایره‌ها، فقط با ۱۵۰ نمونه به راه‌حلی بهتر از بهترین روش قبلی رسید که به هزاران نمونه نیاز داشت.

در استدلال ریاضی، طرح‌های عاملی سه‌مرحله‌ای طراحی کرد که با ۷ فراخوانی مدل زبانی، از طرح‌های دستی با ۱۰ فراخوانی، بهتر عمل کرد و به مسائل جدید هم تعمیم داد.

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

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

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

هادی صمدی @evophilosophy

Published with Vault Publish