IBM представила набор данных Project CodeNet, который предназначен для тренировки нейросетей написанию рабочего программного кода. В датасет вошли сведения о 55 языках программирования.
Размер базы
Американская ИТ-компания на конференции сравнила свой проект с приложением Rosetta Stone для изучения иностранных языков, с той лишь разницей, что набор данных позволит обучать программированию искусственный интеллект. Научный сотрудник IBM Ручир Пури рассказал, что датасет не уступает аналогичному комплексу для разработки систем компьютерного зрения ImageNet.
В базу CodeNet вошло множество сведений о различных аспектах разработки приложений. Набор данных содержит 14 млн фрагментов кода и 500 млн строк на 55 языках – от устаревших COBOL и FORTRAN до актуальных Java, C ++ и Python. Также в датасете включено около 4 тыс. задач по программированию.
Проблемы обучения ИИ
По словам авторов проекта, первый шаг в обучении нейросетей программированию – это возможность искусственного интеллекта переводить код с одного языка на другой. Ручир Пури отмечает, что тренировка системы на датасете, который включает несколько языков, позволит применять ИИ в парных операциях. Например, станет возможным переписать COBOL-код на Java или наоборот.
Такой подход поможет упростить понимание, разработку и развертывание приложений. Программирование работает по определенным правилам, но их знания нейросети будет недостаточно для того, чтобы перевести программу с одного языка на другой. Авторы Project CodeNet в качестве примера приводят COBOL, который давно уже устарел, но его все равно продолжают использовать, потому что уже написанные на нем приложения еще применяются в бизнесе. Автоматизировать процесс перехода на современный язык мешает контекст конкретного решения. Без понимания связей перевести возможно не более 60% программы.
Возможности датасета
Набор данных CodeNet уникален не только по объему информации, но и по качеству метаданных и аннотаций к коду. Кроме того, в базу включены описание проблем и примеры их решения средствами программирования.
Поэтому датасет IBM позволяет использовать искусственный интеллект для поиска фрагментов кода и обнаружения клонов. CodeNet также может выступать в роли эталонного набора данных. Каждый образец помечен временем работы процессора и объемом памяти, благодаря чему разработчики имеют возможность проводить регрессионные исследования, создавать собственные системы, поддерживающие автоматическую коррекцию кода.
Изучить данные CodeNet и использовать их в работе можно при помощи репозитория на GitHub.