테크레시피

딥마인드가 발표한 자동프로그래밍 AI

딥마인드(DeepMind)가 자동 프로그래밍이 가능한 AI인 알파코드(AlphaCode)를 발표했다. 알파코드 외에도 자동으로 프로그래밍이 가능한 AI는 존재하지만 알파코드는 414억 파라미터를 유지한 정밀도가 높은 AI로 완성했다고 한다.

오픈AI(OpenAI)는 2021년 8월 자연어를 코드로 변환할 수 있는 AI 시스템인 코덱스(Codex)를 발표했다. 코덱스는 소스코드를 계속 자동으로 보완하는 깃허브 파일럿(GitHub Copilot) 강화 버전이라는 위치이며 자연어로 입력한 간단한 명령에서 코드를 생성할 수 있기 때문에 아마추어라도 간단하게 코딩이 가능하게 된다는 것.

딥마인드가 발표한 알파코드는 이런 코덱스를 개선해 정밀도를 높인 AI다. 프로그래밍 콘테스트인 코드포스(Codeforces)가 개발한 프로그래밍 테스트에서 상위 54.3% 이내에 들어갔다. 덧붙여 이는 지난 6개월 전 테스트에 참가한 사용자 상위 28% 이내에 들어가는 성적이다.

딥마인드 측은 컴퓨터 시스템이 경쟁 수준 프로그래밍을 달성한 건 알파코드가 청음이라며 새로운 혁신으로 이어질 것으로 기대한다고 밝혔다.

케임브리지대학 조사에 따르면 개발자 노력 중 적어도 절반은 디버그에 소비되고 있으며 소프트웨어 업계에선 연간 추정 3,120억 달러 비용이 들고 있다고 한다. 알파코드 같은 AI를 이용한 프로그래밍 지원 툴이 탄생하면 코더가 창조적이고 반복성이 적은 태스크에 집중할 수 있게 되어 개발 비용 삭감도 가능하게 된다.

알파코드 최대 버전에선 코덱스 4배 크기인 414억 개 매개변수가 포함된다. 알파코드는 erkdid한 프로그래밍 언어(C++, C#, Go, Java, JavaScript, Lua, PHP, Python, Ruby, Rust, Scala, TypeScript)에 대응한다. 학습용 데이터세트는 715.1GB이며 600GB 이상 코덱스와 거의 동등한 크기다. 머신러닝에서 파라미터는 과거 트레이닝 데이터로부터 학습된 모델 일부이기 때문에 매개변수와 세련도 사이 상관 관계는 잘 유지된다는 지적이다.

알파코드는 아키텍처로 트랜스포머(Transformer) 기반 언어 모델로 되어 있으며 세일즈포스 코드T5(CodeT5)와 유사하다. 트랜스포머 아키텍처는 인코더와 디코더 2가지 핵심구성 요소로 구성되며 인코더에는 텍스트와 이미지와 같은 입력 데이터를 레이어별로 반복 처리하는 레이어가 포함되어 있다. 각 레이어는 입력 어느 부분이 서로 관련되어 있는지에 관한 정보를 이용해 인코딩을 생성해 이런 인코딩을 다음 레이어에 건네주어 최종 인코더 레이어에 도달하게 된다.

또 트랜스포머는 일반적으로 사전 학습을 수행한 뒤 학습 내용을 미세 조정한다. 이런 미세 조정 절차를 통해 트랜스포머는 질문에 대한 답변, 감정 분석, 문서 바꾸기 등 특정 작업을 수행할 수 있게 된다. 덧붙여 알파코드는 아직도 많은 문제를 안고 있으며 C++로 프로그래밍할때에는 구문적으로 올바른 코드를 출력할 수 없는 경우도 있다. 딥마인드에 따르면 알파코드는 복잡한 수학적 문제를 해결하기 위한 동적 계획 방법에 대한 코드 등을 생성할 때 성능을 저하시킨다고 한다. 관련 내용은 이곳에서 확인할 수 있다.

추천기사