인텔·MIT·조지아텍, 기계추론코드유사성 시스템 개발

- MISIM 최종 목적지는 일반어 명령어를 프로그래밍 코드로 변환

CCO / pixabay, Gerd Altmann

인텔과 매사추세츠공대(MIT), 조지아공대 (Georgia Tech)가 공동으로 새로운 기계 프로그래밍(MP) 시스템을 공개했다.

기계추론코드유사성(MISIM) 시스템은 코드의 구조를 연구하고 코드의 유사한 동작을 가진 다른 코드의 구문 차이를 분석해 소프트웨어가 수행하려는 작업을 학습하도록 설계된 자동화 엔진이다.

최근 서로 다른 기종 컴퓨팅이 부상하면서 하드웨어 및 소프트웨어 시스템 복잡성이 높아지고 있다. 따라서 여러 아키텍처에서 전문가 수준의 코딩 능력을 갖춘 프로그래머가 부족해 새로운 개발 접근 방식이 필요한 실정이다. 

인텔 랩(Intel Labs)과 MIT가 공동 발표한 논문 ‘기계 프로그래밍 필수 3요소(The Three Pillars of Machine Programming)’에서 처음 언급된 ‘기계 프로그래밍’은 자동화 도구를 활용해 개발 생산성을 높인다. 

기계추론코드유사성(MISIM) 시스템 개요. [출처: arxiv.org]

코드 유사성은 기계 프로그래밍이 제공하는 일부 자동화 도구의 핵심 기술이다. 코드 유사성은 개발 생산성을 높이기 위해 일부 소프트웨어 개발 프로세스를 정확하고 효율적으로 자동화 할 수 있는 잠재력을 보유하고 있다.

하지만 정확한 코드 유사성 시스템을 구축하는 것은 매우 어려운 작업이다. 이러한 시스템은 2개 코드 스니핏(조각)이 유사한 특성을 보이는지 또는 유사한 목표 달성을 위한 코드인지 판단한다. 

이러한 작업은 단순한 학습 코드만으로는 실행하기 벅찬 과정이다. 하지만 MISIM은 2개 코드 조각이 서로 다른 데이터 구조와 알고리즘을 사용하는 경우에도 유사한 연산을 수행하는 시기를 정확하게 판단할 수 있다. 이는 기계 프로그래밍의 원대한 목표 달성하기 위한 중요한 단계다.

MISIM과 기존 코드 유사성 시스템을 가르는 매우 중요한 요소는 코드가 실제로 하는 것이 무엇인지 드러내는 맥락 인식 의미 구조(CASS)다. CASS는 코드의 실제 작동 원리를 확인하기 위한 여타 시스템과는 달리 특정 문맥으로 구성할 수 있어 더 높은 수준에서 코드를 설명하는 정보를 확인할 수 있다. 

기계 프로그래밍의 3가지 요소 다이어그램. [출처: arxiv.org]

CASS는 코드가 어떤 식으로 작동하는지가 아닌 코드가 무엇을 하는지에 대한 보다 구체적인 인사이트를 제공할 수 있다. 게다가, MISIM은 사람이 읽을 수 있는 소스 코드를 컴퓨터에서 실행 가능한 형태의 코드로 변환하는 프로그램인 컴파일러를 사용하지 않고도 이러한 작업을 수행할 수 있다. 

이는 추천 시스템이나 자동화 버그 수정을 위한 중요한 특성과 같은 개발자가 현재 쓰고 있는 코드의 불완전한 조각에서 실행할 수 있는 역량 등 기존 시스템 대비 다양한 이점을 제공한다.

일단 CASS에 코드 구조를 통합하면, 신경 네트워크 시스템이 수행을 위해 설계된 작업에 근거하여 코드의 조각에 유사성 점수를 부여한다. 즉, 2개 코드 조각이 구조상 매우 다르게 보이지만 동일한 기능을 수행하면, 이러한 신경 네트워크 시스템이 코드 조각들을 대체로 유사한 것으로 평가한다.

연구진은 이러한 원칙을 통일된 시스템에 통합해 MISIM이 이전 최첨단 시스템보다 최대 40배 더 정확하게 유사한 코드 조각을 식별할 수 있게 됐다.

MISIM이 노리는 최종 목적지는 버그를 알아서 고치는 것뿐만 아니라 일반어 명령어를 프로그래밍 코드로 변환하는 것이다. 예를 들어 80억 명의 스마트폰 사용자가 스스로 응용 프로그램(앱)을 만들 수 있다.

김들풀 기자 itnews@