AI 시스템 AlphaCode, 프로그래밍 경쟁에서 인간 참가자와 유사하게 수행
- Business News / 문광주 기자 / 2022-12-09 15:20:26
3'20" 읽기
AI는 새롭고 복잡한 문제에 적합한 알고리즘을 개발하고 적절한 컴퓨터 코드를 작성할 수 있다
휴대전화의 언어 보조, 연구 보조 또는 자동차 및 산업 보조 시스템 등 적응형 알고리즘과 AI 시스템은 이미 우리 삶의 많은 영역에서 사용되고 있다. 그동안 머신 브레인은 전략 게임과 데이터 분석을 마스터할 뿐만 아니라 오랫동안 불가능하다고 여겨졌던 작업도 수행한다.
문제에서 컴퓨터 코드로
그러나 프로그래밍은 어떠할까? 인공지능 자체가 새로운 알고리즘과 AI 시스템의 제작자가 되는 공상 과학 시나리오는 얼마나 현실적일까? 이전 시스템은 기성 체계 및 규칙을 기반으로 작은 코드 스니펫 또는 간단한 프로그램을 생성할 수 있었다. "그러나 완전한 프로그램을 작성하려면 작업을 이해하고 올바른 솔루션 알고리즘을 찾은 다음 이 알고리즘을 구현하는 코드를 작성해야 한다"고 Google 자회사 Deepmind의 Yujia Li와 그의 동료는 설명한다.
해결해야 할 과제가 컴퓨터와 호환되는 형식이 아니라 자연어로 된 복잡한 텍스트로 제시되면 더욱 어려워진다. 예를 들어, 이러한 작업은 프로그래밍 대회에서 설정되며 인간 프로그래머에 의해 최상의 방법으로 컴퓨터 코드로 변환되어야 한다. 그러나 지금까지 신경망 기반 AI 시스템은 이러한 복잡한 프로그래밍 작업에 압도당했다.
AI가 인간 프로그래머를 이기다
DeepMind 팀은 이러한 코딩 대회에서 경쟁할 수 있을 만큼 충분히 잘 프로그램하는 AI 시스템을 처음으로 개발했다. "우리가 아는 한, 어떤 컴퓨터 시스템도 프로그래밍 경쟁에서 그런 수준에 도달한 적이 없다"고 Li와 그의 팀은 말했다. 그들의 시스템인 AlphaCode는 Codeforces 플랫폼에서 경쟁 작업을 해결할 때 54.3%를 달성했다. AlphaCode는 모든 인간 참가자의 절반보다 더 잘 했다.
놀라운 것은 AlphaCode가 이전에 배운 프로그래밍 규칙이나 훈련을 통해서는 이것을 할 수 없다는 것이다. 신경망 기반 AI 시스템은 오래된 경쟁 과제와 솔루션으로 훈련을 통해서만 기능을 개발했다. 일반적으로 이들은 프로그래밍 플랫폼에 의해 게시되므로 인간 참여자가 준비할 수 있도록 액세스할 수도 있다. 원칙적으로 AI 시스템은 이러한 데이터 세트만을 사용하여 프로그래밍하는 방법을 스스로 학습했다.
GitHub 스크립트 및 경쟁 작업을 사용한 교육
훈련을 위해 AlphaCode는 먼저 Github 플랫폼에서 다양한 프로그래밍 언어로 된 715GB의 코드 섹션을 분석했다. 이 구조화되지 않은 스크립트 모음에는 문제 설명이 포함되어 있지 않으며 일반적인 구조 및 구문 요소를 파악하는 데 사용되었다. 그런 다음 AlphaCode의 Transformer 모듈의 인코더 부분은 각 스크립트의 절반을 수신하고 디코더 부분은 나머지 절반을 올바르게 채우는 방법을 배워야 했다.
두 번째 훈련 단계는 마무리 작업을 제공했다. 사전 훈련된 AI 시스템은 Codeforces 플랫폼에서 올바른 솔루션과 잘못된 솔루션을 포함하여 약 1만3500개의 이전 경쟁 작업을 받았다. 이 데이터를 평가함으로써 AlphaCode는 올바른 코드 솔루션과 잘못된 코드 솔루션을 구별하는 기능을 "학습"했다.
인간 경쟁자에 대한 AlphaCode
이 학습 단계를 완료한 후 평가, 즉 경쟁이 이어졌다. 이를 위해 AlphaCode는 2021년 12월 Codeforces 플랫폼에서 5,000명 이상의 참가자가 참여하는 10개 대회의 일부로 설정된 작업을 받았다. AI 시스템은 먼저 이러한 각 작업에 대해 수백만 개의 잠재적인 코드 솔루션을 생성했다. 그런 다음 이러한 솔루션의 작동 가능성을 확인하고 잠재적으로 적합한 10개의 후보를 선택하는 하위 모듈을 사용했다.
그런 다음 Li의 팀은 이러한 코드 솔루션을 Codeforces 플랫폼에 업로드하여 평가했다. 이러한 값을 기반으로 연구원들은 참가자 순위에서 AlphaCode가 어디에 도달했을지 결정했다. 결과: AlphaCode의 코드 솔루션은 인간 프로그래머의 54.3%보다 우수했다. Li와 그의 동료들은 "이 성능은 최대 1년의 교육을 받은 초보 프로그래머의 성능과 거의 동일하다"고 설명했다. 인간 참가자와 마찬가지로 AlphaCode는 어려운 작업보다 더 자주 쉬운 작업을 올바르게 해결했다.
"뛰어난 잠재력“
인공지능이 무료 프로그래밍 대회에서 인간 프로그래머를 따라잡은 것은 이번이 처음이다. 심지어 현재 "과학" 문제의 표지에 AlphaCode가 등장했다. DeepMind 팀은 AI 시스템을 미래 프로그래밍 기계 두뇌를 위한 유망한 접근 방식으로 보고 있다.
이 연구에 참여하지 않은 피츠버그 소재 카네기 멜론 대학의 AI 연구원 Zico Kolter도 비슷한 견해를 가지고 있다. 프로그래밍은 성과에 도전한다”고 덧붙였다. 그는 AlphaCode를 규칙을 몰라도 코딩을 배울 수 있는 모델의 첫 번째 예로 보고 있다.
그러나 절차는 여전히 매우 복잡합니다. AlphaCode는 교육 및 평가를 위해 175MWh(메가와트시)의 에너지와 초당 연속 페타플롭으로 2,149일에 해당하는 컴퓨팅 성능이 필요했다. "따라서 코드 생성 시스템에 대한 우리의 작업에는 여전히 개선의 여지가 있다"고 Li와 그의 팀은 인정했다.
(Science, 2022; doi:10.1126/science.abq1158)
AI는 새롭고 복잡한 문제에 적합한 알고리즘을 개발하고 적절한 컴퓨터 코드를 작성할 수 있다
프로그래머로서의 인공지능
AI 시스템 AlphaCode는 프로그래밍 경쟁에서 인간 참가자와 유사하게 수행한다.
기계 두뇌는 프로그래밍을 배운다. 처음으로 인공지능이 인간 프로그래머와 동일한 작업을 수행했다. 즉, 새롭고 복잡한 문제에 적합한 알고리즘을 개발하고 적절한 컴퓨터 코드를 작성할 수 있다. DeepMind의 AlphaCode AI 시스템은 연구원들이 "Science"에 보고한 것처럼 인간 프로그래머와의 온라인 코딩 경쟁에서 중간 위치를 차지한 성능을 달성했다.
![]() |
▲ 프로그래밍 AI가 "사이언스"의 표지를 장식했다. ©Science/AAAS |
휴대전화의 언어 보조, 연구 보조 또는 자동차 및 산업 보조 시스템 등 적응형 알고리즘과 AI 시스템은 이미 우리 삶의 많은 영역에서 사용되고 있다. 그동안 머신 브레인은 전략 게임과 데이터 분석을 마스터할 뿐만 아니라 오랫동안 불가능하다고 여겨졌던 작업도 수행한다.
문제에서 컴퓨터 코드로
그러나 프로그래밍은 어떠할까? 인공지능 자체가 새로운 알고리즘과 AI 시스템의 제작자가 되는 공상 과학 시나리오는 얼마나 현실적일까? 이전 시스템은 기성 체계 및 규칙을 기반으로 작은 코드 스니펫 또는 간단한 프로그램을 생성할 수 있었다. "그러나 완전한 프로그램을 작성하려면 작업을 이해하고 올바른 솔루션 알고리즘을 찾은 다음 이 알고리즘을 구현하는 코드를 작성해야 한다"고 Google 자회사 Deepmind의 Yujia Li와 그의 동료는 설명한다.
해결해야 할 과제가 컴퓨터와 호환되는 형식이 아니라 자연어로 된 복잡한 텍스트로 제시되면 더욱 어려워진다. 예를 들어, 이러한 작업은 프로그래밍 대회에서 설정되며 인간 프로그래머에 의해 최상의 방법으로 컴퓨터 코드로 변환되어야 한다. 그러나 지금까지 신경망 기반 AI 시스템은 이러한 복잡한 프로그래밍 작업에 압도당했다.
AI가 인간 프로그래머를 이기다
DeepMind 팀은 이러한 코딩 대회에서 경쟁할 수 있을 만큼 충분히 잘 프로그램하는 AI 시스템을 처음으로 개발했다. "우리가 아는 한, 어떤 컴퓨터 시스템도 프로그래밍 경쟁에서 그런 수준에 도달한 적이 없다"고 Li와 그의 팀은 말했다. 그들의 시스템인 AlphaCode는 Codeforces 플랫폼에서 경쟁 작업을 해결할 때 54.3%를 달성했다. AlphaCode는 모든 인간 참가자의 절반보다 더 잘 했다.
놀라운 것은 AlphaCode가 이전에 배운 프로그래밍 규칙이나 훈련을 통해서는 이것을 할 수 없다는 것이다. 신경망 기반 AI 시스템은 오래된 경쟁 과제와 솔루션으로 훈련을 통해서만 기능을 개발했다. 일반적으로 이들은 프로그래밍 플랫폼에 의해 게시되므로 인간 참여자가 준비할 수 있도록 액세스할 수도 있다. 원칙적으로 AI 시스템은 이러한 데이터 세트만을 사용하여 프로그래밍하는 방법을 스스로 학습했다.
GitHub 스크립트 및 경쟁 작업을 사용한 교육
훈련을 위해 AlphaCode는 먼저 Github 플랫폼에서 다양한 프로그래밍 언어로 된 715GB의 코드 섹션을 분석했다. 이 구조화되지 않은 스크립트 모음에는 문제 설명이 포함되어 있지 않으며 일반적인 구조 및 구문 요소를 파악하는 데 사용되었다. 그런 다음 AlphaCode의 Transformer 모듈의 인코더 부분은 각 스크립트의 절반을 수신하고 디코더 부분은 나머지 절반을 올바르게 채우는 방법을 배워야 했다.
두 번째 훈련 단계는 마무리 작업을 제공했다. 사전 훈련된 AI 시스템은 Codeforces 플랫폼에서 올바른 솔루션과 잘못된 솔루션을 포함하여 약 1만3500개의 이전 경쟁 작업을 받았다. 이 데이터를 평가함으로써 AlphaCode는 올바른 코드 솔루션과 잘못된 코드 솔루션을 구별하는 기능을 "학습"했다.
인간 경쟁자에 대한 AlphaCode
이 학습 단계를 완료한 후 평가, 즉 경쟁이 이어졌다. 이를 위해 AlphaCode는 2021년 12월 Codeforces 플랫폼에서 5,000명 이상의 참가자가 참여하는 10개 대회의 일부로 설정된 작업을 받았다. AI 시스템은 먼저 이러한 각 작업에 대해 수백만 개의 잠재적인 코드 솔루션을 생성했다. 그런 다음 이러한 솔루션의 작동 가능성을 확인하고 잠재적으로 적합한 10개의 후보를 선택하는 하위 모듈을 사용했다.
그런 다음 Li의 팀은 이러한 코드 솔루션을 Codeforces 플랫폼에 업로드하여 평가했다. 이러한 값을 기반으로 연구원들은 참가자 순위에서 AlphaCode가 어디에 도달했을지 결정했다. 결과: AlphaCode의 코드 솔루션은 인간 프로그래머의 54.3%보다 우수했다. Li와 그의 동료들은 "이 성능은 최대 1년의 교육을 받은 초보 프로그래머의 성능과 거의 동일하다"고 설명했다. 인간 참가자와 마찬가지로 AlphaCode는 어려운 작업보다 더 자주 쉬운 작업을 올바르게 해결했다.
"뛰어난 잠재력“
인공지능이 무료 프로그래밍 대회에서 인간 프로그래머를 따라잡은 것은 이번이 처음이다. 심지어 현재 "과학" 문제의 표지에 AlphaCode가 등장했다. DeepMind 팀은 AI 시스템을 미래 프로그래밍 기계 두뇌를 위한 유망한 접근 방식으로 보고 있다.
이 연구에 참여하지 않은 피츠버그 소재 카네기 멜론 대학의 AI 연구원 Zico Kolter도 비슷한 견해를 가지고 있다. 프로그래밍은 성과에 도전한다”고 덧붙였다. 그는 AlphaCode를 규칙을 몰라도 코딩을 배울 수 있는 모델의 첫 번째 예로 보고 있다.
그러나 절차는 여전히 매우 복잡합니다. AlphaCode는 교육 및 평가를 위해 175MWh(메가와트시)의 에너지와 초당 연속 페타플롭으로 2,149일에 해당하는 컴퓨팅 성능이 필요했다. "따라서 코드 생성 시스템에 대한 우리의 작업에는 여전히 개선의 여지가 있다"고 Li와 그의 팀은 인정했다.
(Science, 2022; doi:10.1126/science.abq1158)
[더사이언스플러스=문광주 기자]
[ⓒ the SCIENCE plus. 무단전재-재배포 금지]