ELF 오픈고

 


1. 개요
2. DarkForest 시절
3. ELF OpenGo
4. 바깥 고리


1. 개요


페이스북에서 만들어 공개한 오픈 소스 바둑 인공지능.

2. DarkForest 시절


GitHub

2016년 개발 중임을 공식화하였다. DarkForest에 관한 자세한 사항은 2015년 11월에 arXiv에 올라온 논문을 참고할 것.
이름의 유래는 중국 작가 류츠신의 소설 암흑의 숲(The Dark Forest). 삼체 시리즈의 2부에 해당하는 작품이다.
페이스북의 발표로는 당시의 크레이지스톤이나 과 비슷한 기력이었다고 한다. 2016년 3월에 제9회 UEC컵 컴퓨터 바둑대회에 출전하였는데 에게 밀려 준우승을 거두었다. 딥러닝 시스템은 2016년 개발버전에서는 채택하지는 않았고 추후 적용 예정이라고 밝혔다. 이 대회에서 고바야시 고이치 九단과 3점 접바둑으로 특별 대국을 한 판 하였는데, 다크포레스트가 흑번을 쥐고 불계패하였다. 이 대회 이후 2018년까지 아무런 소식이 없으면서 개발이 중단된 것으로 추정되었다. 다크포레스트 개발 공개와 거의 비슷한 시기에 구글에서 알파고를 공개하면서 완전히 묻히게 된 것도 한몫했다.

3. ELF OpenGo


GitHub
엘프고 v2의 LZ 엔진용 변환 가중치 파일(다운로드 주의)
페이스북이 개발하던 바둑 인공지능은 2018년 5월 2일에 딥러닝을 적용한 ELF OpenGo로 공개되었다. 여기에서 ELF는 페이스북이 자체 딥러닝 프레임워크인 PyTorch를 기반으로 만든 강화학습 플랫폼을 말한다. 학습 프로그램의 소스 코드와 이 프로그램을 통해 얻어진 네트워크 모델(이하 가중치 파일)을 공개하였다.[1] 한국에서는 주로 '''엘프고'''로 불리고 있다.
엘프고는 알파제로의 재구현을 목적으로 하는 프로젝트이며,[2] 이에 따라 알파제로와 같은 '''ResNet''', 20블록[3]의 구성을 가진다. 자가대국을 바탕으로 가중치 파일을 발전시켜나가는 강화학습을 하기 때문에 바둑의 규칙[4]만 입력해 주고 기보 데이터는 입력해주지 않았다.[5] 많은 학습을 거친 뒤 공개된 엘프고 가중치 파일은 릴라 제로의 개발자에 의해 '''릴라 제로 엔진'''[6] 위에서 구동이 되게끔 적절히 변환되었는데, 이것이 2018년과 2019년에 걸쳐 일반 사용자들에게 널리 이용되었던 '''변환 가중치 파일'''이다. 이 변환 과정은 꽤 단순한데, 이는 엘프고와 릴라 제로 둘 다 알파고의 논문을 바탕으로 한 재구현 프로젝트로서 프로그램의 내부구조가 비슷하기 때문이다.
페이스북이 엘프고를 공개하기 전부터 시작한 테스트에 의하면, 릴라 제로[7]를 상대로 980승 18패, 네 명[8]의 한국 프로기사들과 대국을 벌여 총 20승 0패의 성적을 거두었다.[9] 프로기사와의 대국에서는 엘프고를 80,000 visits으로 설정하고, 프로기사에게는 무제한의 시간을 주었다.[10]
테스트 대국이 가져다 준 충격 때문이었는지, 공개된 후부터 적어도 2018년 말까지 엘프고는 한국기원 프로 바둑기사들이 인공지능을 활용할 때 주로 쓰인 인공지능이었다. 중국 기사들에게만 공개되는 절예 최신판[11]을 활용하여 바둑을 연구하는 중국 국가대표팀에 대항할 수 있도록 당시 한국 기사들이 경쟁력을 갖추는 데에 엘프고의 존재가 상당한 도움이 되었다. 2019년 상반기에는 릴라 제로가 더욱 더 강해지고 미니고가 새로운 강자로 떠오르면서[12] 다양한 오픈 소스 인공지능을 참고하는 쪽으로 활용 방향이 점차 바뀌었고,[13] 2020년 상반기에 이르러서는 카타고가 이러한 역할을 차지하게 되었다.
처음 나온 지 약 3개월 만인 7월 31일에 새로운 버전이 공개되었다. 새로운 버전(v1)은 이전 버전(v0)과의 대국에서 약 64.6%[14] 승률을 보여 더욱 강해졌다는 것이 확인되었다. 테스트 대국 결과
v1 기준으로, 엘프고는 굉장히 독특한 형세판단을 지닌 기사다. 덤이 7.5집임에도 불구하고 흑이 유리[15]하게 시작한다고 보는 것은 엘프고의 특징이었다.[16] 실제로 엘프고가 흑을 쥘 경우 흑3으로 상대가 백2로 화점에 두어 점한 귀의 3·3을 파는 등, 흑의 선수를 이용하여 특이하게 작전을 구사한다. 또, 엘프고가 분석한 승률은 릴라 제로의 분석보다 훨씬 극단적이다. 엘프고의 분석 상 한 판의 바둑에서 흑백 중 어느 한 쪽의 승률이 최초로 90%대에 진입하게 되는 순간을 릴라 제로에게도 분석시켜 보면 대부분의 경우 아직 70%대나 80%대의 승률인 것으로 나올 정도로, 둘이 내놓는 승률은 정도의 차이가 심하다.[17] 이와 같은 승률 판단의 정밀함은 비슷비슷해 보이는 수들 중에서 어느 것이 더 좋은 수인지를 날카롭게 가려내어 대국 초반에서부터 차근차근 우위를 점해나가는 데 중요한 능력이지만, 엘프고의 후보수가 아닌 수가 두어졌을 때 그것에 대한 승률이 지나치게 평가절하되는 안 좋은 특성이 심해지는 원인이 되기도 한다.[18] 때문에 엘프고가 내놓는 승률은 별로 믿을 만하지 않다는 의견들도 있었다.[19]
한국 시간 기준 2019년 2월 13일에 논문과 함께 엘프고 v2가 공개되었다. 블록의 수는 20으로 기존과 동일하나, 필터의 수는 224에서 256으로 늘어났다.[20][21] 논문에서는 v2의 기력을 '엘프고의 프로토타입 모델(v0)에 비해 150 ELO 정도 더 강하다'라고 밝혔으므로, v1보다는 아주 약간 더 강한 버전[22]인 셈이다. 또한 같은 날에, 엘프고를 이용해서 과거 기보 약 87,000장을 분석하여 16세기 후반부터 2018년까지의 시대별 바둑 수준을 추정한 결과도 공개하였다. 링크1링크2 참고. 특이사항으로는 대국의 첫 60수에 두어진 수들과 엘프고의 수의 일치율이 인공지능 시대에 해당하는 2년(2017-2018) 동안에 약 4%p나 상승했다는 점[23]이 있다.
엘프고 v2가 공개된 직후를 기준으로는 엘프고가 절예보다는 약한 것으로 추측되었지만 오픈 소스 바둑 인공지능들 중에서는 최강의 기력을 가진 걸로 여겨졌다. 릴라 제로가 엘프고가 공개한 자가대국 기보를 이용하여 지도학습을 수행한 바가 있기 때문에, 릴라 제로 기력의 일부는 엘프고에게 빚을 진 부분이다. 사실 엘프고 자체가 기력적으로는 퇴물이 된 현 시점에서는 이런 식으로 다른 AI들에게 영향을 끼친 부분들이야말로 엘프고의 존재가치라 평할 수 있을 것이다.
다른 제로 계열과 마찬가지로, 사활 문제와 문제에서 착각을 일으킨다는 문제점이 있다. 엘프고가 여기에 걸려들면 강한 기력이 무색하게 맥없이 무너지는 장면이 연출되기도 한다. v2에 와서도 고쳐지지 않았다. 계산량을 늘려줄수록 점점 나아지기는 하는데, 80,000 visits까지 왕창 늘려주어도 결국 해결이 안 되는 장면들도 존재한다.[24] 20블록의 크기 제한 내에서 결국 이 문제점을 많이 해결할 수 있을지를 정확하게 알기는 어렵겠으나, 알파고 제로 40블록마저도 이런 오류[25]를 일으켰던 걸 보면 가능성은 매우 낮다.
논문에서 엘프고 v2를 지칭하는 말로 '''final model'''이라는 표현을 사용했다. 이것으로 엘프고 프로젝트가 끝났다는 것인지 아니면 ResNet 20블록 형태를 끝내고 40블록이나 다른 방식을 시도한다는 것인지 의미가 당시로서는 확실치 않았는데, 엘프고와 관련된 소식이 없는 채로 시간이 계속 흐르면서 전자일 가능성이 높아졌다. v2가 공개된 후로도 시간이 1년 이상 흐른 지금에는 릴라 제로에게도 기력으로 밀리는데다가 카타고가 대히트를 치게 되면서 결국 오픈 소스 인공지능들 사이에서 밀려나게 되었다. 그래도 아직까지는 각종 프로바둑 중계에서 승률 그래프로 등장하고 있기는 하다.

4. 바깥 고리


엘프고를 '''간단히''' 설치하고 싶다면, 세븐틴 님의 '''인공지능 바둑 통합설치팩'''을 이용할 것. 블로그 바로가기 유튜브 채널 바로가기

[1] 추후에는 엘프고 v2의 학습과정 중에 얻어진 자가대국 기보들과 중간 버전 모델들도 공개하였다. 링크(다운로드 주의)[2] 이는 페이스북이 공개한 이 논문의 제목에 "Open Reimplementation of AlphaZero"라는 표현이 쓰인 것으로부터 분명히 알 수 있다. 참고로 또 다른 오픈 소스 바둑 인공지능인 미니고도 이와 비슷한 표현을 사용한 바 있다. 릴라 제로는 GitHub을 통해 스스로를 "For all intents and purposes, it is an open source AlphaGo Zero."라고 소개하였는데, 알파고 제로의 재현과 알파제로의 재현 사이에는 약간의 방식 차이가 있다.[3] 단, 둘 다 20블록이지만 20이 가리키는 범위가 달라서 구성에 약간의 차이가 있다. 알파제로는 convolutional block 1개 + residual block 19개, 엘프고는 convolutional block 1개 + residual block 20개.[4] 중국식 룰 기반. 따라서 덤도 7.5집.[5] 참고로 외부 데이터를 이용하여 학습시키는 것은 '''지도학습'''이라고 한다. 지도학습은 자가대국을 시행하지 않아도 되므로 강화학습보다 진행이 훨씬 빠르다. 제로 계열의 큰 의의 중 하나는 데이터의 입력이 없이도 뛰어난 퍼포먼스를 얻어낸다는 데에 있다.[6] LZ 엔진, 혹은 더 줄여서 그냥 LZ라고 표현하기도 한다. 참고로 LZ는 Leela Zero의 이니셜이라 릴라 제로 가중치 파일을 의미할 때도 있고 엔진을 의미할 때도 있는 중의적 표현이다.[7] 이 실험에 쓰인 릴라 제로 가중치 파일은 2018년 4월 25일에 얻어졌던 128번(15블록)이다. 릴라 제로는 117번부터 157번까지가 15블록이므로, 15블록 중에서도 약한 편에 드는 가중치이다. 릴라 제로가 20블록을 거쳐 40블록이 되고 가중치 번호가 300번대에 들어선 지금은 오히려 릴라 제로가 엘프고(v2)를 동일 시간 기준으로도 더 많이 이기게 되었다.[8] 김지석 九단, 신진서 九단, 박영훈 九단, 최철한 九단 (테스트 당시의 랭킹 순) 각자 5판씩. 참고로 이 중에는 흉내바둑이 시도된 판도 있었다.[9] 엘프고가 처음 공개될 당시에는 릴라 제로에게 198승 2패, 프로기사에게 14승 0패를 한 것으로 소개됐었는데, 공개 이후로도 테스트가 이어서 진행되었다.[10] 대국시간은 평균 3-4시간, 길어질 땐 6시간까지 걸렸다고 한다. 당시 하드웨어는 80,000 visits를 계산하는 데 50초 가량 걸리는 수준으로 주어졌고 상대방이 둘 차례에는 계산을 중단하는 noponder 설정이 포함되었다고 하니, 총 대국시간 중에 프로기사 측이 사용한 시간이 어느 정도일지 가늠할 때 참고할 것.[11] 한큐바둑에서 프로 기사들을 접바둑으로 털고 있는 절예 계정은 최신버전이 아니라는 이야기다.[12] 중국이 거대자본을 이용하여 자기들끼리만 쓸 물건을 개발하는 상황에서, 오픈 소스 진영에서 좋은 물건이 꾸준히 나와준다는 것은 한국 입장에서 매우 고마운 일이다. 바둑계 입장 뿐만 아니라 기술적인 면에서도 훨씬 많은 사람에게 더 유익함은 물론이다.[13] 프로들의 AI 활용 현황에 관해 추가로 참고할만한 기사 링크[14] 1,600 visits 설정에서 측정된 승률. 410 경기로 측정한 승률이니 2.4% 정도의 표준편차를 갖는 추정치임을 감안하여야 한다.[15] 승률 51.x%.[16] 이는 v2에서는 47.x% 대 52.x%로 백이 더 유리하게 시작한다고 분석되는 것으로 바뀐다. 7.5집은 백에게 유리한 덤이라는 게 중론이므로, 좀 이상했던 점이 바로잡힌 부분이라 할 수 있다. 인공지능 중에서 드물었기는 하지만 엘프고 v1 혼자서만 그러는 것은 아니었다. 릴라 마스터 GXAA도 흑이 약간 유리(50.x%)하게 시작하는 걸로 분석한다.[17] 시간이 지나며 릴라 제로의 승률도 많이 민감해지면서, 둘 간에 유의미한 차이가 안 나거나 오히려 릴라 제로가 더 높은 승률을 보여주는 경우들도 제법 생겨났다. 그래도 바둑TV 중계에서 다른 인공지능들에 비해 엘프고가 혼자서 튀는 그래프를 보여주는 장면이 많다.[18] Sabaki 같은 프로그램으로 서로 다른 인공지능끼리 대국시킬 경우, 쌍방이 서로 자기의 형세가 더 유리하다고 분석하는 상황을 심심찮게 볼 수 있다. 상대가 자기의 계산과는 다른 수를 내놓을 때마다 '자기가 유리해졌다'는 분석이 쌓여가기 때문으로, 어찌 보면 매우 자연스러운 현상.[19] 초반에 포석이 한 수 한 수 진행될 때마다 엘프고가 보여주는 승률의 변동이 알파고 마스터의 티칭 툴에서에 비해 훨씬 크다는 점도 이러한 평가에 한몫했다.[20] 알파고 제로, 알파제로도 256필터였다.[21] playout 당 필요한 연산량은 블록 수에는 정비례하고, 필터 수에는 대략 제곱에 비례한다.[22] 1,600 visits 설정일 때 v2가 v1에 대해 약 55%의 승률을 가지는 것으로 추정됨. 또한 논문에 의하면 엘프고끼리 대국을 할 때 한 쪽의 visits 수를 두 배로 주면 많이 받은 쪽이 200 ELO 정도 더 강하다고 하니, 엘프고가 다른 visits 수 설정 하에서 어느 정도 기력을 가질 지 가늠할 때 참고할 것.[23] 단, 2018년의 상승폭을 순수히 실력 상승으로 해석하기는 어려운 것이, 프로기사들이 엘프고를 활용하여 공부하기 시작하면서 당연히 엘프고와의 수 일치율이 올라갔을 수밖에 없다. 조금 덜 직접적이기는 하지만 비슷한 맥락으로, 2017년의 상승폭에도 알파고 마스터의 자가대국 기보 50개가 공개되어 프로기사들이 이를 분석해볼 수 있었던 것의 영향이 섞여있을 수 있다.[24] 이는 같은 제로 계열에 해당하는 릴라 제로미니고도 마찬가지다. 페이스북이 v2를 공개하면서 게시한 에서는 왜 아직도 축과 같은 개념이 인공지능보다 인간이 훨씬 빨리 그리고 더 잘 이해할 수 있는 부분으로 남아있는가에 대해서 우리가 더 잘 알게 되기를 희망한다고 말했다.[25] 해당 장면은 2017년 10월에 공개된 알파고 제로 40블록의 자가대국 기보 20개 중에서 제17국, 백270수를 둘 차례에 해당된다. 대국자의 ELO 레이팅이 4975로 표시되므로, 40블록의 최종 형태에 의한 대국은 아니지만 학습과정 중에서 꽤 후반부에 나온 대국임을 알 수 있다. 5185점인 최종 버전도 똑같은 결정을 내릴지 궁금해지는 장면.