реклама
Теги → программирование

ChatGPT научили искать ошибки в программном коде

Получивший широкую популярность ИИ-бот ChatGPT способен выполнять самые разные задачи. Исследователям из университета им. Иоганна Гутенберга в Майнце (Германия) совместно с коллегами из Университетского колледжа Лондона удалось задействовать сервис для поиска и устранения ошибок в программном коде.

 Источник изображения: Arif Riyanto/unsplash.com

Источник изображения: Arif Riyanto/unsplash.com

Исследователи предоставили 40 фрагментов кода, содержащих ошибки, четырём системам ChatGPT, Codex, CoCoNut и Standard APR, предназначенным для устранения багов. По сути, они буквально спросили: «Что не так с этим кодом?» и вставили фрагмент кода в окно чата.

В первый раз ChatGPT проявил себя не хуже других напичканных интеллектом систем. Он устранил 19 проблем из 40, Codex — 21 из 40, CoCoNut — 19, а APR — только 7. Проведённые оценочные тесты показали, что ответы ChatGPT во многом дублируют решения, предлагаемые Codex, в чём нет ничего удивительного, поскольку ChatGPT и Codex относятся к одному семейству языковых моделей.

Впрочем, в дальнейшем ChatGPT продемонстрировал свои преимущества. Поскольку бот позволяет вести с ним обсуждение и вносить уточнения после получения первоначального ответа, в результате исследователям удалось решить 31 из 40 задач, намного больше, чем способны были сделать другие системы аналогичного назначения. Более того, выяснилось, что ChatGPT может решать задачи быстрее конкурентов, причём он давал пользователю разные варианты ответов на одну и ту же задачу. Если сначала на один из запросов бот требовал больше информации, то после некоторого количества попыток он уверенно приводил ответ на тот же вопрос.

 Источник изображения: Dominik Sobania, Martin Briesch, Carol Hanna, Justyna Petke

Источник изображения: Dominik Sobania, Martin Briesch, Carol Hanna, Justyna Petke

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

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

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

 Источник изображения: Christopher Gower / unsplash.com

Источник изображения: Christopher Gower / unsplash.com

Базой для исследования стала система генерации кода на основе ИИ Codex, разработанная лабораторией OpenAI. В проекте приняли участие 47 разработчиков — от студентов бакалавриата до специалистов с многолетним опытом. Они пользовались платформой Codex для решения задач, связанных с безопасностью, а языками программирования в рамках исследования были Python, JavaScript и C.

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

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

Кроме того, генераторы часто обучаются на разработках с ограниченной лицензией, а впоследствии предлагают решения, например, из кодовой базы Quake или учебников по JavaScript — создаваемый с их участием код может стать источником проблем в отношении авторского права. Механизм защиты от подобного плагиата попытались реализовать на платформе GitHub Copilot, но стало только хуже: система начала выдавать большие фрагменты чужого кода, включая сведения об авторах и даже тексты лицензий.

В DeepMind AI научили нейросеть решать любые задачи по программированию

Инженеры подразделения Alphabet DeepMind AI рассказали о создании системы искусственного интеллекта (ИИ) AlphaCode, которая способна генерировать код и решать задачи, предлагаемые на чемпионатах по программированию. Для этого нейросеть обучили двум языковым навыкам: пониманию постановки задачи и поиску её решения.

 Источник изображения: Christopher Gower / unsplash.com

Источник изображения: Christopher Gower / unsplash.com

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

В качестве источника данных выступил архив GitHub с более чем 700 Гбайт кода, которые перемежались с комментариями на естественном языке, поясняющими его работу. После первого этапа обучения система перешла к этапу настройки: в DeepMind организовали внутренний чемпионат по программированию, материалы которого также «скормили» ИИ. В этих материалах был полный цикл: постановка задачи, работающий и неработающий код, а также тестовые примеры для его проверки. Подобный подход применялся и раньше, но на сей раз инженеры выделили значительно больше ресурсов на обучение — «на порядки больше, чем в предыдущей работе».

 Источник изображения: Procreator / unsplash.com

Источник изображения: Procreator / unsplash.com

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

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

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

Сделано в России: среда визуальной разработки программного обеспечения «Автограмма»

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

 Среда визуальной разработки программного обеспечения «Автограмма»

Среда визуальной разработки программного обеспечения «Автограмма»

«Автограмма» (в англоязычной интерпретации Autogramma) представляет собой графическую среду визуального интерактивного моделирования, разработки, отладки, модульного тестирования и калибровки программного обеспечения с автоматической генерацией исходного кода на языках C/С#, готового к компиляции, сборке и загрузке на целевую платформу. Высокоуровневое графическое представление и визуальное программирование с помощью геометрических и логических связей элементарных блоков для построения алгоритмов существенно облегчают и ускоряют процесс создания прикладных приложений. Как следствие, «Автограмма» может использоваться специалистами и инженерами любой квалификации — специальных знаний в области программирования не требуется, а результаты работ сравнимы с трудом коллектива программистов разных областей и знаний.

 «Автограмма» в полной мере отвечает запросам как профессиональной, так и широкой аудитории без опыта работы в сфере программирования — это является несомненным плюсом данного инструмента

«Автограмма» в полной мере отвечает запросам как профессиональной, так и широкой аудитории без опыта работы в сфере программирования — это является несомненным плюсом данного инструмента

В основу программного комплекса «Автограмма» положена клиент-серверная облачная архитектура. В качестве серверной части выступает сайт autogramma.com. Клиентские приложения доступны для платформ Windows и Linux. Также имеется веб-версия продукта, позволяющая непосредственно в браузере просматривать алгоритмические составляющие разрабатываемых программных решений (интерактивная, гипертекстовая документация), а также выводить весь проект или отдельные составляющие проекта на печать в форматах PDF/SVG для отчётных документов.

 Веб-интерфейс «Автограмма»

Веб-интерфейс «Автограмма»

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

 Интерактивность среды разработки достигается за счёт непрерывной диагностики, интерпретации (симуляции ПО) и наглядной визуализации результатов работы приложений непосредственно в среде разработки, как при симуляции ПО, так и в конечном изделии при чтении данных через CAN-адаптер

Интерактивность среды разработки достигается за счёт непрерывной диагностики, интерпретации (симуляции ПО) и наглядной визуализации результатов работы приложений непосредственно в среде разработки, как при симуляции ПО, так и в конечном изделии при чтении данных через CAN-адаптер

В числе прочих сильных сторон «Автограмма» — встроенные инструменты для автоматической генерации документации с использованием разметки Markdown и возможность разработки интерфейсов пользователя с автогенерацией кода графической разметки на языке С++ и возможностью связывания (байндинга) параметров ПО с атрибутами разметки. Для всесторонней отладки готовых приложений предусмотрены средства создания юнит-тестов с вызовом контейнеров ПО, подстановки значений параметров, запуска интерпретатора тестов, сравнения и индикации результатов тестов. Также в среде предоставлена возможность управления проведением испытаний, отладки, калибровки приложений в целевой платформе с подключением по протоколу CCP (CAN Calibration Protocol).

 Графическая разметка интерфейсов пользователя

Графическая разметка интерфейсов пользователя

Наконец, ещё одной отличительной особенностью «Автограмма» является наличие на сайте autogramma.com стартовых комплектов, содержащих исходные коды приложений с примерами практического применения среды разработки в связке с различными платами для встраиваемых систем. В числе таковых — Infineon Aurix, NXP i.MX6, ST STM32, NXP S32K, ROCK Pi 4, GigaDevice GD32F10, Artery AT32F4, WCH CH32 и прочие процессоры и микроконтроллеры, которые могут применяться для управления промышленным, транспортным, робототехническим и прочим оборудованием. Ярким подтверждением данных слов служат реализованные МАЗ, ГАЗ, ПАЗ, КАМАЗ, НЕФАЗ и Equipmake проекты по созданию ПО для автомобильных панелей приборов и разработки Ростсельмаш, ПТЗ, связанные с внедрением созданного с помощью «Автограмма» программного обеспечения в системы управления оборудованием и агрегатами сельскохозяйственной техники.

Платформа «Автограмма» зарегистрирована в реестре российского софта и может представлять интерес для организаций, реализующих проекты в рамках программы импортозамещения ПО. Для решения образовательных задач среда визуальной разработки распространяется бесплатно. Стоимость лицензии для коммерческих целей можно узнать, связавшись с представителями ООО «Автограмма» по электронной почте InBox@autogramma.ru.

ИИ научили превращать рукописные каракули в программный код

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

 Источник изображения: cornell.edu

Источник изображения: cornell.edu

«Интерфейс на основе пера, названный Notate, позволяет пользователям вычислительных цифровых блокнотов — таких как блокноты Jupyter, которые базируются в интернете и являются интерактивными — открывать поля для рисования и писать диаграммы от руки в строках традиционного оцифрованного компьютерного кода», — сказано в пресс-релизе университета.

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

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

Google тайно разрабатывает искусственный интеллект, который сможет сам писать программный код

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

 Источник изображения: Pixabay

Источник изображения: Pixabay

Согласно имеющимся данным, проект по созданию генератора программного кода зародился в исследовательском подразделении «X» компании Alphabet под кодовым именем Pitchfork. Этим летом реализацией проекта занялись инженеры команды Google Labs под руководством Оливии Хатальски (Olivia Hatalsky), которая много лет является сотрудником подразделения «X» и участвовала в разработке Google Glass и некоторых других устройств.

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

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

window-new
Soft
Hard
Тренды 🔥
Apple научит Siri лучше поддерживать диалоги с пользователем 29 мин.
Новая статья: Верные спутники: 20+ полезных Telegram-ботов для путешественников 6 ч.
Итоги Golden Joystick Awards 2024 — Final Fantasy VII Rebirth и Helldivers 2 забрали больше всех наград, а Black Myth: Wukong стала игрой года 8 ч.
В программу сохранения классических игр от GOG вошли S.T.A.L.K.E.R. Shadow of Chernobyl и Call of Pripyat, а Clear Sky — на подходе 9 ч.
Star Wars Outlaws вышла в Steam с крупным обновлением и дополнением про Лэндо Калриссиана 10 ч.
Рекордная скидка и PvP-режим Versus обернулись для Warhammer: Vermintide 2 полумиллионом новых игроков за неделю 12 ч.
Новый трейлер раскрыл дату выхода Mandragora — метроидвании с элементами Dark Souls и нелинейной историей от соавтора Vampire: The Masquerade — Bloodlines 13 ч.
В Японии порекомендовали добавить в завещания свои логины и пароли 14 ч.
Обновления Windows 11 больше не будут перезагружать ПК, но обычных пользователей это не касается 15 ч.
VK похвасталась успехами «VK Видео» на фоне замедления YouTube 16 ч.
Nvidia предупредила о возможном дефиците игровых решений в четвёртом квартале 3 ч.
Представлен внешний SSD SanDisk Extreme на 8 Тбайт за $800 и скоростной SanDisk Extreme PRO с USB4 8 ч.
Представлен безбуферный SSD WD_Black SN7100 со скоростью до 7250 Мбайт/с и внешний SSD WD_Black C50 для Xbox 8 ч.
Новая статья: Обзор ноутбука ASUS Zenbook S 16 (UM5606W): Ryzen AI в естественной среде 8 ч.
Redmi показала флагманский смартфон K80 Pro и объявила дату его премьеры 10 ч.
Астрономы впервые сфотографировали умирающую звезду за пределами нашей галактики — она выглядит не так, как ожидалось 13 ч.
Представлена технология охлаждения чипов светом — секретная и только по предварительной записи 13 ч.
Японская Hokkaido Electric Power намерена перезапустить ядерный реактор для удовлетворения потребности ЦОД в энергии 14 ч.
Грузовик «Прогресс МС-29» улетел к МКС с новогодними подарками и мандаринами для космонавтов 14 ч.
Meta планирует построить за $5 млрд кампус ЦОД в Луизиане 15 ч.