Модель генерации кода основана на глубокой нейронной сети ruGPT-3, обученной на коде «Сбера» и open-source библиотек. Возможности такой модели позволяют нейросети дописывать код разработчика, искать уязвимые места в коде, переводить код с одного языка программирования на другой и даже — в перспективе — трансформировать в код алгоритм, сформулированный обычной речью.
Частью системы является сервис автозавершения кода, который работает по принципу подсказок. После написания одной части кода нейросеть предлагает варианты продолжения, которые пользователь может выбрать и не вводить код вручную. Уже сегодня JARVIS включает в себя плагины для популярных инструментов разработки (IDE): IDEA, PyCharm, WebStorm с поддержкой языков Java, Python и JavaScript, но эта функция доступна пока только для разработчиков Сбера. Планируется, что в начале следующего года плагины JARVIS для IDEA, PyCharm и WebStorm станут доступны всем желающим. Кроме того, поработать с сервисом автозавершения кода уже в ближайшее время можно будет на платформе SmartMarket — эта функция включена в инструментарий создания приложений для виртуальных ассистентов «Салют».
В отличие от стандартных инструментов автозавершения кода, встроенных в IDE, JARVIS при написании программ способен опираться не только на структуру проекта и синтаксис языка, но и на текст комментариев на естественном языке. Таким образом, система, по сути, способна в определённых пределах переводить неформальные описания функций в программный код.
Константин Круглов, старший вице-президент по новым цифровым поверхностям «Сбербанка», CEO SberDevices: «Написание кода — процесс творческий, но целый ряд рутинных задач уже сейчас можно перепоручить нейросети. Решения, основанные на нашей модели, позволяют экономить самый ценный ресурс разработчика — время. Мы стали первой российской компанией, которая создала собственную модель генерации кода — и уже скоро предложим доступ к ней внешним разработчикам. При этом число доступных сервисов будет расширяться — например, нейросеть научится дописывать код на новых языках программирования».