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

Изображение сгенерировано Midjourney
Изображение сгенерировано Midjourney

Нейросетей, способных создавать программы по запросу пользователя, много: OpenAI Codex, CodeT5, Polycoder, Cogram, GitHub Copilot, DeepCode, Kite, TabNine, CodeWP, AskCodi, Codiga, PyCharm, AIXcoder, Ponicode, Jedi, Wing Pro. Это далеко не полный список ИИ, которые способны писать и улучшать код. Между тем, способность нейросети заменить программистов в промышленности и применимость там таких продуктов, как Chat GPT, требует анализа. В этой статье разбираемся с возможностями ИИ, рисками и перспективами применения нейросетей для промышленного программирования.

Проблема источников обучения

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

Изображение сгенерировано Midjourney
Изображение сгенерировано Midjourney

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

Контроллеров огромное множество, это гигантский зоопарк устройств.
Возникают логичные вопросы:
1. Умеют ли нейросети писать код для конкретных контроллеров?
2. Умеют ли они писать на конкретных языках программирования?
Например, сможет ли ИИ создать качественный код для широко распространенных ПЛК Siemens? Не исключено, что такие нейросети есть и используются внутри корпораций, но в открытом доступе о них нет информации.

Надежность и безопасность софта

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

Изображение сгенерировано Midjourney
Изображение сгенерировано Midjourney

Ошибки, риски и тестирование

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

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

Изображение сгенерировано Midjourney
Изображение сгенерировано Midjourney

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

Изображение сгенерировано Midjourney
Изображение сгенерировано Midjourney

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

Краткосрочные перспективы нейросетей в промышленном ПО

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

Изображение сгенерировано Midjourney
Изображение сгенерировано Midjourney

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

Юридические аспекты: авторское право и ответственность за риски

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

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

Изображение сгенерировано Midjourney
Изображение сгенерировано Midjourney

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

Прогнозы и перспективы

Сегодня некоторые нейросети могут быть использованы в промышленном программировании, как инструменты опытных разработчиков, например, если речь идёт о таких языках как Assembler, например, Open AI Codex или Ponicode. При этом важно разработать протоколы тестирования, которые исключат ошибки и сбои в работе такого кода, т.к. нейросеть выполняет конкретную задачу и пока не способна учитывать не заданные в контексте вероятности и риски.

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

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

Комментарии (10)


  1. MountainGoat
    14.06.2023 17:45
    +6

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


    1. smirnov_dm Автор
      14.06.2023 17:45

      Это не далеко от истины). Но не везде.


    1. Yorique
      14.06.2023 17:45
      +3

      Это у нас не нищенская зарплата, это страховая премия за безопасность профессии в перспективе ;)


  1. Mitya78
    14.06.2023 17:45
    +1

    Да вполне пишет код для Симатика, ну вложенный цикл мне написал.

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


  1. freeExec
    14.06.2023 17:45

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

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


    1. korchoon
      14.06.2023 17:45

      Точнее не "опозорился", а "клал болт на лицензии". Не удивлюсь, если MS и приватные репы использует в своих нуждах


  1. eax
    14.06.2023 17:45

    этот ChatGPT излишне распиарен, он слишком далёк от того чтобы "писать код за программистов". Все эти рассказы о том как ChatGPT куда-то там поступил и написал кому-то диплом чуть более чем враньё. Можно в ютубе посмотреть какие проблемы Bisqwit показывает в "мыслительных процессах" этого ИИ, как он безуспешно пытается выжать от него правильный ответ. Сам же я пытался скормить ему задачки из ВПР по математике за 6й класс, каково же было моё удивление что ИИ в них лажает. И это далеко не олимпиадные задачки. Максимум ChatGPT, да наверное и самое логичное предназначение - обрабатывать поисковые запросы пользователей, и этим наверняка может оказаться что будет удобно пользоваться


  1. Indemsys
    14.06.2023 17:45

    Под промышленным программированием тут явно подразумеваются встраиваемые(embedded) системы.

    Писать код там требуется все меньше. Больше требуется рисовать. Последний свой проект для промышленного контроллера был полностью мной нарисован в виде диаграмм состояний и поточных блок-схем.
    Но такого материала на гитхабе мало. И нейросетям не на чём учиться. Т.е. нынешние нейросети всего лишь догоняют человечество пока оно изобретает новые парадигмы программирования и нарабатывает объем обучающих материалов.

    Нейросети это уже как продукт пищеварения. Никогда такой продукт нельзя будет обратно использовать в пищу. Для людей, во всяком случае.

    А вот внутри embedded систем нейросети идут на ура. У меня лежит отладка на STM32 которая довольно шустро распознает введенные символы на экране, легко распознаёт по звуку мотора его ресурс, распознает речевые команды. Нынче нейросети идут как стандартные библиотеки даже к самым мелким микроконтроллерам. В тех же сименсах они наверняка есть.


  1. rumovskiy
    14.06.2023 17:45

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

    В общем, я думаю, что скорее не 5-7 лет, а 8-10. Года три на повсеместное внедрение в "не очень страшных процессах", лет пять на постепенное снижение процента ошибок, и пара лет уже на внедрение в процессы с высокой ценой ошибки. Хотя, честно говоря, мне все прогнозы в этой области кажутся некоторой условностью - может быть, завтра нейросети заставят проектировать архитектуру нейросетей, а послезавтра они спроектируют такую архитектуру, в которой ошибок практически не будет)


    1. evtomax
      14.06.2023 17:45

      А можно наоборот. Там, где результат работы искусственной нейросети не совпадает с результатами деятельности человеческого мозга, сделать анализ с повышенным вниманием. Врач рак на снимке не увидел, а искусственная нейросеть увидела? Привлечь ещё одного врача.