+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

IBM представив ініціативу CodeNet для дослідників наборів даних

IBM представила ініціативу CodeNet для дослідників набору даних

IBM представила ініціативу CodeNet , спрямовану на надання дослідникам набору даних, що дозволяє їм експериментувати з використанням методів машинного навчання для створення перекладачів з однієї мови програмування на іншу, а також генераторів і аналізаторів коду. CodeNet включає в себе колекцію з 14 мільйонів прикладів коду, які вирішують 4,053 загальних завдань програмування. Всього колекція налічує близько 500 мільйонів рядків коду і охоплює 55 мов програмування, як сучасних мов, таких як C++, Java, Python і Go, так і застарілих, включаючи COBOL, Pascal і FORTRAN. Розробки проекту поширюються за ліцензією Apache 2.0, а набори даних планується поширювати у вигляді суспільного надбання.

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

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

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

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

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

Запуск штучного інтелекту для коду: представляємо codenet проекту IBM

Project CodeNet — це великий набір даних, спрямований на навчання ШІ кодуванню.

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

Інші новини