인텔은 매사추세츠 공과대학교(MIT), 조지아 공과대학교 등과 공동 개발한 새로운 기계 프로그래밍 시스템을 선보였다고 30일 밝혔다.
새로 공개된 ‘기계 유추 코드 유사성(MISIM)’ 시스템은 코드의 구조를 연구하고 코드의 유사한 동작에 기반해 다른 코드의 문법적 차이를 분석해 소프트웨어가 의도하는 바를 학습하기 위해 개발된 자동화 엔진이다.
저스틴 고트슐리히 인텔 기계 프로그래밍 연구소 설립자 및 수석 과학자 겸 소장은 “기계 프로그래밍에 대한 인텔의 궁극적인 목표는 소프트웨어 개발의 보편화”라며 “완전한 소프트웨어 개발 보편화가 실현된다면, 모든 사람들이 기계 프로그래밍을 통해 코드나, 자연어를 비롯한 다른 어떤 것도 가장 선호하는 방법으로 자신들의 의도를 표현하며 소프트웨어를 개발할 수 있게 될 것”이라고 강조했다.
최근 이기종 컴퓨팅의 부상은 하드웨어 및 소프트웨어 시스템 복잡성을 증가하는 결과를 낳았다. 여러 아키텍처에 걸쳐 전문가 수준의 코딩 능력을 갖춘 프로그래머의 수는 부족한 상황이다. 이는 새로운 개발 접근 방식의 필요성을 부각시켰다.
인텔 랩과 MIT가 공동 발표한 ‘기계 프로그래밍 필수 3요소’ 제목의 논문에서 처음 언급된 ‘기계 프로그래밍’은 자동화 도구를 활용해 개발 생산성을 높이는 것을 목표로 한다. 코드 유사성은 기계 프로그래밍이 제공하는 일부 자동화 도구의 핵심 기술이다. 코드 유사성은 개발 생산성을 높이기 위해 일부 소프트웨어 개발 프로세스를 정확하고 효율적으로 자동화 할 수 있는 잠재력을 보유하고 있다.
정확한 코드 유사성 시스템을 구축하는 것은 매우 어려운 작업이다. 이러한 시스템은 두 개의 코드 스니핏(조각)이 유사한 특성을 보이는지 또는 유사한 목표 달성을 위한 코드인지 판단하며, 이 작업은 단순한 학습 코드 만으로는 실행하기 벅찬 과정이다.
인텔이 MIT와 조지아 공과대학교와 협력해 개발한 MISIM은 두 개의 코드 조각이 서로 다른 데이터 구조와 알고리즘을 사용하는 경우에도 유사한 연산을 수행하는 시기를 정확하게 판단할 수 있다. 고트슐리히는 “이는 기계 프로그래밍의 거대한 비전 달성하기 위한 중요한 단계”라고 강조했다.
MISIM과 기존 코드 유사성 시스템을 가르는 매우 중요한 요소는 코드가 실제로 하는 것이 무엇인지 드러내는 맥락 인식 의미 구조(CASS)다. CASS는 코드의 실제 작동 원리를 확인하기 위한 여타 시스템과는 달리 특정 문맥으로 구성할 수 있어 더 높은 수준에서 코드를 설명하는 정보를 확인할 수 있다. CASS는 코드가 어떤 식으로 작동하는지가 아닌 코드가 무엇을 하는지에 대한 보다 구체적인 인사이트를 제공할 수 있다.
게다가, MISIM은 사람이 읽을 수 있는 소스 코드를 컴퓨터에서 실행 가능한 형태의 코드로 변환하는 프로그램인 컴파일러를 사용하지 않고도 이러한 작업을 수행할 수 있다. 이는 추천 시스템이나 자동화 버그 수정을 위한 중요한 특성과 같은 개발자가 현재 쓰고 있는 코드의 불완전한 조각에서 실행할 수 있는 역량 등 기존 시스템 대비 다양한 이점을 제공한다.
일단 CASS에 코드 구조를 통합하면, 신경 네트워크 시스템이 수행을 위해 설계된 작업에 근거하여 코드의 조각에 유사성 점수를 부여한다. 즉, 두 개의 코드 조각이 구조상 매우 다르게 보이지만 동일한 기능을 수행한다면, 이러한 신경 네트워크 시스템이 코드 조각들을 대체로 유사한 것으로 평가한다.
연구진은 이러한 원칙을 통일된 시스템에 통합함으로써 MISIM이 이전의 최첨단 시스템보다 최대 40배 더 정확하게 유사한 코드 조각을 식별할 수 있게 됐다.
인텔은 꾸준히 MISIM의 기능을 확장해 나감과 동시에 모든 소프트웨어 개발자들이 인텔의 다양한 이기종 아키텍처에서 프로그램이 가능하도록 지원하는 코드 추천 엔진 제작을 목표로 하고 있다. 인텔은 현재 연구 단계를 거쳐 실증 개발 단계 과정에 있다.
관련기사
- 'AI 엣지 컴퓨팅' 시대 여는 인텔 "파트너십이 곧 우리 비전"2020.07.29
- 인텔, 2분기 총마진 11년만에 최저2020.07.24
- 인텔, 차세대 고속 전송 기술 '썬더볼트4' 공개2020.07.08
- 인텔, 차세대 프로세서에 악성코드 방어 기능 심는다2020.06.18
기계 프로그래밍 연구소는 인텔과 협력해 MISIM이 어떻게 일상적인 개발에 활용될 수 있는지 알아보기 위한 연구를 진행하고 있다. 펜실베니아 대학교 겸임 조교수이기도 한 고트슐리히는 MISIM이 일상적인 개발에 보다 더욱 활발히 활용될 수 있기를 바라고 있으며, 또한 생산성을 높이고 버그 추적과 같은 프로그래밍 업무에 있어 일상적인 부분을 제거할 수 있기를 희망하고 있다.
고트슐리히는 “대다수의 개발자들은 나와 같이 기계가 버그를 알아서 고치는 것을 환영할 것이라고 생각한다”라고 밝혔다.