اگه با فضای ابری (Cloud) سروکار داشتی یا دلت میخواد این دنیای جالب رو بشناسی، حتماً اسم Infrastructure as Code یا همون IaC رو شنیدی؛ یعنی به جای اینکه دستی بری دونهدونه سرورها رو کانفیگ کنی، همه چیز رو با یه فایل متنی – که قابل خوندن برای ماشین باشه – تعریف میکنی. مثلاً تو این فایل مینویسی که چه سروری میخوای، چه دیتابیسی، چه تنظیماتی و خلاصه همه چیز رو با چند خط کد مدیریت میکنی! این کار کلی از دردسرهای دستی و اشتباهات انسانی کم میکنه.
حالا مشکل چیه؟ هر ارائهدهنده کلود (مثل آمازون AWS، یا سرویسهای دیگه) یه فرمتی برای IaC خودش داره. AWS مثلاً از CloudFormation استفاده میکنه، بعضیا عاشق Terraform هستن، و یه عده هم با Cloud Development Kit یا همون CDK حال میکنن. (Cloud Development Kit یه ابزاریه که باهاش میتونی با زبانهای برنامهنویسی معمولی – مثلا Python – زیرساخت تعریف کنی)
ولی چون هیچ استاندارد واحدی نیست، اگه بخوای روی چندتا سرویس ابری کار کنی باید چند زبان و قالب مختلف رو خوب بلدی باشی. هم وقت میگیره، هم ممکنه اشتباه پیش بیاد.
اینجاست که بحث هوش مصنوعی و مدلهای زبانی بزرگ (Large Language Models یا همون LLMها مثل ChatGPT) جذاب میشه. مدلهای زبانی الان میتونن کمک کنن همچین فایلهایی تولید یا آپدیت کنیم. اما یه مشکلی اینجا وجود داره: ما یه دیتاست (یه مجموعه داده حسابی) نداریم که بتونیم باهاش کیفیت این مدلها رو در زمینه همه این فرمتها بسنجیم. هرکس واسه خودش یه چیزی تست میکنه و معلوم نیست واقعاً کدوم مدل بهتر یا بدتره!
توی این مقاله که اسمش هم Multi-IaC-Bench هست، یه حرکت اساسی انجام شده: اومدن یه دیتاست درست و حسابی ساختن که توش سهتا فرمت برتر IaC رو پوشش میده – یعنی CloudFormation (مال AWS)، Terraform و CDK.
حالا دیتاستشون داستانش چیه؟ هر نمونه تو این مجموعه سه بخش داره: یه قالب اولیه IaC، یه درخواست تغییر (پیشنهاد به زبان طبیعی؛ مثلاً “رم سرور رو ببر بالا” یا “یه دیتابیس هم اضافه کن”) و بعد هم نسخه آپدیتشده فایل با اون تغییر. جذابیش اینجاست که دیتاست رو به صورت مصنوعی (یعنی با روشهای اتوماتیک و ساختگی – البته به دقت چک شده) درست کردن که درصد خطا خیلی پایین بیاد.
حالا اینا چیکار کردن؟ اومدن چندتا مدل زبانی سطح بالا رو با این مجموعه داده تست کردن. نتایج جالب بود: مدلها میتونن بالای ۹۵٪ مواقع کدهایی تولید کنن که از لحاظ دستوری (syntax) درست هستن – یعنی فایل رو میگیری میفرستی واسه سرویس ابری، ارور syntax نمیده. اما هنوز مشکل سماتیک داریم! Semantics یعنی منظور واقعی درخواست رو درست بفهمه و دقیق اون تغییر رو اعمال کنه. مخصوصاً وقتی درخواست پیچیده میشه یا ساختار زیرساخت خیلی بزرگ باشه. اینجاست که بعضی مدلها به مشکل میخورن و هنوز کلی جا برای پیشرفت هست.
توی تحقیقاتشون البته نشون دادن که چطوری با prompt engineering (یعنی هنرمندی توی چیدن و نوشتن سوال یا دستور برای مدل هوش مصنوعی) و حتی استفاده از retry (اینکه اگه مدل بار اول نتونست درست جواب بده، دوباره با یه تغییر کوچیک تلاش کنه) میشه کیفیت خروجیها رو خیلی بهتر کرد.
جمعبندیشون اینه: حالا که Multi-IaC-Bench منتشر شده، محققها و شرکتها خیلی راحتتر میتونن مدلهای هوش مصنوعیشون رو برای کار با زیرساخت ابری و قالبهای مختلف IaC تست و مقایسه کنن. این یعنی قدم مهمی برای آیندهای که هوش مصنوعی میتونه مدیریت زیرساختهامون رو راحتتر و دقیقتر کنه.
پس اگه دنبال اینی که هوش مصنوعی برات زیرساخت ابری مدیریت کنه یا اصلاً دوست داری تو این حوزه وارد شی، این دیتاست و این مقاله میتونن نقطه شروع باحالی باشن!
منبع: +