IBM кодты аударатын және тексеретін машиналық оқыту жүйелері үшін CodeNet ашады

IBM өзінің CodeNet бастамасын ашты, оның мақсаты зерттеушілерге бағдарламалау тілінің аудармашыларын, код генераторларын және анализаторларын жасау үшін машиналық оқыту әдістерін қолданумен тәжірибе жасауға мүмкіндік беретін деректер жиынтығын ұсыну. CodeNet 14 жалпы бағдарламалау мәселесін шешетін 4053 миллион код мысалдарының жинағын қамтиды. Жинақ 500 миллионға жуық код жолын қамтиды және C++, Java, Python және Go сияқты заманауи тілдерді және COBOL, Паскаль және FORTRAN сияқты бұрынғы тілдерді қоса алғанда 55 бағдарламалау тілін қамтиды. Жобаның әзірлемелері Apache 2.0 лицензиясы бойынша таратылады, ал деректер жинақтары жалпыға ортақ домен түрінде таратылады деп жоспарлануда.

Мысалдар аннотацияланған және әртүрлі бағдарламалау тілдерінде бірдей алгоритмдерді жүзеге асырады. Ұсынылған жиынтық машиналық оқыту жүйелерін оқытуға және ImageNet аннотацияланған кескін деректер базасының үлгіні тану және компьютерлік көру жүйелерін дамытуға көмектескеніне ұқсас аударма және машина кодын талдау саласындағы инновацияларды дамытуға көмектеседі деп күтілуде. Коллекцияны қалыптастырудың негізгі көздерінің бірі ретінде әртүрлі бағдарламалау конкурстары келтірілген.

Аударма ережелері негізінде жүзеге асырылатын дәстүрлі аудармашылардан айырмашылығы, машиналық оқыту жүйелері кодты пайдалану контекстін түсіріп, ескере алады. Бір бағдарламалау тілінен екіншісіне түрлендіру кезінде контекст бір адам тілінен екіншісіне аудару кезіндегідей маңызды. Бұл мәтінмәнді ескермеу кодты COBOL сияқты бұрынғы тілдерден түрлендіруге кедергі келтіреді.

Әртүрлі тілдердегі алгоритмдерді енгізудің үлкен дерекқорына ие болу әмбебап машиналық оқыту жүйелерін құруға көмектеседі, олар нақты тілдер арасында тікелей аударманың орнына нақты бағдарламалау тілдеріне тәуелсіз кодтың абстрактілі көрінісін басқарады. Мұндай жүйені қолдау көрсетілетін тілдердің кез келгеніндегі жіберілген кодты өзінің ішкі дерексіз көрінісіне аударатын аудармашы ретінде пайдалануға болады, одан кейін кодты бірнеше тілде жасауға болады.

Жүйе сонымен қатар екі жақты түрлендірулерді орындай алады. Мысалы, банктер мен мемлекеттік органдар ескірген COBOL тілінде жобаларды пайдалануды жалғастыруда. Машиналық оқытуға негізделген аудармашы COBOL кодын Java көрінісіне түрлендіре алады және қажет болған жағдайда Java фрагментін COBOL кодына қайта аудара алады.

Тілдер арасындағы аудармадан басқа, CodeNet қолданбасының смарт-кодтарды іздеу жүйелерін құру және клондарды анықтауды автоматтандыру, сондай-ақ оңтайландырушылар мен кодты автоматты түрде түзету жүйелерін дамыту сияқты салалары аталды. Атап айтқанда, CodeNet-те ұсынылған мысалдар өнімділікті тексеру нәтижелерін, алынған бағдарлама өлшемін, жадты тұтынуды және күйін сипаттайтын метадеректермен жабдықталған, бұл дұрыс кодты қатесі бар кодтан ажыратуға мүмкіндік береді (дұрыс кодты қате кодтан ажырату үшін, жинаққа қателері бар мысалдар арнайы енгізілген, олардың үлесі 29.5% құрайды. Машиналық оқыту жүйесі ең оңтайлы кодты жасау немесе талданатын кодтағы регрессияларды анықтау үшін осы метадеректерді ескере алады (жүйе жіберілген кодтағы алгоритм оңтайлы түрде іске асырылмағанын немесе қателерді қамтитынын түсінуі мүмкін).

Ақпарат көзі: opennet.ru

пікір қалдыру