인간 수준의 프로그래밍 능력 갖춰 문제 추론해 필요한 작업만 판단 복잡한 문제에선 낮은 성적 받기도
컴퓨터 프로그래밍 인공지능(AI) ‘알파코드’ 소개 이미지. 사진 출처 딥마인드 홈페이지
인공지능(AI)이 다시 한계를 넘었다. AI에 중요한 역할을 하는 컴퓨터 프로그래밍을 인간 개발자 수준으로 수행하는 데 성공했다. 비교적 간단한 사고 과정이 필요한 프로그래밍만 가능하지만 AI가 바둑, 체스 등 게임에 이어 더 복잡한 판단 능력이 요구되는 컴퓨터 프로그래밍 작업까지 가능할 것으로 기대된다.
구글의 AI 자회사 딥마인드는 자사의 컴퓨터 프로그래밍 AI ‘알파코드’가 프로그래밍 작업에서 일반적인 인간 수준의 성능을 달성했다는 연구 결과를 국제학술지 사이언스에 8일(현지 시간) 발표했다.
알파코드는 알고리즘을 특정한 프로그래밍 언어로 변환하는 코딩 작업을 할 수 있는 AI로 개발됐다. 글로 쓰인 코딩 문제를 읽고 이를 해결하는 프로그램을 스스로 만들 수 있다. 유사한 기능을 가진 다른 AI는 짧은 코딩만이 가능한 반면 알파코드는 복잡한 문제에 대한 해답을 내놓기 위해 만들어졌다.
총 10개 문제에서 알파코드는 놀라운 성적을 거뒀다. 10개 문제에서 상위 20.9∼73.9%에 해당하는 답을 내놨다. 평균 성적은 상위 54.3%였다. 참가자 5000명 중 평균 이상의 작업능력을 보여준 것이다.
연구진은 알파코드가 복잡한 컴퓨터 프로그래밍 작업을 수행할 수 있도록 독특한 ‘신경망 모델’을 학습했다고 설명했다. 고성능 네트워크를 사용해 수백만 개의 다양한 프로그램을 생성한 후 문제에 적합한 프로그램을 솎아내는 방식이다. 짧은 시간에 대량의 프로그램을 만들어내는 능력이 정답에 가까운 해답을 내놓을 수 있었던 비결이라는 설명이다.
알파코드는 또 복잡한 문제를 푸는 데 필요한 추론을 해내는 모습도 보였다. 방대한 프로그램 중 문제 해결에서 가장 중요한 설명에 주목하고 이와 관련된 내용들만 추려냈다. 예를 들어 가상의 도시에서 최적의 건물 위치를 정할 때 주변 교통량이나 인구 이동량에 대한 계산을 우선적으로 수행하는 작업 등이다. 문제와 관련된 프로그램을 무작위로 생성하는 것이 아니라 독해를 통해 가장 필요한 작업이 무엇인지 판단한 것이다.
알파코드의 한계점도 있다. 복잡한 문제를 여러 개로 나눠 푸는 문제에선 상대적으로 낮은 성적을 거뒀다. 반면 문제 해결 단계가 단순하거나 경우의 수를 검토하는 문제에선 좋은 성과를 보였다. 지코 콜터 미국 카네기멜런대 컴퓨터과학과 교수는 “알파코드가 자신이 수행하는 컴퓨터 프로그래밍 작업을 완전히 이해한다고 보기는 어렵지만 이전까지 AI에서 볼 수 없었던 코딩 능력을 보여줬다”고 말했다.
박정연 동아사이언스 기자 hesse@donga.com