مدلهای یادگیری ماشینی که ابزارهای تکمیل کد نسل بعدی مانند GitHub Copilot را تامین میکنند، میتوانند به توسعهدهندگان نرمافزار کمک کنند تا کدهای کاربردیتری بنویسند، بدون اینکه امنیت آن کمتر شود.
این نتیجه آزمایشی یک نظرسنجی هرچند کوچک 58 نفره است که توسط گروهی از دانشمندان کامپیوتر دانشگاه نیویورک انجام شده است.
In یک کاغذ از طریق ArXiv، Gustavo Sandoval، Hammond Pearce، Teo Nys، Ramesh Karri، Brendan Dolan-Gavitt و Siddharth Garg توزیع شده است که چگونه امنیت کد منبع ایجاد شده با کمک مدل های زبان بزرگ (LLM) را مورد آزمایش قرار دادند.
LLMهایی مانند خانواده OpenAI GPT بر روی مقادیر انبوهی از دادههای متنی عمومی یا کد منبع عمومی در مورد OpenAI's Codex، یکی از فرزندان GPT و پایه و اساس Copilot GitHub آموزش دیدهاند. به این ترتیب، آنها ممکن است خطاهایی را که در گذشته توسط برنامه نویسان انسانی ایجاد شده است، بازتولید کنند، که عبارت "زباله داخل، زباله بیرون" را نشان می دهد. این ترس وجود داشت که این ابزارها دوباره تولید شوند و کد بدی را به توسعهدهندگان پیشنهاد کنند، که این موارد را در پروژههای خود وارد کنند.
علاوه بر این، امنیت کد میتواند زمینهای باشد: کدهایی که به صورت مجزا ایمن هستند ممکن است زمانی که در یک دنباله خاص با نرمافزارهای دیگر اجرا میشوند ناامن باشند. بنابراین، این ابزارهای تکمیل خودکار ممکن است کدهایی را ارائه دهند که به خودی خود خوب هستند، اما با کدهای دیگر مرتبط هستند، اکنون در برابر حمله آسیب پذیر هستند یا به سادگی شکسته می شوند. با این حال، معلوم می شود که این ابزارها ممکن است در واقع انسان را در برنامه نویسی بدتر نکنند.
به نوعی، محققان در حال خاموش کردن آتش خود بودند. حدود یک سال پیش، دو نفر از همان دانشمندان کامپیوتر در مقالهای با عنوان «خواب روی صفحهکلید؟ ارزیابی امنیت مشارکت های کد GitHub Copilot.” آن کار پیدا شد در مورد درصد 40 از خروجی Copilot شامل نقاط ضعف بالقوه قابل بهره برداری (CWEs).
تفاوت بین این دو مقاله در این است که «خواب روی صفحه کلید» به تولید کد کاملاً خودکار نگاه میکرد (هیچ انسانی در حلقه وجود ندارد)، و ما کاربران انسانی برای مقایسه با آنها نداشتیم، بنابراین نمیتوانیم چیزی در مورد چگونگی آن بگوییم. Brendan Dolan-Gavitt، یکی از نویسندگان مقالات و استادیار در بخش علوم کامپیوتر و مهندسی در دانشگاه نیویورک تاندون، در ایمیلی به ثبت نام.
«مقاله مطالعه کاربر سعی میکند مستقیماً با آن قطعات گمشده مقابله کند، به این ترتیب نیمی از کاربران از Codex (مدلی که Copilot را نیرو میدهد) کمک میگیرند و نیمی دیگر خودشان کد را بنویسند. با این حال، از «خواب روی صفحهکلید» نیز باریکتر است: ما فقط به یک کار و یک زبان نگاه کردیم (نوشتن یک لیست پیوندی به زبان C).»
در آخرین گزارش، «پیامدهای امنیتی دستیاران کد مدل زبانی بزرگ: یک مطالعه کاربر»، مجموعه کمی متفاوت از محققان دانشگاه نیویورک اذعان میکنند که کار قبلی در مدلسازی واقعی استفاده از ابزارهای مبتنی بر LLM مانند Copilot شکست خورده است.
بوفین ها در مقاله خود توضیح می دهند: "اول، این مطالعات فرض می کنند که کل کد به طور خودکار توسط LLM تولید می شود (این حالت را حالت خلبان خودکار می نامیم).
در عمل، LLM های تکمیل کد به توسعه دهندگان کمک می کنند تا پیشنهاداتی را بپذیرند، ویرایش کنند یا رد کنند. این بدان معناست که در حالی که برنامه نویسانی که مستعد سوگیری اتوماسیون هستند ممکن است ساده لوحانه تکمیل های باگ را بپذیرند، توسعه دهندگان دیگر ممکن است با استفاده از زمان صرفه جویی شده برای رفع اشکال، کد باگ کمتری تولید کنند.
دوم، آنها مشاهده می کنند که در حالی که نشان داده شده است که LLM ها کدهای باگی تولید می کنند، انسان ها نیز این کار را انجام می دهند. اشکالات موجود در داده های آموزشی LLM از سوی افراد آمده است.
بنابراین به جای ارزیابی اشکالات کد تولید شده توسط LLM به تنهایی، آنها تصمیم گرفتند تا تفاوت کدهای تولید شده توسط توسعه دهندگان انسانی با کمک مدل های یادگیری ماشینی را با کد تولید شده توسط برنامه نویسی که به تنهایی کار می کنند، مقایسه کنند.
دانشمندان کامپیوتر دانشگاه نیویورک 58 شرکتکننده در نظرسنجی -دانشجویان کارشناسی و کارشناسی ارشد در دورههای توسعه نرمافزار- را استخدام کردند و آنها را به یک گروه کنترل که بدون پیشنهاد کار میکردند و یک گروه کمکی که به یک سیستم پیشنهاد سفارشی ساخته شده با استفاده از OpenAI دسترسی داشتند تقسیم کردند. کدکس API. آنها همچنین از مدل Codex برای ایجاد 30 راه حل برای مسائل برنامه نویسی داده شده به عنوان نقطه مقایسه استفاده کردند. این گروه خلبان خودکار عمدتاً به عنوان گروه کنترل دوم عمل می کرد.
هر دو گروه Assisted و Control مجاز به مشورت با منابع وب مانند Google و Stack Overflow بودند، اما از دیگران درخواست کمک نکردند. کار در کد ویژوال استودیو در یک کانتینر مبتنی بر وب ساخته شده با منبع باز انجام شد آنوبیس.
از شرکت کنندگان خواسته شد تا یک برنامه لیست خرید را با استفاده از زبان برنامه نویسی C تکمیل کنند، زیرا "برای توسعه دهندگان آسان است که الگوهای طراحی آسیب پذیر را در C بیان کنند" و به دلیل اینکه زنجیره ابزار کامپایلر C مورد استفاده، خطاها را در زنجیره های ابزار با درجه یکسان بررسی نمی کند. زبان های مدرن، مانند Go و Rust، این کار را انجام می دهند.
هنگامی که محققان به صورت دستی کد تولید شده توسط گروه های کنترل و دستیار را تجزیه و تحلیل کردند، دریافتند که برخلاف کار قبلی، پیشنهادات کد هوش مصنوعی به طور کلی اوضاع را بدتر نمی کند.
به نظر واضح است، اما جزئیات وجود دارد
در این مقاله آمده است: «[ما] هیچ مدرکی پیدا نکردیم که نشان دهد کمک کدکس بروز اشکالات امنیتی را افزایش میدهد،» در حالی که اشاره کرد که حجم نمونه کوچک این مطالعه به این معنی است که مطالعه بیشتر ضروری است. "برعکس، شواهدی وجود دارد که نشان می دهد CWEs/LoC [خطوط کد] با کمک Codex کاهش می یابد."
سیدهارت گارگ، محقق امنیت سایبری و دانشیار دپارتمان مهندسی در دانشگاه نیویورک تاندون، در یک مصاحبه تلفنی با ثبت نام.
نتیجه گیری با اطمینان آماری بسیار دشوار است
با این حال، او گفت: "داده ها نشان می دهد که کاربران Copilot وضعیت بدتری نداشتند."
دولان گاویت نیز به همین ترتیب در مورد این یافته ها محتاط است.
«تحلیل کنونی نتایج مطالعه کاربران ما هیچ تفاوت آماری معنیداری پیدا نکرده است - ما هنوز در حال تجزیه و تحلیل این موضوع هستیم، از جمله از نظر کیفی، بنابراین من نتیجهگیری محکمی از این نمیکنم، به خصوص که این یک مطالعه کوچک بود (در کل 58 کاربر) و کاربران همه دانشآموز بودند تا توسعهدهندگان حرفهای.»
با این حال، میتوان گفت که با این کاربران، در این کار، تأثیر امنیتی داشتن کمک هوش مصنوعی احتمالاً زیاد نبود: اگر تأثیر بسیار زیادی داشت، تفاوت بزرگتری بین این دو گروه مشاهده میکردیم. ما در حال انجام تجزیه و تحلیل آماری کمی هستیم تا آن را دقیق کنیم.
فراتر از آن، برخی بینش های دیگر ظاهر شد. یکی این است که شرکتکنندگان گروه دستیار سازندهتر بودند، خطوط بیشتری از کد تولید میکردند و بخش بیشتری از عملکردهای تکلیف را تکمیل میکردند.
گارگ گفت: «کاربران گروه Assisted تستهای عملکردی بیشتری را پشت سر گذاشتند و کدهای عملکردی بیشتری تولید کردند.
مورد دیگر این است که محققان توانستند خروجی تولید شده توسط گروه های کنترل، کمک و خلبان خودکار را تشخیص دهند، که ممکن است باعث کاهش نگرانی ها در مورد تقلب با هوش مصنوعی در محیط های آموزشی
Boffins همچنین دریافتند که ابزارهای هوش مصنوعی باید در زمینه خطای کاربر در نظر گرفته شوند. این مقاله میگوید: «کاربران اعلانهایی را ارائه میدهند که ممکن است شامل اشکال باشد، اعلانهای باگ را بپذیرند که به برنامههای «تکمیلشده» ختم میشوند و همچنین اشکالاتی را میپذیرند که بعداً حذف میشوند. "در برخی موارد، کاربران همچنین با اشکالات بیشتری نسبت به آنچه که توسط مدل پیشنهاد شده بود مواجه می شوند!"
منتظر کار بیشتر در این مسیر باشید. ®
- AI
- آی هنر
- مولد هنر ai
- ربات ai
- هوش مصنوعی
- گواهی هوش مصنوعی
- هوش مصنوعی در بانکداری
- ربات هوش مصنوعی
- ربات های هوش مصنوعی
- نرم افزار هوش مصنوعی
- بلاکچین
- کنفرانس بلاک چین ai
- coingenius
- هوش مصنوعی محاوره ای
- کنفرانس کریپتو ai
- دل-ه
- یادگیری عمیق
- گوگل ai
- فراگیری ماشین
- افلاطون
- افلاطون آی
- هوش داده افلاطون
- بازی افلاطون
- PlatoData
- بازی پلاتو
- مقیاس Ai
- نحو
- ثبت نام
- زفیرنت