ELF 오픈고 (r20190312판)

문서 조회수 확인중...

파일: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
파일:32036527.png

돌바람
절예[2]
CGI
Fuego
AQ

[1] 별도의 로고가 없이 페이스북 로고를 쓴다.
[2] 별도의 로고가 없이 한큐바둑(텐센트) 로고를 쓴다.


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


1. 개요


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

2. DarkForest 시절


GitHub

2016년 개발 중임을 공식화하였다. 이름의 유래는 중국 작가 류츠신소설 암흑의 숲(The Dark Forest).[1]
페이스북의 발표로는 크레이지스톤이나 과 비슷한 기력이었다고 한다. 딥러닝 시스템은 2016년 개발버전에서는 채택하지는 않았고 추후 적용 예정이라고. 발표하면서 고바야시 고이치 九단과 특별 대국도 한 번 하였다. 하지만 이 컨벤션 이후 2018년까지 아무런 소식이 없으면서 개발중단된 것으로 추정되었었다. 다크포레스트 개발 공개와 거의 비슷한 시기에 구글에서 알파고를 공개하면서 완전히 묻히게 된 것도 한몫했다.

3. ELF OpenGo


GitHub
엘프고 v2의 LZ 엔진용 변환 가중치 파일 다운로드 링크
페이스북이 개발하던 바둑 인공지능은 2018년 5월 2일에 딥러닝을 적용한 ELF OpenGo로 공개되었다. 여기에서 ELF는 페이스북이 자체 딥러닝 프레임워크인 파이토치를 기반으로 만든 강화학습 플랫폼을 말한다. 학습된 모델(이하 가중치 파일), 그리고 학습 프로그램의 소스 코드, 이 둘 모두를 공개하였다. 한국에서는 주로 엘프고로 불리고 있다.
엘프고는 릴라 제로와 마찬가지로 오픈 소스로 공개[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]을 적극 활용하여 집단연구를 체계적으로 진행하는 중국 국가대표팀에 대항하여 한국 기사들이 국제무대 경쟁력을 갖추는 데에 상당한 도움을 주었다. 릴라 제로가 더욱 더 강해지고 미니고가 새로운 강자로 떠오른 현재[14]에는 상황이 달라졌을지도 모를 일이니, 활용 현황에 대해 정확히 아시는 분이 있다면 추가 바람.
v1 기준으로, 엘프고는 굉장히 독특한 형세판단을 지닌 기사다. 덤이 7.5집임에도 불구하고 흑이 유리[15]하게 시작한다고 보는 것은 엘프고만의 특징이었다.[16] 실제로 엘프고가 흑을 쥘 경우 흑3으로 상대가 백2로 화점에 두어 점한 귀의 3·3을 파는 등, 흑의 선수를 이용하여 특이하게 작전을 구사한다. 또, 엘프고가 분석한 승률은 릴라 제로의 분석보다 훨씬 극단적이다. 엘프고의 분석 상 한 판의 바둑에서 흑백 중 어느 한 쪽의 승률이 최초로 90%대에 진입하게 되는 순간을 릴라 제로에게도 분석시켜 보면 십중팔구 아직 60%대나 70%대의 승률인 것으로 나올 정도로, 둘이 내놓는 승률은 정도의 차이가 심하다. 이와 같은 승률 판단의 정밀함은 비슷비슷해 보이는 수들 중에서 어느 것이 더 좋은 수인지를 날카롭게 가려내어 대국 초반에서부터 차근차근 우위를 점해나가는 데 중요한 능력이지만, 엘프고의 후보수가 아닌 수가 두어졌을 때 그것에 대한 승률이 지나치게 평가절하되는 안 좋은 특성이 심해지는 원인이 되기도 한다.[17] 때문에 엘프고의 승률은 정밀할지는 몰라도 믿을 만하게 정밀한 것은 아닌 것 같다는 의견도 많았다.[18]
한국 시간 기준 2019년 2월 13일에 논문과 함께 엘프고 v2가 공개되었다. 블록의 수는 20으로 기존과 동일한데, 필터의 수가 224에서 256으로 늘어났다. 논문에서는 v2의 기력을 '엘프고의 프로토타입 모델(v0)에 비해 150 ELO 정도 더 강하다'라고 밝혔으므로, v1보다는 아주 약간 더 강한 버전[19]인 셈이다. 또한 같은 날에, 엘프고를 이용해서 기보 약 87,000장을 분석하여 16세기 후반부터 현재까지의 시대별 바둑 수준 발전상을 추정해 본 결과도 공개하였다. 링크1링크2 참고. 특이사항으로는 대국의 첫 60수에 대한 수 일치율이 인공지능 시대에 해당하는 2년(2017-2018) 동안에 약 4%p나 상승했다는 점[20]이 있다.
구글 딥마인드가 낸 알파제로에 관한 논문에 나온 알파제로의 ELO 레이팅 그래프를 보면, ResNet 구조의 20블록 AI[21]알파고 마스터의 수준[22]을 넘는 것이 충분히 가능한 일인 듯하다. 엘프고 v2에서는 페이스북의 v0에서부터 이어진 개발 경험, 그리고 막대한 계산력을 동원한 자가대국 2000만 판의 강화학습을 통해 20블록이 가진 잠재력을 충분히 이끌어냈을 가능성이 높다. 따라서 추측의 영역이기는 하지만, 엘프고가 알파고 마스터의 수준에는 이미 도달했을 가능성이 높다. 하지만 마스터는 반상에다가 축 버그를 대놓고 터뜨리지는 않지
엘프고 v2가 공개된 직후인 현재, 엘프고는 절예의 최신형보다는 약간 약한 것으로 추측되지만, 오픈 소스 인공지능 바둑 중에서는 최강의 기력을 보여주고 있다. 1,600 visits 설정 하에서 릴라 제로와 맞붙을 경우 엘프고의 승률이 30%대로 내려가기는 하는데, 이는 엘프고가 20블록이고 릴라 제로는 40블록이므로 visits 수를 똑같게 설정하는 것이 릴라 제로에게 훨씬 유리한 규칙이기 때문에 그렇고, 시간 제한을 동일하게 주고 두게 하면 아직까지는 승률이 비슷비슷하게 나온다. 미니고는 v15를 거치면서 엘프고 v1과 비슷한 수준에 도달하게 되었다고 자체적으로 평가를 내렸으나, 얼마 지나지 않아 엘프고 v2가 나왔고 이것이 미니고 v15를 조금은 더 잘 잡는 것으로 나타났다. 그러나 이들이 부지런히 진척되고 있기 때문에 엘프고도 새 버전을 내놓지 않는다면 불과 몇 달 지나지 않아 뒤쳐질 것으로 예상된다.[23]
다른 제로 계열과 마찬가지로, 사활 문제와 문제에서 착각을 일으킨다는 문제점이 있다. 엘프고가 여기에 걸려들면 강한 기력이 무색하게 맥없이 무너지는 장면이 연출되기도 한다. v2에 와서도 고쳐지지 않았다. 계산량을 늘려줄수록 점점 나아지기는 하는데, 80,000 visits까지 왕창 늘려주어도 결국 해결이 안 되는 장면들도 존재한다. 20블록의 크기 안에서 결국 이 문제점을 많이 해결할 수 있을지 현재로서는 정확하게 알 수는 없는데, 알파고 제로 40블록마저도 이런 오류[24]를 일으켰던 걸 보면 가능성은 매우 낮다. 엘프고는 20블록 치고는 이미 너무 훌륭한 것이다.
엘프고 v2는 현재 OGS(Online Go Service)에서 RoyalLZ-ELF라는 아이디로 활동 중이다. 프로필 사진이 재밌다.
다른 인공지능들과 기력을 비교해보고 싶으면 CGOSKGS도 참고할 수 있다.
이 곳에서는 엘프고 각 버전을 1,600 playouts와 3,200 playouts의 두 가지 설정으로 운용하여 기력을 측정하고 있다.[25]

4. 바깥 고리


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

[1] 삼체 시리즈의 2부에 해당하는 작품이다.[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블록 중에서도 약한 편에 드는 버전이라고 할 수 있다. 비록 엘프고도 지금은 새로운 버전이 출시되기는 했지만, 릴라 제로가 40블록이 되고 200번대 버전에 접어든 현재에는 릴라 제로가 저렇게 일방적으로 깨지던 때와 상황이 완전히 다르다.[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] 승률 51.x%.[16] 이는 v2에서는 47.x% 대 52.x%로 백이 더 유리하게 시작한다고 분석되는 것으로 바뀐다. 좀 이상했던 점이 바로잡힌 부분이라 할 수 있다.[17] Sabaki 같은 프로그램으로 흑백에 서로 다른 인공지능의 가중치 파일을 세팅하여 대국을 진행시킬 경우, 쌍방이 서로 자기가 더 유리한 것으로 분석하고 있는 상황을 심심찮게 볼 수 있다. 상대가 자기의 계산과는 다른 수를 내놓을 때마다 '자기가 유리해졌다'는 분석이 쌓이기 때문으로, 어찌 보면 매우 자연스러운 현상.[18] 초반에 포석이 한 수 한 수 진행될 때마다 엘프고가 보여주는 승률의 변동이 알파고 티칭 툴에서에 비해 훨씬 크다는 점도 이러한 평가에 한몫했다.[19] 1,600 visits 설정일 때 v2가 v1에 대해 약 55%의 승률을 가지는 것으로 추정됨. 또한 논문에 의하면 엘프고끼리 대국을 할 때 한 쪽의 visits 수를 두 배로 주면 많이 받은 쪽이 200 ELO 정도 더 강하다고 하니, 엘프고가 다른 visits 수 설정 하에서 어느 정도 기력을 가질 지 가늠할 때 참고할 것.[20] 단, 2018년의 상승폭을 순수히 실력 상승으로 해석하기는 어려운 것이, 프로기사들이 엘프고를 활용하기 시작하면서 당연히 엘프고와의 수 일치율이 올라갔을 수밖에 없다. 조금 덜 직접적이기는 하지만 똑같은 맥락으로, 2017년의 상승폭에도 알파고 마스터의 자가대국 기보 50개가 공개되어 프로기사들이 이를 분석해볼 수 있었던 것의 영향이 섞여있을 수 있다.[21] 엘프고 외에도 알파고 제로 20블록, 알파제로, 미니고 v15가 여기에 해당된다. 그런데 언급된 셋에 비해서 엘프고가 블록이 하나 더 많다.[22] 딥마인드 추정, ELO 4858점.[23] 그런데 논문에서 엘프고 v2를 지칭하는 말로 'final model'이라는 표현을 써버렸다. 이것이 엘프고 프로젝트의 마지막이라는 것인지, 아니면 단지 지금과 같은 ResNet 20블록 형태로서의 최종 버전이라는 것인지 완전히 확실치는 않다.[24] 해당 장면은 2017년 10월에 공개된 알파고 제로 40블록의 자가대국 기보 20개 중에서 제17국, 백270수를 둘 차례에 해당된다. 대국자의 ELO 레이팅이 4975로 표시되므로, 40블록의 최종 형태에 의한 대국은 아니지만 학습과정 중에서 꽤 후반부에 나온 대국임을 알 수 있다. 5185점인 최종 버전도 똑같은 결정을 내릴지 궁금해지는 장면.[25] 그런데 흑백을 동일한 빈도로 쥐게 하지도 않고, 풀 안에는 릴라 제로만 지나치게 많으며, 시행한 경기 수 자체가 너무 적기 때문에 신뢰도가 상당히 떨어지는 자료다. 한 번 갱신될 때마다 점수가 몇십 점씩 바뀌어 있는 것만 봐도 알 수 있는 부분. 더군다나 여기서 산출한 ELO 레이팅프로기사들의 레이팅이나 딥마인드가 추정한 알파고의 레이팅과 스케일이 얼추 비슷하게 보이기 때문에 이 값들끼리 비교해서 실력을 비교할 수 있다고 사람들이 오해하는 경우가 많은데, 이 페이지에서는 'Zen7 1단 모드를 1800에 놓는다'는 임의의 기준을 잡고서 낸 값이므로 기사들의 레이팅이나 알파고의 레이팅과 대소를 비교하는 것이 불가능하다.