برنامه نویسان دههها را صرف نوشتن کد برای مدلهای هوش مصنوعی کردهاند و اکنون در یک دایره کامل، از هوش مصنوعی برای نوشتن کد استفاده میشود؛ اما چگونه یک تولید کننده کد هوش مصنوعی با یک برنامه نویس انسانی مقایسه میشود؟
مطالعهای که در شماره ژوئن IEEE منتشر شد، کد تولید شده توسط چت جیپیتی را از نظر عملکرد، پیچیدگی و امنیت ارزیابی کرد. نتایج نشان میدهد که چت جیپیتی در تولید کد عملکردی بسته به سختی کار، زبان برنامهنویسی و عوامل دیگر طیف بسیار گستردهای از موفقیت دارد.
در حالی که در برخی موارد مولد هوش مصنوعی میتواند کد بهتری نسبت به انسان تولید کند، این تجزیه و تحلیل همچنین برخی نگرانیهای امنیتی را در مورد کدهای تولید شده توسط هوش مصنوعی نشان میدهد.
یوتیان تانگ یک مدرس دانشگاه گلاسکو است که در این مطالعه شرکت داشت. او خاطرنشان میکند که تولید کد مبتنی بر هوش مصنوعی میتواند مزایایی را از نظر افزایش بهرهوری و خودکارسازی وظایف توسعه نرمافزار ارائه دهد؛ اما درک نقاط قوت و محدودیتهای این مدلها مهم است.
تانگ توضیح میدهد: با انجام یک تجزیه و تحلیل جامع، میتوانیم مسائل و محدودیتهای بالقوهای را که در تولید کد مبتنی بر چت جیپیتی ایجاد میشود، کشف کنیم… [و]تکنیکهای تولید را بهبود ببخشیم.
برای بررسی جزئیات بیشتر این محدودیت ها، تیم او به دنبال آزمایش توانایی «جیپیتی-۳,۵» (GPT-۳.۵) برای رسیدگی به ۷۲۸ مشکل کدنویسی از پلت فرم تست «لت کد» (LeetCode) در پنج زبان برنامه نویسی سی (C)، سی پلاس پلاس (C++)، جاوا، جاوا اسکریپت و پایتون بود.
به طور کلی، چت جیپیتی در حل مشکلات زبانهای مختلف کدنویسی بهویژه در هنگام تلاش برای حل مشکلات کدنویسی که قبل از سال ۲۰۲۱ در لت کد وجود داشت، نسبتاً خوب بود. به عنوان مثال، توانست کد عملکردی را برای مشکلات آسان، متوسط و سخت با موفقیت تولید کند. نرخ موفقیت به ترتیب حدود ۸۹، ۷۱ و ۴۰ درصد است.
با این حال، وقتی صحبت از مشکلات الگوریتم بعد از سال ۲۰۲۱ میشود، توانایی چت جیپیتی برای تولید کد عملکردی صحیح تحت تأثیر قرار میگیرد. تانگ خاطرنشان میکند که گاهی اوقات نمیتواند معنای سؤالات را درک کند، حتی برای مشکلات سطح آسان.
به عنوان مثال، توانایی چت جیپیتی برای تولید کد عملکردی برای مشکلات کدنویسی «آسان» از ۸۹ درصد به ۵۲ درصد پس از سال ۲۰۲۱ کاهش یافت. همچنین توانایی آن برای تولید کد عملکردی برای مشکلات «سخت» از ۴۰ درصد به ۰.۶۶ درصد پس از این زمان کاهش یافت.
تانگ میگوید: یک فرضیه منطقی برای اینکه چرا چت جیپیتی میتواند قبل از سال ۲۰۲۱ با مشکلات الگوریتم بهترعمل کند، این است که این مشکلات اغلب در مجموعه دادههای آموزشی دیده میشوند.
اساساً، با تکامل کدنویسی، چت جیپیتی هنوز در معرض مشکلات و راه حلهای جدید قرار نگرفته است، فاقد مهارتهای تفکر انتقادی یک انسان است و فقط میتواند مشکلاتی را که قبلاً با آن مواجه شده است برطرف کند. این موضوع میتواند توضیح دهد که چرا در رسیدگی به مشکلات کدنویسی قدیمیتر از مشکلات جدیدتر بسیار بهتر است.
جالب اینجاست که چت جیپیتی قادر به تولید کد با زمان اجرا و سربار حافظه کمتر از حداقل ۵۰ درصد راه حلهای انسانی برای همان مشکلات لت کد است.
محققان همچنین توانایی چت جیپیتی را برای رفع خطاهای کدگذاری خود پس از دریافت بازخورد از لت کد بررسی کردند. آنها به طور تصادفی ۵۰ سناریو کد نویسی را انتخاب کردند که در آن چت جیپیتی در ابتدا کدنویسی نادرستی ایجاد کرد، یا به دلیل اینکه محتوا یا مشکل موجود را درک نمیکرد.
در حالی که چت جیپیتی در رفع خطاهای کامپایل خوب بود، به طور کلی در اصلاح اشتباهات خود خوب نبود.
تانگ توضیح میدهد: چت جیپیتی ممکن است کد نادرستی تولید کند، زیرا معنای مشکلات الگوریتم را درک نمیکند، بنابراین، این اطلاعات برای بازخورد خطای ساده کافی نیست.
بنا به گفته آناپرس محققان همچنین دریافتند که کدهای ایجاد شده توسط چت جیپیتی دارای میزان نسبتاً خوبی از آسیبپذیریها هستند، اما بسیاری از این آسیبپذیریها به راحتی قابل رفع هستند. نتایج آنها همچنین نشان میدهد که کد تولید شده در محیط نرم افزاری «سی» پیچیدهترین کد است و پس از آن سی پلاس پلاس و پایتون پیچیدگی مشابهی با کد نوشتهشده توسط انسان دارد.
تانگ میگوید، بر اساس این نتایج، مهم است که توسعهدهندگانی که از چت جیپیتی استفاده میکنند، اطلاعات بیشتری را برای کمک به چت جیپیتی در درک بهتر مشکلات یا اجتناب از آسیبپذیریها ارائه دهند.
مطالعهای که در شماره ژوئن IEEE منتشر شد، کد تولید شده توسط چت جیپیتی را از نظر عملکرد، پیچیدگی و امنیت ارزیابی کرد. نتایج نشان میدهد که چت جیپیتی در تولید کد عملکردی بسته به سختی کار، زبان برنامهنویسی و عوامل دیگر طیف بسیار گستردهای از موفقیت دارد.
در حالی که در برخی موارد مولد هوش مصنوعی میتواند کد بهتری نسبت به انسان تولید کند، این تجزیه و تحلیل همچنین برخی نگرانیهای امنیتی را در مورد کدهای تولید شده توسط هوش مصنوعی نشان میدهد.
یوتیان تانگ یک مدرس دانشگاه گلاسکو است که در این مطالعه شرکت داشت. او خاطرنشان میکند که تولید کد مبتنی بر هوش مصنوعی میتواند مزایایی را از نظر افزایش بهرهوری و خودکارسازی وظایف توسعه نرمافزار ارائه دهد؛ اما درک نقاط قوت و محدودیتهای این مدلها مهم است.
تانگ توضیح میدهد: با انجام یک تجزیه و تحلیل جامع، میتوانیم مسائل و محدودیتهای بالقوهای را که در تولید کد مبتنی بر چت جیپیتی ایجاد میشود، کشف کنیم… [و]تکنیکهای تولید را بهبود ببخشیم.
برای بررسی جزئیات بیشتر این محدودیت ها، تیم او به دنبال آزمایش توانایی «جیپیتی-۳,۵» (GPT-۳.۵) برای رسیدگی به ۷۲۸ مشکل کدنویسی از پلت فرم تست «لت کد» (LeetCode) در پنج زبان برنامه نویسی سی (C)، سی پلاس پلاس (C++)، جاوا، جاوا اسکریپت و پایتون بود.
به طور کلی، چت جیپیتی در حل مشکلات زبانهای مختلف کدنویسی بهویژه در هنگام تلاش برای حل مشکلات کدنویسی که قبل از سال ۲۰۲۱ در لت کد وجود داشت، نسبتاً خوب بود. به عنوان مثال، توانست کد عملکردی را برای مشکلات آسان، متوسط و سخت با موفقیت تولید کند. نرخ موفقیت به ترتیب حدود ۸۹، ۷۱ و ۴۰ درصد است.
با این حال، وقتی صحبت از مشکلات الگوریتم بعد از سال ۲۰۲۱ میشود، توانایی چت جیپیتی برای تولید کد عملکردی صحیح تحت تأثیر قرار میگیرد. تانگ خاطرنشان میکند که گاهی اوقات نمیتواند معنای سؤالات را درک کند، حتی برای مشکلات سطح آسان.
به عنوان مثال، توانایی چت جیپیتی برای تولید کد عملکردی برای مشکلات کدنویسی «آسان» از ۸۹ درصد به ۵۲ درصد پس از سال ۲۰۲۱ کاهش یافت. همچنین توانایی آن برای تولید کد عملکردی برای مشکلات «سخت» از ۴۰ درصد به ۰.۶۶ درصد پس از این زمان کاهش یافت.
تانگ میگوید: یک فرضیه منطقی برای اینکه چرا چت جیپیتی میتواند قبل از سال ۲۰۲۱ با مشکلات الگوریتم بهترعمل کند، این است که این مشکلات اغلب در مجموعه دادههای آموزشی دیده میشوند.
اساساً، با تکامل کدنویسی، چت جیپیتی هنوز در معرض مشکلات و راه حلهای جدید قرار نگرفته است، فاقد مهارتهای تفکر انتقادی یک انسان است و فقط میتواند مشکلاتی را که قبلاً با آن مواجه شده است برطرف کند. این موضوع میتواند توضیح دهد که چرا در رسیدگی به مشکلات کدنویسی قدیمیتر از مشکلات جدیدتر بسیار بهتر است.
جالب اینجاست که چت جیپیتی قادر به تولید کد با زمان اجرا و سربار حافظه کمتر از حداقل ۵۰ درصد راه حلهای انسانی برای همان مشکلات لت کد است.
محققان همچنین توانایی چت جیپیتی را برای رفع خطاهای کدگذاری خود پس از دریافت بازخورد از لت کد بررسی کردند. آنها به طور تصادفی ۵۰ سناریو کد نویسی را انتخاب کردند که در آن چت جیپیتی در ابتدا کدنویسی نادرستی ایجاد کرد، یا به دلیل اینکه محتوا یا مشکل موجود را درک نمیکرد.
در حالی که چت جیپیتی در رفع خطاهای کامپایل خوب بود، به طور کلی در اصلاح اشتباهات خود خوب نبود.
تانگ توضیح میدهد: چت جیپیتی ممکن است کد نادرستی تولید کند، زیرا معنای مشکلات الگوریتم را درک نمیکند، بنابراین، این اطلاعات برای بازخورد خطای ساده کافی نیست.
بنا به گفته آناپرس محققان همچنین دریافتند که کدهای ایجاد شده توسط چت جیپیتی دارای میزان نسبتاً خوبی از آسیبپذیریها هستند، اما بسیاری از این آسیبپذیریها به راحتی قابل رفع هستند. نتایج آنها همچنین نشان میدهد که کد تولید شده در محیط نرم افزاری «سی» پیچیدهترین کد است و پس از آن سی پلاس پلاس و پایتون پیچیدگی مشابهی با کد نوشتهشده توسط انسان دارد.
تانگ میگوید، بر اساس این نتایج، مهم است که توسعهدهندگانی که از چت جیپیتی استفاده میکنند، اطلاعات بیشتری را برای کمک به چت جیپیتی در درک بهتر مشکلات یا اجتناب از آسیبپذیریها ارائه دهند.
کد خبر ۲۱۳۰۳۰۴۲۴.۵۷۱