Компания IBM, в рамках конференции Think 2021 представила датасет Project CodeNet, который поможет обучать системы искусственного интеллекта программированию.
Решение нацелено на предоставление исследователям набора данных, позволяющих экспериментировать с применением методов машинного обучения для создания трансляторов из одного языка программирования в другой, а также генераторов и анализаторов кода.
Сообщается, что CodeNet включает коллекцию из 14 млн. примеров кода, решающих 4053 типовых проблем программирования. В сумме коллекция насчитывает около 500 млн. строк кода и охватывает 55 языков программирования, как современные языки, такие как C++, Java, Python и Go, так и устаревшие, включая COBOL, Pascal и FORTRAN. Наработки проекта распространяются под лицензией Apache 2.0, а наборы данных планируется распространять в форме общественного достояния.
Кроме трансляции между языками упоминаются такие области применения CodeNet, как создание умных систем поиска кода и автоматизации выявления клонов, а также разработка оптимизаторов и систем автоматической корректировки кода. Представленные в CodeNet примеры снабжены метаданными, описывающими результаты тестирования производительности, размер программы, потребление памяти и состояние, позволяющее отличать корректный код от кода с ошибками (чтобы отличить правильный код от некорректного в коллекцию специально включены примеры с ошибками, доля которых составляет 29.5%). Система машинного обучения может учитывать эти метаданные для генерации наиболее оптимального кода или для выявления регрессий в анализируемом коде.