Код, созданный с помощью искусственного интеллекта, приводит к сбоям в работе и проблемам безопасности в бизнесе
14 сентября 2024 г.Компании, использующие искусственный интеллект для генерации кода, сталкиваются с проблемами простоя и безопасности. Команда Sonar, поставщика продуктов для обеспечения качества и безопасности кода, слышала из первых уст истории о постоянных сбоях даже в крупных финансовых учреждениях, где разработчики, ответственные за код, обвиняют ИИ.
Среди многих других недостатков, инструменты ИИ не идеальны в генерации кода. Исследователи из Университета Билкента обнаружили, что последние версии ChatGPT, GitHub Copilot и Amazon CodeWhisperer генерировали правильный код всего в 65,2%, 46,3% и 31,1% случаев соответственно.
Часть проблемы в том, что ИИ, как известно, плох в математике, потому что ему трудно понять логику. Плюс, программисты не славятся тем, что умеют писать подсказки, потому что «ИИ не делает вещи последовательно или не работает как код», по словам профессора ИИ Уортона Итана Моллика.
СМОТРЕТЬ: OpenAI представляет модель «Strawberry», оптимизированную для сложного кодирования и математики
Может ли быть причиной «недостаточное количество отзывов»?
В конце 2023 года более половины организаций заявили, что сталкивались с проблемами безопасности из-за плохого кода, сгенерированного ИИ, «иногда» или «часто», согласно опросу Snyk. Но проблема может усугубиться, поскольку, по данным Gartner, к 2028 году 90% инженеров корпоративного программного обеспечения будут использовать помощников по кодированию ИИ.
Тарик Шаукат, генеральный директор Sonar и бывший президент Bumble и Google Cloud, «уже слышит об этом все больше и больше». Он сказал TechRepublic в интервью: «Компании все чаще развертывают инструменты генерации ИИ-кода, а сгенерированный код внедряется в производство, что приводит к сбоям и/или проблемам безопасности.
«В целом это происходит из-за недостаточного количества проверок, либо потому, что компания не внедрила надежные методы контроля качества кода и проверки кода, либо потому, что разработчики изучают код, написанный с помощью ИИ, меньше, чем свой собственный код.
«Когда их спрашивают об ошибках в ИИ, они обычно отвечают: «Это не мой код», имея в виду, что они чувствуют себя менее ответственными, потому что не они его писали».
СМ.: 31% организаций, использующих генеративный ИИ, просят его писать код (2023)
Он подчеркнул, что это происходит не из-за невнимательности со стороны разработчиков, а скорее из-за отсутствия интереса к «копированию и редактированию кода», а также из-за неготовности процессов контроля качества к скорости внедрения ИИ.
Эффект «невмешательства»
Кроме того, исследование Стэнфордского университета 2023 года, в котором рассматривалось взаимодействие пользователей с помощниками по кодированию на основе ИИ, показало, что те, кто их использует, «пишут значительно менее безопасный код», но «с большей вероятностью считают, что пишут безопасный код». Это говорит о том, что, просто используя инструменты ИИ, программисты автоматически принимают более либеральное отношение к проверке своей работы.
Человеку свойственно поддаваться соблазну найти более простой и быстрый путь, особенно когда он находится под давлением менеджера или графика запуска, но полное доверие ИИ может повлиять на качество проверки кода и понимание того, как код взаимодействует с приложением.
Сбой CrowdStrike в июле показал, насколько масштабным может быть сбой, если критическая система выйдет из строя. Хотя этот инцидент не был конкретно связан с кодом, сгенерированным ИИ, причиной сбоя стала ошибка в процессе проверки, которая позволила развернуть «проблемные данные контента». Это демонстрирует важность человеческого фактора при проверке критического контента.
Разработчики также не не знают о потенциальных подводных камнях использования ИИ в своей работе. Согласно отчету Stack Overflow, только 43% разработчиков доверяют точности инструментов ИИ, что всего на 1% выше, чем в 2023 году. Рейтинг благоприятствования ИИ среди разработчиков также снизился с 77% в прошлом году до 72% в этом году.
Но, несмотря на риск, инженерные отделы не отвернулись от инструментов кодирования ИИ, в основном из-за преимуществ эффективности. Опрос, проведенный Outsystems, показал, что более 75% руководителей программного обеспечения сократили время разработки почти вдвое благодаря автоматизации на основе ИИ. Это также делает разработчиков счастливее, сказал Шаукат TechRepublic, потому что они тратят меньше времени на рутинные задачи.
Что такое «переход кода»?
Экономия времени за счет повышения производительности может быть компенсирована усилиями, необходимыми для устранения проблем, вызванных кодом, сгенерированным ИИ.
Исследователи из GitClear проверили 153 миллиона строк кода, изначально написанных между январем 2020 года и декабрем 2023 года — когда резко возросло использование помощников по кодированию на основе ИИ — которые были изменены каким-либо образом. Они отметили рост количества кода, который пришлось исправить или вернуть менее чем через две недели после его создания, так называемый «переход кода», что указывает на нестабильность.
Исследователи прогнозируют, что количество случаев изменения кода в 2024 году удвоится по сравнению с базовым уровнем до ИИ 2021 года, и что более 7% всех изменений кода будут отменены в течение двух недель.
Кроме того, в течение периода исследования процент скопированного кода также заметно увеличился. Это противоречит популярной мантре «DRY» или «Don’t Repeat Yourself» среди программистов, поскольку повторяющийся код может привести к увеличению обслуживания, ошибкам и непоследовательности в кодовой базе.
Однако Шаукат отметил, что пока рано говорить о том, сведут ли на нет операции по очистке экономию времени, связанную с использованием помощников на основе ИИ.
СМ.: Лучшие инструменты безопасности для разработчиков
«Наш опыт показывает, что типичные разработчики принимают предложения от генераторов кода примерно в 30% случаев. Это имеет значение», — сказал он. «Когда система спроектирована правильно, с правильными инструментами и процессами, любая работа по очистке выполнима».
Однако разработчики все равно должны нести ответственность за код, который они отправляют, особенно когда используются инструменты ИИ. Если они этого не делают, то код, вызывающий простои, просочится сквозь щели.
Шаукат рассказал TechRepublic: «Генеральным директорам, ИТ-директорам и другим руководителям корпораций необходимо пересмотреть свои процессы в свете возросшего использования ИИ при генерации кода и уделить первоочередное внимание принятию необходимых мер по обеспечению качества.
«Там, где они не могут этого сделать, они столкнутся с частыми сбоями, большим количеством ошибок, потерей производительности труда разработчиков и повышенными рисками безопасности. Инструменты ИИ должны быть и надежными, и проверенными».
Оригинал