토요일, 4월 20, 2024

DeepMind의 최신 AI 프로젝트는 초보자와 같은 프로그래밍 문제를 해결합니다.

Must read

Deungjeong Kyungsoon
Deungjeong Kyungsoon
"경순은 통찰력 있고 사악한 사상가로, 다양한 음악 장르에 깊은 지식을 가지고 있습니다. 힙스터 문화와 자연스럽게 어우러지는 그의 스타일은 독특합니다. 그는 베이컨을 좋아하며, 인터넷 세계에서도 활발한 활동을 보여줍니다. 그의 내성적인 성격은 그의 글에서도 잘 드러납니다."
확대 / AI에게 이 기사의 이미지를 생각해 내라고 요청하면 어떻게 생각할까요? 행렬?

Google의 DeepMind AI 부서는 모든 것을 처리했습니다. 스타 크래프트 나에게 폴딩 단백질. 따라서 창작자들이 의심할 여지 없이 개인적인 관심사인 컴퓨터 프로그래밍에 결국 눈을 돌린 것은 놀라운 일이 아닙니다. Science의 목요일 판에서 회사는 인간 프로그래밍 대회에서 사용되는 일반적인 프로그래밍에 응답하여 코드를 생성하는 시스템을 개발했다고 설명합니다.

미디엄 챌린지에서 AI 시스템은 참가자의 상위 절반에 가까운 점수를 얻을 수 있습니다. 그러나 일반적으로 더 많은 코드가 필요한 문제에 대해 작동하는 프로그램을 생성할 가능성이 적기 때문에 확장에 약간의 어려움이 있었습니다. 그러나 알고리즘이나 프로그래밍 언어에 대한 구조적 정보가 전혀 없이 작동한다는 사실은 조금 놀랍습니다.

도전에 맞서라

컴퓨터 프로그래밍 문제는 매우 간단합니다. 사람들에게 필요한 작업을 수행해야 하는 코드를 완성하고 생성하는 작업이 주어집니다. 새 논문의 예에서 프로그래머는 두 개의 문자열을 받았고 더 큰 문자열을 입력하는 데 필요한 일부 키 입력을 백스페이스로 대체하여 둘 중 더 짧은 문자열을 생성할 수 있는지 여부를 결정하도록 요청했습니다. 그런 다음 제출된 프로그램이 문제에 대한 일반적인 솔루션을 제공하는지 확인하거나 추가 예제를 테스트할 때 실패하는지 확인합니다.

단일 문제를 해결할 수 있는 소프트웨어의 예가 충분히 주어지면 AI 시스템이 성공에 필요한 알고리즘 구조를 추론하는 것이 가능할 것입니다. 그러나 이것은 문제를 해결하기 위한 일반적인 해결책이 아닙니다. 한 범주의 도전에 대해 훈련된 AI는 관련 없는 도전을 해결하라는 요청을 받으면 실패합니다.

더 일반화할 수 있도록 DeepMind 팀은 이를 언어 문제로 취급했습니다. 챌린지에 대한 설명은 어느 정도 알고리즘이 수행해야 하는 작업의 표현인 반면, 코드는 동일한 것을 다른 언어로 표현한 것입니다. 따라서 문제의 AI는 두 부분으로 설계되었습니다. 한 부분은 설명을 받아 내부 표현으로 바꾸고 두 번째 부분은 내부 표현을 사용하여 기능 코드를 생성합니다.

시스템 교육도 2단계 프로세스였습니다. 첫 번째 단계에서 시스템은 GitHub에서 자료의 스냅샷을 처리하기만 하면 되었으며 총 700GB 이상의 코드가 필요했습니다. (요즘에는 썸 드라이브에 넣을 수 있는데 별거 아닌 것 같지만 코드는 원시 텍스트이므로 기가바이트당 많은 줄을 얻게 됩니다.) 이 데이터에는 주석도 포함됩니다. 가까운 코드가 무엇을 하는지 설명하기 위해 자연어를 사용해야 하므로 입력 및 출력 작업 모두에 도움이 됩니다.

시스템이 훈련되면 적응 기간을 거칩니다. DeepMind는 자체 프로그래밍 퀴즈를 설정한 다음 문제 설명, 작업 코드, 실패한 코드 및 이를 확인하는 데 사용되는 테스트 사례와 같은 결과를 시스템에 제공합니다.

유사한 접근 방식이 이전에 시도되었지만 DeepMind는 교육에 더 많은 리소스를 투입할 수 있었다고 보고합니다. 이 논문은 “AlphaCode 성능의 핵심 동인은 모델 샘플의 수를 이전 작업보다 훨씬 더 많이 증가시킨 데서 비롯되었습니다.”라고 말합니다.

Latest article