11월, 2019의 게시물 표시

이제 인공지능과 함께 코딩하세요!

이미지
마이크로소프트의 연례 기술 컨퍼런스 Ignite 2019에서 인공지능 기반의 코딩 지원 기능인 Visual Studio IntelliCode (이하 IntelliCode)의 확장 버전이 공개되었습니다. 지난 4월에 IntelliCode의 초기 버전이 공개되었던 바 있으며, 해당 버전의 경우 코딩 시에 구문 단위로 자동완성 추천을 하는 기능이었습니다. 아래 그림에서와 같이 코딩을 하는 동안 인공지능이 다음에 쓸 구문을 별표로 추천해주는 방식입니다. 인공지능 기반의 추천이 아니더라도, 개발용 프로그램들에는 사용 가능한 구문 혹은 현재 쓰여진 알파벳이 들어간 구문을 추천하는 기능이 이미 있습니다. IntelliCode가 이러한 기존의 자동완성 기능과 차별화되는 점은, 단순히 이름을 매칭하는 것이 아니라 인공지능을 통해 현재 코딩하는 상황에 따라 쓸 확률이 높은 구문을 추천해준다는 것입니다. 여기에서 한 차원 더 나아가 이번 확장 버전에서는 코드 라인 전체 자동완성  기능 및 코드 리팩토링(refactoring)  기능이 추가되었습니다. 하나씩 차례로 살펴보도록 하겠습니다. 먼저 코드 라인 전체 자동완성 기능은 아래 그림에서와 같이 첫 구문만 입력하면 라인 전체를 자동완성하여 추천해주는 방식으로 작동합니다. 해당 기능은 자동 문장생성 인공지능 모델로 유명한 Open AI의 GPT-2를 기반으로 구현하였다고 합니다. GPT-2는 단어 혹은 문장을 입력하면 그 뒤에 올만한 문장들을 자동으로 생성하는 모델입니다. 학습을 위해서는 많은 양의 글을 모아놓은 데이터셋이 필요하며, 학습에 쓰인 글의 스타일대로 문장을 생성하게 됩니다. 즉, 소설을 학습시키면 소설에서 쓰이는 스타일의 문장을 생성하게 되며 기사를 학습시키면 기사에서 쓰이는 스타일의 문장을 생성합니다. IntelliCode 연구개발팀에서는 이러한 특성에 착안하여 오픈소스 공유 플랫폼인 GitHub의 코드를 이용하여 GPT-2 기반의 모델을 학습시켰습니다. 코드를 입력받은...

딥마인드, 알파스타를 통해 스타크래프트2까지 정복하다.

이미지
지난 10월 30일, 저명 국제 학술지 <네이처>에서는 구글 딥마인드의 스타크래프트2 인공지능 '알파스타(AlphaStar)'가 상위 0.2%의 실력에 해당하는 그랜드 마스터 등급을 달성하였다는 내용의 논문을 발표하였습니다. 알파스타는 지난 1월에도 스타크래프트2 프로 선수 2명과의 경기에서 10승 1패의 성적을 거둔 바 있으나, 이 때는 사람이 따라할 수 없는 빠른 분당 행동수(Actions Per Minute, APM)로 경기를 진행하였을 뿐 아니라 인공지능이 입력받는 정보도 사람이 보는 화면과 다르게 더 상세하였습니다. 이번에 발표된 버전의 알파스타는 사람이 보는 화면과 같은 정보를 입력받고 사람도 충분히 가능한 분당 행동수로 게임을 진행하여 그랜드 마스터 등급을 달성하였습니다. 알파스타는 다음 두 가지의 주요 특징을 통해 그랜드 마스터 등급의 성능을 달성할 수 있었습니다. 모방 학습(Imitation Learning) 및 자가 대전(Self-play) 리그 플레이 우선 모방 학습 및 자가 대전에 대한 내용입니다. 딥마인드에서는 실제 사람들의 대전 기록을 이용하여 지도 학습으로 알파스타를 학습시켜서 어느 정도의 실력을 갖추게 한 뒤, 알파스타 에이전트의 자가 대전을 통해 성능을 더욱 향상시켜 나갔습니다. 매 시간 단위마다 알파스타가 취할 수 있는 행동의 수는 10 26 가지에 달한다고 합니다. 이렇게 방대한 경우의 수를 가진 게임에서 효율적으로 알파스타의 성능을 향상시키기 위해 우선 기존의 대전 기록을 통해 빠르게 성능을 높인 다음에 자가 대전을 적용한 것입니다. 위의 그림은 스타크래프트2의 각 리그별 MMR (Match Making Rating) 분포를 나타낸 그림입니다. 우측에 AlphaStar supervised라고 표시되어 있는 부분을 살펴보면 대전 기록을 이용한 지도 학습만으로도 이미 다이아몬드 리그 이상의 성능을 확보하였으며 그 후 자가 대전을 통해 성능을 더욱 높여갔음을 알 수 ...