Опрос
|
реклама
Быстрый переход
ChatGPT научили искать ошибки в программном коде
31.01.2023 [14:40],
Руслан Авдеев
Получивший широкую популярность ИИ-бот ChatGPT способен выполнять самые разные задачи. Исследователям из университета им. Иоганна Гутенберга в Майнце (Германия) совместно с коллегами из Университетского колледжа Лондона удалось задействовать сервис для поиска и устранения ошибок в программном коде. Исследователи предоставили 40 фрагментов кода, содержащих ошибки, четырём системам ChatGPT, Codex, CoCoNut и Standard APR, предназначенным для устранения багов. По сути, они буквально спросили: «Что не так с этим кодом?» и вставили фрагмент кода в окно чата. В первый раз ChatGPT проявил себя не хуже других напичканных интеллектом систем. Он устранил 19 проблем из 40, Codex — 21 из 40, CoCoNut — 19, а APR — только 7. Проведённые оценочные тесты показали, что ответы ChatGPT во многом дублируют решения, предлагаемые Codex, в чём нет ничего удивительного, поскольку ChatGPT и Codex относятся к одному семейству языковых моделей. Впрочем, в дальнейшем ChatGPT продемонстрировал свои преимущества. Поскольку бот позволяет вести с ним обсуждение и вносить уточнения после получения первоначального ответа, в результате исследователям удалось решить 31 из 40 задач, намного больше, чем способны были сделать другие системы аналогичного назначения. Более того, выяснилось, что ChatGPT может решать задачи быстрее конкурентов, причём он давал пользователю разные варианты ответов на одну и ту же задачу. Если сначала на один из запросов бот требовал больше информации, то после некоторого количества попыток он уверенно приводил ответ на тот же вопрос. По мнению экспертов, успех проведённого исследования потенциально способен привести к модификации существующего рынка ИИ-решений совокупной стоимостью $600 млн, предназначенных для помощи инженерам в поиске и устранении недоработок в программном коде. Платформы вроде Sentry уже стали распространённым инструментов среди программистов, намного ускоряя рабочие процессы. Учёные обнаружили, что созданный ИИ программный код подвержен уязвимостям
29.12.2022 [11:01],
Павел Котов
Программисты, использующие системы искусственного интеллекта (ИИ) при разработке кода, с большей вероятностью получают приложения, которые подвержены уязвимостям, пишет TechCrunch со ссылкой на исследование учёных Стэнфордского университета. По их мнению, к системам генерации кода следует относиться с осторожностью. Базой для исследования стала система генерации кода на основе ИИ Codex, разработанная лабораторией OpenAI. В проекте приняли участие 47 разработчиков — от студентов бакалавриата до специалистов с многолетним опытом. Они пользовались платформой Codex для решения задач, связанных с безопасностью, а языками программирования в рамках исследования были Python, JavaScript и C. Как выяснилось, применявшие в работе систему Codex программисты чаще предлагали неправильные и небезопасные решения по сравнению с контрольной группой. Более того, свои решения они считали более совершенными с позиции кибербезопасности относительно решений специалистов контрольной группы. Авторы исследования подчёркивают, что не имеют намерений настроить сообщество против Codex и других ИИ-систем генерации кода, но их лучше применять в решении задач, не связанных с высоким риском. В качестве решения проблемы учёные предлагают создать механизмы анализа предлагаемого ИИ кода, а также усилить настройки безопасности по умолчанию в криптографических библиотеках. Кроме того, генераторы часто обучаются на разработках с ограниченной лицензией, а впоследствии предлагают решения, например, из кодовой базы Quake или учебников по JavaScript — создаваемый с их участием код может стать источником проблем в отношении авторского права. Механизм защиты от подобного плагиата попытались реализовать на платформе GitHub Copilot, но стало только хуже: система начала выдавать большие фрагменты чужого кода, включая сведения об авторах и даже тексты лицензий. В DeepMind AI научили нейросеть решать любые задачи по программированию
09.12.2022 [13:17],
Павел Котов
Инженеры подразделения Alphabet DeepMind AI рассказали о создании системы искусственного интеллекта (ИИ) AlphaCode, которая способна генерировать код и решать задачи, предлагаемые на чемпионатах по программированию. Для этого нейросеть обучили двум языковым навыкам: пониманию постановки задачи и поиску её решения. Сегодня существуют системы, способные решать отдельные задачи, генерируя программный код, однако эти решения не носят универсального характера: обученный одному классу задач ИИ с большой вероятностью терпит неудачу, когда условия задачи кардинально меняются. Поэтому инженеры Google применили несколько иной подход, положив, что описание задачи — это выражение того, что должен делать алгоритм, а её решение — то же самое, но изложенное на другом языке. Поэтому при обучении системы исследователи решили достичь двух целей: сначала ИИ должен усвоить описание задачи, а затем на основании своего внутреннего представления создать программный код. В качестве источника данных выступил архив GitHub с более чем 700 Гбайт кода, которые перемежались с комментариями на естественном языке, поясняющими его работу. После первого этапа обучения система перешла к этапу настройки: в DeepMind организовали внутренний чемпионат по программированию, материалы которого также «скормили» ИИ. В этих материалах был полный цикл: постановка задачи, работающий и неработающий код, а также тестовые примеры для его проверки. Подобный подход применялся и раньше, но на сей раз инженеры выделили значительно больше ресурсов на обучение — «на порядки больше, чем в предыдущей работе». На начальном этапе результат был далёк от идеала: более 40 % предлагаемых нейросетью решений либо требовали слишком больших аппаратных ресурсов, либо решение задачи занимало слишком много времени. Проводя анализ кода, создатели системы обнаружили, что при решении различных задач, даже если программа выдавала правильный результат, система часто использовала схожие фрагменты кода, выдающие одинаковые ответы при одинаковых исходных данных. Отфильтровав некорректные варианты, AlphaCode смогла выступать на уровне программистов с опытом работы от нескольких месяцев до года, войдя в число справившихся с задачами 54 % конкурсантов на чемпионате. Такого результата удалось достичь, введя автоматизированную проверку по 100 тыс. предлагаемых системой решений — увеличение этого числа приводило к пропорциональному росту доли правильных ответов. Но пропорционально же росла и ресурсоёмкость вычислительной системы: первоначально для её обучения потребовался объём энергии, в 16 раз превышающий годовую потребность средней американской семьи. Учёные сделали вывод, что система действительно научилась работать, как и было задумано, предлагая корректные решения, а не случайные фрагменты кода «в надежде», что какой-то из них сработает. Однако при усложнении условий значительно растёт ресурсоёмкость, а значит, сегодня услуги настоящих программистов по-прежнему востребованы, хотя и открываемые ИИ перспективы тоже заслуживают внимания. Сделано в России: среда визуальной разработки программного обеспечения «Автограмма»
07.12.2022 [10:00],
Андрей Крупин
В любой сфере деятельности ключевую роль играет рабочее окружение, от удобства и грамотной организации которого зависят не только производительность персонала и эффективность решаемых сотрудниками задач, но и конечная прибыль предприятия. Профессия программиста в этом плане не является исключением и немыслима без подручных инструментов, обеспечивающих полный цикл разработки ПО — от составления алгоритмических конструкций до генерации финального кода продукта и проверки правильности его функционирования. К числу таких решений относится разработанная ООО «Автограмма» одноимённая среда визуальной разработки программного обеспечения. «Автограмма» (в англоязычной интерпретации Autogramma) представляет собой графическую среду визуального интерактивного моделирования, разработки, отладки, модульного тестирования и калибровки программного обеспечения с автоматической генерацией исходного кода на языках C/С#, готового к компиляции, сборке и загрузке на целевую платформу. Высокоуровневое графическое представление и визуальное программирование с помощью геометрических и логических связей элементарных блоков для построения алгоритмов существенно облегчают и ускоряют процесс создания прикладных приложений. Как следствие, «Автограмма» может использоваться специалистами и инженерами любой квалификации — специальных знаний в области программирования не требуется, а результаты работ сравнимы с трудом коллектива программистов разных областей и знаний. В основу программного комплекса «Автограмма» положена клиент-серверная облачная архитектура. В качестве серверной части выступает сайт autogramma.com. Клиентские приложения доступны для платформ Windows и Linux. Также имеется веб-версия продукта, позволяющая непосредственно в браузере просматривать алгоритмические составляющие разрабатываемых программных решений (интерактивная, гипертекстовая документация), а также выводить весь проект или отдельные составляющие проекта на печать в форматах PDF/SVG для отчётных документов. «Автограмма» является многопользовательской платформой с возможностью одновременной работы над проектами командой разработчиков и встроенной системой контроля версий создаваемого ПО. Комплекс позволяет управлять группами и правами доступа пользователей, отслеживать и откатывать вносимые в код изменения, в том числе ветвления и слияния репозитория исходного кода. При этом в процессе разработки непрерывно проводится диагностика создаваемых приложений с выводом сообщений об ошибках, рекомендациях, предупреждениях и подсказках. Таким образом уже в процессе подключения новых блоков пользователь сразу же видит всю диагностическую информацию, что предоставляет максимальную интерактивность разработки ПО. В числе прочих сильных сторон «Автограмма» — встроенные инструменты для автоматической генерации документации с использованием разметки 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. ИИ научили превращать рукописные каракули в программный код
29.11.2022 [11:24],
Геннадий Детинич
Специалисты Корнеллского колледжа вычислительной техники и информационных наук имени Энн С. Бауэрс представили инструмент программирования на основе распознавания рукописного текста. Мостиком между рукописной и текстовой частью служит алгоритм машинного обучения, который связывает одно с другим и отчасти позволяет программировать на интуитивном уровне. Сделанные от руки графики и диаграммы транслируются в машинный код и встраиваются в программу. «Интерфейс на основе пера, названный Notate, позволяет пользователям вычислительных цифровых блокнотов — таких как блокноты Jupyter, которые базируются в интернете и являются интерактивными — открывать поля для рисования и писать диаграммы от руки в строках традиционного оцифрованного компьютерного кода», — сказано в пресс-релизе университета. Рукописный и текстовый контексты программирования собирает модель глубокого машинного обучения. В одном из примеров пользователи рисовали схемы квантовых цепей на полях кода блокнота Jupyter, а ИИ связывал рисунки с набранным программным кодом. Связь осуществляется в обоих направлениях: как рукописного текста с набранным кодом, так и в обратном порядке. «Подобная система отлично подошла бы для науки о данных, в частности, для создания графиков и диаграмм, которые затем взаимодействуют с текстовым кодом, — сказал один из авторов проекта. — Наша работа показывает, что нынешняя инфраструктура программирования фактически сдерживает нас. Люди готовы к таким возможностям, а разработчики интерфейсов для набора кода должны принять это к сведению и поддерживать изображения и графические интерфейсы внутри кода». Google тайно разрабатывает искусственный интеллект, который сможет сам писать программный код
23.11.2022 [21:48],
Владимир Фетисов
Компания Google реализует секретный проект, в рамках которого ведётся разработка генератора программного кода на базе нейросети, который сможет самостоятельно создавать программный код, исправлять и обновлять его. Этот проект является частью более масштабной программы компании в сфере «генеративного искусственного интеллекта», связанной с созданием ИИ-алгоритмов для генерации изображений, видео и многого другого. Согласно имеющимся данным, проект по созданию генератора программного кода зародился в исследовательском подразделении «X» компании Alphabet под кодовым именем Pitchfork. Этим летом реализацией проекта занялись инженеры команды Google Labs под руководством Оливии Хатальски (Olivia Hatalsky), которая много лет является сотрудником подразделения «X» и участвовала в разработке Google Glass и некоторых других устройств. Источник отмечает, что проект Pitchfork реализуется для того, чтобы «научить код писать и переписывать себя». Предполагается, что созданный алгоритм сможет изучать стили программирования и писать код на основании полученных знаний. Изначально перед проектом Pitchfork стояла задача по созданию инструмента, который мог бы обновлять кодовую базу языка программирования Python до новых версий без необходимости привлекать живых программистов. Со временем цели проекта сместились в сторону создания системы общего назначения, которая могла бы уменьшить потребность людей в написании и обновлении кода, сохраняя при этом его качество. На какой стадии находится разработка генератора программного кода Google, пока неизвестно. |