릴라(바둑 프로그램)

From Hidden Wiki
Jump to navigation Jump to search
* 상위문서: 바둑/인공지능

[include(틀:주요 바둑 인공지능)]

[홈페이지] [Zero 홈페이지]

[목차]

파일:leela_small3.png

개요

벨기에의 지안 카를로 파스쿠토(Gian-Carlo Pascutto)가 개발한 바둑 인공지능. 프리웨어라서 무료로 다운받아 이용할 수 있다는 것이 가장 큰 특징이다.

한큐바둑타이젬바둑 모두 Leela라는 아이디, Leela(P)[* (P)는 프로 바둑기사라는 뜻이다. 타이젬바둑에서 시작해서 2017년 현재는 프로 바둑기사를 나타내는 방법으로 모든 인터넷 바둑 프로그램들이 통일됐다.] 닉네임으로 활동 중이다. 한국기원에서는 릴라한테 프로 바둑기사 면장을 준 적이 없는데, 일본기원이나 중국기원에서 프로 면장을 받은 것으로 보인다.

[Go Service)]에서는 아이디 [[1]], [[2]], [[3]] 등으로 활동 중이다. 다면기 등을 진행 중이고, 수순 예측까지 보여준다.

상세

원래 지안 카를로 파스쿠토는 체스 인공지능을 만들던 프로그래머이다.

기존의 다른 인공지능 바둑 프로그램들은 유료 상용 프로그램 또는 알파고절예같이 공개되지 않은 프로그램이다. 그러나 릴라는 아예 무료로 풀어버린 것이 가장 큰 특징.

공개된 최신버전은 0.11.0이고, 이 이후로는 개발자가 후술할 릴라 제로 프로젝트에만 집중하는 듯. 셋업 파일도 24.7MB에 불과하여 매우 가볍다. 바둑 갤러리에서는 의 불법 복제 크랙판을 가지고 형세판단(이른바 젠세판단)을 했으나, 2017년 하반기인 지금에는 아예 저작권 문제가 없는 릴라를 가지고 릴세판단(...)을 한다.

2017년에 공개된 0.10.0버전만 해도 릴라도 이미 프로 바둑기사와 대등하게 싸울 수 있는 레벨이며, 0.11.0 버전은 절예, 딥젠고, CGI go intelligence같이 프로 바둑기사를 완전히 제압할 수는 없지만 그래도 상당히 우세한 싸움을 할 수 있는 레벨까지 성장했다. 개발 1년만에 이 정도까지 온 것.

[youtube(sbo463AoCbM)] 절예 vs 릴라

릴라 제로

구글 딥마인드의 [[4]]을 바탕으로 하여 알파고 제로를 재구현하기 위한 프로젝트. 스스로를 "오픈 소스 알파고 제로"로 소개하고 있다.[* 이런 방식의 바둑 인공지능은 제로 계열이라고도 부른다.] 따라서 ResNet 구조를 가지며, 바둑의 규칙[* 규칙은 중국식으로 입력되며, 덤 7.5집의 바둑을 둔다. 제로 계열 인공지능이 대국 종반에 자기 집을 막 메우는 수를 두더라도 너무 놀라지 말 것. 많은 경우는 중국식에서 딱히 손해가 아니니까 그러는 것이다.] 이외의 지식은 일절 입력하지 않고 강화학습을 진행한다. 자가대국을 MCTS 1,600 simulations(즉, 1,600 visits[* 그런데 알파제로의 논문에서는 숫자만 800으로 바뀌고 방식을 묘사하는 데 쓰인 표현은 똑같았는데, 미니고에서는 자가대국 설정을 800 playouts로 택하고 있는 걸로 보아 이것을 visits가 아니라 playouts로 해석한 듯하다. 페이스북의 엘프고 논문에서는 rollouts(...)라는 표현을 쓴다.])의 조건에서 시행한다는 점, 어느 정도 학습이 진행된 가중치로 시험대국 400판을 치러서 기존 버전을 상대로 55% 이상의 승률을 거둘 때 새로운 best-network가 된다는 점 등은 논문을 통해 공개된 알파고 제로의 진행방식을 충실히 따른 것이다.[* 여기서 한 가지 유의해야 될 점은, 이 부분이 알파제로에 가서는 또 달라졌다는 것이다. 알파제로의 진행방식은 미니고가 차용하고 있다. 때문에 미니고는 알파제로의 학습과정에서처럼, 가중치가 더 나아졌는가를 시험하기 위한 검정대국은 시행하지 않고 자가대국이 일정 횟수가 차기만 하면 새 가중치 번호를 붙인다. 그래서 미니고의 기력을 나타내는 그래프는 갈수록 올라가기만 하는 게 아니라 들쭉날쭉한 것이다.] 단, 알파고 제로 40블록에서의 40은 convolutional block 1개와 residual block 39개를 합한 것을 가리키는 수치였지만 릴라 제로 40블록에서의 40은 residual block의 개수만을 가리키는 것이기 때문에, 실제 구성 상으로는 릴라 제로의 블록이 1개 더 많다는 차이가 있다.[* 이 때문에 릴라 제로를 40블록(과거 버전의 경우 20블록, 15블록 등)으로 표기해오던 페이지들에서는 블록의 수까지 알파고 제로와 똑같이 구성한 미니고의 크기를 19블록, 39블록 등으로 표기하게 된다.[[5]] 참고로, 이와 같은 이유로 20블록인 엘프고도 알파고 제로 20블록보다 한 블록이 더 많다.]

[[6]]을 통해 소스 코드를 공개하고 있다.[* 그러므로 누구든 본인에게 좋은 아이디어가 있다고 생각하면 소스 코드에 수정을 가하여 얼마든지 적용해볼 수 있다. 그러나 프로그램 원본이 수많은 뛰어난 사람들이 시행착오를 겪어가며 실험한 것을 바탕으로 결정된 방식임을 고려하면, 개선을 실제로 해내는 것은 절대로 쉬운 일이 아님을 알 수 있을 것이다.] 알파고 제로가 자가대국을 통한 강화학습 과정에 엄청난 계산 자원을 요구하기 때문에, 릴라 제로는 분산 컴퓨팅을 사용하고 있다. 프로젝트를 시작하면서 개발자는 GTX 1080 Ti 정도의 평범한(?) 컴퓨터로는 알파고 제로의 학습과정을 다 재현하는 데에 1,700년이 걸린다고 말하며 기여해줄 것을 호소하였다. 누구든 일정 성능 이상의 그래픽 카드가 있으면 []에서 AutoGTP를 다운받아서 실행하여 프로젝트에 기여할 수 있다. AutoGTP를 통해 기부되는 연산력은 자가대국을 통한 강화학습과, 학습으로 얻어진 새 가중치의 검정 과정에 쓰인다.

제로 계열 오픈 소스 바둑 인공지능의 활용에 있어서, 가중치 파일은 매우 다양한 종류가 이용되고 있으나[* 엘프고, 미니고 외에도 또 대표적으로 많이 이용되는 것으로는, 기보를 입력하여 진행하는 지도학습을 통해 좀 더 인간적인 기풍을 내도록 시도한 15블록 가중치인 [마스터 GX]가 있다. 릴라 마스터 GX를 학습시킬 때 입력된 기보들 중에는 인간끼리 둔 바둑의 기보도 있고 릴라 제로의 자가대국 기보도 있는데, 이 두 종류의 기보 개수의 비율을 바꿔가면서 다양한 버전을 냈다. 아마도 이것이(이 중에서도 70번대가) 2019년 3월 현재 15블록의 최강자.] 엔진만큼은 릴라 제로의 것이 사용되는 경우가 아주 많다. 공개된 엘프고, 미니고의 가중치 파일들도 릴라 제로 엔진에서 구동하게끔 변환을 거친 다음 leelaz.exe를 이용하여 돌리게 된다. [[7]]에서 활동 중인 [[8]]와 [[9]]도 프로필에 LZ 엔진으로 돌린다고 명시되어 있다. 릴라 제로가 엔진까지 공개해 준 것이 제로 계열 바둑 인공지능이 널리 활용되는 데에 큰 역할을 한다는 것을 알 수 있는 대목이다. 현재 개발진이 릴라 제로 엔진이 NVIDIA 제품군 성능을 최적으로 이용할 수 있도록 만드는 [업을 준비 중]이라고 하니, 2019년에도 큰 성능 향상을 기대할 수 있을 듯.

릴라 제로 가중치 파일[* 네트워크라고 지칭될 때도 있다.]의 학습은 2017년 11월에 랜덤한 착수를 하는 버전 0에서 출발하였다. 학습을 통해 새로운 버전을 내면서 2018년 1월에는 6블록으로, 같은 해 3월에 10블록, 4월에 15블록, 7월에 20블록, 9월에는 40블록으로 크기가 점차 커져 왔고,[* 하나의 가중치가 작은 블록 수로 시작하여 점점 크기가 늘어나면서 발전했다는 점도 알파고 제로와의 차이점이다. Gian-Carlo Pascutto도 처음에는 이것을 40블록으로 진행할 계획이 없었다고 한다. 즉, 프로젝트를 초기 계획보다 오래 진행하게 되면서 사이즈를 늘려나가는 길을 걷게 된 것.][* 15블록의 마지막 버전은 157번, 20블록의 마지막 버전은 173번이다. 참고로 '릴라 제로 15블록'이라는 표현은 주로 오리지널 릴라 제로 버전 157을 의미하지만, 때로는 버전 157에서 15블록 형태를 유지하면서 여기에 이후 버전(20블록, 40블록)의 오리지널 릴라 제로들이 만든 자가대국 기보로 지도학습을 시켜서 얻은 가중치를 의미하기도 한다. 후자는 [찾을 수 있다.]] 2019년 1월 중에는 버전의 숫자가 200번대에 돌입하게 되었다. 도중에 엘프고의 기보를 이용한 지도학습이 이루어진 시기가 있다. 이 구간에서는 지도학습을 엘프고의 기보와 릴라 제로의 자가대국 기보를 일정 비율로 섞어서 진행시켰다고 한다. 그러므로 릴라 제로가 걸어온 학습과정은 순수한 강화학습은 아니다.

알파고 제로도 40블록보다 더 큰 크기로는 만들어지지 않았으므로, 여기서 사이즈를 더 키우는 시도가 릴라 제로에서 있게 될 지는 알 수 없다. GitHub에서 누군가가 릴라 제로가 40블록보다 더 큰 사이즈로까지 개발되어야 하지 않겠느냐고 묻자, Gian-Carlo Pascutto가 그럴 생각은 별로 없다고 답했다.[* 어떻게 하면 접바둑도 두게 할 수 있을까 같은 다른 문제들에 더 관심이 있다는 듯.] 그리고 알파고 제로 40블록이 40일 간의 학습과정 동안 총 2900만 판을 두었지만 릴라 제로는 아직 그 숫자의 반도 채우지 못한데다가, 그 2900만이라는 숫자마저도 40블록의 잠재력을 끌어내기에 충분한 양인지 의문스럽다는 점에서, 40블록으로서도 가야 할 길은 굉장히 멀다. 이미 기력의 향상을 체감하려면 오랜 시간을 기다려야 되는 구간에 돌입하기도 했고, 현재 추세로도 릴라 제로는 자가대국 100만 판을 치르는 데에 2달이 넘는 시간이 걸리고 있어서 천만 단위의 대국을 소화해야 하는 프로젝트로서는 느린 감이 있다. 블록의 수를 더 늘려버리면 학습 속도가 어지간한 연산력으로는 감당하기 어려울 정도로 느려진다는 듯.

가중치의 버전이 꾸준히 올라가고는 있으나 기력이 정말 강해지고 있는 게 맞는가에 대해 의문을 표하는 사람들이 있는데, [[10]]의 자체 대국 외의 다른 실험 결과들도 봤을 때 정말로 강해지고 있는 것이 맞다. 미니고 프로젝트에서 수행한 [평가]나, 릴라 제로 외의 다른 인공지능들도 한 풀에다 넣어놓고 대국을 시키는 [[11]]를 참고.

대국에서는 고작 수십 visits의 계산만으로도 Leela 0.11.0[* 이 정도만 해도 그래픽 카드가 없는 상황에서는 Zen7과 더불어 훌륭한 대안이다.]을 압도할 정도의 강한 기력을 가졌다. 일류 프로기사의 수준을 넘어섰으며, 이로 인해 2018년 상반기에 이르러 드디어 가정용 컴퓨터로도 인간 최고수를 능가하는 기력의 구현이 가능하게 되었다. 2019년 3월 현재까지 엘프고, 미니고와 더불어 가장 강한 오픈 소스 바둑 인공지능 중 하나다. 현재는 최상위권 프로기사에게 치석 2점을 주고 덤 7.5집을 받는 형태의 접바둑[* 릴라 제로는 기본적으로 덤 7.5집 규칙을 바탕으로 학습된 인공지능이고, 제로 계열에게 형세판단 능력의 큰 손실 없이 조정된 덤을 인식하게 하는 것이 어렵기 때문에 이와 같은 형태로 접바둑을 하게 된다. 원래 2점 바둑에는 백에게 덤이 없으므로, 이것은 정식 2점 접바둑과 정선의 사이에 해당하는 핸디캡이다. 흑의 치석이 3개 이상으로 늘어나면 인공지능이 고장을 일으킨 것 같을 정도로 이상한 수들을 두게 되므로, 제로 계열 인공지능이 그나마 정상적으로 작동을 해주는 유일한 형태의 핸디캡 방식이라 할 수 있다.]으로까지 승부가 가능한 정도.[* 유의해야 할 점은, 릴라 제로는 visits 수 설정에 따라 기력이 많이 변한다는 것이다. 릴라 제로의 놀라운 퍼포먼스에 대한 이야기들 중 일부는 매우 높은 visits 수 설정에서나 가능한 일들일 것이다.]

그러나 사활이 완벽하지 않아 정확한 수순을 못 밟거나 돌의 생사를 착각하는 경우가 있으며, 제로 계열의 고질적인 문제점인 축 버그를 일으키면서 어이없게 판을 망치는 일도 일어난다. 보통 릴라 제로가 여기에 걸려든 경우에는 승률 값이 크게 요동치는 것을 볼 수 있다. 딥마인드에 의하면 알파고 제로도 학습과정의 후반부에 가서는 축 개념을 이해했다고 하므로, 지금도 학습을 진행 중인 릴라 제로 40블록에게도 축 문제가 해결될 희망은 있는 셈이다. ~~한참 먼 얘기지만~~

요즘은 바둑으로 활동하는 유튜버들을 통해서도 많이 만나볼 수 있다. 방송에서 진행자가 인공지능에 도전했다가 털리는 모습을 보여주기도 하고 ~~가끔은 축버그로 이겨버리기도 하고~~ 바둑대회의 중계나 고전 명국의 복기 같은 컨텐츠를 준비하여 해설을 진행하면서 주요 장면을 릴라 제로에게 분석시켜 Lizzie 화면을 통해 보여주는 등의 방식으로 활용된다.

릴라 제로 GitHub의 []에 이런저런 글이 종종 올라와서 나름대로 읽어볼만한 것이 꽤 쌓여있다. 릴라 제로 [[12]]도 있는데 정보가 제법 자주 올라오고, 또 미니고 채널도 입점(?)해 있다. 릴라 제로를 비롯한 바둑 인공지능에 대해 궁금한 점이 많을 때 들어가보면 좋은 곳들.

제로 계열 바둑 인공지능인 릴라 제로, 엘프고, 미니고는 서로 공통점이 많다. 때문에 이들의 문서에서 서로를 많이 언급하므로, 같이 참고해볼 것.

강화학습 기여 방법

압축을 풀면 그 안에 readme.txt 파일이 들어 있다. 여기에 옵션을 적용할 방법이 영문으로 적혀 있다. 일단 기본적으로 릴라 제로를 실행하면 1코어씩 한 게임씩만 진행된다. -g 옵션을 이용하면 모든 CPU의 자원을 효과적으로 사용한다. 가령 4코어 8스레드인 경우, -g 8 이라고 적으면 한 번 켤 때마다 8게임씩 진행 된다. 또 다른 옵션으로는 -k가 있다. -k (폴더 경로)를 적으면 해당 폴더에 기보가 저장된다. 실행하는 방법은 릴라 제로가 있는 폴더에서 메모장을 만들어서 아래 명령어를 입력하고 저장한 후, 파일 확장자를 .txt에서 .bat파일(배치파일)로 바꾼 뒤 실행하면 된다. >@echo off >autogtp -g 숫자 -k 폴더명

도스창이 아닌 바둑판을 눈으로 보면서 참여 할 수 있다. 첫 번째로 [[13]]를 다운받고 설치한다. 두 번째로 최신 버전 [[14]]를 다운받고, 릴라 제로가 설치된 폴더 안에 압축을 풀어 파일을 옮겨넣는다. 마지막으로 실행을 위해 릴라 제로가 있는 폴더에서 메모장을 만든다. 아래 명령어를 입력하고 저장한 후에 파일 확장자를 .txt에서 .bat파일(배치파일)로 바꾼 뒤 실행하면 바둑판이 나타난다. >@echo off >java -jar LeelaWatcher-1.1.0.jar . autogtp.exe

대국 방법

릴라 제로를 이용하고 싶다면 [[15]]에 접속하여 엔진가중치 파일을 다운받는다. 그 후에 [[16]][* Lizzie의 [버전]도 참조.]나 [[17]], [[18]] 등의 GTP를 연동시키면 된다. [기사]에 나온 도식을 참고할 것.

보다 간단히 설치하고 싶다면, 세븐틴 님의 인공지능 바둑 통합설치팩을 이용하면 된다. [바로가기]

릴라 교육 툴

릴라 제로를 이용한 교육 툴도 함께 만들어졌다. 출처는 [[19]]와 [[20]]이니 내용을 참고하고 다운받으면 된다.

함께 보기

[체스 제로]


분류:바둑 인공지능