CodeNet, проект на IBM за системи за машинно обучение 

Логото на IBM

IBM представи наскоро новият му проект наречен "CodeNet" който има за цел да предостави на изследователите набор от данни за експериментиране с използване на техники за машинно обучение за създаване на преводачи от един език за програмиране на друг, както и генератори и анализатори на код.

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 , XNUMX%).

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

Накрая Ако се интересувате да научите повече за CodeNet, можете да проверите подробностите В следващия линк.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.