Искусственный интеллект в разработке ПО и управление продуктовыми данными
Искусственный интеллект имеет все шансы внести революционные изменения в ландшафт разработки программного обеспечения и управления данными о продуктах. Автоматизируя сложные задачи и улучшая процессы принятия решений, инновации, основанные на ИИ, упрощают рабочие процессы, повышают точность и увеличивают продуктивность. В статье мы рассмотрим новые тенденции в области ИИ для разработки программного обеспечения и управления данными о продуктах, изучим, как ИИ используется в каждой области, перечислим реальные решения и продукты, укажем основных игроков, проанализируем плюсы и минусы каждого продукта, а также поделимся текущим опытом применения и дальнейшими ожиданиями.
ИИ в разработке программного обеспечения
Автоматическая генерация кода (AI Coding Copilots)
Инструменты автоматической генерации кода, такие как GitHub Copilot, трансформируют способ написания кода разработчиками. Эти инструменты используют модели машинного обучения для понимания контекста и предоставления предложений по коду в реальном времени, в некоторых случаях повышая скорость разработки. Среди данных инструментов стоит выделить:
- GitHub Copilot, инструмент автозавершения кода, разработанный GitHub и OpenAI. GitHub предоставляет развитую AI-Driven экосистему разработки с поддержкой передовых больших языковых моделей от OpenAI.
- Tabnine: AI Coding Copilot, поддерживающий несколько языков программирования и сред разработки (IDE). Его особенностью является опция установки в контур компании-разработчика ПО и обучение на ее кодовой базе. Это позволяет снять опасения в нарушении безопасности и интеллектуальной собственности, поскольку исходный код не покидает периметр организации, но для работы в таком режиме требуется Enterprise-лицензия.
- Codeium — это AI Coding Copilot, созданный для повышения продуктивности разработчиков. Он предлагает автоматическую генерацию кода, улучшает качество написанного кода и предоставляет полезные рекомендации в реальном времени. Codeium отличается относительно низкой стоимостью и поддержкой большого количества IDE.
Отдельно следует отметить функцию чата, присутствующую во всех перечисленных инструментах, которая позволяет писать новый код на основании инструкций на естественном языке, проводить рефакторинг существующего кода и писать модульные тесты.
Опыт применения данных инструментов однозначно подтверждает их пользу в плане ускорения разработки. По нашим оценкам, скорость повышается в среднем на 15%, а в отдельных случаях, например при переписывании реализации с одного языка программирования на другой, — на 30–50%. Тем не менее есть и недостатки: иногда эти инструменты могут предоставлять некорректные или небезопасные предложения по коду, делают сложно выявляемые ошибки. Однако, прогресс развития AI Coding Copilots вселяет уверенность в том, что спустя какое-то время использование этих инструментов станет такой же неотъемлемой частью процесса разработки, как IDE с функциями рефакторинга, подсказок и шаблонизации кода.
Искусственный интеллект для обеспечения качества (QA)
Инструменты QA, основанные на ИИ, способны частично автоматизировать процесс тестирования, делая его более эффективным и результативным. Эти инструменты могут выявлять дефекты, генерировать тестовые сценарии и предоставлять информацию о покрытии тестов.
Решения и продукты:
- Testim: платформа автоматизации тестирования на базе ИИ, использующая машинное обучение для создания стабильных тестов.
- Applitools: применяет визуальный AI для автоматизации тестирования на разных браузерах и устройствах.
Основным преимуществом AI-Driven-платформ для тестирования является комплексный подход для автоматизации контроля качества. Использование AI Coding Copilots для написания тестов позволяет решить задачу точечно, применение же платформ обеспечивает высокотехнологичный подход: генерацию тестов, написание тестовых планов и построения отчетов о выполнении тестов.
Текущий опыт применения AI-Driven-платформ для QA говорит об улучшенном покрытии тестов и более быстрых циклах тестирования, что позволяет улучшить time-2-market продуктов и решений. Дальнейшие версии данных платформ будут включать более продвинутые модели ИИ и лучшее интегрирование с CI/CD-конвейерами, что позволит еще больше снизить объем рутинной работы и выделить время на бизнес-задачи, а также сократить операционные расходы.
Low-code / no-code платформы на базе ИИ
Платформы Low-code/no-code на базе ИИ помогают пользователям создавать приложения с минимальными усилиями по написанию кода. На данный момент одним из ключевых недостатков Low-code/no-code-платформ без применения AI является высокая когнитивная трудность сопровождения постоянно усложняющихся решений. В устранении этого недостатка, по нашему мнению, поможет AI. Также Low-code/no-code-платформы на базе AI существенно снизят порог входа для пользователей при создании простых приложений, прототипов сервисов, proof-of-concept и MVP.
На данный момент нет каких-либо ярко выраженных лидеров рынка в данном сегменте. Среди существующих решений можно выделить Low-code/no-code-платформы компаний OutSystems и Mendix, которые ведут работы по интеграции AI в свои довольно зрелые и давно существующие решения. По нашему мнению, в этом сегменте остается огромный потенциал для создания и развития новых решений, в том числе отечественных.
AI-Driven многоагентные системы
Взрывное развитие AI в последние годы вдохнуло вторую жизнь в системы, чье функционирование основано на взаимодействии нескольких специализированных агентов. AI-Driven многоагентные системы позволяют разрабатывать сложные системы с множеством подобных агентов. Эти фреймворки используют AI для управления такими действиями агентов и для выполнения агентами различных операций в соответствии с заданными требованиями и целью.
Наиболее динамично развивающиеся системы:
- LangChain/LangGraph — библиотека для создания приложений с сохранением состояния при взаимодействии нескольких агентов с использованием больших языковых моделей (LLMs).
- Microsoft Semantic Kernel и Microsoft Autogen — фреймворки для интеграции больших языковых моделей (LLMs) с обычным программным обеспечением. Они предоставляют разработчикам инструменты для создания и развертывания приложений, которые могут понимать и генерировать естественный язык, а также помогают строить сложные многоагентные системы, где языковые модели взаимодействуют друг с другом и с пользователями, обеспечивая интеллектуальную автоматизацию задач.
- CrewAI — позволяет разработчикам проектировать и развертывать системы, где множество AI-агентов могут взаимодействовать друг с другом и с пользователями, выполняя совместные задачи и принимая коллективные решения.
AI-Driven многоагентные системы позволяют разрабатывать сложные распределенные системы, упрощая интеграцию инструментов, реализованных на языках программирования, для решения поставленной задачи на естественном языке, автоматизировать поиск и обработку информации за счет взаимодействия AI-агентов между собой, выстроить под управлением AI-агентов производственные конвейеры по обработке информации или написанию исходного кода AI-агентами.
Отдельно стоит обратить внимание на решение MetaGPT — попытку построить ИТ-компанию, состоящую из AI-агентов. Наши эксперименты с MetaGPT не увенчались успехом, однако подход имеет смысл изучить и следить за дальнейшим развитием проекта.
Наш опыт применения LangChain/LangGraph, Semantic Kernel/AutoGen и CrewAI подтверждает практическую пользу, а также гигантский потенциал AI-Driven многоагентных систем. При этом необходимо учитывать, что такие системы могут быть сложны в реализации и требуют экспертизы в проектировании и разработке программного обеспечения, многоагентных систем и prompt-инжиниринге. Эта отрасль интенсивно развивается, и к ней приковано пристальное внимание вследствие колоссального потенциала.
ИИ в управлении данными о продукте
Инструменты на базе ИИ позволяют осуществлять автоматическую классификации и тегирования данных, повышать качество данных, производить их очистку, помогают организациям более эффективно управлять данными о продуктах, выявлять и исправлять ошибки, дубликаты и несоответствия в данных.
Данные решения интенсивно развиваются, на сегодня можно выделить обширный и неполный список: Apache Nutch, Stanford NLP, spaCy, OpenRefine, DataCleaner, Talend Data Quality, Pandas, Trifacta Wrangler и другие.
По нашему опыту, такие решения позволяют снизить ручные усилия, улучшают точность данных и управление ими за счет построения конвейеров извлечения и обработки, однако требуют первоначальной настройки и инвестиций в обучение, необходимо быть готовыми к возможным ошибкам в классификации, некоторые из решений могут быть дорогостоящими в эксплуатации.
Заключение
Интеграция ИИ в разработку программного обеспечения и управление данными о продуктах преобразуют работу организаций. От автоматической генерации кода до улучшения качества данных — инновации, основанные на ИИ, повышают эффективность, сокращают ручной труд и улучшают процесс принятия решений. По мере того как эти технологии продолжают развиваться, мы можем ожидать еще большего прогресса и более широкого их внедрения в разных отраслях.
Особое значение имеет создание отечественных решений в области AI-Driven-технологий. Разработка российских инструментов и платформ не только позволит повысить технологическую независимость, но и учитывает специфические потребности и реалии отечественного рынка. Существенный вклад в решение этой задачи вносит Российский фонд развития информационных технологий (РФРИТ). Решения, созданные при поддержке РФРИТ, смогут более эффективно интегрироваться с существующими системами и нормативными требованиями, обеспечивая высокую безопасность и соответствие локальным стандартам. Поддержка и развитие отечественных ИИ-технологий будет способствовать укреплению технологического суверенитета и устойчивому росту экономики России.
Опубликовано 04.06.2024