Архитектура на конференции - очень плохая идея
Использовать типовую архитектуру, которую вы увидели на конференции, для решения уникальных бизнес-задач вашей компании - верный способ потратить деньги и время впустую.
Разработчики программного обеспечения могут добиться значительного повышения производительности благодаря помощи в кодировании с помощью GenAI, но это может быть связано с определенными трудностями.
Сегодня разработчики могут обратиться к генеративному искусственному интеллекту (GenAI), чтобы писать код быстрее и эффективнее. Тем не менее, делать это следует с осторожностью и не менее внимательно, чем раньше.
Хотя использование искусственного интеллекта в разработке программного обеспечения не является чем-то новым - оно существует как минимум с 2019 года - GenAI значительно улучшает генерацию естественного языка, изображений, а в последнее время - видео и других активов, включая код, сказал ZDNET Диего Ло Джудиче, вице-президент и главный аналитик Forrester.
Предыдущие итерации ИИ использовались в основном для тестирования кода, а машинное обучение использовалось для оптимизации моделей для стратегий тестирования, рассказал Джудиче ZDNET. GenAI выходит за рамки этих сценариев использования, предлагая доступ к эксперту-программисту или специалисту (например, тестировщику или бизнес-аналитику), которого можно запросить в интерактивном режиме для быстрого поиска информации. GenAI также может предложить решения и тестовые примеры.
"Впервые мы наблюдаем значительный рост производительности, которого не давали традиционный ИИ и другие технологии", - сказал он.
Разработчики могут использовать ИИ на всех этапах жизненного цикла разработки программного обеспечения, причем на каждом этапе для улучшения технологических стеков и платформ будет использоваться специальный "бот Тьюринга", отметил Джудиче.
Forrester ввел термин TuringBots для описания инструментов на базе ИИ, которые помогают разработчикам создавать, тестировать и развертывать код. Исследовательская компания считает, что TuringBots станут движущей силой нового поколения разработки программного обеспечения, помогая на каждом этапе жизненного цикла разработки, включая поиск технической документации и автоматическое завершение кода.
Например, "анализирующие/планирующие боты Тьюринга" могут облегчить анализ и планирование на этапе разработки программного обеспечения, сказал Джудиче, указав на ChatGPT от OpenAI и Atlassian Intelligence как на примеры таких продуктов ИИ. Другие, такие как Gemini Advanced от Google Cloud, могут генерировать проекты микросервисов и API с их кодовой реализацией, а Microsoft Sketch2Code может генерировать рабочий код из написанных от руки эскизов пользовательского интерфейса, сказал он.
Джудиче добавил, что "кодерские боты Тьюринга" в настоящее время являются наиболее популярным вариантом использования GenAI в разработке программного обеспечения, генерируя код из подсказок, а также из контекста кода и комментариев с помощью автодополнения в популярных интегрированных средах разработки (IDE). К ним относятся такие распространенные языки, как JavaScript, C++, Python и Rust.
По словам Майкла Бахмана, руководителя отдела архитектуры и стратегии ИИ компании Boomi, большая привлекательность генеративных моделей заключается в том, что они могут писать код на многих языках, позволяя разработчикам вводить подсказки для генерации, рефакторинга или отладки строк кода. "По сути, все люди, взаимодействующие с GenAI, являются квази- и старшими разработчиками", - сказал он.
Производитель программного обеспечения интегрирует GenAI в некоторые свои продукты, включая Boomi AI, который переводит запросы на естественном языке в действия. Разработчики могут использовать Boomi AI для проектирования интеграционных процессов, API и моделей данных, чтобы соединить приложения, данные и процессы, сообщает Boomi.
Компания использует GenAI для поддержки собственных разработчиков программного обеспечения, которые внимательно следят за кодом, на котором работает ее платформа.
"И это ключевой момент", - говорит Бахман. Если вы используете GenAI в качестве основного источника для создания всего приложения, вы, вероятно, будете разочарованы". Хорошие разработчики используют GenAI в качестве отправной точки или для тщательного тестирования сценариев отказа, прежде чем запускать код в производство. Вот как мы решаем эту проблему внутри компании".
Его команда также работает над созданием функций для решения "практических задач ИИ" своих клиентов. Например, Boomi создает поисковую систему, поскольку многие ее клиенты хотят заменить поиск по ключевым словам возможностью искать контент, например, каталоги на своих сайтах, на естественном языке.
По словам Джудиса, разработчики также могут использовать GenAI для устранения проблем безопасности: они будут искать уязвимости в коде, сгенерированном ИИ, и предлагать разработчикам рекомендации по устранению определенных уязвимостей.
По словам главного аналитика Forrester Джона Братинчевича, по сравнению с традиционным кодированием, стратегия разработки без кода или с низким кодом может предложить скорость, встроенное качество и адаптивность.
По словам Братинчевича, она также обеспечивает интегрированную цепочку инструментов жизненного цикла разработки программного обеспечения и доступ к расширенному кадровому резерву, включающему некодеров и "гражданских разработчиков", не входящих в ИТ-сообщество.
Однако организации могут столкнуться с проблемами, связанными с управлением крупномасштабным внедрением, особенно с управлением гражданскими разработчиками, число которых может исчисляться тысячами, предостерег он. Препятствием может стать и ценообразование, поскольку оно обычно зависит от количества конечных пользователей, сказал он.
Хотя GenAI или программные помощники с искусственным интеллектом могут позволить молодым специалистам заполнить пробелы в кадрах, в том числе в области кибербезопасности, Джудиче считает, что для решения всех этих задач по-прежнему необходим экспертный взгляд.
Братинчевич согласился с ним, подчеркнув, что разработчикам и другим сотрудникам, участвующим в жизненном цикле разработки программного обеспечения, необходимо проверять все, что платформа генерирует или автоматически настраивает с помощью ИИ.
"Мы еще не дошли и, вероятно, никогда не дойдем до того, чтобы слепо доверять ИИ в разработке программного обеспечения", - сказал он.
По словам Скотта Шоу, технического директора Thoughtworks в Азиатско-Тихоокеанском регионе, необходимо учитывать требования безопасности. Технологическая консультация регулярно тестирует новые инструменты для повышения эффективности, будь то в IDE или для поддержки работы разработчиков. Компания делает это там, где это необходимо ее клиентам, и только с их согласия, сказал Шоу в интервью ZDNET, отметив, что некоторые компании все еще нервничают по поводу использования GenAI.
"По нашему опыту, инструменты для кодирования программного обеспечения [на базе GenAI] не так хорошо осведомлены о безопасности и не так хорошо приспособлены к практике кодирования с учетом требований безопасности", - говорит он. Например, разработчики, работающие в организациях с регулируемой или чувствительной к данным средой, могут быть вынуждены придерживаться дополнительных методов и средств контроля безопасности в рамках своих процессов поставки программного обеспечения.
Использование помощника по кодированию может удвоить производительность, но разработчики должны задаться вопросом, смогут ли они адекватно тестировать код и выполнять требования к качеству на протяжении всего процесса, отметил он.
Это обоюдоострый меч: Организациям следует обратить внимание на то, как GenAI может дополнить их практику кодирования, чтобы разрабатываемые ими продукты были более безопасными, и в то же время - как ИИ создает дополнительные риски безопасности с новыми векторами атак и уязвимостями.
Поскольку GenAI обеспечивает значительный масштаб, он усиливает все, что делает организация, включая связанные с этим риски, отметил Шоу. С его помощью можно генерировать гораздо больше кода, а значит, и количество потенциальных рисков растет в геометрической прогрессии.
Знайте свои модели ИИ
Хотя платформы с низким кодом могут стать хорошей основой для GenAI Turingbots, чтобы помочь в разработке программного обеспечения, Братинчевич отметил, что организациям необходимо знать, какие большие языковые модели (LLM) используются, и убедиться, что они соответствуют их корпоративной политике.
По его словам, игроки GenAI "сильно различаются" в этом отношении, и он призвал компании проверять версию и лицензионное соглашение, если они используют публичные LLM, такие как ChatGPT от OpenAI.
Он добавил, что функции GenAI для генерации кода или конфигураций компонентов на основе естественного языка еще не созрели. Возможно, они получат большее распространение среди гражданских разработчиков, но вряд ли впечатлят профессиональных разработчиков.
Братинчевич сказал: "На данный момент проверенная и хорошо интегрированная платформа с низким кодом плюс GenAI - это более разумный подход, чем непроверенная или легковесная платформа, которая хорошо говорит об искусственном интеллекте".
По словам Бахмана, в то время как LLM выполняют тяжелую работу по написанию кода, люди все равно должны знать, что требуется, и предоставлять соответствующий контекст, опыт и отладку, чтобы обеспечить точность результатов.
Разработчики также должны помнить о необходимости делиться собственными данными и интеллектуальной собственностью (ИС), особенно при использовании инструментов с открытым исходным кодом, сказал он. Они должны избегать использования частной ИС, такой как код и финансовые показатели, чтобы не обучать свои модели GenAI, используя ИС другой организации, или наоборот. "И если вы решили использовать LLM с открытым исходным кодом, убедитесь, что он хорошо протестирован, прежде чем запускать его в производство", - добавил он.
"Я бы не стал осторожничать с моделями, на которых обучаются инструменты GenAI. Если вы хотите, чтобы эти модели были ценными, вам нужно создать правильные конвейеры. Если вы этого не сделаете, GenAI может создать гораздо больше проблем", - предостерегает он.
Технология находится на ранней стадии развития, и ее влияние на то, как изменятся роли, в том числе разработчиков программного обеспечения, еще далеко не определено.
Например, помощники по кодированию, работающие на базе ИИ, могут изменить оценку навыков. Шоу пошутил: будут ли разработчики считаться лучшими потому, что они более опытны, или потому, что они могут запомнить все последовательности кодирования?
Пока же, по его мнению, наибольший потенциал GenAI заключается в способности обобщать информацию, предлагая разработчикам хорошую базу знаний для лучшего понимания бизнеса. Затем они могут перевести эти знания в конкретные инструкции, чтобы системы могли выполнять задачи и создавать продукты и функции, которые нужны клиентам.
Использовать типовую архитектуру, которую вы увидели на конференции, для решения уникальных бизнес-задач вашей компании - верный способ потратить деньги и время впустую.
Это был лишь вопрос времени. Одна компания создала чатбота Алана Тьюринга и назначила его главным специалистом по искусственному интеллекту.
Появляются новые типы профессий: Современный набор навыков, который требуется работодателям, значительно отличается от того, что требовалось раньше.
Продолжаем добавлять языки программирования для Вас.
Впереди много интересного!
Только свежие новости программирования и технологий каждый день.
Комментарии