Искусственный интеллект

Ген ИИ может ускорить кодирование, но предприятиям все равно следует учитывать риски

Ген ИИ может ускорить кодирование, но предприятиям все равно следует учитывать риски

Организации, желающие финансировать разработку программного обеспечения на основе искусственного интеллекта ради ожидаемых преимуществ, должны также понимать, что это может привести к негативным последствиям.

Разработчики теперь могут обратиться к генеративному искусственному интеллекту (Gen AI), чтобы создавать код быстрее и эффективнее, но делать это нужно с осторожностью и не менее внимательно, чем раньше.

Использование искусственного интеллекта в разработке программного обеспечения, возможно, не является чем-то новым - он существует, по крайней мере, с 2019 года, и Gen AI приносит значительные улучшения в генерации естественного языка, изображений и - в последнее время - видео и других активов, включая код, сказал ZDNET Диего Ло Джудиче, вице-президент и главный аналитик Forrester.

Предыдущие итерации ИИ использовались в основном для тестирования кода, а машинное обучение применялось для оптимизации моделей для стратегий тестирования, рассказал Ло Джудиче ZDNET. Gen AI выходит за рамки этих сценариев использования, предлагая доступ к эксперту-программисту или специалисту (например, тестировщику или бизнес-аналитику), к которому можно обратиться в интерактивном режиме для быстрого поиска информации. Gen AI также может предлагать решения и тестовые примеры.

«Впервые мы наблюдаем значительный рост производительности, которого не давали традиционный ИИ и другие технологии», - сказал он.

К 2026 году, по прогнозам IDC, 40 % новых приложений в Азиатско-Тихоокеанском регионе будут представлять собой «интеллектуальные приложения», в которые интегрирован ИИ поколения Gen для повышения удобства пользователей и создания новых сценариев использования.

Согласно исследованию IDC, проведенному по заказу платформы для разработки низкокодовых приложений OutSystems, главным эффектом от использования Gen AI в разработке и проектировании программного обеспечения станет повышение производительности и скорости работы разработчиков.

Такие потенциальные преимущества для бизнеса заставят 30 % организаций Азиатско-Тихоокеанского региона заплатить от 11 % до 20 % за функции Gen AI при разработке приложений, прогнозирует IDC.

Кроме того, исследовательская компания ожидает, что к 2025 году более 60 % предприятий по всему миру будут использовать технологии low-code для ускорения создания приложений и повышения операционной эффективности.

Разработчики могут использовать ИИ на всех этапах жизненного цикла разработки программного обеспечения, причем на каждом этапе для улучшения технологических стеков и платформ будет использоваться специальный «Тьюрингбот», отметил Ло Джудиче.

Компания Forrester ввела термин TuringBots для обозначения инструментов на базе ИИ, которые помогают разработчикам создавать, тестировать и развертывать код. Исследовательская компания считает, что TuringBots станут движущей силой нового поколения разработки программного обеспечения, помогая на каждом этапе жизненного цикла разработки, включая поиск технической документации и автоматическое завершение кода.

Например, «аналитические/плановые боты Тьюринга» могут облегчить анализ и планирование на этапе разработки программного обеспечения, подробно рассказал Ло Джудиче, указав на ChatGPT от OpenAI и Atlassian Intelligence как на примеры таких продуктов ИИ. Другие продукты, такие как Gemini Advanced от Google Cloud, могут генерировать проекты микросервисов и API с их кодовой реализацией, а Microsoft Sketch2Code может генерировать рабочий код из написанных от руки эскизов пользовательского интерфейса, сказал он.

Ло Джудиче добавил, что «кодерские боты Тьюринга» в настоящее время являются наиболее популярным вариантом использования Gen AI в разработке программного обеспечения, генерируя код из подсказок, а также из контекста кода и комментариев с помощью автодополнения для популярных интегрированных сред разработки (IDE). К ним относятся такие распространенные языки, как JavaScript, C++, Python и Rust.

По словам Майкла Бахмана, руководителя отдела архитектуры и стратегии ИИ компании Boomi, большая привлекательность генеративных моделей заключается в том, что они могут писать код на многих языках, позволяя разработчикам вводить подсказки для генерации, рефакторинга или отладки строк кода. «По сути, все люди, взаимодействующие с Gen AI, - это квази- и старшие разработчики», - сказал он.

Производитель программного обеспечения интегрирует Gen AI в некоторые свои продукты, включая Boomi AI, который переводит запросы на естественном языке в действия. Разработчики могут использовать Boomi AI для проектирования интеграционных процессов, API и моделей данных, чтобы соединить приложения, данные и процессы, сообщает Boomi.

Компания использует Gen AI для поддержки собственных разработчиков программного обеспечения, которые внимательно следят за кодом, на котором работает ее платформа.

«И это главное», - говорит Бахман. Если вы используете Gen AI в качестве основного источника для создания всего приложения, вы, вероятно, будете разочарованы». Хорошие разработчики используют Gen AI в качестве отправной точки или для тщательного тестирования сценариев отказа, прежде чем запускать код в производство. Вот как мы решаем эту проблему внутри компании».

Его команда также работает над созданием функций для решения «практических задач ИИ» своих клиентов. Например, Boomi создает поисковую систему, поскольку многие ее клиенты хотят заменить поиск по ключевым словам возможностью искать контент, например, каталоги на своих сайтах, на естественном языке.

По словам Ло Джудиче, разработчики также могут использовать Gen AI для устранения проблем безопасности: он будет искать уязвимости в сгенерированном ИИ коде и предлагать разработчикам предложения по устранению определенных уязвимостей.

По словам главного аналитика Forrester Джона Братинчевича, по сравнению с традиционным кодированием, стратегия разработки без кода или с низким кодом может предложить скорость, встроенное качество и адаптивность.

По словам Братинчевича, она также обеспечивает интегрированный инструментарий жизненного цикла разработки программного обеспечения и доступ к расширенному кадровому резерву, включающему некодеров и «гражданских разработчиков», не входящих в ИТ-сообщество.

Однако организации могут столкнуться с проблемами, связанными с управлением крупномасштабным внедрением, особенно с управлением гражданскими разработчиками, число которых может исчисляться тысячами, предостерег он. Препятствием может стать и ценообразование, поскольку оно обычно зависит от количества конечных пользователей, сказал он.

Хотя Gen AI или программные помощники с поддержкой ИИ могут позволить младшим специалистам заполнить пробелы в кадрах, в том числе в области кибербезопасности, Ло Джудиче считает, что для решения всех этих задач по-прежнему необходим экспертный взгляд.

Братинчевич согласился с ним, подчеркнув, что разработчикам и другим сотрудникам, участвующим в жизненном цикле разработки программного обеспечения, необходимо проверять все, что платформа генерирует или автоматически настраивает с помощью ИИ.

«Мы еще не достигли и, вероятно, никогда не достигнем того уровня, когда можно будет слепо доверять ИИ в разработке программного обеспечения», - сказал он.

По словам Скотта Шоу, технического директора Thoughtworks в Азиатско-Тихоокеанском регионе, необходимо учитывать требования безопасности. Технологическая консультация регулярно тестирует новые инструменты для повышения эффективности, будь то в IDE или для поддержки работы разработчиков. Компания делает это там, где это целесообразно для ее клиентов, и только с их согласия, сказал Шоу в интервью ZDNET, отметив, что некоторые компании все еще нервничают по поводу использования Gen AI.

«По нашему опыту, инструменты [Gen AI] для кодирования программного обеспечения не так хорошо осведомлены о безопасности и не так хорошо знают методы кодирования для обеспечения безопасности», - сказал он. Например, разработчикам, работающим в организациях с регулируемой или чувствительной к данным средой, возможно, придется придерживаться дополнительных методов и средств контроля безопасности в рамках процессов поставки программного обеспечения».

Использование помощника по кодированию может удвоить производительность, но разработчики должны задаться вопросом, смогут ли они адекватно тестировать код и выполнять требования к качеству на протяжении всего процесса, отметил он.

Это обоюдоострый меч: Организациям следует обратить внимание на то, как Gen AI может дополнить их практику кодирования, чтобы разрабатываемые ими продукты были более безопасными, и в то же время на то, как AI привносит дополнительные риски безопасности с новыми векторами атак и уязвимостями.

Поскольку он обеспечивает значительный масштаб, Gen AI усиливает все, что делает организация, включая связанные с этим риски, отметил Шоу. С его помощью можно генерировать гораздо больше кода, что также означает, что количество потенциальных рисков увеличивается в геометрической прогрессии.

Знайте свои модели ИИ

Хотя платформы с низким кодом могут стать хорошей основой для Gen AI Turingbots, чтобы помочь в разработке программного обеспечения, Братинчевич отметил, что организации должны знать, какие большие языковые модели (LLM) используются, и убедиться, что они соответствуют их корпоративной политике.

По его словам, игроки Gen AI «сильно различаются» в этом отношении, и он призвал компании проверять версию и лицензионное соглашение, если они используют публичные LLM, такие как ChatGPT от OpenAI.

Он добавил, что функции Gen AI для генерации кода или конфигураций компонентов на основе естественного языка еще не созрели. Они могут получить большее распространение среди гражданских разработчиков, но вряд ли впечатлят профессиональных разработчиков.

Братинчевич сказал: «На данный момент проверенная и хорошо интегрированная платформа с низким кодом плюс Gen AI - это более разумный подход, чем непроверенная или легковесная платформа, которая хорошо говорит об искусственном интеллекте».

По словам Бахмана, несмотря на то, что LLM выполняют тяжелую работу по написанию кода, люди все равно должны знать, что требуется, и предоставлять соответствующий контекст, опыт и отладку, чтобы обеспечить точность результатов.

Разработчики также должны помнить о необходимости делиться собственными данными и интеллектуальной собственностью (ИС), особенно при использовании инструментов с открытым исходным кодом, заявил он. Они должны избегать использования частных ИС, таких как код и финансовые показатели, чтобы не обучать свои модели Gen AI, используя ИС другой организации, или наоборот. «И если вы решили использовать LLM с открытым исходным кодом, убедитесь, что он хорошо протестирован, прежде чем запускать его в производство», - добавил он.

«Я бы не стал осторожничать с моделями, на которых обучаются инструменты Gen AI. Если вы хотите, чтобы эти модели были ценными, вам нужно создать соответствующие конвейеры. Если вы этого не сделаете, то Gen AI может создать гораздо больше проблем», - предостерегает он.

Технология находится на ранней стадии развития, и ее влияние на то, как изменятся роли, в том числе разработчиков программного обеспечения, еще далеко не определено.

Например, помощники по кодингу, работающие на базе ИИ, могут изменить подход к оценке навыков. Шоу пошутил: будут ли разработчики считаться лучшими потому, что они более опытны, или потому, что они могут запомнить все последовательности кодирования?

На данный момент, по его мнению, наибольший потенциал использования заключается в способности Gen AI обобщать информацию, предлагая разработчикам хорошую базу знаний для лучшего понимания бизнеса. Затем они могут перевести эти знания в конкретные инструкции, чтобы системы могли выполнять задачи и создавать продукты и функции, которые нужны клиентам.

Читайте также