마이크로소프트, 잘못된 코드 알려주는 AI 솔루션 ‘버그랩’ 개발

오영주

ohyj87@naver.com | 2021-12-17 15:32:38

코드를 통해 버그를 찾아 수정하는 것은 종종 시간이 많이 걸리지만, 반드시 거쳐야 하는 필수 단계다. 다만, 버그를 자동으로 수정하여 이 단계를 최소화할 수 있으면, 개발자는 시간을 단축하고 더 중요한 업무에 몰두할 수 있을 것이다.

마이크로소프트 연구원들은 프로그래머가 애플리케이션을 더 빠르고 정확하게 디버그하는 데 도움을 주는 인공 지능(AI) 솔루션인 버그랩(BugLab)을 개발했다고 밝혔다.

버그랩은 ‘숨바꼭질’ 게임 모델을 기반으로 하며 GAN(Generative Adversarial Networks)이 생성되는 방식과 유사한 방식으로 작동한다. 버그랩을 개발한 마이크로소프트 리서치의 두 연구원인 밀터스 알라마니스(Miltos Alamanis)와 마크 브록스밋(Marc Brockschmidt)은 “버그랩이 코드 줄로 ‘숨바꼭질’ 게임을 통해 스스로 훈련할 수 있도록 함으로써 레이블이 지정된 데이터가 부족한 단점을 극복했다”고 말했다.

버그랩은 두 가지 컴퓨팅 모델을 사용하여 훈련된다. 하나는 올바른 코드 조각 내에서 버그를 숨기는 것이고, 또 다른 하나는 버그를 찾아 수정하는 것이다. 두 모델은 지속적으로 서로 학습하며, 시간이 지남에 따라 코드에서 버그를 포착하고 숨기거나, 수정하는 데 능숙해진다.

버그랩의 테스트는 파이썬에서 이뤄졌다. 연구원들은 “성능을 측정하기 위해 파이썬 패키지 색인에 있는 패키지의 작은 버그 데이터 세트 속 버그에 수동으로 주석을 달았다”면서 “탐지기는 무작위로 삽입된 버그로 훈련됐으며, ‘숨바꼭질’ 방법으로 훈련된 모델이 다른 대안에 비해 최대 30% 더 우수함을 보여줬다”고 말했다.

버그랩은 작은 버그를 찾기 위해 소요해야 하는 소프트웨어 개발자의 시간을 절약하는데 도움 된다. 하지만 복잡한 버그에는 아직 도달할 수 없기 때문에 숙련된 프로그래머가 해야 하는 일까지 대체할 수는 없다.

마이크로소프트에 따르면, 버그랩은 코드 조각에서 버그의 약 26%를 감지하고 자동으로 수정할 수 있기 때문에 결과가 유망하다. 그러나 오탐지 및 누락된 버그로 인해 정확도는 여전히 상당 부분 부족하다.

관계자는 “버그랩과 같은 AI 모델은 실제 사례를 학습해야 하는 시간이 많을수록 더 좋고 정확한 결과를 얻을 수 있다”고 조언했다.

[ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]

WEEKLY HOT