Внедрение ИИ в практику разработки программного обеспечения с AWS

Фото: Poddar Group of Institutions (Unsplash) — https://unsplash.com/photos/female-speaker-presenting-in-front-of-a-projector-screen-d2wtxLJQbXA?utm_source=dev48&utm_medium=referral

Источник: Amazon Web Services, Inc.•

Внедрение ИИ в практику разработки программного обеспечения с AWS

Внедрение ИИ — это архитектурное решение. Используйте пятифакторную структуру на базе ИИ для управления затратами, состоянием данных и рабочими процессами разработчиков с помощью AWS.

Обзор

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

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

При наличии комплексной стратегии и надежного управления результаты внедрения ИИ могут обеспечить значительную и измеримую окупаемость инвестиций (ROI). Чтобы построить устойчивый жизненный цикл разработки с поддержкой ИИ, основанный на надлежащем человеческом контроле, оцените пять факторов в сфере разработки перед созданием стратегии внедрения ИИ:

  • Соответствие стеку
  • Рабочие процессы разработчиков
  • Безопасность и состояние данных
  • Атрибуция затрат
  • Дисциплина оценки и тестирования

Оцените соответствие стеку перед выбором ИИ-технологий

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

Например, пилотная программа, инициированная одной командой, не является мандатом на внедрение во всей компании. Они находят ИИ-инструмент, который хорошо работает в их текущей среде и дает хорошие результаты, из-за чего пилот кажется успешным. Однако локальный успех не всегда перерастает в успех всей компании. Инструмент, который хорошо справляется с генерацией шаблонного кода для нового микросервиса Node.js, необязательно покажет те же результаты на кодовой базе Java или C++ многолетней давности или вообще будет работать.

Оцените соответствие инструмента стеку на основе пяти критериев:

  • Глубина поддержки языков и фреймворков: понимает ли инструмент все нюансы вашего существующего кода и основных языков программирования?
  • Интеграция с IDE: плавно ли он интегрируется в среды, которые уже используют ваши разработчики, или потребует от них изменения рабочего процесса?
  • Поведение окна контекста: как инструмент справляется с большими, сложными или устаревшими файлами, превышающими лимиты токенов?
  • Модель доступа к репозиторию: как он подключается к вашим системам контроля версий?
  • Место обработки кода: работает ли инструмент с приватным кодом без его передачи или обработки на внешних сторонних серверах?

Другим важным шагом является оценка базовой инфраструктуры всех инженерных команд. Если она опирается на конкретного облачного провайдера, ИИ-инструменты должны соответствовать этой конкретной облачной архитектуре. Например, Amazon Q Developer, основанный на обработке естественного языка, функционирует одновременно как плагин для IDE и инструмент интерфейса командной строки (CLI). Поскольку он интенсивно обучен на API AWS и устоявшихся шаблонах сервисов, он отлично подходит по стеку для ISV, работающих в средах, ориентированных на AWS.

Определите рабочие процессы разработчиков

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

Формализуйте, на каком этапе жизненного цикла разработки ПО (SDLC) следует использовать ИИ. Например:

  • Документация
  • Генерация кода
  • Превью кода коллегами
  • Тестирование
  • CI/CD
  • Развертывание
  • Все вышеперечисленное

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

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

  • Amazon Q Developer обеспечивает встроенное рецензирование кода и сканирование безопасности, сокращая разрыв при проверке сгенерированного кода и позволяя разработчикам оценивать и исправлять результаты работы моделей перед фиксацией.
  • AWS CodeBuild позволяет применять предварительно настроенные шлюзы проверки перед слиянием в вашем конвейере CI/CD.
  • Amazon CodeGuru Profiler предоставляет автоматические рекомендации по производительности кода после развертывания.

Выберите и настройте надежную защиту и состояние данных

На состояние данных ISV влияют то, к какому коду, учетным данным, внутренней архитектуре и клиентским данным имеют доступ ИИ-инструменты. Место передачи данных, а также политики хранения и обучения поставщика инструмента имеют важное значение для целей безопасности и соответствия требованиям. Перед интеграцией любого нового решения ИИ SDLC проверьте, будет ли оно соответствовать внутренним политикам соответствия, безопасности и состояния данных.

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

Возьмем, к примеру, Модель общей ответственности AWS, которая определяет обязанности по безопасности AWS и ее клиентов. AWS несет ответственность за «безопасность облака», то есть за базовую инфраструктуру аппаратного обеспечения, программного обеспечения, сетей и помещений. Клиент несет ответственность за свою «безопасность в облаке», что применимо в данном контексте может означать, какие данные он отправляет моделям ИИ-инструментов, какие разрешения он предоставляет инструментам и какие результаты объединяются в продакшн.

Помогите защитить позицию вашего ISV, интегрировав элементы управления доступом AWS в развертывания ИИ:

  • Используйте уровень Pro для Amazon Q Developer, чтобы гарантировать, что при обучении моделей машинного обучения никогда не используются ваши данные.
  • AWS Identity and Access Management (IAM): используйте AWS IAM для ограничения доступа инструментов к определенным репозиториям и средам. Соблюдайте принцип наименьших привилегий для ИИ-инструментов точно так же, как вы делаете это для людей-операторов.
  • AWS Secrets Manager: ссылайтесь на учетные данные программным путем и ротируйте ключи, чтобы предотвратить их случайное попадание в окно контекста ИИ-инструмента.
  • AWS PrivateLink: исключите трафик ваших ИИ-инструментов из публичного интернета, чтобы помочь защитить конфиденциальные среды разработки.

Атрибутируйте и контролируйте затраты на ИИ-инструменты

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

Отслеживайте затраты на инструменты ИИ с той же дисциплиной и детализацией, что и остальную инфраструктуру и сервисы вашего ISV. Четко разграничивайте переменный объем вызовов API в рабочих процессах с интеграцией моделей и фиксированную стоимость лицензий для плагинов IDE. Сегментация расходов по инструментам и использование в расчете на одного инженера могут предоставить ценную информацию об эффективности использования инструментов.

  • AWS Cost Explorer: связывайте использование сервисов ИИ на базе API, таких как Amazon Bedrock и Amazon Q, с помощью тегов напрямую с командами, проектами или центрами затрат.
  • Amazon Bedrock: моделируйте ценообразование как по запросу (on-demand), так и с зарезервированной пропускной способностью (provisioned throughput) для рабочих нагрузок ИИ перед развертыванием в рабочей среде.
  • AWS Budgets: настраивайте упреждающие пороги оповещений специально для расходов на сервисы ИИ, чтобы всплески вызовов API и бесконечные циклы рабочих процессов вызывали предупреждения.

Встраивайте оценку в рабочие процессы с использованием ИИ

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

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

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

Внедрите «дисциплину оценки» в пайплайн CI/CD и продакшен-окружение с помощью нескольких сервисов AWS:

  • Amazon Q Developer: автоматическая генерация тестов позволяет быстро создавать наборы тестов, которые можно комбинировать с этапами проверки человеком.
  • AWS CodeBuild: применяйте пороговые значения покрытия к pull request, сгенерированным ИИ, в качестве обязательного условия для слияния.
  • Amazon DevOps Guru: разверните обнаружение аномалий в продакшене, чтобы выявлять любые отклонения после деплоя, которые могло упустить автоматизированное предварительное тестирование.

Понимание жизненного цикла разработки на основе ИИ (AI-DLC)

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

Модель AI-DLC работает в три этапа:

  • Фаза зарождения (Inception): команды ведут диалог между моделью и инженерами. Абстрактные бизнес-цели преобразуются в практические требования и определенные единицы работы (Units of Work вместо Epics) для передачи инструмент ИИ.
  • Фаза создания (Construction): используя контекст, сформированный на этапе Inception, ИИ генерирует логическую архитектуру, доменные модели и кодовые базы, пока инженеры принимают технические решения в реальном времени и обновляют контекст для завершения кода.
  • Фаза эксплуатации (Operations): инструмент ИИ использует полный контекст, накопленный в ходе этого процесса, для управления инфраструктурой как кодом (Infrastructure as Code) и пайплайнами развертывания.

Поскольку инструмент ИИ берет на себя рутинную генерацию артефактов, AI-DLC может сократить традиционные многонедельные циклы разработки до высококонцентрированных периодов работы, выполняемых за часы или дни и называемых Bolts.

Методология AI-DLC построена вокруг определенного структурного цикла.

  • Инструмент ИИ создает черновик первоначального плана проекта и определяет пробелы в собственном контексте
  • Инженеры предоставляют точные разъяснения и осуществляют контроль
  • Инструмент ИИ выполняет скорректированный шаг и запрашивает новые уточнения

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

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

Используйте стратегический подход к оценке инструментов разработки ПО на базе ИИ

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

Команды по закупкам и безопасности корпоративных клиентов положительно относятся к ISV, которые могут продемонстрировать комплексное управление ИИ (AI governance), в том числе в своих рабочих процессах разработки на базе ИИ. Для соответствующих требованиям ISV, чьи инженерные практики готовы к корпоративным сделкам, такие программы, как AWS ISV Accelerate, могут помочь извлечь выгоду из этой зрелости, согласовав стратегию выхода на рынок с региональными продавцами AWS.

Продолжайте свое путешествие в облаке

Нашли ли вы сегодня то, что искали?

Дайте нам знать, чтобы мы могли улучшить качество материалов на наших страницах

О чём эта статья