CodeNet, проект IBM для систем машинного обучения 

Логотип IBM

IBM представила недавно его новый проект назывался "Коднет" который стремится предоставить исследователям набор данных для экспериментов с использованием методов машинного обучения. создавать переводчики с одного языка программирования на другой, а также генераторы и анализаторы кода.

CodeNet включает коллекцию из 14 миллионов примеров кода. которые решают 4053 типичных проблемы программирования. В общей сложности коллекция содержит около 500 миллионов строк кода и охватывает 55 языков программирования, как современных языков, таких как C ++, Java, Python и Go, так и устаревших языков, включая COBOL, Pascal и FORTRAN.

«Программное обеспечение пожирает мир», - писал в 2011 году известный американский бизнесмен Марк Андриссен. Перенесемся в наши дни: программное обеспечение используется в сфере финансовых услуг и здравоохранения, в смартфонах и умных домах. Даже автомобили теперь содержат более 100 миллионов строк кода.

Разработки проекта выпускаются под лицензией Apache 2.0, и ожидается, что наборы данных будут опубликованы в открытом доступе.

Примеры аннотированы и реализуют идентичные алгоритмы на разных языках программирования.. Предлагаемый набор призван помочь в обучении систем машинного обучения и разработке инноваций в области автоматического перевода и анализа кода по аналогии с тем, как база данных аннотированных изображений ImageNet помогла разработке систем распознавания изображений и искусственного зрения. В качестве одного из основных источников пополнения коллекции упоминаются различные соревнования по программированию.

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

В отличие от традиционных переводчиков, основанных на правилах перевода, системы машинного обучения могут фиксировать и учитывать контекст использования кода. При преобразовании с одного языка программирования на другой контекст так же важен, как и при переводе с одного человеческого языка на другой. Отсутствие контекстной осведомленности препятствует преобразованию кода из устаревших языков, таких как COBOL.

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

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

Включая систему, вы можете выполнять двунаправленные преобразования. Например, банки и государственные учреждения продолжают использовать устаревшие проекты COBOL. Переводчик машинного обучения может преобразовывать код COBOL в представление Java и, при необходимости, переводить фрагмент кода Java обратно в код COBOL.

Помимо перевода между языками, упоминаются области приложений CodeNet. такие как создание интеллектуальных систем поиска кода и автоматизация обнаружения клонов, а также разработка оптимизаторов и систем автоматической коррекции кода.

В частности, Примеры, представленные в CodeNet, снабжены метаданными, описывающими результаты тестов производительности., размер результирующей программы, потребление памяти и состояние, позволяющее отличить правильный код от кода с ошибками (чтобы отличить правильный код от некорректного, в коллекцию специально включаются примеры с ошибками, доля которых составляет 29,5%).

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

В конце концов Если вам интересно узнать больше о CodeNet, вы можете проверить детали По следующей ссылке.


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован.

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

bool (истина)