این متن به انگلیسی توی وبلاگ شرکت تایم فولد توسط Tom Cools نوشته شده. یه سری خبرنامه مربوط به بهینهسازی و هوش مصنوعی عضو هستم و این متن رو اونجا پیدا کردم. کار شرکت تایمفولد اینه که بیاد یه سری مسئلهی صنایعی مثل حملونقل و برنامهریزی رو از شرکتهای بزرگ حل کنه.
من، طبق بیشتر تعریفهای معقول، موجودی اهل عادت هستم.
هر صبح همان قهوه. سالها همان برند کفش (و هر بار که یک جفت بالاخره از نفس میافتد و مجبور میشوم برای خرید جفت جدید بروم، یک دورهی کوتاه عزاداری هم دارم). همان مسیر تا محل کار. همان صندلی سر میز شام. شریک زندگیام این ویژگی را هم دوستداشتنی میداند و هم، گاهی، کمی کسلکننده.
حالا، اینطور نیست که از تغییر بدم بیاید. واقعاً از تجربه کردن چیزهای جدید لذت میبرم. کشورهای جدید، کنفرانسهای جدید، رستورانهای جدید، مسائل جدید برای مدلسازی. اما زیر همهی این تجربهجوییها، یک ترجیح آرام و مداوم در پسزمینه در حال زمزمه کردن است: من دوست دارم بدانم قرار است چه چیزی گیرم بیاید.
مهندسی؛ تقابلِ پیشبینی و روتین
احتمالاً تعجب نمیکنید اگر بگویم همین ترجیح بود که در وهلهی اول من را به سمت مهندسی نرمافزار سوق داد. در یک تابع، چیزی عمیقاً رضایتبخش وجود دارد. ۲ و ۳ را به آن میدهی، ۵ را تحویل میگیری. فردا دوباره همان را روی یک ماشین دیگر، در یک منطقهی زمانی دیگر، بعد از یک قهوهی دیگر اجرا میکنی، و باز هم ۵ میگیری.
بخش عمدهای از حرفهی من بر پایهی همین وعدهی ساده بنا شده است: با ورودیهای یکسان، همان خروجیهای یکسان را به من بده. این قاعدهی طلایی، زیربنای اصلیِ اشکالزدایی (Debugging) و اعتماد به سیستم است. در نهایت، همین ویژگی باعث میشود شبها وقتی کدت در محیط عملیاتی در حال اجراست، با خیال راحت بخوابی.
وقتی به اطرافیانم میگویم حالا در یک شرکت هوش مصنوعی کار میکنم، گاهی با تعجب به من نگاه میکنند. پرسش ضمنی معمولاً این است: «صبر کن. تو؟ همون آدمی که هر بار دقیقاً همان غذا را دوباره سفارش میدهد؟ در هوش مصنوعی کار میکنی؟» اعتراف میکنم که این نگاه، کاملاً منصفانه است.
پارادوکسِ هوش مصنوعی: ابداع یا انضباط؟
در سال ۲۰۲۶ وقتی عبارت «هوش مصنوعی» شنیده میشود، ذهنها فوراً به سمت هوش مصنوعی مولد میرود. ChatGPT، مولدهای تصویر، دستیارهای کدنویسی؛ همگی در دستهای قرار دارند که ذاتاً برای پاسخهای خلاقانه و متفاوت طراحی شدهاند.
این «عدم قطعیت» در واقع برای مدلهای مولد یک ویژگی است، نه باگ. اگر از مدل بخواهی «یک هایکو دربارهی عذاب کشیدن از آلرژی» بنویسد، هیچکس نمیخواهد هر بار دقیقاً همان شعر را تحویل بگیرد؛ ما تنوع و غافلگیری میخواهیم.
اما همهچیز بر پایهی شعر نیست. بخش بزرگی از صنعت، بر پایهی «برنامهها» میچرخد؛ جدولِ مسیرهای تحویل، زمانبندی شیفتهای کارکنان، و لجستیکِ کامیونها. در این حوزهها، «هر بار یک جواب کمی متفاوت» جذاب نیست؛ بلکه یک کابوسِ مدیریتی است.
قدرتِ قطعیت؛ یک مزیتِ رقابتیِ پنهان
چیزی که من در کار کردن در Timefold دوست دارم این است که «حلکننده» (Solver) ما هوش مصنوعی است، اما کاملاً قطعی (Deterministic) عمل میکند. با همان دادهی ورودی و همان بودجهی CPU، دقیقاً همان جوابِ پیشین را بازمیگرداند.
تا وقتی چند سال را صرف اشکالزدایی از سامانههایی نکرده باشی که این ویژگی را ندارند، اهمیت این جمله را درک نمیکنی. تصور کن سیستمی داری که با اجرای دوبارهی ورودیهای یکسان، خروجیهای متفاوتی میدهد و تو هرگز نمیفهمی این تفاوت ناشی از هوشمندیِ الگوریتم بوده، یک باگ منطقی بوده، یا صرفاً حاصلِ تابش پرتوهای کیهانی!
چرا مدلهای ما به «عادت» نیاز دارند؟
قطعیت در سیستمهای برنامهریزی، امکاناتی را فراهم میکند که در مدلهای غیرقطعی عملاً غیرممکن هستند:
- بازتولید آسان باگها: اگر برنامهریزی گزارشی از یک تخصیص شیفت عجیب میدهد، با اجرای مجدد همان مجموعه داده، دقیقاً همان خروجی را میگیری. این بهترین ابزار برای تحلیلِ رفتار سیستم است.
- امکان تستنویسی استاندارد: تستهای واقعی با assertionهای واقعی بنویس که بهصورت تصادفی در هر اجرای CI شکست نمیخورند. تستهای تو دیگر نمیگویند «راهحل باید تقریباً اینطور باشد»؛ آنها دقیقاً میگویند «راهحل این است».
- تستهای A/B دقیق: برای سنجش بهبودِ یک قیدِ جدید، نسخهی قبل و بعد را روی دادهی یکسان اجرا کن. هر تغییری که میبینی، مستقیماً ناشی از بهبود کدِ خودت است، نه حاصلِ پرتابِ تاس.
- جلب اعتماد ذینفعان: برنامهریزهایی که از سیستم استفاده میکنند، وقتی یک برنامه را دو بار میبینند و هر دو بار یکسان است، به آن اعتماد میکنند. اگر هر بار جواب متفاوتی به آنها نشان دهی، کارت تمام است؛ مهم نیست ریاضیاتِ پشت آن چقدر قوی باشد.
این مسئلهای کوچک نیست؛ مرز بین سیستمی که به آن تکیه میکنی و سیستمی که باید مدام به صورت دستی مراقبش باشی، همینجاست.
جمعبندی: جادویِ نظم در دنیایِ پیشبینیناپذیر
میفهمم چرا «قطعی بودن» برای بازاریابی هیجانانگیز نیست. اینکه بگویی «هوش مصنوعی ما هر بار همان جواب را میدهد»، قرار نیست در لینکدین ترند شود. در دورانی که همه انتظار دارند هوش مصنوعی با نوآوری خیرهشان کند، این حرف شبیه یک عقبگرد به نظر میرسد.
اما برای مسائلِ برنامهریزی که تصمیماتش روی شیفتها، تحویلها و زندگی واقعی اثر میگذارند، همین بهظاهر کسلکننده بودن، دقیقاً همان چیزی است که نیاز داریم. تو سیستمی میخواهی که سهشنبه همانطور رفتار کند که جمعه رفتار میکند. نتیجهای میخواهی که بتوانی از آن دفاع کنی.
به بیان دیگر، تو میخواهی هوش مصنوعی برنامهریزیات کمی شبیه یک موجود اهل عادت باشد؛ همان ورودی، همان خروجی. همان قهوه، همان کفشها، همان برنامه.
راستش را بخواهی، این محبوبترین نوع جادو برای من است. 🙂



