"머신 프로그래밍, 인간 뛰어넘는 잠재력 가졌다"

인텔 랩스, 디버깅 자동화 기술 성과 공개

컴퓨팅입력 :2020/12/04 08:21    수정: 2020/12/04 08:26

인텔 랩스가 3일(미국 현지시간) 머신 프로그래밍 기술 진척도를 공개했다. (사진=인텔)
인텔 랩스가 3일(미국 현지시간) 머신 프로그래밍 기술 진척도를 공개했다. (사진=인텔)

머신 프로그래밍은 그동안 전문가에 의존해 왔던 소프트웨어 개발을 AI를 통해 자동화하기 위한 새로운 시도다. 인간이 기계와 대화를 나누면서 필요한 내용을 전달하면 AI가 이를 파악해 효과적인 코드를 작성해 주는 기술이며 아직 걸음마 단계에 있다.

3일(미국 현지시간) 온라인으로 진행된 '인텔 랩스데이' 행사에서 저스틴 고슬릭 인텔 랩스 수석 과학자는 "머신 프로그래밍은 CPU와 GPU(그래픽칩셋), FPGA(프로그래머블 반도체)로 다양해진 이기종 환경에서 프로그래머의 부담을 덜어줄 수 있을 것"이라고 밝혔다.

■ "머신 프로그래밍, 디버깅에서 일정한 성과 거둬"

저스틴 고슬릭은 "머신러닝이 컴퓨터 비전, 자연어 처리 등 분야에서 지속적으로 발전하고 있지만 소프트웨어를 자동으로 개발하는 영역에서는 진전이 더디며 MIT 연구진을 만나고 난 뒤 자동으로 소프트웨어를 개발하는 기술에 착안하게 됐다"고 설명했다.

머신 프로그래밍은 디버깅 등 프로그래밍의 모든 단계를 대상으로 한다. (사진=인텔)

머신 프로그래밍은 코드 작성과 테스트, 디버깅, 성능 분석, 사양서 작성 등 프로그래밍의 모든 분야를 대상으로 한다.

저스틴 고슬릭은 "머신 프로그래밍 중 필요한 코드를 자동으로 작성해 주는 프로그램 합성은 초보적인 단계이며 복잡한 프로그램을 만들어 낼 수는 없다. 그러나 디버깅에서는 이미 일정한 성과를 보이고 있다"고 밝혔다.

■ 인텔 랩스, 디버깅에 눈 돌린 이유는

수십만 줄의 C++ 코드부터 20줄 짜리 간단한 어셈블리 코드까지, 모든 코드에는 버그가 존재한다. 버그를 찾는 디버깅은 모든 소프트웨어 개발자들이 피할 수 없는 숙명같은 과정이다.

문제는 이런 버그를 찾는 과정이 녹록지 않다는 것이다. 머신 프로그래밍의 다양한 영역중 인텔 랩스가 현재 집중하는 분야 역시 디버깅이다.

인텔은 AI를 이용해 소프트웨어의 버그를 찾아내고 디버깅 시간을 줄이는 기술을 연구중이다. (사진=인텔)

저스틴 고슬릭은 "디버깅은 모든 프로그래머가 기피하는 작업이며 시간을 잡아 먹는데다 답답하다. 예를 들어 100줄짜리 프로그램에서 간단한 문제를 찾는 데 8시간이 걸렸고 복잡한 프로그램에서 등호(=) 하나를 찾는 데에는 수백 시간이 걸릴 수 있다"고 지적했다.

■ "성능 회귀·버그 식별 등 기술 연구중"

인텔 랩스는 현재 성능 회귀 문제와 버그 식별 등 다양한 기술을 연구 중이다.

성능 회귀는 소프트웨어 업데이트 후 처리 성능이 오히려 하락하는 문제를 가리킨다. 인텔 랩스가 '오토퍼프'(Autoperf)라고 이름 붙인 기술은 코드 안에 잠재된 성능 회귀 문제를 사전에 탐지한다.

인텔 랩스가 공개한 '컨트롤플래그' 개념도. (사진=인텔)

'컨트롤플래그'(ControlFlag)는 코드 안에 숨은 버그를 확인하고 소프트웨어가 정상인지 확인하는 기술이다.

저스틴 고슬릭은 "컨트롤플래그 구현을 위해서 지금까지 공개된 코드는 물론 전 세계의 코드 저장소로 AI를 보내 훈련시킨 결과 미묘한 버그, 혹은 찾기 쉽지 않은 버그를 찾아낼 수 있게 됐다"고 설명했다.

■ "인간보다 기계가 창의적인 코드 쓰는 날 올 것"

관련기사

저스틴 고슬릭은 "인간이 기계와 대화를 나누면서 요구사항을 이해하고 몇 시간 동안 자동으로 소프트웨어를 만들어 주는 머신 프로그래밍은 초현실적으로 느껴질 수 있지만 인간이 만들어 낼 수 없었던 것을 만들 수 있다는 잠재력을 지녔다"고 설명했다.

이어 "머신 프로그래밍은 인간이 가진 편견, 혹은 무의식적으로 간과하는 측면 등을 벗어나서 모든 것을 찾아보고 다양한 솔루션을 고려할 수 있을 것"이라고 전망했다.