Разделы

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

Как генеративный ИИ меняет разработку ПО

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

Что используют разработчики

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

Согласно свежей оценке цикла зрелости развивающихся технологий (Hype Cycle for Emerging Technologies) от Gartner, в стадию внедрения переходят технологии улучшения производительности разработчиков (Boost Developer Productivity), а также разработка ПО с использованием ИИ (AI-Augmented Software Engineering).

ГенИИ в России пока находится на первом этапе развития в большинстве сфер применения, и разработка ПО — не исключение. Многие команды разработки экспериментируют с разными моделями, но уровень развития ГенИИ пока не позволяет говорить о появлении готового инструмента для массового применения.

Несмотря на хайп вокруг ГенИИ, по-настоящему толковых моделей на рынке сегодня не так много. Обучение модели — процесс дорогостоящий, который может себе позволить только очень крупная корпорация. Цена тренировки одной модели составляет десятки и сотни миллионов долларов.

Несмотря на хайп вокруг ГенИИ, по-настоящему толковых моделей на рынке сегодня не так много

Многие модели для генерации кода, такие как OpenAI Codex (используемый в GitHub Copilot), StarCoder, CodeGen, начинали в качестве большой языковой модели общего назначения и затем прошли дообучение на данных с программным кодом.

Программист может общаться с нейросетью в процессе работы по аналогии с ChatGPT. Например, выделить фрагмент кода, задать по нему вопрос или попросить продолжить.

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

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

Зачем нужен ГенИИ в разработке

Про кадровый голод в ИТ говорят уже несколько лет. Последние исследования показывают, что 46% компаний вынуждены переносить сроки реализации ИТ-проектов из-за нехватки специалистов.

При этом процесс найма на позиции разработчиков, DevOps-инженеров и специалистов по Data Science может занимать до полугода. Внедрение ГенИИ уменьшит потребность в разработчиках: команды смогут реализовывать больше проектов без увеличения штата.

Так, по данным опроса платформы для написания кода GitHub Copilot, продуктивность разработчиков при ее использовании увеличивается на 88%. Количественные исследования показали, что разработчики создавали код с помощью ИИ на 55% быстрее, чем без него.

Что важно знать про ИИ-программиста

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

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

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

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

Генерируемый код критически зависит от формата общения с моделью. Формулировка запроса на 90% определяет ответ. Умение «общаться» с моделями становится ценным навыком разработчика, который нужно развивать. Для этого важно экспериментировать: менять постановку вопросов, дать намек на правильный ответ в запросе, задать одну и ту же задачу в разных чатах.

Как ГенИИ скажется на развитии профессии

Остается дискуссионным вопрос — как скажется развитие ГенИИ на профессиональных компетенциях программистов. Сегодня чем опытнее специалист, тем меньше он нуждается в помощи нейросети. Именно потому многие разработчики высокого уровня (senior) относятся к технологии скептически: им проще и быстрее написать код самостоятельно.

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

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

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

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

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

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

Профессия в будущем

Под влиянием ИИ профессия разработчика изменится. Исследование объединения AI-Enabled ICT Workforce Consortium показало, что ИИ изменит 91,5% позиций в ИТ, при этом 34% трансформируются принципиально. В сфере разработки ПО 20% профессий испытают сильное влияние ИИ, 80% — среднее. Изменения коснутся преимущественно позиций начального и среднего уровня (junior и middle).

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

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

erid:LjN8KTw9zРекламодатель: ООО "Акстим"ИНН/ОГРН: 7705476338/1027705028405Сайт: https://axenix.pro/