카타고
KataGo GitHub 페이지
KataGo 분산 자가대국 페이지
KataGo 논문(arXiv)
Leela Zero 디스코드 서버의 katago 채널
1. 개요
David J. Wu(lightvector)가 개발한 '''오픈 소스''' 바둑 인공지능.
2. 상세
2.1. 기술적 설명
lightvector는 바둑에 사용할 인공 신경망을 이용해 여러 가지 실험을 하고 있었는데, 실험을 통해 얻은 노하우 및 아이디어를 집대성해 만든 것이 KataGo이다. 서두에 링크한 논문에 세부 사항이 있는데, AlphaZero의 아키텍처는 바둑, 체스, 쇼기 등에 널리 사용할 수 있지만, 바둑에만 사용할 신경망이라면 바둑에 특화된 feature와 target을 추가해서 학습 효율을 높일 수 있다는 것이 개요이다.[1] 예상되는 집 차이나, 주어진 바둑판의 좌표가 누구의 집이 될지 등을 비롯해 다양한 예상을 할 수 있도록 신경망을 제작했다. 이를 통해 릴라 제로나 엘프고와 같은 기존의 알파고 제로/알파제로 재구현 오픈 소스 프로젝트들에 비해 비약적으로 빠른 학습을 할 수 있게 되었다.
2.2. 장점
최신 training run인 g170을 기준으로 서술하자면 다음과 같다.
- 중국식 규칙뿐만 아니라 일본식 규칙 및 AGA, 중국 고대 규칙 등을 지원한다. 패에 관련된 규칙도 여러 가지를 지원한다.
- 덤을 자유롭게 조절할 수 있다.
- 승률뿐만 아니라 예상되는 집 차이를 보여주고, 또 어디가 누구 집인지 보여줄 수 있다.
- 승률만 따지지 않으므로, 어느 정도 승률이 비슷하다면 유리하다면 집 차이를 벌리고 불리하다면 집 차이를 좁히며 두므로 극단적인 상황에서도 최선에 가깝게 둔다.
- 축을 hard coding했기 때문에 축에 관련된 문제가 없다. 릴라 제로 등도 시간을 주면 안 되는 축을 나가거나 하지는 않으나, 축과 관련된 변화를 시간을 들여 읽을 필요가 없으므로 축과 관련된 변화에 대한 판단이 정확하다.
- 신경망 입력으로 주어진 좌표 주변의 공배 수가 있는데, 이 때문에 수상전에 좀 더 강하다.
- 학습이 릴라 제로나 ELF 등에 비해 비약적으로 빠르다.
- 3점 이상 접바둑에서 헤매는 기존 제로 계열 인공지능과는 달리 접바둑도 잘 둘 수 있다. 형세에 따라 공격성을 조절할 수 있다.[2]
2.3. 역사
2019년 2월에 논문 작성에 필요한 데이터를 얻을 겸하여 proof of concept을 겸한 트레이닝을 시작했다(g65). 35개의 V100 GPU를 이용하여 학습한 결과, 1주만에 릴라 제로 130번 네트워크와 비슷한 기력을 달성했다.
2019년 6월에 신경망 구조와 프로그램을 개선하고 28개의 V100 GPU를 사용하여 19일 동안 학습한 결과(g104), ELF v2와 비슷하거나 살짝 떨어지는 기력을 달성했다. 집 차이를 보여주는 기능은 흥미롭긴 했으나, g104의 가중치들은 대부분의 국면에서 실제보다 훨씬 과장된 값을 보여주었기 때문에 아주 유용했다고 말하기는 어렵다.
2020년 1월에 더욱 개선하고 일본 규칙 지원 및 접바둑 학습 향상 등을 추가하여 새로운 training run(g170)을 시작하였다. 2월부터는 동일 시간[3] 조건 하에서 릴라 제로보다 더 강한 기력을 내는 것 같다는 유저들의 실험 결과가 등장하기 시작했다. 집 차이 계산도 g104 때와는 비교할 수 없이 정확해졌다. 접바둑 성능도 훨씬 향상되었기 때문에 한큐바둑에서 카타고 AI봇들이 9단 계정들을 상대로 3점~5점 접바둑을 두는 광경을 많이 볼 수 있게 되었다.[4]
2월 중에 20블록 가중치의 자가대국을 종료하고 '''30블록 320필터''' 및 '''40블록 256필터'''의 두 종류의 가중치로 옮겨갔으며, 2020년 2월 28일에는 v1.3.3 엔진과 함께 처음으로 30블록과 40블록 가중치를 공개하였다. 이 두 가중치의 학습을 동시에 진행하는 이유는 기존 규격인 20블록 256필터에서 크기를 더 키우기는 해야겠는데 어느 방향이 옳을지를 잘 모르겠어서라고. 1 visit 당 요구되는 연산량은 블록 수에는 비례 관계가, 필터 수에는 대략 제곱에 비례하는 관계가 있기 때문에 30블록 320필터가 40블록 256필터에 비해 약간 더 무거운 규격이다. 또한 30블록과 40블록 가중치의 학습과정에서 나오는 자가대국 기보로 기존의 20블록 256필터 가중치도 계속해서 학습시켰고, 이후의 가중치 업데이트 시에는 20블록, 30블록, 40블록이 모두 업데이트되었다.
2~3주 간격으로 가중치 업데이트가 계속해서 있어오다가, 5월 7일에 업데이트된 가중치를 끝으로 순수한 자가대국만을 이용한 반-제로 방식의 네트워크 학습은 종료되었다.
6월 6일에 새로운 가중치가 업데이트되었다. 기존처럼 비어 있는 바둑판에서 자가대국을 통해 학습 데이터를 만드는 것에 더해서, 실험적으로 빈 판이 아니라 특정한 국면에서 자가대국을 시작하는 방식 또한 도입하였다. 자가대국에서 잘 나오지 않는 다양한 국면에 대한 학습 또한 진행하기 위함이다. 인간이 둔 바둑의 일부 국면과, 특정 난해한 정석 형태에 대한 추가적 학습으로, 인간이 둔 수는 확실하게 좋을 때 제한적으로만 참고하고 기본적으로는 자가대국을 이용해 학습하였다.
6월 22일에 마지막으로 learning rate을 낮추어 학습시킨 가중치가 올라왔다. 40블록의 경우 이전 네트워크보다 Elo 레이팅이 200 이상 증가하였고, 20블록도 100 이상 증가하였다. 이 때 40블록 384필터짜리 대형 가중치도 공개했는데, 얼마나 강한지 테스트해보지는 않았다고 한다. Jane Street에서 프로젝트에 지원하던 금액이 중단된 이후로도 lightvector가 사비로 GPU를 빌려 학습시키고 있었으나 일단 여기서 잠정적으로 마무리하고, 추후에 릴라 제로처럼 분산시켜 훈련시킬 수 있도록 웹 개발이 더 되면 다시 훈련할 의향을 밝혔다.
12월 말부터 릴라 제로처럼 분산 자가대국을 통한 학습을 제한된 참가자에 한해 시작하였고, 2021년 1월 말부터 제한 없이 기여할 수 있도록 전환하였다. 기존 g170 run의 연장선상이며, 기존보다 강한 새로운 40x256 가중치를 훈련 중이다.
카타고 네트워크
2.4. 활용
가장 눈에 잘 띄는 것은 역시 바둑 유튜버들의 치수고치기 컨텐츠. 동규의 바둑, 프로연우, 조 앤 탑, 귀수TV, 이현욱TV, 서봉수, 키바바둑TV 등등 여러 유튜브 채널에서 카타고[5] 와의 접바둑 컨텐츠를 진행하였다. 대국에 사용되는 카타고의 버전, 컴퓨터의 사양과 시간 설정, 사람의 기력 수준 등의 요인들에 의해 적정 치수가 달라지는데, 프로기사가 4점까지 깔기도 한다. 컴퓨터는 컴퓨터대로 짧은 시간밖에 못 받고 사람은 사람대로 집중하기 힘든 환경에서 두기 때문에 나름대로 흥미진진한 대결이 된다.
2018년의 엘프고, 2019년의 릴라 제로와 미니고에 이어, 2020년에 한국의 프로기사들이 바둑 연구에 활용하는 주력 AI가 될 가능성이 매우 높은 후보다. 릴라 제로와 미니고를 9할 이상의 승률로 압도할 만큼 강한 데다가 덤 조절, 한국 규칙 지원, 집 차이 출력 등 다양한 이점이 있어 프로기사들도 많이 사용하고 있다.
K바둑에서 먼저, 그리고 바둑TV에서도 생중계에 활용하고 있다. 중계에 카타고가 활용됨으로써 드디어 덤 6.5집 기준의 정확한 승률과 집 수에 기반한 형세까지 확인할 수 있게 되었다.
2.5. 카타구이(폰타고)
별다른 설치 없이 카타고를 이용할수 있는 사이트[6] .일명 폰타고 로그인 없이 카타고 10블럭, 회원가입을 하고 로그인을 하면 20,40블럭을 무료로 이용할수 있다. 40블럭의 경우 최신 네트워크를 주기적으로 업데이트 한다. 사이트 내 설명에 따르면 하드웨어는 NVIDIA RTX 2080 12 threads이다.
카타구이(폰타고)
3. 바깥 고리
카타고가 언급된 기사
카타고 네트워크
세븐틴님 카타고 통합팩
카타구이(폰타고)
[1] 어찌보면 당연한 말인데, 알파제로 자체가 알파고 제로에서 바둑에 특화된 feature를 제거해서 효율을 좀 낮춘 대신 범용적인 학습을 가능하게 만든 버전이기 때문이다.[2] 이에 관한 자세한 사항은 여기를 참조.[3] visit의 수가 수백에서 수십만 사이에 놓이도록 하는 범위에서.[4] 기보나 전적을 확인하고 싶다면 2월 현재를 기준으로 활약 중인 神机C, 里拉复盘 등의 닉네임을 한큐바둑에서 검색하면 된다.[5] 인공지능 바둑판으로 대국한 경우들 포함.[6] 또는 이 사이트에서 이용할 수 있는 카타고를 지칭한다