ELF 오픈고 (r20200302판)

문서 조회수 확인중...


파일:baduk_test3.png 주요 바둑 인공지능
[ 펼치기 · 접기 ]
파일:alphagologo.png
파일:Zenith_go.png
파일:제목 없음-1 사본.jpg
파일:crazystone logo.png
파일:fbartlogo.png
파일:leelaicon.png
AlphaGo
Zen
DeepZenGo
Crazystone
ELF OpenGo[1]
Leela
파일:dolbaram-2.jpg
파일:TAL 사본.png
파일:432211_107868716046526_1605810711_n.jpg
파일:fuego.png
파일:handol_logo.jpg
돌바람
절예[2]
CGI
Fuego
한돌
[1] 별도의 로고가 없이 페이스북 로고를 쓴다.
[2] 별도의 로고가 없이 한큐바둑(텐센트) 로고를 쓴다.


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

4. 바깥 고리


엘프고를 간단히 설치하고 싶다면, 세븐틴 님의 인공지능 바둑 통합설치팩을 이용할 것. 블로그 바로가기 유튜브 채널 바로가기
이 곳에서는 엘프고의 각 버전을 1,600 playouts와 3,200 playouts의 두 가지 설정으로 운용하여 기력을 측정하고 있다.[29]

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