개발자에게는 나쁜 소식인가요? 이 AI는 코드 작성에 매우 능숙해지고 있습니다
딥마인드(DeepMind)는 자사의 연구가 결국 프로그래머들이 더 효율적으로 코드를 작성하는 데 도움이 될 수 있고, 코딩을 하지 않는 사람들에게도 이 분야를 열어줄 수 있을 것이라고 말한다.
어떤 프로그래밍 언어를 배울지 결정하는 것은 막대한 시간 투자가 필요하기 때문에 오늘날 개발자들에게 큰 질문입니다. 그러나 이 질문은 인공 지능(AI) 모델이 문제의 설명을 이해하고 솔루션을 코딩하여 모든 힘든 작업을 수행하는 미래에는 중복으로 바뀔 수 있습니다.
구글의 인공지능 중심 사업부인 딥마인드(DeepMind)의 연구원들은 자사의 알파코드 시스템이 새로운 프로그래머들이 참가하는 프로그래밍 대회에서 중간 수준의 점수를 받은 코드의 문제에 대한 해결책을 표현할 수 있다고 주장한다. 이러한 경쟁에서는 인간이 자연어로 설명된 문제를 이해한 다음 알고리즘을 효율적으로 코딩해야 합니다.
동료 검토를 거치지 않은 새로운 논문에서 딥마인드(DeepMind) 연구진은 알파코드(AlphaCode)가 5,000명 이상의 참가자와 함께 이전에 개최된 10개의 프로그래밍 대회에서 참가자의 평균 54.3%를 차지한 방법을 자세히 설명합니다. 대회는 Codeforces 코드 경쟁 플랫폼에서 개최되었습니다.
참조: 고용주는 수요가 급증함에 따라 데이터 과학자를 필사적으로 찾고 있습니다.
딥마인드(DeepMind)는 알파코드(AlphaCode)가 인간 개발자를 위한 코드 경연에서 경쟁력 있는 성능을 발휘하는 최초의 AI 코드 생성 시스템이라고 주장합니다. 이 연구는 프로그래머의 생산성을 향상시킬 수 있으며 프로그래머가 아닌 사람들이 코드 작성 방법을 모른 채 솔루션을 표현하는 데 도움이 될 수 있습니다.
따라서 인간 참가자와 AlphaCode는 챌린지나 퍼즐에 대한 설명을 구문 분석하고 이를 해결하기 위한 프로그램을 빠르게 작성해야 했습니다. 이는 간단한 코딩 문제를 해결하기 위해 GitHub 데이터를 사용하여 모델을 학습하는 것보다 더 어렵습니다.
인간과 마찬가지로 AlphaCode는 문제에 대한 여러 단락의 자연어 설명, 배경 설명 세부 사항, 입력 및 출력 측면에서 원하는 솔루션에 대한 설명을 이해해야 했습니다.
이 문제를 해결하기 위해 경쟁업체는 알고리즘을 만든 다음 알고리즘을 효율적으로 구현해야 하며, 이러한 제약 조건을 극복하기 위해 Python보다 C++와 같은 더 빠른 프로그래밍 언어를 선택해야 할 수도 있습니다.
알파코드의 사전 훈련 데이터세트에는 C++, C#, Go, Java, JavaScript/TypeScript, Lua, Python, PHP, Ruby, Rust 및 Scala로 작성된 GitHub 리포지토리에서 가져온 파일의 715GB 코드가 포함되어 있습니다. 팀은 Codeforces와 유사한 데이터 세트에서 스크랩한 경쟁 프로그래밍 문제의 데이터 세트를 사용하여 모델을 미세 조정했습니다.
딥마인드(DeepMind)가 알파코드(AlphaCode)에 제공한 발전은 대규모 트랜스포머 모델을 결합함으로써 이루어졌습니다. 이러한 예로는 OpenAI의 GPT-3 및 Google의 BERT 언어 모델이 있습니다. DeepMind는 트랜스포머 기반 언어 모델을 사용하여 코드를 생성한 다음 평가를 위해 제출된 소수의 "유망한 프로그램" 세트로 출력을 필터링했습니다.
"평가 시점에 우리는 각 문제에 대해 이전 작업보다 훨씬 더 큰 방대한 양의 C++ 및 Python 프로그램을 만듭니다"라고 DeepMind의 AlphaCode 팀은 블로그 게시물에서 설명합니다.
"그런 다음 이러한 솔루션을 필터링하고, 클러스터링하고, 외부 평가를 위해 제출하는 10개의 후보 프로그램으로 순위를 다시 매깁니다. 이 자동화된 시스템은 경쟁업체의 디버깅, 컴파일, 테스트 통과 및 최종 제출 등의 시행착오 프로세스를 대체합니다."
DeepMind는 여기에서 AlphaCode가 주어진 문제에 대한 솔루션을 코딩하는 방법을 보여줍니다.
DeepMind는 달성하려는 목표에 대한 몇 가지 잠재적인 단점을 고려합니다. 예를 들어, 모델은 "오래된 코드의 의도하지 않은 취약점 또는 악의적인 행위자가 훈련 세트에 주입한 의도적인 취약점"을 포함하여 악용 가능한 약점이 있는 코드를 생성할 수 있습니다.
참조: 웹 개발자 또는 CTO, 급여가 가장 빠르게 증가하는 기술 직종은 무엇입니까?
또한 환경 비용이 있습니다. 모델을 훈련하는 데 Google 데이터 센터에서 "수백 페타플롭스 일"이 필요했습니다. 그러나 장기적으로 AI 코드 생성은 "재귀적으로 작성하고 스스로를 개선할 수 있는 시스템으로 이어질 수 있으며, 이는 점점 더 발전된 시스템으로 빠르게 이어질 수 있습니다."
자동화로 인해 개발자의 수요가 감소할 위험이 있지만, DeepMind는 프로그래밍 생산성을 크게 향상시키는 오늘날의 코드 완성 도구의 한계를 지적하며, 아직 최근까지 한 줄 제안으로 제한되고 특정 언어 또는 짧은 코드 스니펫으로 제한되었습니다.
그러나 딥마인드는 자사의 작업이 인간 프로그래머에게 위협이 되는 것은 아니며, 시스템이 인류를 돕기 위해 문제 해결 능력을 개발할 수 있어야 한다고 강조합니다.
딥마인드 연구원들은 "코드 생성에 대한 우리의 탐구는 개선의 여지가 많으며, 프로그래머가 생산성을 향상시키고 현재 코드를 작성하지 않는 사람들에게 이 분야를 열어주는 데 도움이 될 수 있는 훨씬 더 흥미로운 아이디어에 대한 힌트를 제공한다"고 말합니다.