본문 바로가기 주메뉴 바로가기 검색 바로가기
AI, 자연어로 코드 작성한다
상태바
AI, 자연어로 코드 작성한다
마이크로소프트가 최고의 텍스트 생성 모델 GPT-3에 프로그래밍 능력을 부여했다. 마이크로소프트 CEO 사티아 나델라는 GPT-3가 자체적으로 코드를 작성한다고 밝혔다.
By KHARI JOHNSON, WIRED US

지난 몇 년간 많은 연구원이 인공지능(AI)을 사용해, 프로그래밍 언어 변환 능력이나 문제 자동 개선 능력을 개선하고자 했다. 일례로 닥터리페어(DrRepair)라는 AI 시스템은 다량의 에러 메시지를 생성하는 문제 대부분을 풀 수 있는 능력을 선보였다. 그러나 일부 연구원은 AI가 비전문가의 간단한 설명을 기반으로 프로그램을 작성할 수 있는 날을 꿈꾸었다.

5월 25일(현지 시각), 마이크로소프트와 오픈AI는 세계 최고 수준의 첨단 텍스트 생성 모델인 GPT-3가 자연어 설명을 기반으로 프로그램을 작성하도록 할 계획을 발표했다. 이는 마이크로소프트가 2020년, 오픈AI에 10억 달러를 투자하고 GPT-3 독점 라이선스 권한을 얻은 후 최초로 상용화된 GPT-3 애플리케이션을 내놓는 것이다.

마이크로소프트 CEO 사티아 나델라(Satya Nadella)는 마이크로소프트 빌드 개발자 콘퍼런스 키노트 연설에서 “자연어로 원하는 작업을 설명한다면, GPT-3가 가장 관련성이 높은 공식 목록을 나열하고는 직접 선택하도록 한다. GPT-3가 직접 코드를 작성하는 것이다”라고 말했다.

마이크로소프트 부사장 찰스 라난나(Charles Lamanna)는 와이어드에 GPT-3가 제공하는 첨단화된 능력이 복잡한 문제를 해결하면서 코딩 경험이 거의 없는 이들의 권한 강화에 도움이 된다고 설명했다. GPT-3는 자연어를 마이크로소프트가 2021년 3월에 도입한 엑셀 명령과 비슷한 매우 간단한 프로그래밍 언어인 파워Fx(PowerFx)로 변환한다.

이는 AI를 코딩에 적용한 가장 최근의 사례이다. 2020년, 마이크로소프트 빌드에서 오픈AI CEO 샘 알트만(Sam Altman) 파이썬 코드 구문을 자동 생성하는 깃허브의 코드로 정리한 언어 모델을 시범으로 보여주었다. 소스AI(SourceAI) 등 일부 스타트업도 GPT-3를 사용해 코드를 생성한다. 2021년 4월, IBM은 50여 가지 프로그래밍 언어의 코드 샘플 1,400만 개를 보유한 프로젝트 코드넷(Project CodeNet)이 자동화 기업의 자바 코드 라인 수백만 개로 생성된 프로그램 업데이트에 필요한 시간을 1년에서 1개월로 단축하는 방법을 보여주었다.
 
[사진=Unsplash]
[사진=Unsplash]

마이크로소프트의 GPT-3를 이용한 프로그램 작성 기능은 바이두와 구글, 마이크로소프트, 엔비디아, 세일스포스 등 테크 업계의 여러 대기업이 웹에서 수집한 텍스트 훈련 데이터를 이용해 다량의 언어 모델을 생성하는 데 사용하는 신경망 구조인 트랜스포머(Transformer)를 기반으로 한다. 언어 모델은 계속 규모가 커진다. 2018년에 출시된 최대 프로그래밍 언어 모델인 버트(BERT)는 3억 4,000만 개의 변수인 신경망 빌딩 블록을 지녔다. 2020년에 출시된 GPT-3는 1,750억 개의 변수를 두고 있다.

그러나 이와 같은 언어 모델 개발을 위해 나아가야 할 길이 멀다. 최근 진행된 어느 한 테스트에서 가장 뛰어난 언어 모델은 AI 연구팀이 압축한 기초적인 프로그래밍 문제와 관련, 항상 14%라는 매우 낮은 성공률을 보였다.

위의 연구를 진행한 연구팀은 아직도 낮은 성공률을 기록한 테스트가 “머신러닝 모델이 코드 작성법 학습을 시작한 수준”이라고는 결론을 내렸다.

최근, AI 연구팀은 머신러닝 커뮤니티의 문제에 직면해, 대형 언어 모델의 프로그래밍 언어 능력을 평가하고자 파이썬 자동화 코딩 벤치마크를 도입했다. 벤치마크 테스트에서 오픈AI의 주요 모델과 비슷한 구조로 설계된 GPT-네오(GPT-Neo)가 GPT-3보다 훌륭한 성과를 지닌 것으로 확인됐다. 논문의 제1 저자인 댄 헨드릭스(Dan Hendrycks) 박사는 GPT-네오가 집단 코딩 프로젝트를 위한 인기 프로그래밍 보관소인 깃허브에 수집된 데이터를 사용해 제대로 정돈된 덕분에 더 뛰어난 성과를 거둔 것이라고 설명했다.

헨드릭스 박사는 AI 연구팀과 프로그래머 모두 언어 모델이 코딩을 단순화하는 방법을 더 자세히 알게 됐다는 점에서 훨씬 더 발전할 수 있다고 본다.

헨드릭스 박사는 트랜스포머의 구조를 기반으로 한 대규모 언어 모델 애플리케이션이 프로그래머의 역할을 바꿀 수 있다고 생각한다. 그는 언어 모델이 처음에는 특정 작업에 집중하고, 이후 더 일반화된 형태의 코딩으로 세분화했다. 일례로 프로그래머가 문제의 테스트를 다량으로 결합한다면, 언어 모델이 다른 여러 가지 해결책을 제시하는 코드를 생성하고는 인간이 최선의 선택을 하도록 한다. 헨드릭스 박사는 인간의 코드 작성 방법에 변화를 줄 것이라고 생각한다. “무언가가 통과할 때까지 같은 메시지를 무차별적으로 전송하지 않기 때문”이라고 설명했다.

또, 헨드릭스 박사는 코드의 다음 라인을 제안하는 AI가 인간 프로그래머의 생산성을 높이며, 잠재적으로는 프로그래머 수요 자체가 감소하거나 소규모 팀도 목표를 달성하도록 할 수 있다고 생각한다.

현재 오픈AI는 GPT-3 프라이빗 베타 접근 권한을 제공한다. GPT-3는 복잡한 SAT 유사점을 올바르게 완료하는 것부터 질문에 대한 응답 및 텍스트 생성까지 다양한 작업을 완료할 수 있는 능력을 입증했다. 심지어 아동과의 성관계를 묘사한 텍스트, 흑인과 여성, 이슬람 신도에 대한 공격적인 텍스트까지 생성했다. 오픈AI가 GPT-3로 생성된 공격적이거나 유해한 콘텐츠 문제를 해결할 수 없다면, 사용에 제한이 있을 것이다.

마이크로소프트와 오픈AI, 깃허브가 AI의 코딩 능력을 위해 어떤 방식으로 협력할 것인지는 아직 확실하지 않다. 2018년, 마이크로소프트가 깃허브를 인수한 직후, 마이크로소프트는 언어 모델을 사용해, 시맨틱 코드(semantic code) 검색 능력을 부여하기 위한 노력을 구체적으로 설명했다. 이는 AI가 포함된 첫 번째 일련의 응용 연구 계획이다. 이와 같은 능력이 프로그래머의 자연어를 이용한 코드 검색 및 사용을 수월하게 만들 수 있다. 한편, 깃허브 대변인은 현재 프로젝트 진행 상황에 대한 답변을 거부했다.

** 위 기사는 와이어드US(WIRED.com)에 게재된 것을 와이어드코리아(WIRED.kr)가 번역한 것입니다. (번역 : 고다솔 에디터)

<기사원문>
AI Could Soon Write Code Based on Ordinary Language
이 기사를 공유합니다
RECOMMENDED