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

Логотип IBM

IBM представила нещодавно назвали його новий проект "CodeNet" який має на меті надати дослідникам набір даних для експериментів із використанням методів машинного навчання створювати перекладачі з однієї мови програмування на іншу, а також генератори та аналізатори коду.

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

"Програмне забезпечення з'їдає світ", - писав відомий американський бізнесмен Марк Андріссен у 2011 році. Швидко перемотуйтеся до сьогодні: програмне забезпечення є у фінансових послугах та охороні здоров'я, смартфонах та розумних будинках. Навіть машини зараз мають понад 100 мільйонів рядків коду.

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

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

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

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

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

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

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

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

Зокрема Приклади, представлені в CodeNet, містять метадані, що описують результати тестів продуктивності, розмір отриманої програми, споживання пам’яті та стан, що дозволяє відрізнити правильний код від помилкового коду (щоб відрізнити правильний код від неправильного коду, приклади з помилками спеціально включені до колекції, частка якої становить 29,5 , XNUMX%).

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

В кінці кінців Якщо ви зацікавлені дізнатися більше про CodeNet, Ви можете перевірити деталі У наступному посиланні.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: AB Internet Networks 2008 SL
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.