딥마인드가 코딩하는 인공지능(AI) 알파코드(AlphaCode)를 개발했다고 2일(현지시간) 밝혔다. 구글과 같이 알파벳을 모회사로 둔 딥마인드는 바둑하는 AI 알파고와 단백질 구조를 예측하는 알파폴드를 개발한 것으로 유명하다.

딥마인드에 따르면 알파코드는 국제적인 프로그래밍 대회에서 상위 54% 성적을 거둬 인간 개발자 평균 실력을 보였다. 코딩하는 AI가 대회에서 단독으로 인간 수준의 능력을 보인 것은 세계 최초다.

알파코드는 GPT-3와 같은 트랜스포머 기반 모델을 사용해 이전에 없던 새로운 코드를 생성한다. 기존 대부분의 코딩 AI는 이전에 본 솔루션을 복제하거나 관련된 모든 알고리즘을 적용해보는 방식을 사용하는데 그쳤다.

딥마인드는 공식블로그에서 “최근 등장한 대규모 언어 모델은 인상적인 코드 생성 능력을 보여주었으며 간단한 프로그래밍 작업을 할 수 있게 됐다. 하지만 이러한 모델은 단순히 지시 사항을 코드로 변환하는 것 이상은 수행하지 못한다. 문제 해결 기술이 필요한 보다 복잡하고 보이지 않는 문제를 풀지는 못하는 것”이라며 알파코드를 개발한 동기를 설명했다.

GPT-3를 비롯한 초거대 AI 언어모델은 텍스트 데이터를 생성하고 이해하는 영역에서 큰 진전을 이뤘지만 문제 해결 영역에서는 이야기가 다르다. 해당 영역에서는 간단한 수학과 프로그래밍 문제만을 다루거나 기존 솔루션을 검색, 복사하는 일까지만 가능한 상황.

새로운 코드를 짜는 일에는 비판적 사고, 논리, 알고리즘, 코딩, 자연어 이해까지 복합적인 능력이 필요하다. 딥마인드가 알파코드를 개발한 궁극적인 이유는 문제 해결 능력을 갖춘 고도화된 지능 연구를 위해서다. 가능한 다양하고 발전된 형태의 지능을 만드는 것이 딥마인드의 목표다.

알파코드가 푼 문제 예시

알파코드가 만든 코드 예시

대규모 트랜스포머와 필터링, 클러스터링이 비결

코딩 대회에서 참가자는 긴 문제 설명글을 받고 제한된 시간 내에 풀어야 한다. 몇 개 문제를 풀었느냐에 따라 순위가 매겨진다. 복잡한 서면 문제를 한 번에 이해한 후 작동할 수 있는 프로그래밍 결과물을 대부분 시도에서 만들어내는 것이 관건이다. 이와 같은 코딩 테스트 방식은 기업들이 소프트웨어 엔지니어를 채용하는데 사용하는 도구 중 하나기도 하다.


알파코드 개발을 위해 딥마인드는 연구진이 고른 깃허브 코드에서 AI 모델을 사전 학습(pre-training)했다. 이후 작은 규모의 엄선된 프로그래밍 데이터셋에서 파인 튜닝(fine tuning)을 했다. 평가를 위해 연구팀은 각 문제 당 대규모 C++과 파이썬 프로그램을 만들었다.

이후 연구팀은 필터링, 클러스터링을 거쳐 솔루션들에 대해 다시 랭킹을 매겼다. 작은 세트의 10개 후보 프로그램을 추출해 외부 평가물로 제출했다. 연구팀은 “이 자동화된 시스템은 디버깅, 컴파일링, 패싱 테스트, 최종 제출까지 인간 경쟁자들의 시행착오 작업을 대체한다”고 말했다.

알파코드 개발 과정

알파코드 성능은 코드포스(Codeforces)의 최근 10개 프로그래밍 대회에서 검증했다. 코드포스는 정기적으로 코딩 대회를 여는 플랫폼이다. 전세계 수만명 참가자들이 코딩 기술을 테스트하기 위해 대회에 모인다. 10개 대회에서는 알파코드의 기존 훈련 데이터와 다른 새로운 것을 썼다.

알파코드 연구팀은 “현존하는 AI 시스템 자체 능력으로는 대회에서 우수한 성적을 내기 어렵다. 하지만 대규모 트랜스포머 모델과 대규모 샘플링, 필터링을 합친 결과 유의미한 진전을 이뤄냈다”고 말했다.

코드포스 설립자 마이크 미어자야노프(Mike Mirzayanov)는 “알파코드 성과는 내 예상을 넘어섰다. 사실 간단한 대회 문제에서도 알고리즘을 사용하고 만들어내야 하기에 (알파코드에 대해) 회의적이었다. 결과적으로 알파코드는 유망한 인간 경쟁자 정도 수준을 달성했다”고 전했다.

글. 바이라인네트워크
박성은 기자<sage@byline.network>