Писането на код е само първата стъпка в създаването на нещо. Преглеждането на вашия код за грешки и тяхното коригиране отнема време и често отнема повече време от очакваното, но въпреки това е съществена стъпка.

Само ако имаше начин за автоматично коригиране на грешки, който надхвърля синтактичните грешки и наистина разбира намеренията зад вашия код.

Наскоро Microsoft разработи AI, способен да открива и коригира грешки в кода, използвайки дълбоко обучение. Но как се появи тази революционна технология и как работи?

Какво е BugLab и как работи?

BugLab е внедряване на Python с изкуствен интелект, което търси и коригира грешки в кода. Той е разработен от Милтос Аламанис и Марк Брокшмит, двама изследователи в Microsoft Research. Те успяха да преодолеят липсата на етикетирани данни, често използвани в машинно обучение като прибягва до самоконтролирано обучение и позволява на BugLab да се обучава чрез игра на „криеница“ с редове код.

BugLab беше обучен с помощта на два компютърни модела; един, който скрива грешки в правилните фрагменти от код, и друг, който търси и коригира грешките. И двата модела непрекъснато се учат един от друг. С течение на времето селекторът на грешки става по-добър в скриването на грешки в кода, а детекторът става по-добър в улавянето и коригирането им.

instagram viewer

Разбиране на кода с BugLab

Повечето грешки, които BugLab AI е обучен да открива и коригира, не водят до логически грешки, а са само грешни в резултат на общия контекст на кода. Разбирането на намерението на разработчика е от съществено значение за намирането на тези грешки.

Третирането на фрагменти от код по същия начин като обработката на естествени езици дава неоптимални резултати. Все още е трудно за ИИ да разбере връзката между различните изявления, когато те са разделени на отделни токени.

Вместо това BugLab разглежда кода като цяло. По този начин всеки синтаксис, израз, символ и идентификатор се представят като точки в графика, което позволява на AI да „разбере“ връзката и връзката между различните възли.

Архитектури на невронни мрежи след това се използват за обучение на AI за отстраняване на грешки. Те са в състояние да извличат прозрения от богатата структура на кодовата графика и да предоставят причини за връзката на всеки възел с останалите.

BugLab работи ли върху код от реалния живот?

Важно е да се отбележи, че BugLab не е заместител на квалифициран програмист. Това е така, защото сложните грешки все още не са в обсега.

Целта на Microsoft с AI е да открие и коригира често срещани грешки като неправилни булеви оператори, като използването на „или“ вместо „и“ и обратно, в допълнение към сравнения на обърнати стойности и променлива злоупотреби.

Според Microsoft, резултатите са обещаващи, тъй като BugLab е в състояние да открива и автоматично коригира около 26 процента от грешките в парче код. Все пак значителен процент от точността все още се губи поради фалшиви положителни резултати и пропуснати грешки.

Бъдещи приложения на Microsoft BugLab

Целта на Microsoft с BugLab е да спестява време на разработчиците на софтуер, което често прекарват в преглед на техния код в търсене на най-малките грешки.

Въпреки че моделът за отстраняване на грешки в AI все още е в процес на разработка, той има шанс намиране и коригиране на грешки които варират навсякъде от неудобни до катастрофални. Но след няколко години можете да очаквате BugLab да стане задължителен в инструментариума на всеки разработчик, дори и да не е перфектен.

Експоненциалната еволюция на самообучаващия се ИИ

Колкото повече време имат моделите с изкуствен интелект като BugLab да се обучават върху примери от реалния живот, толкова по-добри и по-точни резултати ще дадат.

Едно от най-предизвикателните препятствия, пред които са изправени изследователите на Microsoft при разработването на BugLab, е използването на човешкото разбиране на кода и намеренията в инструмента. Но сега, когато това до голяма степен е решено, можете да очаквате BugLab да се подобри с времето.

Дълбоко обучение срещу Машинно обучение срещу AI: Как вървят заедно?

Опитвате се да разберете разликата между изкуствен интелект, машинно обучение и дълбоко обучение? Ето какво означават всички те.

Прочетете Следващото

Дялтуителектронна поща
Свързани теми
  • Програмиране
  • Microsoft
  • Съвети за кодиране
  • Изкуствен интелект
За автора
Анина От (Публикувани 89 статии)

Анина е писател на свободна практика по технологии и интернет сигурност в MakeUseOf. Тя започна да пише в областта на киберсигурността преди 3 години с надеждата да я направи по-достъпна за обикновения човек. Желаещ да научава нови неща и огромен маниак по астрономия.

Още от Anina Ot

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!

Щракнете тук, за да се абонирате