본문 바로가기 주메뉴 바로가기 검색 바로가기
AI, 새로운 트릭 공개...컴퓨터 코드도 작성한다?
상태바
AI, 새로운 트릭 공개...컴퓨터 코드도 작성한다?
GPT-3와 같은 AI 언어 모델 프로그램은 신뢰할 수 있는 텍스트를 작성한다. 일부 사용자는 이와 같은 툴을 사용해, 소프트웨어 개발을 자동화하고는 버그를 찾는다.
By WILL KNIGHT, WIRED US

훌륭한 컴퓨터 코드 작성법을 배우는 데 몇 년이 걸릴 수 있다. 프랑스 파리의 스타트업 소스AI(SourceAI)는 프로그래밍이 특별히 중요한 일이 되어서는 안 된다고 생각한다.

소스AI는 인공지능(AI)을 사용해, 코드의 역할을 설명하는 짧은 텍스트를 기반으로 코드를 작성하는 툴을 약간 변경한다. 

AI로 쉽게 코드 작성을 한다는 소스AI의 야망은 소프트웨어 개발 부분에서 광범위한 혁명이 발생한다는 징조이다. 머신러닝의 발전과 함께 갈수록 증가하는 코딩 작업을 자동화할 수 있게 되었다. 코드 세그먼트(segment) 자동 완성과 소스 코드 검토 및 성가신 버그 발견을 위한 알고리즘 변경 등 다양한 작업을 자동화한다.

코드 자동화 작업은 소프트웨어 개발을 변경시킬 수 있지만, 오늘날 AI의 한계와 이해하기 어려운 특성 때문에 새로운 문제가 발생할 수 있다. 머신러닝 알고리즘은 예측할 수 없는 행동을 한다. 또, 기계가 생성한 코드는 신중한 검토가 이루어지지 않았다면, 유해한 버그가 숨어있을 가능성이 있다.

소스AI, 그리고 그와 유사한 여러 프로그램은 2020년 5월, AI의 근본적인 발전에 집중하는 샌프란시스코 기업인 오픈AI(OpenAI)가 발표한 AI 언어 프로그램 GPT-3을 최대한 활용하고자 한다. 소스AI 창립자는 GPT-3에 처음 접근하고자 했던 수백 명 중 일부이다. 오픈AI는 GPT-3의 코드를 배포하지 않았지만, 일부 사용자가 API를 통해 GPT-3 모델에 접근하도록 한다.

GPT-3는 웹에서 스크랩한 다량의 텍스트로 훈련한 대규모 인공 신경망이다. 텍스트의 의미를 완벽히 이해하는 것은 아니지만, 주어진 주제에 따른 기사 작성 능력이나 간략하게 글을 요약하는 능력, 문서 콘텐츠 관련 질문 답변 능력 등을 훌륭하게 지닐 정도로 언어 패턴을 확인할 수 있다.

소스AI 창립자 겸 CEO인 푸칸 벡테스(Furkan Bektes)는 "툴을 테스트하면서 코드를 생성할 수 있다는 점을 깨달았다. 이때, 소스AI를 만드는 것을 생각하게 되었다"라고 말했다.

벡테스가 가장 먼저 AI의 코드 작성 가능성에 주목한 것은 아니다. GPT-3 배포 직후, 어느 한 프로그래머가 GPT-3에 입력된 코드 스니펫을 새로 혼합해 버튼, 텍스트 입력 필드 등을 포함한 맞춤형 웹 앱을 제작할 수 있다는 사실을 보여주었다. 디빌드(Debuild)라는 기업은 AI 기반 코드 작성 기술을 상용화할 계획이다.
 
[사진=Freepik]
[사진=Freepik]

소스AI의 목표는 사용자가 다양한 언어로 광범위한 프로그램을 생성하도록 하는 것이다. 따라서 더 많은 소프트웨어 생성 자동화에 도움이 된다. 벡테스는 "개발자는 코딩 시간을 절약할 수 있으며, 코딩 지식이 없는 사용자도 애플리케이션을 개발할 수 있다"라고 말했다.

또 다른 기업인 탭나인(TabNine)은 오픈AI가 배포한 이전 버전 언어 모델인 GPT-2를 사용해, 개발자가 입력할 때 라인을 자동 완성하거나 기능을 실행하는 툴을 제작했다.
 
일부 소프트웨어 업계 대기업도 코드 작성 AI에 관심을 두는 듯하다. 2019년, 마이크로소프트는 오픈AI에 10억 달러를 투자하고, GPT-3 라이선스에도 동의했다. 2020년 5월, 마이크로소프트의 빌드(Build) 콘퍼런스에서 오픈AI 공동창립자인 샘 알트만(Sam Altman)은 GPT-3가 개발자를 위해 코드를 자동 완성하는 방식을 설명했다. 마이크로소프트는 자사의 소프트웨어 개발 툴에 AI를 어떤 식으로 사용할 것인지 답변하지 않았다.

뉴욕대학교 컴퓨터 과학 및 공학부 부교수인 브랜던 돌란 개빗(Brendan Dolan-Gavitt)은 GPT-3와 같은 언어 모델이 인간 프로그래머를 도울 확률이 가장 높다고 말한다. 그는 "다른 제품은 GPT-3와 같은 언어 모델을 사용해, 코드에서 버그를 찾는 놀라운 일을 하면서 코드를 작성하는 즉시 코드에 숨겨진 버그를 발견한다"라고 말했다.

그러나 AI를 사용해 코드를 생성하고 분석하는 활동은 문제가 될 수 있다. MIT 연구팀은 2021년 3월, 안전한 코드 실행을 검증하도록 훈련받은 AI는 특정 변수 변경과 같은 몇 가지 신중한 변화를 적용해, 유해한 프로그램을 제작하도록 얼마든지 속일 수 있다는 사실을 입증하는 논문을 게재했다. 해당 논문의 연구 활동에 참여한 MIT 박사후 과정 학생인 샤샨크 스리칸트(Shashank Srikant)는 AI 모델에 지나치게 의존해서는 안 된다고 주장한다. 그는 "AI 언어 모델이 생성되면 순식간에 상황이 매우 나빠질 수 있다"라고 말했다.
 
"AI 언어 모델이 생성되면 순식간에 상황이 매우 나빠질 수 있다."
샤샨크 스리칸트, MIT 박사후 과정 학생

돌란 개빗 교수는 코딩 툴 생성에 사용되는 언어 모델의 특성도 문제를 일으킨다고 설명한다. 그는 "직접 언어 모델을 적용한다면, 결국 버그가 포함돼 심지어 보안 수준도 제대로 갖추어지지 않은 코드를 생성할 수 있다. 결국, AI 언어 모델 훈련은 버그가 있으면서 안전하지 않은 인간이 작성한 코드로 하게 된다"라고 지적했다.

돌란 개빗 교수는 인간이 작성한 코드인지, GPT-2로 작성된 특수 버전 코드인지 방문자가 직접 판단하도록 요청하는 웹사이트인 '디스 코드 더즈 낫 이그지스트(This Code Does Not Exist)'를 만들었다. 돌란 개빗 교수는 현재 보안 소프트웨어 테스트를 위한 버그를 생성하고자 AI 생성 코드를 개발한다.

컴퓨터 과학자는 지난 수십 년간 코드 자동 생성법을 연구했다. 하지만, 오늘날의 AI는 다양한 가능성에 새로운 흥미를 제기했다.

2019년 4월, 페이스북 소속 연구원은 머신러닝으로 기능은 비슷한 코드 스니펫을 확인하는 툴인 아로마(Aroma)를 사용했다. 아로마는 개발자가 더 빨리 프로그램을 작성하면서 버그를 피할 수 있는 툴이다. 2020년 10월, 딥마인드(DeepMind) 연구팀은 인간이 작성한 알고리즘을 더 효율적으로 제작하도록 하는 AI 프로그램을 자랑스레 선보였다. 인텔은 MISIM(Machine Inferred Code Similarity)이라는 프로젝트를 시행했다. 해당 프로젝트는 AI를 이용해 코드의 역할을 판단해, 복잡한 프로그램 제작 자동화에 도움을 준다. 머신러닝은 다른 머신러닝 알고리즘 구축 및 변경에 필요한 몇 가지 작업을 자동화할 방안으로 급부상했다.

소스AI의 툴이 실제로 얼마나 효과가 있을지는 지켜봐야 한다. 아직 공개 데모 버전이 등장하지 않았다. 그러나 벡테스는 소스AI의 툴은 간단한 명령과 관련, 80~90%의 정확도를 보였다고 밝혔다. 벡테스는 소스AI가 소프트웨어 개발 양상 일부를 바꿀 수 있다고 믿는다. 그는 "많은 학생이 소스AI 툴을 사용해, 숙제를 빨리 끝낼 것이다"라는 농담을 했다.

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

<기사원문>
Now for AI’s Latest Trick: Writing Computer Code
이 기사를 공유합니다
RECOMMENDED