
هوش مصنوعی می تواند مانند انسان ها کد بنویسد و باگ هارا رفع کند
اکنون برخی از توسعه دهندگان نرم افزار به هوش مصنوعی اجازه می دهند تا در نوشتن کد به آنها کمک کند. آنها متوجه شده اند که هوش مصنوعی به اندازه انسان ها ناقص است.
ژوئن گذشته، گیت هاب (GitHub) ، یکی از زیرمجموعههای مایکروسافت که ابزارهایی برای میزبانی و همکاری در زمینه کد ارائه میکند ، نسخه بتا برنامهای را منتشر کرد که از هوش مصنوعی برای کمک به برنامهنویسان استفاده میکند. شروع به تایپ یک دستور، یک کوئری پایگاه داده یا یک درخواست برای یک API کنید، و برنامه ای که کاپیلات (Copilot) نام دارد، قصد شما را حدس زده و بقیه را می نویسد.
الکس ناکا ، دانشمند داده در یک شرکت بیوتکنولوژی که برای آزمایش کاپیلات ثبت نام کرده است ، می گوید که این برنامه می تواند بسیار مفید باشد و روش کار او را تغییر داده است. او میگوید : « کاپیلات به من امکان میدهد زمان کمتری را صرف جستجو در مرورگر کنم تا اسناد یا نمونههای API را در استک اوِِرفلُو (Overflow) جستجو کنم. یکم احساس میکنم که کار من از یک تولیدکننده کد به یک متمایزکننده از آن تغییر کرده است. »
اما ناکا دریافته است که خطاها می توانند به طرق مختلف وارد کد او شوند. او میگوید : « زمانهایی بوده است که وقتی یکی از پیشنهاداتش را میپذیرم ، نوعی خطای ظریف رخ داده است. و ردیابی این موضوع میتواند واقعاً سخت باشد ، شاید به این دلیل که به نظر میرسد اشتباهاتی را مرتکب میشود که طعم متفاوتی نسبت به آنچه که من انجام میدهم دارد.
خطرات ایجاد کد معیوب توسط هوش مصنوعی ممکن است به طرز شگفت آوری زیاد باشد. محققان در NYU اخیراً کدهای تولید شده توسط کاپیلات را تجزیه و تحلیل کردند و دریافتند که برای کارهای خاصی که امنیت در آنها بسیار مهم است، کد ها در حدود 40 درصد مواقع دارای نقصهای امنیتی است.
برندان دولان گاویت ، استاد دانشگاه نیویورک که با این تحلیل درگیر است، میگوید: این رقم کمی بالاتر از آن چیزی است که من انتظار داشتم. اما نحوه آموزش کاپیلات در واقع نوشتن به خوبی کد نبود ، بلکه فقط برای تولید متنی بود که از یک دستور خاص پیروی می کرد.
علیرغم چنین نقصهایی ، کاپیلات و ابزارهای مشابه با هوش مصنوعی ممکن است ندای تغییری در نحوه کدنویسی توسعهدهندگان نرمافزار باشند. علاقه فزاینده ای به استفاده از هوش مصنوعی برای کمک به خودکارسازی کارهای روزمره بیشتر وجود دارد. اما کاپیلات نیز برخی از مشکلات تکنیک های هوش مصنوعی امروزی را برجسته می کند.
به نظر میرسد که (هوش مصنوعی) خطاهایی را مرتکب میشود که طعم متفاوتی با آنچه من انجام میدهم دارد.»
الکس ناکا _ تحلیلگر داده
دولان گاویت در حین تجزیه و تحلیل کدهای موجود برای یک افزونه کاپیلات متوجه شد که شامل فهرستی از عبارات محدود شده است. ظاهراً اینها برای جلوگیری از محو کردن پیامهای توهین آمیز یا کپی کردن کدهای شناخته شده نوشته شده توسط شخص دیگری معرفی شده اند.
اوگه دی مور (Oege de Moor) ، معاون تحقیقات گیت هاب و یکی از توسعه دهندگان کاپیلات ، می گوید که مسئله امنیت از همان ابتدا یک نگرانی بوده است. او میگوید درصد کدهای معیوب ذکر شده توسط محققان NYU فقط برای زیرمجموعهای از کدها مرتبط است که احتمال نقصهای امنیتی در آن بیشتر است.
دی مور CodeQL را اختراع کرد ، ابزاری که توسط محققان دانشگاه نیویورک مورد استفاده قرار میگیرد و به طور خودکار باگهای کد را شناسایی میکند. او می گوید که گیت هاب توصیه می کند که توسعه دهندگان از کاپیلات همراه با CodeQL استفاده کنند تا مطمئن شوند کارشان ایمن است.
برنامه گیت هاب بر روی یک مدل هوش مصنوعی ساخته شده است که توسط OpenAI ، یک شرکت برجسته هوش مصنوعی که کارهای پیشرفته ای در زمینه یادگیری ماشین انجام می دهد ، ساخته شده است. این مدل که کدکس (Codex) نام دارد از یک شبکه عصبی مصنوعی بزرگ تشکیل شده است که برای پیشبینی کاراکترهای بعدی در کدهای متنی و کامپیوتری آموزش دیده است. این الگوریتم میلیاردها خط کد ذخیره شده در گیت هاب را بلعید،- نه همه آنها ، تا یاد بگیرند که چگونه کد بنویسند.
OpenAI ابزار کدنویسی هوش مصنوعی خود را در بالای کدکس ساخته است که می تواند ترفندهای کدنویسی خیره کننده ای را انجام دهد. این می تواند یک دستورالعمل تایپ شده، مانند " یک آرایه از متغیرهای تصادفی بین 1 تا 100 ایجاد کنید و سپس بزرگترین آنها را برگردانید " را به کد کار در چندین زبان برنامه نویسی تبدیل کند.
نسخه دیگری از همان برنامه OpenAI، به نام GPT-3 ، میتواند متن منسجمی را در مورد یک موضوع خاص ایجاد کند، اما همچنین میتواند زبان توهینآمیز یا مغرضانه آموختهشده از گوشههای تاریک وب را بازگرداند.
کاپیلات و کدکس برخی از توسعه دهندگان را به این فکر واداشته اند که آیا هوش مصنوعی ممکن است (کار) آنها را اتومات و خودکار کند. در واقع، همانطور که تجربه ناکا نشان میدهد ، توسعهدهندگان برای استفاده از این برنامه به مهارت قابل توجهی نیاز دارند ، زیرا اغلب باید پیشنهادات آن را بررسی یا تغییر دهند.
هاموند پیرس ، محقق فوق دکترا در NYU که با تجزیه و تحلیل کد های کاپیلات درگیر است ، میگوید این برنامه گاهی اوقات کد مشکلساز تولید میکند ، زیرا به طور کامل متوجه نمیشود که می خواهد کدزنی انجام دهد. او میگوید : « آسیبپذیریها اغلب ناشی از کمبود زمینهای است که توسعهدهنده باید بداند.
برخی از توسعه دهندگان نگران این هستند که هوش مصنوعی در حال حاضر عادت های بدی را در خود ایجاد کرده است. ماکسیم خایلو ، توسعهدهنده نرمافزاری که استفاده از هوش مصنوعی را برای تولید کد آزمایش کرده است ، میگوید : « ما بهعنوان یک صنعت (اشاره به صنعت هوش مصنوعی) سخت کار کردهایم تا از راهحلهای کپی پیست فاصله بگیریم ، و اکنون کاپیلات یک نسخه سوپرشارژ از آن ایجاد کرده است. .
خایلو میگوید ممکن است هکرها با برنامهای مانند کاپیلات سر و کار داشته باشند. اگر من بازیگر بدی بودم ، کاری که میکردم این بود که پروژههای کد آسیبپذیر را در گیت هاب ایجاد کنم ، (و) به طور مصنوعی با خرید ستارههای گیت هاب در بازار سیاه ، محبوبیت آنها را افزایش دهم و امیدوارم که بخشی از مجموعه برای دور آموزشی بعدی شود. "
گیت هاب و OpenAI هر دو می گویند که برعکس ، ابزارهای کدنویسی هوش مصنوعی آنها احتمالاً کمتر مستعد خطا می شوند. OpenAI می گوید پروژه ها و کدها را هم به صورت دستی و هم با استفاده از ابزارهای خودکار بررسی می کند.
دی مور در گیت هاب میگوید به روزرسانیهای اخیر کاپیلات باید تعدّد آسیبپذیریهای امنیتی را کاهش دهد. اما او می افزاید که تیمش در حال بررسی راه های دیگری برای بهبود خروجی کیپیلات است. یکی حذف نمونه های بدی است که مدل زیربنایی هوش مصنوعی از آنها یاد می گیرد. یکی دیگر ممکن است استفاده از یادگیری تقویتی ، یک تکنیک هوش مصنوعی باشد که نتایج چشمگیری در بازی ها و سایر زمینه ها ایجاد کرده است، تا به طور خودکار خروجی بد ، از جمله نمونه هایی که قبلا دیده نشده بود ، شناسایی کند. او می گوی د: « پیشرفت های عظیمی در حال رخ دادن است. تقریباً غیرقابل تصور است که یک سال دیگر چگونه خواهد بود.
منبع : wired