SonarSource спонсировал этот пост. Insight Partners является инвестором SonarSource и TNS.
Мир разработки программного обеспечения сталкивается с новым «парадоксом инженерной производительности». С одной стороны, помощники по программированию на базе искусственного интеллекта генерируют ошеломляющий объем кода. Например, Google заявил, что 30% его кода использует предложения, сгенерированные ИИ. Однако скорость разработки не претерпела пропорционального скачка: прирост производительности оценивается в 10%.
Это несоответствие подчеркивает критическое узкое место: весь код, созданный ИИ, должен проверяться, проверяться и часто исправляться разработчиками-людьми. Основная проблема заключается не в количестве кода, сгенерированного ИИ; это качество.
«Мусор на входе — мусор на выходе» — это принцип компьютерной техники на протяжении десятилетий. Сегодня это основная задача кодирования больших языковых моделей (LLM), которые обучаются на огромных нефильтрованных наборах данных из общедоступных репозиториев кода. Неудобная правда заключается в том, что эти репозитории пронизаны ошибками, уязвимостями безопасности и «запахами кода», которые способствуют возникновению технического долга. Когда LLM учится на этих ошибочных данных, он учится воспроизводить эти недостатки.
Недавние исследования подтверждают это. Анализ ведущих LLM, проведенный Sonar, показывает, что все они имеют общие «слепые зоны», постоянно создают код с уязвимостями высокой степени серьезности и имеют глубоко укоренившуюся тенденцию писать код, который трудно поддерживать.
Этот поток проблемного кода возлагает еще большую нагрузку на рецензентов, устраняя узкое место, а не устраняя его, и создавая тот самый парадокс производительности, который мы пытаемся решить.
Сдвиг влево от «Сдвиг влево»
В течение многих лет отрасль отстаивала движение «сдвиг влево» — практику, направленную на выявление и устранение проблем с качеством и безопасностью как можно раньше в жизненном цикле разработки программного обеспечения (SDLC). Мы перенесли тестирование с заключительного этапа подготовки к производству на интегрированную часть конвейеров CI/CD, а инструменты статического анализа были интегрированы непосредственно в IDE разработчика. Цель была проста: найти проблему как можно раньше и починить дешево.
Но генерация кода с помощью ИИ ломает эту модель. «Начало» жизненного цикла больше не является моментом, когда разработчик пишет первую строку кода. Жизненный цикл теперь начинается раньше — внутри самого LLM, с данными, на которых он обучался.
Если инструмент ИИ генерирует код, который уже небезопасен или содержит ошибки, битва «сдвиг влево» уже наполовину проиграна. По сути, мы играем в оборону, используя наших лучших разработчиков в качестве последней опоры, чтобы выявить ошибки наших самых «продуктивных» новых инструментов.
Логической и необходимой эволюцией этой концепции является смещение еще дальше влево. Мы должны переключить внимание с анализа кода, сгенерированного ИИ, на улучшение исходного кода. Новым рубежом качества и безопасности кода являются обучающие данные LLM.
Курирование «образования» ИИ
Появляется новый подход к решению этой проблемы. Концепция предполагает применение «очистки» к огромным наборам данных, используемых для обучения и точной настройки моделей кодирования.
Представьте себе, что вы используете мощный и крупномасштабный механизм статического анализа, который распознает тысячи шаблонов ошибок, уязвимостей безопасности и проблем с удобством обслуживания, и который использует петабайты обучающих данных. Этот механизм может идентифицировать, исправлять и отфильтровывать проблемный код еще до того, как он станет частью «обучения» LLM.
Результаты этого подхода весьма значительны. Первые результаты работы нашей новой службы SonarSweep, проведенные в компании Sonar, показали, что модели, точно настроенные на основе таких исправленных данных, создают код со значительно меньшим количеством ошибок. В одном анализе этот «очистительный» процесс привел к созданию моделей, которые генерировали код с на 67% меньшим количеством уязвимостей безопасности и на 42% меньшим количеством ошибок, и все это без ухудшения функциональной корректности выходных данных.
Это представляет собой фундаментальное изменение в нашем подходе к развитию с помощью ИИ. Вместо того, чтобы просто быстрее генерировать больше кода и создавать узкие места в последующих проверках, мы можем с самого начала обучать модели генерировать более качественный код.
Истинная скорость – это не только чистый результат; речь идет о количестве высококачественного, безопасного и удобного в сопровождении кода, который попадает в рабочую среду с минимальным вмешательством человека. Обеспечивая, чтобы наши модели ИИ учились на наших лучших примерах, а не на худших, мы уменьшаем нагрузку на проверку и освобождаем разработчиков-людей, чтобы они могли сосредоточиться на том, что они делают лучше всего: решении сложных проблем и создании будущих проектов.
Sonar — это золотой стандарт интегрированного качества и безопасности кода — для ВСЕХ кодов. Мы предоставили более чем 7 миллионам разработчиков действенную информацию о коде, необходимую для обеспечения безопасности, хорошо написанного и поддерживаемого кода. Узнайте больше Последние новости от SonarSource ТЕНДЕНЦИОННЫЕ ИСТОРИИ YOUTUBE.COM/THENEWSTACK Технологии развиваются быстро, не пропустите ни одной серии. Подпишитесь на наш канал YouTube, чтобы смотреть все наши подкасты, интервью, демонстрации и многое другое. ПОДПИСАТЬСЯ Группа, созданная в Sketch. Маниш Капур — технический руководитель продукта с большим опытом управления продуктами, взаимоотношений с разработчиками, маркетинга и стратегии. В настоящее время он является старшим директором по маркетингу технических продуктов в компании Sonar, базирующейся в Остине, штат Техас. Узнайте больше от Маниша Капура