IBM Kodu Tərcümə edən və Doğrulayan Maşın Öyrənmə Sistemləri üçün CodeNet-i açır

IBM, tədqiqatçılara proqramlaşdırma dili tərcüməçiləri, kod generatorları və analizatorları yaratmaq üçün maşın öyrənmə üsullarından istifadə ilə təcrübə etməyə imkan verən verilənlər toplusu ilə təmin etmək məqsədi daşıyan CodeNet təşəbbüsünü təqdim etdi. CodeNet 14 ümumi proqramlaşdırma problemini həll edən 4053 milyon kod nümunəsi toplusunu ehtiva edir. Ümumilikdə kolleksiya təxminən 500 milyon sətir koddan ibarətdir və 55 proqramlaşdırma dilini, həm C++, Java, Python və Go kimi müasir dilləri, həm də COBOL, Pascal və FORTRAN daxil olmaqla köhnə dilləri əhatə edir. Layihənin inkişafları Apache 2.0 lisenziyası əsasında yayılır və məlumat dəstlərinin ictimai domen şəklində yayılması planlaşdırılır.

Nümunələr şərh olunur və müxtəlif proqramlaşdırma dillərində eyni alqoritmləri həyata keçirir. Gözlənilir ki, təklif olunan dəst maşın öyrənmə sistemlərinin hazırlanmasına kömək edəcək və ImageNet annotasiyalı təsvirlər verilənlər bazasının nümunənin tanınması və kompüter görmə sistemlərinin inkişafına necə kömək etdiyi kimi tərcümə və maşın kodunun təhlili sahəsində innovasiyaları inkişaf etdirəcək. Kolleksiyanın formalaşmasının əsas mənbələrindən biri kimi müxtəlif proqramlaşdırma müsabiqələri göstərilir.

Tərcümə qaydaları əsasında həyata keçirilən ənənəvi tərcüməçilərdən fərqli olaraq, maşın öyrənmə sistemləri koddan istifadə kontekstini tuta və nəzərə ala bilər. Bir proqramlaşdırma dilindən digərinə çevirərkən kontekst bir insan dilindən digərinə tərcümə edərkən olduğu qədər vacibdir. Bu kontekstdə nəzərə alınmaması kodun COBOL kimi köhnə dillərdən çevrilməsinə mane olan şeydir.

Müxtəlif dillərdə alqoritm tətbiqlərinin geniş məlumat bazasına sahib olmaq, xüsusi dillər arasında birbaşa tərcümə əvəzinə, konkret proqramlaşdırma dillərindən asılı olmayaraq kodun daha mücərrəd təsvirini manipulyasiya edən universal maşın öyrənmə sistemlərini yaratmağa kömək edəcəkdir. Belə bir sistem, dəstəklənən dillərdən hər hansı birində ötürülən kodu daxili mücərrəd təqdimatına çevirən tərcüməçi kimi istifadə edilə bilər, ondan sonra kod bir neçə dildə yaradıla bilər.

Sistem həm də iki istiqamətli transformasiyalar həyata keçirə biləcək. Məsələn, banklar və dövlət qurumları köhnəlmiş COBOL dilində layihələrdən istifadə etməkdə davam edir. Maşın öyrənməsinə əsaslanan tərcüməçi COBOL kodunu Java təqdimatına çevirə və lazım gələrsə, Java fraqmentini yenidən COBOL koduna çevirə biləcək.

Dillər arasında tərcümə ilə yanaşı, CodeNet-in smart kod axtarış sistemlərinin yaradılması və klonların aşkarlanmasının avtomatlaşdırılması, həmçinin optimallaşdırıcıların və avtomatik kod korreksiyası sistemlərinin inkişafı kimi tətbiq sahələri qeyd olunur. Xüsusilə, CodeNet-də təqdim olunan nümunələr performans testinin nəticələrini, nəticədə proqram ölçüsünü, yaddaş istehlakını və vəziyyətini təsvir edən metadata ilə təchiz edilmişdir ki, bu da düzgün kodu səhvli koddan ayırmağa imkan verir (düzgün kodu səhv koddan ayırmaq üçün, kolleksiyaya xüsusi olaraq səhvləri olan nümunələr daxildir, onların payı 29.5% təşkil edir. Maşın öyrənmə sistemi ən optimal kodu yaratmaq və ya təhlil edilən kodda reqressiyaları müəyyən etmək üçün bu metaməlumatları nəzərə ala bilər (sistem təqdim olunan koddakı alqoritmin optimal şəkildə həyata keçirilmədiyini və ya xətalar ehtiva etdiyini başa düşə bilər).

Mənbə: opennet.ru

Добавить комментарий